• Len Brown's avatar
    [ACPI] ACPICA 20040311 from Bob Moore · 954c9189
    Len Brown authored
    Fixed a problem where errors occurring during the parse phase of control
    method execution did not abort cleanly.  For example, objects created
    and installed in the namespace were not deleted.  This caused all
    subsequent invocations of the method to return the AE_ALREADY_EXISTS
    exception.
    
    Implemented a mechanism to force a control method to "Serialized"
    execution if the method attempts to create namespace objects.
    (The root of the AE_ALREADY_EXISTS problem.)
    
    Implemented support for the predefined _OSI "internal" control method.
    Initial supported strings are "Linux", "Windows 2000", "Windows 2001",
    and "Windows 2001.1", and can be easily upgraded for new strings as
    necessary.  This feature allows Linux to execute
    the fully tested, "Windows" code path through the ASL code
    
    Global Lock Support:  Now allows multiple acquires and releases with any
    internal thread.  Removed concept of "owning thread" for this special
    mutex.
    
    Fixed two functions that were inappropriately declaring large objects on
    the CPU stack: ps_parse_loop() and ns_evaluate_relative().
    Reduces the stack usage during method execution considerably.
    
    Fixed a problem in the ACPI 2.0 FACS descriptor (actbl2.h) where the
    S4Bios_f field was incorrectly defined as UINT32 instead of UINT32_BIT.
    
    Fixed a problem where acpi_ev_gpe_detect() would fault
    if there were no GPEs defined on the machine.
    
    Implemented two runtime options:  One to force all control method
    execution to "Serialized" to mimic Windows behavior, another to disable
    _OSI support if it causes problems on a given machine.
    954c9189
exmutex.c 9.97 KB