• Andy Grover's avatar
    ACPI: update to 20030522 · ce7d8354
    Andy Grover authored
    Found and fixed a reported problem where an AE_NOT_FOUND error occurred occasionally
    during _BST evaluation.  This turned out to be an Owner ID allocation issue where a
    called method did not get a new ID assigned to it.  Eventually, (after 64k calls), the
    Owner ID UINT16 would wraparound so that the ID would be the same as the caller's and the
    called method would delete the caller's namespace.
    
    Implemented extended error reporting for control methods that are aborted due to a
    run-time exception.  Output includes the exact AML instruction that caused the method
    abort, a dump of the method locals and arguments at the time of the abort, and a trace of
    all nested control method calls.
    
    Modified the interpreter to allow the creation of buffers of zero length from the AML
    code. Implemented new code to ensure that no attempt is made to actually allocate a
    memory buffer (of length zero), only a buffer object with a NULL buffer pointer and
    length zero.  A warning is no longer issued when the AML attempts to create a zero-length
    buffer.
    
    Implemented a workaround for the "leading asterisk problem" in _HIDs, _UIDs, and _CIDs.
    One leading asterisk is automatically removed if present in all HID, UID, and CID
    strings.
    
    Implemented full support for _CID methods that return a package of multiple CIDs.  The
    AcpiGetObjectInfo interface now returns a device _HID, _UID, and _CID list if present.
    This required a change to the external interface to pass an ACPI_BUFFER object as a
    parameter, since the _CID list is of variable length.
    
    Fixed a problem with the new AE_SAME_HANDLER exception where handler initialization code
    did not know about this exception.
    ce7d8354
dsmethod.c 15.6 KB