summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/contrib/dev/acpica/CHANGES.txt2828
-rw-r--r--sys/contrib/dev/acpica/acapps.h181
-rw-r--r--sys/contrib/dev/acpica/acconfig.h6
-rw-r--r--sys/contrib/dev/acpica/acdisasm.h13
-rw-r--r--sys/contrib/dev/acpica/acefi.h4
-rw-r--r--sys/contrib/dev/acpica/acenv.h14
-rw-r--r--sys/contrib/dev/acpica/acfreebsd.h8
-rw-r--r--sys/contrib/dev/acpica/acglobal.h14
-rw-r--r--sys/contrib/dev/acpica/aclocal.h8
-rw-r--r--sys/contrib/dev/acpica/acmacros.h20
-rw-r--r--sys/contrib/dev/acpica/acobject.h15
-rw-r--r--sys/contrib/dev/acpica/acoutput.h19
-rw-r--r--sys/contrib/dev/acpica/acparser.h9
-rw-r--r--sys/contrib/dev/acpica/acpiosxf.h4
-rw-r--r--sys/contrib/dev/acpica/acresrc.h8
-rw-r--r--sys/contrib/dev/acpica/acutils.h6
-rw-r--r--sys/contrib/dev/acpica/amlcode.h3
-rw-r--r--sys/contrib/dev/acpica/amlresrc.h169
-rw-r--r--sys/contrib/dev/acpica/dbcmds.c14
-rw-r--r--sys/contrib/dev/acpica/dbdisply.c14
-rw-r--r--sys/contrib/dev/acpica/dbexec.c14
-rw-r--r--sys/contrib/dev/acpica/dbfileio.c10
-rw-r--r--sys/contrib/dev/acpica/dbhistry.c8
-rw-r--r--sys/contrib/dev/acpica/dbinput.c8
-rw-r--r--sys/contrib/dev/acpica/dbstats.c20
-rw-r--r--sys/contrib/dev/acpica/dbutils.c8
-rw-r--r--sys/contrib/dev/acpica/dbxface.c14
-rw-r--r--sys/contrib/dev/acpica/dmbuffer.c10
-rw-r--r--sys/contrib/dev/acpica/dmnames.c60
-rw-r--r--sys/contrib/dev/acpica/dmopcode.c29
-rw-r--r--sys/contrib/dev/acpica/dmresrc.c10
-rw-r--r--sys/contrib/dev/acpica/dmresrcl.c14
-rw-r--r--sys/contrib/dev/acpica/dmresrcs.c4
-rw-r--r--sys/contrib/dev/acpica/dmutils.c7
-rw-r--r--sys/contrib/dev/acpica/dmwalk.c11
-rw-r--r--sys/contrib/dev/acpica/dsfield.c6
-rw-r--r--sys/contrib/dev/acpica/dsmethod.c6
-rw-r--r--sys/contrib/dev/acpica/dsmthdat.c53
-rw-r--r--sys/contrib/dev/acpica/dsobject.c19
-rw-r--r--sys/contrib/dev/acpica/dsopcode.c24
-rw-r--r--sys/contrib/dev/acpica/dswexec.c5
-rw-r--r--sys/contrib/dev/acpica/dswload.c26
-rw-r--r--sys/contrib/dev/acpica/dswstate.c28
-rw-r--r--sys/contrib/dev/acpica/evevent.c12
-rw-r--r--sys/contrib/dev/acpica/evmisc.c61
-rw-r--r--sys/contrib/dev/acpica/evregion.c3
-rw-r--r--sys/contrib/dev/acpica/evrgnini.c4
-rw-r--r--sys/contrib/dev/acpica/evxface.c3
-rw-r--r--sys/contrib/dev/acpica/evxfevnt.c37
-rw-r--r--sys/contrib/dev/acpica/exdump.c5
-rw-r--r--sys/contrib/dev/acpica/exfldio.c4
-rw-r--r--sys/contrib/dev/acpica/exmisc.c6
-rw-r--r--sys/contrib/dev/acpica/exoparg1.c11
-rw-r--r--sys/contrib/dev/acpica/exoparg2.c8
-rw-r--r--sys/contrib/dev/acpica/exprep.c54
-rw-r--r--sys/contrib/dev/acpica/exregion.c10
-rw-r--r--sys/contrib/dev/acpica/exresop.c6
-rw-r--r--sys/contrib/dev/acpica/exstore.c4
-rw-r--r--sys/contrib/dev/acpica/exutils.c5
-rw-r--r--sys/contrib/dev/acpica/hwacpi.c34
-rw-r--r--sys/contrib/dev/acpica/hwgpe.c14
-rw-r--r--sys/contrib/dev/acpica/hwregs.c36
-rw-r--r--sys/contrib/dev/acpica/hwsleep.c12
-rw-r--r--sys/contrib/dev/acpica/nsaccess.c130
-rw-r--r--sys/contrib/dev/acpica/nsdump.c32
-rw-r--r--sys/contrib/dev/acpica/nsdumpdv.c6
-rw-r--r--sys/contrib/dev/acpica/nseval.c4
-rw-r--r--sys/contrib/dev/acpica/nsinit.c16
-rw-r--r--sys/contrib/dev/acpica/nsload.c3
-rw-r--r--sys/contrib/dev/acpica/nsnames.c4
-rw-r--r--sys/contrib/dev/acpica/nssearch.c10
-rw-r--r--sys/contrib/dev/acpica/nsutils.c12
-rw-r--r--sys/contrib/dev/acpica/nsxfeval.c3
-rw-r--r--sys/contrib/dev/acpica/psargs.c297
-rw-r--r--sys/contrib/dev/acpica/psopcode.c24
-rw-r--r--sys/contrib/dev/acpica/psparse.c154
-rw-r--r--sys/contrib/dev/acpica/pstree.c4
-rw-r--r--sys/contrib/dev/acpica/rsdump.c4
-rw-r--r--sys/contrib/dev/acpica/tbconvrt.c27
-rw-r--r--sys/contrib/dev/acpica/tbget.c32
-rw-r--r--sys/contrib/dev/acpica/tbgetall.c9
-rw-r--r--sys/contrib/dev/acpica/tbinstal.c10
-rw-r--r--sys/contrib/dev/acpica/tbrsdt.c6
-rw-r--r--sys/contrib/dev/acpica/tbutils.c6
-rw-r--r--sys/contrib/dev/acpica/utdebug.c4
-rw-r--r--sys/contrib/dev/acpica/uteval.c6
-rw-r--r--sys/contrib/dev/acpica/utglobal.c13
-rw-r--r--sys/contrib/dev/acpica/utinit.c10
-rw-r--r--sys/contrib/dev/acpica/utmisc.c5
-rw-r--r--sys/contrib/dev/acpica/utxface.c8
90 files changed, 3876 insertions, 1043 deletions
diff --git a/sys/contrib/dev/acpica/CHANGES.txt b/sys/contrib/dev/acpica/CHANGES.txt
new file mode 100644
index 0000000..66313c2
--- /dev/null
+++ b/sys/contrib/dev/acpica/CHANGES.txt
@@ -0,0 +1,2828 @@
+----------------------------------------
+15 August 2002. Summary of changes for this release.
+
+1) ACPI CA Core Subsystem Version 20020815:
+
+Fixed a reported problem where a Store to a method argument
+that contains a reference did not perform the indirect store
+correctly. This problem was created during the conversion
+to the new reference object model – the indirect store to a
+method argument code was not updated to reflect the new
+model.
+
+Reworked the ACPI mode change code to better conform to ACPI
+2.0, handle corner cases, and improve code legibility (Kochi
+Takayoshi)
+
+Fixed a problem with the pathname parsing for the carat (^)
+prefix. The heavy use of the carat operator by the new
+namepath optimization in the iASL compiler uncovered a
+problem with the AML interpreter handling of this prefix.
+In the case where one or more carats precede a single
+nameseg, the nameseg was treated as standalone and the
+search rule (to root) was inadvertently applied. This could
+cause both the iASL compiler and the interpreter to find the
+wrong object or to miss the error that should occur if the
+object does not exist at that exact pathname.
+
+Found and fixed the problem where the HP Pavilion DSDT would
+not load. This was a relatively minor tweak to the table
+loading code (a problem caused by the unexpected encounter
+with a method invocation not within a control method), but
+it does not solve the overall issue of the execution of AML
+code at the table level. This investigation is still
+ongoing.
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0
+compiler, and these values do not include any ACPI driver or
+OSPM code. The debug version of the code includes the debug
+output trace mechanism and has a larger code and data size.
+Note that these values will vary depending on the efficiency
+of the compiler and the compiler options used during
+generation.
+
+ Previous Release
+ Non-Debug Version: 69.1K Code, 8.2K Data, 77.3K
+Total
+ Debug Version: 149.4K Code, 61.6K Data, 211.0K
+Total
+ Current Release:
+ Non-Debug Version: 69.6K Code, 8.3K Data, 77.9K
+Total
+ Debug Version: 150.0K Code, 61.7K Data, 211.7K
+Total
+
+
+2) Linux
+
+Remove redundant slab.h include (Brad Hards)
+
+Fix several bugs in thermal.c (Herbert Nachtnebel)
+
+Make CONFIG_ACPI_BOOT work properly (Pavel Machek)
+
+Change acpi_system_suspend to use updated irq functions
+(Pavel Machek)
+
+Export acpi_get_firmware_table (Matthew Wilcox)
+
+Use proper root proc entry for ACPI (Kochi Takayoshi)
+
+Fix early-boot table parsing (Bjorn Helgaas)
+
+
+3) iASL Compiler/Disassembler
+
+Reworked the compiler options to make them more consistent
+and to use two-letter options where appropriate. We were
+running out of sensible letters. This may break some
+makefiles, so check the current options list by invoking the
+compiler with no parameters.
+
+Completed the design and implementation of the ASL namepath
+optimization option for the compiler. This option optimizes
+all references to named objects to the shortest possible
+path. The first attempt tries to utilize a single nameseg
+(4 characters) and the “search-to-root” algorithm used by
+the interpreter. If that cannot be used (because either the
+name is not in the search path or there is a conflict with
+another object with the same name), the pathname is
+optimized using the carat prefix (usually a shorter string
+than specifying the entire path from the root.)
+
+Implemented support to obtain the DSDT from the Windows
+registry (when the disassembly option is specified with no
+input file). Added this code as the implementation for
+AcpiOsTableOverride in the Windows OSL. Migrated the 16-bit
+code (used in the AcpiDump utility) to scan memory for the
+DSDT to the AcpiOsTableOverride function in the DOS OSL to
+make the disassembler truly OS independent.
+
+Implemented a new option to disassemble and compile in one
+step. When used without an input filename, this option will
+grab the DSDT from the local machine, disassemble it, and
+compile it in one step.
+
+Added a warning message for invalid escapes (a backslash
+followed by any character other than the allowable escapes).
+This catches the quoted string error “\_SB_” (which should
+be “\\_SB_” ). Also, there are numerous instances in the
+ACPI specification where this error occurs.
+
+Added a compiler option to disable all optimizations. This
+is basically the “compatibility mode” because by using this
+option, the AML code will come out exactly the same as other
+ASL compilers.
+
+Added error messages for incorrectly ordered dependent
+resource functions. This includes: missing EndDependentFn
+macro at end of dependent resource list, nested dependent
+function macros (both start and end), and missing
+StartDependentFn macro. These are common errors that should
+be caught at compile time.
+
+Implemented _OSI support for the disassembler and compiler.
+_OSI must be included in the namespace for proper
+disassembly (because the disassembler must know the number
+of arguments.)
+
+Added an “optimization” message type that is optional (off
+by default). This message is used for all optimizations –
+including constant folding, integer optimization, and
+namepath optimization.
+
+----------------------------------------
+25 July 2002. Summary of changes for this release.
+
+
+1) ACPI CA Core Subsystem Version 20020725:
+
+The AML Disassembler has been enhanced to produce compilable
+ASL code and has been integrated into the iASL compiler (see
+below) as well as the single-step disassembly for the AML
+debugger and the disassembler for the AcpiDump utility. All
+ACPI 2.0A opcodes, resource templates and macros are fully
+supported. The disassembler has been tested on over 30
+different AML files, producing identical AML when the
+resulting disassembled ASL file is recompiled with the same
+ASL compiler.
+
+Modified the Resource Manager to allow zero interrupts and
+zero dma channels during the GetCurrentResources call. This
+was causing problems on some platforms.
+
+Added the AcpiOsRedirectOutput interface to the OSL to
+simplify output redirection for the AcpiOsPrintf and
+AcpiOsVprintf interfaces.
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0
+compiler, and these values do not include any ACPI driver or
+OSPM code. The debug version of the code includes the debug
+output trace mechanism and has a larger code and data size.
+Note that these values will vary depending on the efficiency
+of the compiler and the compiler options used during
+generation.
+
+ Previous Release
+ Non-Debug Version: 68.7K Code, 7.4K Data, 76.1K
+Total
+ Debug Version: 142.9K Code, 58.7K Data, 201.6K
+Total
+ Current Release:
+ Non-Debug Version: 69.1K Code, 8.2K Data, 77.3K
+Total
+ Debug Version: 149.4K Code, 61.6K Data, 211.0K
+Total
+
+
+2) Linux
+
+Fixed a panic in the EC driver (Dominik Brodowski)
+
+Implemented checksum of the R/XSDT itself during Linux table
+scan (Richard Schaal)
+
+
+3) iASL compiler
+
+The AML disassembler is integrated into the compiler. The "-
+d" option invokes the disassembler to completely
+disassemble an input AML file, producing as output a text
+ASL file with the extension ".dsl" (to avoid name collisions
+with existing .asl source files.) A future enhancement will
+allow the disassembler to obtain the BIOS DSDT from the
+registry under Windows.
+
+Fixed a problem with the VendorShort and VendorLong resource
+descriptors where an invalid AML sequence was created.
+
+Implemented a fix for BufferData term in the ASL parser. It
+was inadvertently defined twice, allowing invalid syntax to
+pass and causing reduction conflicts.
+
+Fixed a problem where the Ones opcode could get converted to
+a value of zero if "Ones" was used where a byte, word or
+dword value was expected. The 64-bit value is now truncated
+to the correct size with the correct value.
+
+
+----------------------------------------
+02 July 2002. Summary of changes for this release.
+
+
+1) ACPI CA Core Subsystem Version 20020702:
+
+The Table Manager code has been restructured to add several
+new features. Tables that are not required by the core
+subsystem (other than the FADT, DSDT, FACS, PSDTs, etc.) are
+no longer validated in any way and are returned from
+AcpiGetFirmwareTable if requested. The AcpiOsTableOverride
+interface is now called for each table that is loaded by the
+subsystem in order to allow the host to override any table
+it chooses. Previously, only the DSDT could be overridden.
+Added one new files, tbrsdt.c and tbgetall.c.
+
+Fixed a problem with the conversion of internal package
+objects to external objects (when a package is returned from
+a control method.) The return buffer length was set to zero
+instead of the proper length of the package object.
+
+Fixed a reported problem with the use of the RefOf and
+DeRefOf operators when passing reference arguments to
+control methods. A new type of Reference object is used
+internally for references produced by the RefOf operator.
+
+Added additional error messages in the Resource Manager to
+explain AE_BAD_DATA errors when they occur during resource
+parsing.
+
+Split the AcpiEnableSubsystem into two primitives to enable
+a finer granularity initialization sequence. These two
+calls should be called in this order: AcpiEnableSubsystem
+(flags), AcpiInitializeObjects (flags). The flags parameter
+remains the same.
+
+
+2) Linux
+
+Updated the ACPI utilities module to understand the new
+style of fully resolved package objects that are now
+returned from the core subsystem. This eliminates errors of
+the form:
+
+ ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PPB_._PRT]
+ acpi_utils-0430 [145] acpi_evaluate_reference:
+ Invalid element in package (not a device reference)
+
+The method evaluation utility uses the new buffer allocation
+scheme instead of calling AcpiEvaluate Object twice.
+
+Added support for ECDT. This allows the use of the Embedded
+Controller before the namespace has been fully initialized,
+which is necessary for ACPI 2.0 support, and for some
+laptops to initialize properly. (Laptops using ECDT are
+still rare, so only limited testing was performed of the
+added functionality.)
+
+Fixed memory leaks in the EC driver.
+
+Eliminated a brittle code structure in acpi_bus_init().
+
+Eliminated the acpi_evaluate() helper function in utils.c.
+It is no longer needed since acpi_evaluate_object can
+optionally allocate memory for the return object.
+
+Implemented fix for keyboard hang when getting battery
+readings on some systems (Stephen White)
+
+PCI IRQ routing update (Dominik Brodowski)
+
+Fix an ifdef to allow compilation on UP with LAPIC but no
+IOAPIC support
+
+----------------------------------------
+11 June 2002. Summary of changes for this release.
+
+
+1) ACPI CA Core Subsystem Version 20020611:
+
+Fixed a reported problem where constants such as Zero and
+One appearing within _PRT packages were not handled
+correctly within the resource manager code. Originally
+reported against the ASL compiler because the code generator
+now optimizes integers to their minimal AML representation
+(i.e. AML constants if possible.) The _PRT code now handles
+all AML constant opcodes correctly (Zero, One, Ones,
+Revision).
+
+Fixed a problem with the Concatenate operator in the AML
+interpreter where a buffer result object was incorrectly
+marked as not fully evaluated, causing a run-time error of
+AE_AML_INTERNAL.
+
+All package sub-objects are now fully resolved before they
+are returned from the external ACPI interfaces. This means
+that name strings are resolved to object handles, and
+constant operators (Zero, One, Ones, Revision) are resolved
+to Integers.
+
+Implemented immediate resolution of the AML Constant opcodes
+(Zero, One, Ones, Revision) to Integer objects upon
+detection within the AML stream. This has simplified and
+reduced the generated code size of the subsystem by
+eliminating about 10 switch statements for these constants
+(which previously were contained in Reference objects.) The
+complicating issues are that the Zero opcode is used as a
+"placeholder" for unspecified optional target operands and
+stores to constants are defined to be no-ops.
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0
+compiler, and these values do not include any ACPI driver or
+OSPM code. The debug version of the code includes the debug
+output trace mechanism and has a larger code and data size.
+Note that these values will vary depending on the efficiency
+of the compiler and the compiler options used during
+generation.
+
+ Previous Release
+ Non-Debug Version: 69.3K Code, 7.4K Data, 76.7K
+Total
+ Debug Version: 143.8K Code, 58.8K Data, 202.6K
+Total
+ Current Release:
+ Non-Debug Version: 68.7K Code, 7.4K Data, 76.1K
+Total
+ Debug Version: 142.9K Code, 58.7K Data, 201.6K
+Total
+
+
+2) Linux
+
+Added preliminary support for obtaining _TRA data for PCI
+root bridges (Bjorn Helgaas).
+
+
+3) iASL Compiler Version X2046:
+
+Fixed a problem where the "_DDN" reserved name was defined
+to be a control method with one argument. There are no
+arguments, and _DDN does not have to be a control method.
+
+Fixed a problem with the Linux version of the compiler where
+the source lines printed with error messages were the wrong
+lines. This turned out to be the "LF versus CR/LF"
+difference between Windows and Unix. This appears to be the
+longstanding issue concerning listing output and error
+messages.
+
+Fixed a problem with the Linux version of compiler where
+opcode names within error messages were wrong. This was
+caused by a slight difference in the output of the Flex tool
+on Linux versus Windows.
+
+Fixed a problem with the Linux compiler where the hex output
+files contained some garbage data caused by an internal
+buffer overrun.
+
+
+----------------------------------------
+17 May 2002. Summary of changes for this release.
+
+
+1) ACPI CA Core Subsystem Version 20020517:
+
+Implemented a workaround to an BIOS bug discovered on the HP
+OmniBook where the FADT revision number and the table size
+are inconsistent (ACPI 2.0 revision vs. ACPI 1.0 table
+size). The new behavior is to fallback to using only the
+ACPI 1.0 fields of the FADT if the table is too small to be
+a ACPI 2.0 table as claimed by the revision number.
+Although this is a BIOS bug, this is a case where the
+workaround is simple enough and with no side effects, so it
+seemed prudent to add it. A warning message is issued,
+however.
+
+Implemented minimum size checks for the fixed-length ACPI
+tables -- the FADT and FACS, as well as consistency checks
+between the revision number and the table size.
+
+Fixed a reported problem in the table override support where
+the new table pointer was incorrectly treated as a physical
+address instead of a logical address.
+
+Eliminated the use of the AE_AML_ERROR exception and
+replaced it with more descriptive codes.
+
+Fixed a problem where an exception would occur if an ASL
+Field was defined with no named Field Units underneath it
+(used by some index fields).
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0
+compiler, and these values do not include any ACPI driver or
+OSPM code. The debug version of the code includes the debug
+output trace mechanism and has a larger code and data size.
+Note that these values will vary depending on the efficiency
+of the compiler and the compiler options used during
+generation.
+
+ Previous Release
+ Non-Debug Version: 68.8K Code, 7.1K Data, 75.9K
+Total
+ Debug Version: 142.9K Code, 58.4K Data, 201.3K
+Total
+ Current Release:
+ Non-Debug Version: 69.3K Code, 7.4K Data, 76.7K
+Total
+ Debug Version: 143.8K Code, 58.8K Data, 202.6K
+Total
+
+
+
+2) Linux
+
+Much work done on ACPI init (MADT and PCI IRQ routing
+support). (Paul D. and Dominik Brodowski)
+
+Fix PCI IRQ-related panic on boot (Sam Revitch)
+
+Set BM_ARB_DIS when entering a sleep state (Ducrot Bruno)
+
+Fix "MHz" typo (Dominik Brodowski)
+
+Fix RTC year 2000 issue (Dominik Brodowski)
+
+Preclude multiple button proc entries (Eric Brunet)
+
+Moved arch-specific code out of include/platform/aclinux.h
+
+3) iASL Compiler Version X2044:
+
+Implemented error checking for the string used in the EISAID
+macro (Usually used in the definition of the _HID object.)
+The code now strictly enforces the PnP format - exactly 7
+characters, 3 uppercase letters and 4 hex digits.
+
+If a raw string is used in the definition of the _HID object
+(instead of the EISAID macro), the string must contain all
+alphanumeric characters (e.g., "*PNP0011" is not allowed
+because of the asterisk.)
+
+Implemented checking for invalid use of ACPI reserved names
+for most of the name creation operators (Name, Device,
+Event, Mutex, OperationRegion, PowerResource, Processor, and
+ThermalZone.) Previously, this check was only performed for
+control methods.
+
+Implemented an additional check on the Name operator to emit
+an error if a reserved name that must be implemented in ASL
+as a control method is used. We know that a reserved name
+must be a method if it is defined with input arguments.
+
+The warning emitted when a namespace object reference is not
+found during the cross reference phase has been changed into
+an error. The "External" directive should be used for names
+defined in other modules.
+
+
+4) Tools and Utilities
+
+The 16-bit tools (adump16 and aexec16) have been regenerated
+and tested.
+
+Fixed a problem with the output of both acpidump and adump16
+where the indentation of closing parentheses and brackets
+was not aligned properly with the parent block.
+
+
+----------------------------------------
+03 May 2002. Summary of changes for this release.
+
+
+1) ACPI CA Core Subsystem Version 20020503:
+
+Added support a new OSL interface that allows the host
+operating system software to override the DSDT found in the
+firmware - AcpiOsTableOverride. With this interface, the
+OSL can examine the version of the firmware DSDT and replace
+it with a different one if desired.
+
+Added new external interfaces for accessing ACPI registers
+from device drivers and other system software -
+AcpiGetRegister and AcpiSetRegister. This was simply an
+externalization of the existing AcpiHwBitRegister
+interfaces.
+
+Fixed a regression introduced in the previous build where
+the ASL/AML CreateField operator always returned an error,
+"destination must be a NS Node".
+
+Extended the maximum time (before failure) to successfully
+enable ACPI mode to 3 seconds.
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0
+compiler, and these values do not include any ACPI driver or
+OSPM code. The debug version of the code includes the debug
+output trace mechanism and has a larger code and data size.
+Note that these values will vary depending on the efficiency
+of the compiler and the compiler options used during
+generation.
+
+ Previous Release
+ Non-Debug Version: 68.5K Code, 7.0K Data, 75.5K
+Total
+ Debug Version: 142.4K Code, 58.3K Data, 200.7K
+Total
+ Current Release:
+ Non-Debug Version: 68.8K Code, 7.1K Data, 75.9K
+Total
+ Debug Version: 142.9K Code, 58.4K Data, 201.3K
+Total
+
+
+2) Linux
+
+Enhanced ACPI init code for SMP. We are now fully MPS and
+$PIR-free. While 3 out of 4 of our in-house systems work
+fine, the last one still hangs when testing the LAPIC timer.
+
+Renamed many files in 2.5 kernel release to omit "acpi_"
+from the name.
+
+Added warning on boot for Presario 711FR.
+
+Sleep improvements (Pavel Machek)
+
+ACPI can now be built without CONFIG_PCI enabled.
+
+IA64: Fixed memory map functions (JI Lee)
+
+
+3) iASL Compiler Version X2043:
+
+Added support to allow the compiler to be integrated into
+the MS VC++ development environment for one-button
+compilation of single files or entire projects -- with error-
+to-source-line mapping.
+
+Implemented support for compile-time constant folding for
+the Type3, Type4, and Type5 opcodes first defined in the
+ACPI 2.0 specification. This allows the ASL writer to use
+expressions instead of Integer/Buffer/String constants in
+terms that must evaluate to constants at compile time and
+will also simplify the emitted AML in any such sub-
+expressions that can be folded (evaluated at compile-time.)
+This increases the size of the compiler significantly
+because a portion of the ACPI CA AML interpreter is included
+within the compiler in order to pre-evaluate constant
+expressions.
+
+Fixed a problem with the "Unicode" ASL macro that caused the
+compiler to fault. (This macro is used in conjunction with
+the _STR reserved name.)
+
+Implemented an AML opcode optimization to use the Zero, One,
+and Ones opcodes where possible to further reduce the size
+of integer constants and thus reduce the overall size of the
+generated AML code.
+
+Implemented error checking for new reserved terms for ACPI
+version 2.0A.
+
+Implemented the -qr option to display the current list of
+ACPI reserved names known to the compiler.
+
+Implemented the -qc option to display the current list of
+ASL operators that are allowed within constant expressions
+and can therefore be folded at compile time if the operands
+are constants.
+
+
+4) Documentation
+
+Updated the Programmer's Reference for new interfaces, data
+types, and memory allocation model options.
+
+Updated the iASL Compiler User Reference to apply new format
+and add information about new features and options.
+
+----------------------------------------
+19 April 2002. Summary of changes for this release.
+
+1) ACPI CA Core Subsystem Version 20020419:
+
+The source code base for the Core Subsystem has been
+completely cleaned with PC-lint (FlexLint) for both 32-bit
+and 64-bit versions. The Lint option files used are
+included in the /acpi/generate/lint directory.
+
+Implemented enhanced status/error checking across the entire
+Hardware manager subsystem. Any hardware errors (reported
+from the OSL) are now bubbled up and will abort a running
+control method.
+
+Fixed a problem where the per-ACPI-table integer width (32
+or 64) was stored only with control method nodes, causing a
+fault when non-control method code was executed during table
+loading. The solution implemented uses a global variable to
+indicate table width across the entire ACPI subsystem.
+Therefore, ACPI CA does not support mixed integer widths
+across different ACPI tables (DSDT, SSDT).
+
+Fixed a problem where NULL extended fields (X fields) in an
+ACPI 2.0 ACPI FADT caused the table load to fail. Although
+the existing ACPI specification is a bit fuzzy on this
+topic, the new behavior is to fall back on a ACPI 1.0 field
+if the corresponding ACPI 2.0 X field is zero (even though
+the table revision indicates a full ACPI 2.0 table.) The
+ACPI specification will be updated to clarify this issue.
+
+Fixed a problem with the SystemMemory operation region
+handler where memory was always accessed byte-wise even if
+the AML-specified access width was larger than a byte. This
+caused problems on systems with memory-mapped I/O. Memory
+is now accessed with the width specified. On systems that
+do not support non-aligned transfers, a check is made to
+guarantee proper address alignment before proceeding in
+order to avoid an AML-caused alignment fault within the
+kernel.
+
+Fixed a problem with the ExtendedIrq resource where only one
+byte of the 4-byte Irq field was extracted.
+
+Fixed the AcpiExDigitsNeeded() procedure to support _UID.
+This function was out of date and required a rewrite.
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0
+compiler, and these values do not include any ACPI driver or
+OSPM code. The debug version of the code includes the debug
+output trace mechanism and has a larger code and data size.
+Note that these values will vary depending on the efficiency
+of the compiler and the compiler options used during
+generation.
+
+ Previous Release
+ Non-Debug Version: 66.6K Code, 6.5K Data, 73.1K
+Total
+ Debug Version: 139.8K Code, 57.4K Data, 197.2K
+Total
+ Current Release:
+ Non-Debug Version: 68.5K Code, 7.0K Data, 75.5K
+Total
+ Debug Version: 142.4K Code, 58.3K Data, 200.7K
+Total
+
+
+2) Linux
+
+PCI IRQ routing fixes (Dominik Brodowski)
+
+
+3) iASL Compiler Version X2042:
+
+Implemented an additional compile-time error check for a
+field unit whose size + minimum access width would cause a
+run-time access beyond the end-of-region. Previously, only
+the field size itself was checked.
+
+The Core subsystem and iASL compiler now share a common
+parse object in preparation for compile-time evaluation of
+the type 3/4/5 ASL operators.
+
+
+----------------------------------------
+Summary of changes for this release: 03_29_02
+
+1) ACPI CA Core Subsystem Version 20020329:
+
+Implemented support for late evaluation of TermArg operands
+to Buffer and Package objects. This allows complex
+expressions to be used in the declarations of these object
+types.
+
+Fixed an ACPI 1.0 compatibility issue when reading Fields.
+In ACPI 1.0, if the field was larger than 32 bits, it was
+returned as a buffer – otherwise it was returned as an
+integer. In ACPI 2.0, the field is returned as a buffer
+only if the field is larger than 64 bits. The TableRevision
+is now considered when making this conversion to avoid
+incompatibility with existing ASL code.
+
+Implemented logical addressing for AcpiOsGetRootPointer.
+This allows an RSDP with either a logical or physical
+address. With this support, the host OS can now override
+all ACPI tables with one logical RSDP. Includes
+implementation of “typed” pointer support to allow a common
+data type for both physical and logical pointers internally.
+This required a change to the AcpiOsGetRootPointer
+interface.
+
+Implemented the use of ACPI 2.0 Generic Address Structures
+for all GPE, Fixed Event, and PM Timer I/O. This allows the
+use of memory mapped I/O for these ACPI features.
+
+Initialization now ignores not only non-required tables (All
+tables other than the FADT, FACS, DSDT, and SSDTs), but also
+does not validate the table headers of unrecognized tables.
+
+Fixed a problem where a notify handler could only be
+installed/removed on an object of type Device. All "notify"
+objects are now supported -- Devices, Processor, Power, and
+Thermal.
+
+Removed most verbosity from the ACPI_DB_INFO debug level.
+Only critical information is returned when this debug level
+is enabled.
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0
+compiler, and these values do not include any ACPI driver or
+OSPM code. The debug version of the code includes the debug
+output trace mechanism and has a larger code and data size.
+Note that these values will vary depending on the efficiency
+of the compiler and the compiler options used during
+generation.
+
+ Previous Release
+ Non-Debug Version: 65.4K Code, 6.2K Data, 71.6K
+Total
+ Debug Version: 138.0K Code, 56.6K Data, 194.6K
+Total
+ Current Release:
+ Non-Debug Version: 66.6K Code, 6.5K Data, 73.1K
+Total
+ Debug Version: 139.8K Code, 57.4K Data, 197.2K
+Total
+
+
+2) Linux:
+
+The processor driver (acpi_processor.c) now fully supports
+ACPI 2.0-based processor performance control (e.g. Intel(R)
+SpeedStep(TM) technology) Note that older laptops that only
+have the Intel "applet" interface are not supported through
+this. The 'limit' and 'performance' interface (/proc) are
+fully functional. [Note that basic policy for controlling
+performance state transitions will be included in the next
+version of ospmd.] The idle handler was modified to more
+aggressively use C2, and PIIX4 errata handling underwent a
+complete overhaul (big thanks to Dominik Brodowski).
+
+Added support for ACPI-PCI device binding (acpi_pci_root.c).
+_ADR-based devices in the ACPI namespace are now dynamically
+bound (associated) with their PCI counterparts (e.g. PCI1-
+>01:00.0). This allows, among other things, ACPI to resolve
+bus numbers for subordinate PCI bridges.
+
+Enhanced PCI IRQ routing to get the proper bus number for
+_PRT entries defined underneath PCI bridges.
+
+Added IBM 600E to bad bios list due to invalid _ADR value
+for PIIX4 PCI-ISA bridge, resulting in improper PCI IRQ
+routing.
+
+In the process of adding full MADT support (e.g. IOAPIC) for
+IA32 (acpi.c, mpparse.c) -- stay tuned.
+
+Added back visual differentiation between fixed-feature and
+control-method buttons in dmesg. Buttons are also subtyped
+(e.g. button/power/PWRF) to simplify button identification.
+
+We no longer use -Wno-unused when compiling debug. Please
+ignore any "_THIS_MODULE defined but not used" messages.
+
+Can now shut down the system using "magic sysrq" key.
+
+
+3) iASL Compiler version 2041:
+
+Fixed a problem where conversion errors for
+hex/octal/decimal constants were not reported.
+
+Implemented a fix for the General Register template Address
+field. This field was 8 bits when it should be 64.
+
+Fixed a problem where errors/warnings were no longer being
+emitted within the listing output file.
+
+Implemented the ACPI 2.0A restriction on ACPI Table
+Signatures to exactly 4 characters, alphanumeric only.
+
+
+
+
+----------------------------------------
+Summary of changes for this release: 03_08_02
+
+
+1) ACPI CA Core Subsystem Version 20020308:
+
+Fixed a problem with AML Fields where the use of the
+"AccessAny" keyword could cause an interpreter error due to
+attempting to read or write beyond the end of the parent
+Operation Region.
+
+Fixed a problem in the SystemMemory Operation Region handler
+where an attempt was made to map memory beyond the end of
+the region. This was the root cause of the "AE_ERROR" and
+"AE_NO_MEMORY" errors on some Linux systems.
+
+Fixed a problem where the interpreter/namespace "search to
+root" algorithm was not functioning for some object types.
+Relaxed the internal restriction on the search to allow
+upsearches for all external object types as well as most
+internal types.
+
+
+2) Linux:
+
+We now use safe_halt() macro versus individual calls to sti
+| hlt.
+
+Writing to the processor limit interface should now work.
+"echo 1" will increase the limit, 2 will decrease, and 0
+will reset to the default.
+
+
+3) ASL compiler:
+
+Fixed segfault on Linux version.
+
+
+----------------------------------------
+Summary of changes for this release: 02_25_02
+
+1) ACPI CA Core Subsystem:
+
+
+Fixed a problem where the GPE bit masks were not initialized
+properly, causing erratic GPE behavior.
+
+Implemented limited support for multiple calling
+conventions. The code can be generated with either the VPL
+(variable parameter list, or "C") convention, or the FPL
+(fixed parameter list, or "Pascal") convention. The core
+subsystem is about 3.4% smaller when generated with FPL.
+
+
+2) Linux
+
+Re-add some /proc/acpi/event functionality that was lost
+during the rewrite
+
+Resolved issue with /proc events for fixed-feature buttons
+showing up as the system device.
+
+Fixed checks on C2/C3 latencies to be inclusive of maximum
+values.
+
+Replaced AE_ERRORs in acpi_osl.c with more specific error
+codes.
+
+Changed ACPI PRT option from "pci=noacpi-routing" to
+"pci=noacpi"
+
+Fixed limit interface & usage to fix bugs with passive
+cooling hysterisis.
+
+Restructured PRT support.
+
+
+----------------------------------------
+Summary of changes for this label: 02_14_02
+
+
+1) ACPI CA Core Subsystem:
+
+Implemented support in AcpiLoadTable to allow loading of
+FACS and FADT tables.
+
+Suport for the now-obsolete interim 0.71 64-bit ACPI tables
+has been removed. All 64-bit platforms should be migrated
+to the ACPI 2.0 tables. The actbl71.h header has been
+removed from the source tree.
+
+All C macros defined within the subsystem have been prefixed
+with "ACPI_" to avoid collision with other system include
+files.
+
+Removed the return value for the two AcpiOsPrint interfaces,
+since it is never used and causes lint warnings for ignoring
+the return value.
+
+Added error checking to all internal mutex acquire and
+release calls. Although a failure from one of these
+interfaces is probably a fatal system error, these checks
+will cause the immediate abort of the currently executing
+method or interface.
+
+Fixed a problem where the AcpiSetCurrentResources interface
+could fault. This was a side effect of the deployment of
+the new memory allocation model.
+
+Fixed a couple of problems with the Global Lock support
+introduced in the last major build. The "common" (1.0/2.0)
+internal FACS was being overwritten with the FACS signature
+and clobbering the Global Lock pointer. Also, the actual
+firmware FACS was being unmapped after construction of the
+"common" FACS, preventing access to the actual Global Lock
+field within it. The "common" internal FACS is no longer
+installed as an actual ACPI table; it is used simply as a
+global.
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0
+compiler, and these values do not include any ACPI driver or
+OSPM code. The debug version of the code includes the debug
+output trace mechanism and has a larger code and data size.
+Note that these values will vary depending on the efficiency
+of the compiler and the compiler options used during
+generation.
+
+ Previous Release (02_07_01)
+ Non-Debug Version: 65.2K Code, 6.2K Data, 71.4K
+Total
+ Debug Version: 136.9K Code, 56.4K Data, 193.3K
+Total
+ Current Release:
+ Non-Debug Version: 65.4K Code, 6.2K Data, 71.6K
+Total
+ Debug Version: 138.0K Code, 56.6K Data, 194.6K
+Total
+
+
+2) Linux
+
+Updated Linux-specific code for core macro and OSL interface
+changes described above.
+
+Improved /proc/acpi/event. It now can be opened only once
+and has proper poll functionality.
+
+Fixed and restructured power management (acpi_bus).
+
+Only create /proc "view by type" when devices of that class
+exist.
+
+Fixed "charging/discharging" bug (and others) in
+acpi_battery.
+
+Improved thermal zone code.
+
+
+3) ASL Compiler, version X2039:
+
+Implemented the new compiler restriction on ASL String
+hex/octal escapes to non-null, ASCII values. An error
+results if an invalid value is used. (This will require an
+ACPI 2.0 specification change.)
+
+AML object labels that are output to the optional C and ASM
+source are now prefixed with both the ACPI table signature
+and table ID to help guarantee uniqueness within a large
+BIOS project.
+
+
+----------------------------------------
+Summary of changes for this label: 02_01_02
+
+1) ACPI CA Core Subsystem:
+
+ACPI 2.0 support is complete in the entire Core Subsystem
+and the ASL compiler. All new ACPI 2.0 operators are
+implemented and all other changes for ACPI 2.0 support are
+complete. With simultaneous code and data optimizations
+throughout the subsystem, ACPI 2.0 support has been
+implemented with almost no additional cost in terms of code
+and data size.
+
+Implemented a new mechanism for allocation of return
+buffers. If the buffer length is set to
+ACPI_ALLOCATE_BUFFER, the buffer will be allocated on behalf
+of the caller. Consolidated all return buffer validation
+and allocation to a common procedure. Return buffers will
+be allocated via the primary OSL allocation interface since
+it appears that a separate pool is not needed by most users.
+If a separate pool is required for these buffers, the caller
+can still use the original mechanism and pre-allocate the
+buffer(s).
+
+Implemented support for string operands within the DerefOf
+operator.
+
+Restructured the Hardware and Event managers to be table
+driven, simplifying the source code and reducing the amount
+of generated code.
+
+Split the common read/write low-level ACPI register bitfield
+procedure into a separate read and write, simplifying the
+code considerably.
+
+Obsoleted the AcpiOsCallocate OSL interface. This interface
+was used only a handful of times and didn't have enough
+critical mass for a separate interface. Replaced with a
+common calloc procedure in the core.
+
+Fixed a reported problem with the GPE number mapping
+mechanism that allows GPE1 numbers to be non-contiguous with
+GPE0. Reorganized the GPE information and shrunk a large
+array that was originally large enough to hold info for all
+possible GPEs (256) to simply large enough to hold all GPEs
+up to the largest GPE number on the machine.
+
+Fixed a reported problem with resource structure alignment
+on 64-bit platforms.
+
+Changed the AcpiEnableEvent and AcpiDisableEvent external
+interfaces to not require any flags for the common case of
+enabling/disabling a GPE.
+
+Implemented support to allow a "Notify" on a Processor
+object.
+
+Most TBDs in comments within the source code have been
+resolved and eliminated.
+
+Fixed a problem in the interpreter where a standalone parent
+prefix (^) was not handled correctly in the interpreter and
+debugger.
+
+Removed obsolete and unnecessary GPE save/restore code.
+
+Implemented Field support in the ASL Load operator. This
+allows a table to be loaded from a named field, in addition
+to loading a table directly from an Operation Region.
+
+Implemented timeout and handle support in the external
+Global Lock interfaces.
+
+Fixed a problem in the AcpiDump utility where pathnames were
+no longer being generated correctly during the dump of named
+objects.
+
+Modified the AML debugger to give a full display of if/while
+predicates instead of just one AML opcode at a time. (The
+predicate can have several nested ASL statements.) The old
+method was confusing during single stepping.
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0
+compiler, and these values do not include any ACPI driver or
+OSPM code. The debug version of the code includes the debug
+output trace mechanism and has a larger code and data size.
+Note that these values will vary depending on the efficiency
+of the compiler and the compiler options used during
+generation.
+
+ Previous Release (12_18_01)
+ Non-Debug Version: 66.1K Code, 5.5K Data, 71.6K
+Total
+ Debug Version: 138.3K Code, 55.9K Data, 194.2K
+Total
+ Current Release:
+ Non-Debug Version: 65.2K Code, 6.2K Data, 71.4K
+Total
+ Debug Version: 136.9K Code, 56.4K Data, 193.3K
+Total
+
+2) Linux
+
+ Implemented fix for PIIX reverse throttling errata
+(Processor driver)
+
+Added new Limit interface (Processor and Thermal drivers)
+
+New thermal policy (Thermal driver)
+
+Many updates to /proc
+
+Battery "low" event support (Battery driver)
+
+Supports ACPI PCI IRQ routing (PCI Link and PCI root
+drivers)
+
+IA32 - IA64 initialization unification, no longer
+experimental
+
+Menuconfig options redesigned
+
+3) ASL Compiler, version X2037:
+
+Implemented several new output features to simplify
+integration of AML code into firmware: 1) Output the AML in
+C source code with labels for each named ASL object. The
+original ASL source code is interleaved as C comments. 2)
+Output the AML in ASM source code with labels and
+interleaved ASL source. 3) Output the AML in raw hex
+table form, in either C or ASM.
+
+Implemented support for optional string parameters to the
+LoadTable operator.
+
+Completed support for embedded escape sequences within
+string literals. The compiler now supports all single
+character escapes as well as the Octal and Hex escapes.
+Note: the insertion of a null byte into a string literal
+(via the hex/octal escape) causes the string to be
+immediately terminated. A warning is issued.
+
+Fixed a problem where incorrect AML was generated for the
+case where an ASL namepath consists of a single parent
+prefix (
+
+) with no trailing name segments.
+
+The compiler has been successfully generated with a 64-bit C
+compiler.
+
+
+
+
+----------------------------------------
+Summary of changes for this label: 12_18_01
+
+1) Linux
+
+Enhanced blacklist with reason and severity fields. Any
+table's signature may now be used to identify a blacklisted
+system.
+
+Call _PIC control method to inform the firmware which
+interrupt model the OS is using. Turn on any disabled link
+devices.
+
+Cleaned up busmgr /proc error handling (Andreas Dilger)
+
+ 2) ACPI CA Core Subsystem:
+
+Implemented ACPI 2.0 semantics for the "Break" operator
+(Exit from while loop)
+
+Completed implementation of the ACPI 2.0 "Continue",
+"ConcatenateResTemplate", "DataTableRegion", and "LoadTable"
+operators. All new ACPI 2.0 operators are now implemented
+in both the ASL compiler and the AML interpreter. The only
+remaining ACPI 2.0 task is support for the String data type
+in the DerefOf operator. Fixed a problem with AcquireMutex
+where the status code was lost if the caller had to actually
+wait for the mutex.
+
+Increased the maximum ASL Field size from 64K bits to 4G
+bits.
+
+Completed implementation of the external Global Lock
+interfaces -- AcpiAcquireGlobalLock and
+AcpiReleaseGlobalLock. The Timeout and Handler parameters
+were added.
+
+Completed another pass at removing warnings and issues when
+compiling with 64-bit compilers. The code now compiles
+cleanly with the Intel 64-bit C/C++ compiler. Most notably,
+the pointer add and subtract (diff) macros have changed
+considerably.
+
+Created and deployed a new ACPI_SIZE type that is 64-bits
+wide on 64-bit platforms, 32-bits on all others. This type
+is used wherever memory allocation and/or the C sizeof()
+operator is used, and affects the OSL memory allocation
+interfaces AcpiOsAllocate and AcpiOsCallocate.
+
+Implemented sticky user breakpoints in the AML debugger.
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0
+compiler, and these values do not include any ACPI driver or
+OSPM code. The debug version of the code includes the debug
+output trace mechanism and has a larger code and data size.
+Note that these values will vary depending on the efficiency
+of the compiler and the compiler options used during
+generation.
+
+ Previous Release (12_05_01)
+ Non-Debug Version: 64.7K Code, 5.3K Data, 70.0K
+Total
+ Debug Version: 136.2K Code, 55.6K Data, 191.8K
+Total
+ Current Release:
+ Non-Debug Version: 66.1K Code, 5.5K Data, 71.6K
+Total
+ Debug Version: 138.3K Code, 55.9K Data, 194.2K
+Total
+
+ 3) ASL Compiler, version X2034:
+
+Now checks for (and generates an error if detected) the use
+of a Break or Continue statement without an enclosing While
+statement.
+
+Successfully generated the compiler with the Intel 64-bit C
+compiler.
+
+ ----------------------------------------
+Summary of changes for this label: 12_05_01
+
+ 1) ACPI CA Core Subsystem:
+
+The ACPI 2.0 CopyObject operator is fully implemented. This
+operator creates a new copy of an object (and is also used
+to bypass the "implicit conversion" mechanism of the Store
+operator.)
+
+The ACPI 2.0 semantics for the SizeOf operator are fully
+implemented. The change is that performing a SizeOf on a
+reference object causes an automatic dereference of the
+object to tha actual value before the size is evaluated.
+This behavior was undefined in ACPI 1.0.
+
+The ACPI 2.0 semantics for the Extended IRQ resource
+descriptor have been implemented. The interrupt polarity
+and mode are now independently set.
+
+Fixed a problem where ASL Constants (Zero, One, Ones,
+Revision) appearing in Package objects were not properly
+converted to integers when the internal Package was
+converted to an external object (via the AcpiEvaluateObject
+interface.)
+
+Fixed a problem with the namespace object deletion mechanism
+for objects created by control methods. There were two
+parts to this problem: 1) Objects created during the
+initialization phase method parse were not being deleted,
+and 2) The object owner ID mechanism to track objects was
+broken.
+
+Fixed a problem where the use of the ASL Scope operator
+within a control method would result in an invalid opcode
+exception.
+
+Fixed a problem introduced in the previous label where the
+buffer length required for the _PRT structure was not being
+returned correctly.
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0
+compiler, and these values do not include any ACPI driver or
+OSPM code. The debug version of the code includes the debug
+output trace mechanism and has a larger code and data size.
+Note that these values will vary depending on the efficiency
+of the compiler and the compiler options used during
+generation.
+
+ Previous Release (11_20_01)
+ Non-Debug Version: 64.1K Code, 5.3K Data, 69.4K
+Total
+ Debug Version: 135.1K Code, 55.4K Data, 190.5K
+Total
+
+ Current Release:
+ Non-Debug Version: 64.7K Code, 5.3K Data, 70.0K
+Total
+ Debug Version: 136.2K Code, 55.6K Data, 191.8K
+Total
+
+ 2) Linux:
+
+Updated all files to apply cleanly against 2.4.16.
+
+Added basic PCI Interrupt Routing Table (PRT) support for
+IA32 (acpi_pci.c), and unified the PRT code for IA32 and
+IA64. This version supports both static and dyanmic PRT
+entries, but dynamic entries are treated as if they were
+static (not yet reconfigurable). Architecture- specific
+code to use this data is absent on IA32 but should be
+available shortly.
+
+Changed the initialization sequence to start the ACPI
+interpreter (acpi_init) prior to initialization of the PCI
+driver (pci_init) in init/main.c. This ordering is required
+to support PRT and facilitate other (future) enhancement. A
+side effect is that the ACPI bus driver and certain device
+drivers can no longer be loaded as modules.
+
+Modified the 'make menuconfig' options to allow PCI
+Interrupt Routing support to be included without the ACPI
+Bus and other device drivers.
+
+ 3) ASL Compiler, version X2033:
+
+Fixed some issues with the use of the new CopyObject and
+DataTableRegion operators. Both are fully functional.
+
+ ----------------------------------------
+Summary of changes for this label: 11_20_01
+
+ 20 November 2001. Summary of changes for this release.
+
+ 1) ACPI CA Core Subsystem:
+
+Updated Index support to match ACPI 2.0 semantics. Storing
+a Integer, String, or Buffer to an Index of a Buffer will
+store only the least-significant byte of the source to the
+Indexed buffer byte. Multiple writes are not performed.
+
+Fixed a problem where the access type used in an AccessAs
+ASL operator was not recorded correctly into the field
+object.
+
+Fixed a problem where ASL Event objects were created in a
+signalled state. Events are now created in an unsignalled
+state.
+
+The internal object cache is now purged after table loading
+and initialization to reduce the use of dynamic kernel
+memory -- on the assumption that object use is greatest
+during the parse phase of the entire table (versus the run-
+time use of individual control methods.)
+
+ACPI 2.0 variable-length packages are now fully operational.
+
+Code and Data Size: Code and Data optimizations have
+permitted new feature development with an actual reduction
+in the library size. Current core subsystem library sizes
+are shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0
+compiler, and these values do not include any ACPI driver or
+OSPM code. The debug version of the code includes the debug
+output trace mechanism and has a larger code and data size.
+Note that these values will vary depending on the efficiency
+of the compiler and the compiler options used during
+generation.
+
+ Previous Release (11_09_01):
+ Non-Debug Version: 63.7K Code, 5.2K Data, 68.9K
+Total
+ Debug Version: 134.5K Code, 55.4K Data, 189.9K
+Total
+
+ Current Release:
+ Non-Debug Version: 64.1K Code, 5.3K Data, 69.4K
+Total
+ Debug Version: 135.1K Code, 55.4K Data, 190.5K
+Total
+
+ 2) Linux:
+
+Enhanced the ACPI boot-time initialization code to allow the
+use of Local APIC tables for processor enumeration on IA-32,
+and to pave the way for a fully MPS-free boot (on SMP
+systems) in the near future. This functionality replaces
+arch/i386/kernel/acpitables.c, which was introduced in an
+earlier 2.4.15-preX release. To enable this feature you
+must add "acpi_boot=on" to the kernel command line -- see
+the help entry for CONFIG_ACPI_BOOT for more information.
+An IA-64 release is in the works...
+
+Restructured the configuration options to allow boot-time
+table parsing support without inclusion of the ACPI
+Interpreter (and other) code.
+
+NOTE: This release does not include fixes for the reported
+events, power-down, and thermal passive cooling issues
+(coming soon).
+
+ 3) ASL Compiler:
+
+Added additional typechecking for Fields within restricted
+access Operation Regions. All fields within EC and CMOS
+regions must be declared with ByteAcc. All fields withing
+SMBus regions must be declared with the BufferAcc access
+type.
+
+Fixed a problem where the listing file output of control
+methods no longer interleaved the actual AML code with the
+ASL source code.
+
+
+
+----------------------------------------
+Summary of changes for this label: 11_09_01
+
+1) ACPI CA Core Subsystem:
+
+Implemented ACPI 2.0-defined support for writes to fields
+with a Buffer, String, or Integer source operand that is
+smaller than the target field. In these cases, the source
+operand is zero-extended to fill the target field.
+
+Fixed a problem where a Field starting bit offset (within
+the parent operation region) was calculated incorrectly if
+the alignment of the field differed from the access width.
+This affected CreateWordField, CreateDwordField,
+CreateQwordField, and possibly other fields that use the
+"AccessAny" keyword.
+
+Fixed a problem introduced in the 11_02_01 release where
+indirect stores through method arguments did not operate
+correctly.
+
+2) Linux:
+
+Implemented boot-time ACPI table parsing support
+(CONFIG_ACPI_BOOT) for IA32 and IA64 UP/SMP systems. This
+code facilitates the use of ACPI tables (e.g. MADT, SRAT)
+rather than legacy BIOS interfaces (e.g. MPS) for the
+configuration of system processors, memory, and interrupts
+during setup_arch(). Note that this patch does not include
+the required architecture-specific changes required to apply
+this information -- subsequent patches will be posted for
+both IA32 and IA64 to achieve this.
+
+Added low-level sleep support for IA32 platforms, courtesy
+of Pat Mochel. This allows IA32 systems to transition
+to/from various sleeping states (e.g. S1, S3), although the
+lack of a centralized driver model and power-manageable
+drivers will prevent its (successful) use on most systems.
+
+Revamped the ACPI 'menuconfig' layout: created new "ACPI
+Support" submenu, unified IA32 and IA64 options, added new
+"Boot using ACPI tables" option, etc.
+
+Increased the default timeout for the EC driver from 1ms to
+10ms (1000 cycles of 10us) to try to address AE_TIME errors
+during EC transactions.
+
+ ----------------------------------------
+Summary of changes for this label: 11_02_01
+
+1) ACPI CA Core Subsystem:
+
+ACPI 2.0 Support: Implemented ACPI 2.0 64-bit Field access
+(QWordAcc keyword). All ACPI 2.0 64-bit support is now
+implemented.
+
+OSL Interfaces: Several of the OSL (AcpiOs*) interfaces
+required changes to support ACPI 2.0 Qword field access.
+Read/Write PciConfiguration(), Read/Write Memory(), and
+Read/Write Port() now accept an ACPI_INTEGER (64 bits) as
+the value parameter. Also, the value parameter for the
+address space handler interface is now an ACPI_INTEGER. OSL
+implementations of these interfaces must now handle the case
+where the Width parameter is 64.
+
+Index Fields: Fixed a problem where unaligned bit assembly
+and disassembly for IndexFields was not supported correctly.
+
+Index and Bank Fields: Nested Index and Bank Fields are now
+supported. During field access, a check is performed to
+ensure that the value written to an Index or Bank register
+is not out of the range of the register. The Index (or
+Bank) register is written before each access to the field
+data. Future support will include allowing individual
+IndexFields to be wider than the DataRegister width.
+
+Fields: Fixed a problem where the AML interpreter was
+incorrectly attempting to write beyond the end of a
+Field/OpRegion. This was a boundary case that occurred when
+a DWORD field was written to a BYTE access OpRegion, forcing
+multiple writes and causing the interpreter to write one
+datum too many.
+
+Fields: Fixed a problem with Field/OpRegion access where the
+starting bit address of a field was incorrectly calculated
+if the current access type was wider than a byte (WordAcc,
+DwordAcc, or QwordAcc).
+
+Fields: Fixed a problem where forward references to
+individual FieldUnits (individual Field names within a Field
+definition) were not resolved during the AML table load.
+
+Fields: Fixed a problem where forward references from a
+Field definition to the parent Operation Region definition
+were not resolved during the AML table load.
+
+Fields: Duplicate FieldUnit names within a scope are now
+detected during AML table load.
+
+Acpi Interfaces: Fixed a problem where the AcpiGetName()
+interface returned an incorrect name for the root node.
+
+Code and Data Size: Code and Data optimizations have
+permitted new feature development with an actual reduction
+in the library size. Current core subsystem library sizes
+are shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0
+compiler, and these values do not include any ACPI driver or
+OSPM code. The debug version of the code includes the debug
+output trace mechanism and has a larger code and data size.
+Note that these values will vary depending on the efficiency
+of the compiler and the compiler options used during
+generation.
+
+ Previous Release (10_18_01):
+ Non-Debug Version: 63.9K Code, 5.1K Data, 69.0K
+Total
+ Debug Version: 136.7K Code, 57.4K Data, 194.2K
+Total
+
+ Current Release:
+ Non-Debug Version: 63.7K Code, 5.2K Data, 68.9K
+Total
+ Debug Version: 134.5K Code, 55.4K Data, 189.9K
+Total
+
+ 2) Linux:
+
+Improved /proc processor output (Pavel Machek) Re-added
+MODULE_LICENSE("GPL") to all modules.
+
+ 3) ASL Compiler version X2030:
+
+Duplicate FieldUnit names within a scope are now detected
+and flagged as errors.
+
+ 4) Documentation:
+
+Programmer Reference updated to reflect OSL and address
+space handler interface changes described above.
+
+----------------------------------------
+Summary of changes for this label: 10_18_01
+
+ACPI CA Core Subsystem:
+
+Fixed a problem with the internal object reference count
+mechanism that occasionally caused premature object
+deletion. This resolves all of the outstanding problem
+reports where an object is deleted in the middle of an
+interpreter evaluation. Although this problem only showed
+up in rather obscure cases, the solution to the problem
+involved an adjustment of all reference counts involving
+objects attached to namespace nodes.
+
+Fixed a problem with Field support in the interpreter where
+writing to an aligned field whose length is an exact
+multiple (2 or greater) of the field access granularity
+would cause an attempt to write beyond the end of the field.
+
+The top level AML opcode execution functions within the
+interpreter have been renamed with a more meaningful and
+consistent naming convention. The modules exmonad.c and
+exdyadic.c were eliminated. New modules are exoparg1.c,
+exoparg2.c, exoparg3.c, and exoparg6.c.
+
+Support for the ACPI 2.0 "Mid" ASL operator has been
+implemented.
+
+Fixed a problem where the AML debugger was causing some
+internal objects to not be deleted during subsystem
+termination.
+
+Fixed a problem with the external AcpiEvaluateObject
+interface where the subsystem would fault if the named
+object to be evaluated refered to a constant such as Zero,
+Ones, etc.
+
+Fixed a problem with IndexFields and BankFields where the
+subsystem would fault if the index, data, or bank registers
+were not defined in the same scope as the field itself.
+
+Added printf format string checking for compilers that
+support this feature. Corrected more than 50 instances of
+issues with format specifiers within invocations of
+ACPI_DEBUG_PRINT throughout the core subsystem code.
+
+The ASL "Revision" operator now returns the ACPI support
+level implemented in the core - the value "2" since the ACPI
+2.0 support is more than 50% implemented.
+
+Enhanced the output of the AML debugger "dump namespace"
+command to output in a more human-readable form.
+
+Current core subsystem library code sizes are shown below.
+These are the code and data sizes for the acpica.lib
+produced by the Microsoft Visual C++ 6.0 compiler, and these
+values do not include any ACPI driver or OSPM code. The
+debug version of the code includes the full debug trace
+mechanism -- leading to a much larger code and data size.
+Note that these values will vary depending on the efficiency
+of the compiler and the compiler options used during
+generation.
+
+ Previous Label (09_20_01):
+ Non-Debug Version: 65K Code, 5K Data, 70K
+Total
+ Debug Version: 138K Code, 58K Data, 196K
+Total
+
+ This Label:
+ Non-Debug Version: 63.9K Code, 5.1K Data, 69.0K
+Total
+ Debug Version: 136.7K Code, 57.4K Data, 194.2K
+Total
+
+Linux:
+
+Implemented a "Bad BIOS Blacklist" to track machines that
+have known ASL/AML problems.
+
+Enhanced the /proc interface for the thermal zone driver and
+added support for _HOT (the critical suspend trip point).
+The 'info' file now includes threshold/policy information,
+and allows setting of _SCP (cooling preference) and _TZP
+(polling frequency) values to the 'info' file. Examples:
+"echo tzp=5 > info" sets the polling frequency to 5 seconds,
+and "echo scp=1 > info" sets the cooling preference to the
+passive/quiet mode (if supported by the ASL).
+
+Implemented a workaround for a gcc bug that resuted in an
+OOPs when loading the control method battery driver.
+
+ ----------------------------------------
+Summary of changes for this label: 09_20_01
+
+ ACPI CA Core Subsystem:
+
+The AcpiEnableEvent and AcpiDisableEvent interfaces have
+been modified to allow individual GPE levels to be flagged
+as wake-enabled (i.e., these GPEs are to remain enabled when
+the platform sleeps.)
+
+The AcpiEnterSleepState and AcpiLeaveSleepState interfaces
+now support wake-enabled GPEs. This means that upon
+entering the sleep state, all GPEs that are not wake-enabled
+are disabled. When leaving the sleep state, these GPEs are
+reenabled.
+
+A local double-precision divide/modulo module has been added
+to enhance portability to OS kernels where a 64-bit math
+library is not available. The new module is "utmath.c".
+
+Several optimizations have been made to reduce the use of
+CPU stack. Originally over 2K, the maximum stack usage is
+now below 2K at 1860 bytes (1.82k)
+
+Fixed a problem with the AcpiGetFirmwareTable interface
+where the root table pointer was not mapped into a logical
+address properly.
+
+Fixed a problem where a NULL pointer was being dereferenced
+in the interpreter code for the ASL Notify operator.
+
+Fixed a problem where the use of the ASL Revision operator
+returned an error. This operator now returns the current
+version of the ACPI CA core subsystem.
+
+Fixed a problem where objects passed as control method
+parameters to AcpiEvaluateObject were always deleted at
+method termination. However, these objects may end up being
+stored into the namespace by the called method. The object
+reference count mechanism was applied to these objects
+instead of a force delete.
+
+Fixed a problem where static strings or buffers (contained
+in the AML code) that are declared as package elements
+within the ASL code could cause a fault because the
+interpreter would attempt to delete them. These objects are
+now marked with the "static object" flag to prevent any
+attempt to delete them.
+
+Implemented an interpreter optimization to use operands
+directly from the state object instead of extracting the
+operands to local variables. This reduces stack use and
+code size, and improves performance.
+
+The module exxface.c was eliminated as it was an unnecessary
+extra layer of code.
+
+Current core subsystem library code sizes are shown below.
+These are the code and data sizes for the acpica.lib
+produced by the Microsoft Visual C++ 6.0 compiler, and these
+values do not include any ACPI driver or OSPM code. The
+debug version of the code includes the full debug trace
+mechanism -- leading to a much larger code and data size.
+Note that these values will vary depending on the efficiency
+of the compiler and the compiler options used during
+generation.
+
+ Non-Debug Version: 65K Code, 5K Data, 70K Total
+(Previously 69K) Debug Version: 138K Code, 58K Data,
+196K Total (Previously 195K)
+
+Linux:
+
+Support for ACPI 2.0 64-bit integers has been added. All
+ACPI Integer objects are now 64 bits wide
+
+All Acpi data types and structures are now in lower case.
+Only Acpi macros are upper case for differentiation.
+
+ Documentation:
+
+Changes to the external interfaces as described above.
+
+ ----------------------------------------
+Summary of changes for this label: 08_31_01
+
+ ACPI CA Core Subsystem:
+
+A bug with interpreter implementation of the ASL Divide
+operator was found and fixed. The implicit function return
+value (not the explicit store operands) was returning the
+remainder instead of the quotient. This was a longstanding
+bug and it fixes several known outstanding issues on various
+platforms.
+
+The ACPI_DEBUG_PRINT and function trace entry/exit macros
+have been further optimized for size. There are 700
+invocations of the DEBUG_PRINT macro alone, so each
+optimization reduces the size of the debug version of the
+subsystem significantly.
+
+A stack trace mechanism has been implemented. The maximum
+stack usage is about 2K on 32-bit platforms. The debugger
+command "stat stack" will display the current maximum stack
+usage.
+
+All public symbols and global variables within the subsystem
+are now prefixed with the string "Acpi". This keeps all of
+the symbols grouped together in a kernel map, and avoids
+conflicts with other kernel subsystems.
+
+Most of the internal fixed lookup tables have been moved
+into the code segment via the const operator.
+
+Several enhancements have been made to the interpreter to
+both reduce the code size and improve performance.
+
+Current core subsystem library code sizes are shown below.
+These are the code and data sizes for the acpica.lib
+produced by the Microsoft Visual C++ 6.0 compiler, and these
+values do not include any ACPI driver or OSPM code. The
+debug version of the code includes the full debug trace
+mechanism which contains over 700 invocations of the
+DEBUG_PRINT macro, 500 function entry macro invocations, and
+over 900 function exit macro invocations -- leading to a
+much larger code and data size. Note that these values will
+vary depending on the efficiency of the compiler and the
+compiler options used during generation.
+
+ Non-Debug Version: 64K Code, 5K Data, 69K Total
+Debug Version: 137K Code, 58K Data, 195K Total
+
+ Linux:
+
+Implemented wbinvd() macro, pending a kernel-wide
+definition.
+
+Fixed /proc/acpi/event to handle poll() and short reads.
+
+ ASL Compiler, version X2026:
+
+Fixed a problem introduced in the previous label where the
+AML code emitted for package objects produced packages with
+zero length.
+
+ ----------------------------------------
+Summary of changes for this label: 08_16_01
+
+ACPI CA Core Subsystem:
+
+The following ACPI 2.0 ASL operators have been implemented
+in the AML interpreter (These are already supported by the
+Intel ASL compiler): ToDecimalString, ToHexString,
+ToString, ToInteger, and ToBuffer. Support for 64-bit AML
+constants is implemented in the AML parser, debugger, and
+disassembler.
+
+The internal memory tracking mechanism (leak detection code)
+has been upgraded to reduce the memory overhead (a separate
+tracking block is no longer allocated for each memory
+allocation), and now supports all of the internal object
+caches.
+
+The data structures and code for the internal object caches
+have been coelesced and optimized so that there is a single
+cache and memory list data structure and a single group of
+functions that implement generic cache management. This has
+reduced the code size in both the debug and release versions
+of the subsystem.
+
+The DEBUG_PRINT macro(s) have been optimized for size and
+replaced by ACPI_DEBUG_PRINT. The syntax for this macro is
+slightly different, because it generates a single call to an
+internal function. This results in a savings of about 90
+bytes per invocation, resulting in an overall code and data
+savings of about 16% in the debug version of the subsystem.
+
+ Linux:
+
+Fixed C3 disk corruption problems and re-enabled C3 on
+supporting machines.
+
+Integrated low-level sleep code by Patrick Mochel.
+
+Further tweaked source code Linuxization.
+
+Other minor fixes.
+
+ ASL Compiler:
+
+Support for ACPI 2.0 variable length packages is
+fixed/completed.
+
+Fixed a problem where the optional length parameter for the
+ACPI 2.0 ToString operator.
+
+Fixed multiple extraneous error messages when a syntax error
+is detected within the declaration line of a control method.
+
+ ----------------------------------------
+Summary of changes for this label: 07_17_01
+
+ACPI CA Core Subsystem:
+
+Added a new interface named AcpiGetFirmwareTable to obtain
+any ACPI table via the ACPI signature. The interface can be
+called at any time during kernel initialization, even before
+the kernel virtual memory manager is initialized and paging
+is enabled. This allows kernel subsystems to obtain ACPI
+tables very early, even before the ACPI CA subsystem is
+initialized.
+
+Fixed a problem where Fields defined with the AnyAcc
+attribute could be resolved to the incorrect address under
+the following conditions: 1) the field width is larger than
+8 bits and 2) the parent operation region is not defined on
+a DWORD boundary.
+
+Fixed a problem where the interpreter is not being locked
+during namespace initialization (during execution of the
+_INI control methods), causing an error when an attempt is
+made to release it later.
+
+ACPI 2.0 support in the AML Interpreter has begun and will
+be ongoing throughout the rest of this year. In this label,
+The Mod operator is implemented.
+
+Added a new data type to contain full PCI addresses named
+ACPI_PCI_ID. This structure contains the PCI Segment, Bus,
+Device, and Function values.
+
+ Linux:
+
+Enhanced the Linux version of the source code to change most
+capitalized ACPI type names to lowercase. For example, all
+instances of ACPI_STATUS are changed to acpi_status. This
+will result in a large diff, but the change is strictly
+cosmetic and aligns the CA code closer to the Linux coding
+standard.
+
+OSL Interfaces:
+
+The interfaces to the PCI configuration space have been
+changed to add the PCI Segment number and to split the
+single 32-bit combined DeviceFunction field into two 16-bit
+fields. This was accomplished by moving the four values
+that define an address in PCI configuration space (segment,
+bus, device, and function) to the new ACPI_PCI_ID structure.
+
+The changes to the PCI configuration space interfaces led to
+a reexamination of the complete set of address space access
+interfaces for PCI, I/O, and Memory. The previously
+existing 18 interfaces have proven difficult to maintain
+(any small change must be propagated across at least 6
+interfaces) and do not easily allow for future expansion to
+64 bits if necessary. Also, on some systems, it would not
+be appropriate to demultiplex the access width (8, 16, 32,or
+64) before calling the OSL if the corresponding native OS
+interfaces contain a similar access width parameter. For
+these reasons, the 18 address space interfaces have been
+replaced by these 6 new ones:
+
+AcpiOsReadPciConfiguration
+AcpiOsWritePciConfiguration
+AcpiOsReadMemory
+AcpiOsWriteMemory
+AcpiOsReadPort
+AcpiOsWritePort
+
+Added a new interface named AcpiOsGetRootPointer to allow
+the OSL to perform the platform and/or OS-specific actions
+necessary to obtain the ACPI RSDP table pointer. On IA-32
+platforms, this interface will simply call down to the CA
+core to perform the low-memory search for the table. On IA-
+64, the RSDP is obtained from EFI. Migrating this interface
+to the OSL allows the CA core to remain OS and platform
+independent.
+
+Added a new interface named AcpiOsSignal to provide a
+generic "function code and pointer" interface for various
+miscellaneous signals and notifications that must be made to
+the host OS. The first such signals are intended to
+support the ASL Fatal and Breakpoint operators. In the
+latter case, the AcpiOsBreakpoint interface has been
+obsoleted.
+
+The definition of the AcpiFormatException interface has been
+changed to simplify its use. The caller no longer must
+supply a buffer to the call; A pointer to a const string is
+now returned directly. This allows the call to be easily
+used in printf statements, etc. since the caller does not
+have to manage a local buffer.
+
+ ASL Compiler, Version X2025:
+
+The ACPI 2.0 Switch/Case/Default operators have been
+implemented and are fully functional. They will work with
+all ACPI 1.0 interpreters, since the operators are simply
+translated to If/Else pairs.
+
+The ACPI 2.0 ElseIf operator is implemented and will also
+work with 1.0 interpreters, for the same reason.
+
+Implemented support for ACPI 2.0 variable-length packages.
+These packages have a separate opcode, and their size is
+determined by the interpreter at run-time.
+
+Documentation The ACPI CA Programmer Reference has been
+updated to reflect the new interfaces and changes to
+existing interfaces.
+
+ ------------------------------------------
+Summary of changes for this label: 06_15_01
+
+ ACPI CA Core Subsystem:
+
+Fixed a problem where a DWORD-accessed field within a Buffer
+object would get its byte address inadvertently rounded down
+to the nearest DWORD. Buffers are always Byte-accessible.
+
+ ASL Compiler, version X2024:
+
+Fixed a problem where the Switch() operator would either
+fault or hang the compiler. Note however, that the AML code
+for this ACPI 2.0 operator is not yet implemented.
+
+Compiler uses the new AcpiOsGetTimer interface to obtain
+compile timings.
+
+Implementation of the CreateField operator automatically
+converts a reference to a named field within a resource
+descriptor from a byte offset to a bit offset if required.
+
+Added some missing named fields from the resource descriptor
+support. These are the names that are automatically created
+by the compiler to reference fields within a descriptor.
+They are only valid at compile time and are not passed
+through to the AML interpreter.
+
+Resource descriptor named fields are now typed as Integers
+and subject to compile-time typechecking when used in
+expressions.
+
+ ------------------------------------------
+Summary of changes for this label: 05_18_01
+
+ ACPI CA Core Subsystem:
+
+Fixed a couple of problems in the Field support code where
+bits from adjacent fields could be returned along with the
+proper field bits. Restructured the field support code to
+improve performance, readability and maintainability.
+
+New DEBUG_PRINTP macro automatically inserts the procedure
+name into the output, saving hundreds of copies of procedure
+name strings within the source, shrinking the memory
+footprint of the debug version of the core subsystem.
+
+ Source Code Structure:
+
+The source code directory tree was restructured to reflect
+the current organization of the component architecture.
+Some files and directories have been moved and/or renamed.
+
+ Linux:
+
+Fixed leaking kacpidpc processes.
+
+Fixed queueing event data even when /proc/acpi/event is not
+opened.
+
+ ASL Compiler, version X2020:
+
+Memory allocation performance enhancement - over 24X compile
+time improvement on large ASL files. Parse nodes and
+namestring buffers are now allocated from a large internal
+compiler buffer.
+
+The temporary .SRC file is deleted unless the "-s" option is
+specified
+
+The "-d" debug output option now sends all output to the
+.DBG file instead of the console.
+
+"External" second parameter is now optional
+
+"ElseIf" syntax now properly allows the predicate
+
+Last operand to "Load" now recognized as a Target operand
+
+Debug object can now be used anywhere as a normal object.
+
+ResourceTemplate now returns an object of type BUFFER
+
+EISAID now returns an object of type INTEGER
+
+"Index" now works with a STRING operand
+
+"LoadTable" now accepts optional parameters
+
+"ToString" length parameter is now optional
+
+"Interrupt (ResourceType," parse error fixed.
+
+"Register" with a user-defined region space parse error
+fixed
+
+Escaped backslash at the end of a string ("\\") scan/parse
+error fixed
+
+"Revision" is now an object of type INTEGER.
+
+
+
+------------------------------------------
+Summary of changes for this label: 05_02_01
+
+Linux:
+
+/proc/acpi/event now blocks properly.
+
+Removed /proc/sys/acpi. You can still dump your DSDT from
+/proc/acpi/dsdt.
+
+ ACPI CA Core Subsystem:
+
+Fixed a problem introduced in the previous label where some
+of the "small" resource descriptor types were not
+recognized.
+
+Improved error messages for the case where an ASL Field is
+outside the range of the parent operation region.
+
+ ASL Compiler, version X2018:
+
+Added error detection for ASL Fields that extend beyond the
+length of the parent operation region (only if the length of
+the region is known at compile time.) This includes fields
+that have a minimum access width that is smaller than the
+parent region, and individual field units that are partially
+or entirely beyond the extent of the parent.
+
+
+
+------------------------------------------
+Summary of changes for this label: 04_27_01
+
+ ACPI CA Core Subsystem:
+
+Fixed a problem where the namespace mutex could be released
+at the wrong time during execution of
+AcpiRemoveAddressSpaceHandler.
+
+Added optional thread ID output for debug traces, to
+simplify debugging of multiple threads. Added context
+switch notification when the debug code realizes that a
+different thread is now executing ACPI code.
+
+Some additional external data types have been prefixed with
+the string "ACPI_" for consistency. This may effect
+existing code. The data types affected are the external
+callback typedefs - e.g., WALK_CALLBACK becomes
+ACPI_WALK_CALLBACK.
+
+ Linux:
+
+Fixed an issue with the OSL semaphore implementation where a
+thread was waking up with an error from receiving a SIGCHLD
+signal.
+
+Linux version of ACPI CA now uses the system C library for
+string manipulation routines instead of a local
+implementation.
+
+Cleaned up comments and removed TBDs.
+
+ ASL Compiler, version X2017:
+
+Enhanced error detection and reporting for all file I/O
+operations.
+
+ Documentation:
+
+Programmer Reference updated to version 1.06.
+
+
+
+------------------------------------------
+Summary of changes for this label: 04_13_01
+
+ ACPI CA Core Subsystem:
+
+Restructured support for BufferFields and RegionFields.
+BankFields support is now fully operational. All known 32-
+bit limitations on field sizes have been removed. Both
+BufferFields and (Operation) RegionFields are now supported
+by the same field management code.
+
+Resource support now supports QWORD address and IO
+resources. The 16/32/64 bit address structures and the
+Extended IRQ structure have been changed to properly handle
+Source Resource strings.
+
+A ThreadId of -1 is now used to indicate a "mutex not
+acquired" condition internally and must never be returned by
+AcpiOsThreadId. This reserved value was changed from 0 since
+Unix systems allow a thread ID of 0.
+
+Linux:
+
+Driver code reorganized to enhance portability
+
+Added a kernel configuration option to control ACPI_DEBUG
+
+Fixed the EC driver to honor _GLK.
+
+ASL Compiler, version X2016:
+
+Fixed support for the "FixedHw" keyword. Previously, the
+FixedHw address space was set to 0, not 0x7f as it should
+be.
+
+ ------------------------------------------
+Summary of changes for this label: 03_13_01
+
+ ACPI CA Core Subsystem:
+
+During ACPI initialization, the _SB_._INI method is now run
+if present.
+
+Notify handler fix - notifies are deferred until the parent
+method completes execution. This fixes the "mutex already
+acquired" issue seen occasionally.
+
+Part of the "implicit conversion" rules in ACPI 2.0 have
+been found to cause compatibility problems with existing
+ASL/AML. The convert "result-to-target-type" implementation
+has been removed for stores to method Args and Locals.
+Source operand conversion is still fully implemented.
+Possible changes to ACPI 2.0 specification pending.
+
+Fix to AcpiRsCalculatePciRoutingTableLength to return
+correct length.
+
+Fix for compiler warnings for 64-bit compiles.
+
+ Linux:
+
+/proc output aligned for easier parsing.
+
+Release-version compile problem fixed.
+
+New kernel configuration options documented in
+Configure.help.
+
+IBM 600E - Fixed Sleep button may generate "Invalid <NULL>
+context" message.
+
+ OSPM:
+
+Power resource driver integrated with bus manager.
+
+Fixed kernel fault during active cooling for thermal zones.
+
+Source Code:
+
+The source code tree has been restructured.
+
+
+
+------------------------------------------
+Summary of changes for this label: 03_02_01
+
+ Linux OS Services Layer (OSL):
+
+Major revision of all Linux-specific code.
+
+Modularized all ACPI-specific drivers.
+
+Added new thermal zone and power resource drivers.
+
+Revamped /proc interface (new functionality is under
+/proc/acpi).
+
+New kernel configuration options.
+
+ Linux known issues:
+
+New kernel configuration options not documented in
+Configure.help yet.
+
+Module dependencies not currently implemented. If used, they
+should be loaded in this order: busmgr, power, ec, system,
+processor, battery, ac_adapter, button, thermal.
+
+Modules will not load if CONFIG_MODVERSION is set.
+
+IBM 600E - entering S5 may reboot instead of shutting down.
+
+IBM 600E - Sleep button may generate "Invalid <NULL>
+context" message.
+
+Some systems may fail with "execution mutex already
+acquired" message.
+
+ ACPI CA Core Subsystem:
+
+Added a new OSL Interface, AcpiOsGetThreadId. This was
+required for the deadlock detection code. Defined to return
+a non-zero, 32-bit thread ID for the currently executing
+thread. May be a non-zero constant integer on single-thread
+systems.
+
+Implemented deadlock detection for internal subsystem
+mutexes. We may add conditional compilation for this code
+(debug only) later.
+
+ASL/AML Mutex object semantics are now fully supported.
+This includes multiple acquires/releases by owner and
+support for the Mutex SyncLevel parameter.
+
+A new "Force Release" mechanism automatically frees all ASL
+Mutexes that have been acquired but not released when a
+thread exits the interpreter. This forces conformance to
+the ACPI spec ("All mutexes must be released when an
+invocation exits") and prevents deadlocked ASL threads.
+This mechanism can be expanded (later) to monitor other
+resource acquisitions if OEM ASL code continues to misbehave
+(which it will).
+
+Several new ACPI exception codes have been added for the
+Mutex support.
+
+Recursive method calls are now allowed and supported (the
+ACPI spec does in fact allow recursive method calls.) The
+number of recursive calls is subject to the restrictions
+imposed by the SERIALIZED method keyword and SyncLevel (ACPI
+2.0) method parameter.
+
+Implemented support for the SyncLevel parameter for control
+methods (ACPI 2.0 feature)
+
+Fixed a deadlock problem when multiple threads attempted to
+use the interpreter.
+
+Fixed a problem where the string length of a String package
+element was not always set in a package returned from
+AcpiEvaluateObject.
+
+Fixed a problem where the length of a String package element
+was not always included in the length of the overall package
+returned from AcpiEvaluateObject.
+
+Added external interfaces (Acpi*) to the ACPI debug memory
+manager. This manager keeps a list of all outstanding
+allocations, and can therefore detect memory leaks and
+attempts to free memory blocks more than once. Useful for
+code such as the power manager, etc. May not be appropriate
+for device drivers. Performance with the debug code enabled
+is slow.
+
+The ACPI Global Lock is now an optional hardware element.
+
+ ASL Compiler Version X2015:
+
+Integrated changes to allow the compiler to be generated on
+multiple platforms.
+
+Linux makefile added to generate the compiler on Linux
+
+ Source Code:
+
+All platform-specific headers have been moved to their own
+subdirectory, Include/Platform.
+
+New source file added, Interpreter/ammutex.c
+
+New header file, Include/acstruct.h
+
+ Documentation:
+
+The programmer reference has been updated for the following
+new interfaces: AcpiOsGetThreadId AcpiAllocate AcpiCallocate
+AcpiFree
+
+ ------------------------------------------
+Summary of changes for this label: 02_08_01
+
+Core ACPI CA Subsystem: Fixed a problem where an error was
+incorrectly returned if the return resource buffer was
+larger than the actual data (in the resource interfaces).
+
+References to named objects within packages are resolved to
+the full pathname string before packages are returned
+directly (via the AcpiEvaluateObject interface) or
+indirectly via the resource interfaces.
+
+Linux OS Services Layer (OSL):
+
+Improved /proc battery interface.
+
+
+Added C-state debugging output and other miscellaneous
+fixes.
+
+ASL Compiler Version X2014:
+
+All defined method arguments can now be used as local
+variables, including the ones that are not actually passed
+in as parameters. The compiler tracks initialization of the
+arguments and issues an exception if they are used without
+prior assignment (just like locals).
+
+The -o option now specifies a filename prefix that is used
+for all output files, including the AML output file.
+Otherwise, the default behavior is as follows: 1) the AML
+goes to the file specified in the DSDT. 2) all other output
+files use the input source filename as the base.
+
+ ------------------------------------------
+Summary of changes for this label: 01_25_01
+
+Core ACPI CA Subsystem: Restructured the implementation of
+object store support within the interpreter. This includes
+support for the Store operator as well as any ASL operators
+that include a target operand.
+
+Partially implemented support for Implicit Result-to-Target
+conversion. This is when a result object is converted on the
+fly to the type of an existing target object. Completion
+of this support is pending further analysis of the ACPI
+specification concerning this matter.
+
+CPU-specific code has been removed from the subsystem
+(hardware directory).
+
+New Power Management Timer functions added
+
+Linux OS Services Layer (OSL): Moved system state transition
+code to the core, fixed it, and modified Linux OSL
+accordingly.
+
+Fixed C2 and C3 latency calculations.
+
+
+We no longer use the compilation date for the version
+message on initialization, but retrieve the version from
+AcpiGetSystemInfo().
+
+Incorporated for fix Sony VAIO machines.
+
+Documentation: The Programmer Reference has been updated
+and reformatted.
+
+
+ASL Compiler: Version X2013: Fixed a problem where the line
+numbering and error reporting could get out of sync in the
+presence of multiple include files.
+
+ ------------------------------------------
+Summary of changes for this label: 01_15_01
+
+Core ACPI CA Subsystem:
+
+Implemented support for type conversions in the execution of
+the ASL Concatenate operator (The second operand is
+converted to match the type of the first operand before
+concatenation.)
+
+Support for implicit source operand conversion is partially
+implemented. The ASL source operand types Integer, Buffer,
+and String are freely interchangeable for most ASL
+operators and are converted by the interpreter on the fly
+as required. Implicit Target operand conversion (where the
+result is converted to the target type before storing) is
+not yet implemented.
+
+Support for 32-bit and 64-bit BCD integers is implemented.
+
+Problem fixed where a field read on an aligned field could
+cause a read past the end of the field.
+
+New exception, AE_AML_NO_RETURN_VALUE, is returned when a
+method does not return a value, but the caller expects one.
+(The ASL compiler flags this as a warning.)
+
+ASL Compiler:
+
+Version X2011:
+1. Static typechecking of all operands is implemented. This
+prevents the use of invalid objects (such as using a Package
+where an Integer is required) at compile time instead of at
+interpreter run-time.
+2. The ASL source line is printed with ALL errors and
+warnings.
+3. Bug fix for source EOF without final linefeed.
+4. Debug option is split into a parse trace and a namespace
+trace.
+5. Namespace output option (-n) includes initial values for
+integers and strings.
+6. Parse-only option added for quick syntax checking.
+7. Compiler checks for duplicate ACPI name declarations
+
+Version X2012:
+1. Relaxed typechecking to allow interchangeability between
+strings, integers, and buffers. These types are now
+converted by the interpreter at runtime.
+2. Compiler reports time taken by each internal subsystem in
+the debug output file.
+
+
+ ------------------------------------------
+Summary of changes for this label: 12_14_00
+
+ASL Compiler:
+
+This is the first official release of the compiler. Since
+the compiler requires elements of the Core Subsystem, this
+label synchronizes everything.
+
+------------------------------------------
+Summary of changes for this label: 12_08_00
+
+Fixed a problem where named references within the ASL
+definition of both OperationRegions and CreateXXXFields did
+not work properly. The symptom was an AE_AML_OPERAND_TYPE
+during initialization of the region/field. This is similar
+(but not related internally) to the problem that was fixed
+in the last label.
+
+Implemented both 32-bit and 64-bit support for the BCD ASL
+functions ToBCD and FromBCD.
+
+Updated all legal headers to include "2000" in the copyright
+years.
+
+ ------------------------------------------
+Summary of changes for this label: 12_01_00
+
+Fixed a problem where method invocations within the ASL
+definition of both OperationRegions and CreateXXXFields did
+not work properly. The symptom was an AE_AML_OPERAND_TYPE
+during initialization of the region/field:
+
+ nsinit-0209: AE_AML_OPERAND_TYPE while getting region
+arguments [DEBG] ammonad-0284: Exec_monadic2_r/Not: bad
+operand(s) (0x3005)
+
+Fixed a problem where operators with more than one nested
+subexpression would fail. The symptoms were varied, by
+mostly AE_AML_OPERAND_TYPE errors. This was actually a
+rather serious problem that has gone unnoticed until now.
+
+ Subtract (Add (1,2), Multiply (3,4))
+
+Fixed a problem where AcpiGetHandle didn't quite get fixed
+in the previous build (The prefix part of a relative path
+was handled incorrectly).
+
+Fixed a problem where Operation Region initialization failed
+if the operation region name was a "namepath" instead of a
+simple "nameseg". Symptom was an AE_NO_OPERAND error.
+
+Fixed a problem where an assignment to a local variable via
+the indirect RefOf mechanism only worked for the first such
+assignment. Subsequent assignments were ignored.
+
+ ------------------------------------------
+Summary of changes for this label: 11_15_00
+
+ACPI 2.0 table support with backwards support for ACPI 1.0
+and the 0.71 extensions. Note: although we can read ACPI
+2.0 BIOS tables, the AML interpreter does NOT have support
+for the new 2.0 ASL grammar terms at this time.
+
+All ACPI hardware access is via the GAS structures in the
+ACPI 2.0 FADT.
+
+All physical memory addresses across all platforms are now
+64 bits wide. Logical address width remains dependent on the
+platform (i.e., "void *").
+
+AcpiOsMapMemory interface changed to a 64-bit physical
+address.
+
+The AML interpreter integer size is now 64 bits, as per the
+ACPI 2.0 specification.
+
+For backwards compatibility with ACPI 1.0, ACPI tables with
+a revision number less than 2 use 32-bit integers only.
+
+Fixed a problem where the evaluation of OpRegion operands
+did not always resolve them to numbers properly.
+
+------------------------------------------
+Summary of changes for this label: 10_20_00
+
+Fix for CBN_._STA issue. This fix will allow correct access
+to CBN_ OpRegions when the _STA returns 0x8.
+
+Support to convert ACPI constants (Ones, Zeros, One) to
+actual values before a package object is returned
+
+Fix for method call as predicate to if/while construct
+causing incorrect if/while behavior
+
+Fix for Else block package lengths sometimes calculated
+wrong (if block > 63 bytes)
+
+Fix for Processor object length field, was always zero
+
+Table load abort if FACP sanity check fails
+
+Fix for problem with Scope(name) if name already exists
+
+Warning emitted if a named object referenced cannot be found
+(resolved) during method execution.
+
+
+
+
+
+------------------------------------------
+Summary of changes for this label: 9_29_00
+
+New table initialization interfaces: AcpiInitializeSubsystem
+no longer has any parameters AcpiFindRootPointer - Find the
+RSDP (if necessary) AcpiLoadTables (RSDP) - load all tables
+found at RSDP->RSDT Obsolete Interfaces
+AcpiLoadFirmwareTables - replaced by AcpiLoadTables
+
+Note: These interface changes require changes to all
+existing OSDs
+
+The PCI_Config default address space handler is always
+installed at the root namespace object.
+
+-------------------------------------------
+Summary of changes for this label: 09_15_00
+
+The new initialization architecture is implemented. New
+interfaces are: AcpiInitializeSubsystem (replaces
+AcpiInitialize) AcpiEnableSubsystem Obsolete Interfaces:
+AcpiLoadNamespace (Namespace is automatically loaded when a
+table is loaded)
+
+The ACPI_OPERAND_OBJECT has been optimized to shrink its
+size from 52 bytes to 32 bytes. There is usually one of
+these for every namespace object, so the memory savings is
+significant.
+
+Implemented just-in-time evaluation of the CreateField
+operators.
+
+Bug fixes for IA-64 support have been integrated.
+
+Additional code review comments have been implemented
+
+The so-called "third pass parse" has been replaced by a
+final walk through the namespace to initialize all operation
+regions (address spaces) and fields that have not yet been
+initialized during the execution of the various _INI and REG
+methods.
+
+New file - namespace/nsinit.c
+
+-------------------------------------------
+Summary of changes for this label: 09_01_00
+
+Namespace manager data structures have been reworked to
+change the primary object from a table to a single object.
+This has resulted in dynamic memory savings of 3X within
+the namespace and 2X overall in the ACPI CA subsystem.
+
+Fixed problem where the call to AcpiEvFindPciRootBuses was
+inadvertently left commented out.
+
+Reduced the warning count when generating the source with
+the GCC compiler.
+
+Revision numbers added to each module header showing the
+SourceSafe version of the file. Please refer to this
+version number when giving us feedback or comments on
+individual modules.
+
+The main object types within the subsystem have been renamed
+to clarify their purpose:
+
+ACPI_INTERNAL_OBJECT -> ACPI_OPERAND_OBJECT
+ACPI_GENERIC_OP -> ACPI_PARSE_OBJECT
+ACPI_NAME_TABLE_ENTRY -> ACPI_NAMESPACE_NODE
+
+NOTE: no changes to the initialization sequence are included
+in this label.
+
+-------------------------------------------
+Summary of changes for this label: 08_23_00
+
+Fixed problem where TerminateControlMethod was being called
+multiple times per method
+
+Fixed debugger problem where single stepping caused a
+semaphore to be oversignalled
+
+Improved performance through additional parse object caching
+- added ACPI_EXTENDED_OP type
+
+-------------------------------------------
+Summary of changes for this label: 08_10_00
+
+Parser/Interpreter integration: Eliminated the creation of
+complete parse trees for ACPI tables and control methods.
+Instead, parse subtrees are created and then deleted as
+soon as they are processed (Either entered into the
+namespace or executed by the interpreter). This reduces
+the use of dynamic kernel memory significantly. (about 10X)
+
+Exception codes broken into classes and renumbered. Be sure
+to recompile all code that includes acexcep.h. Hopefully
+we won't have to renumber the codes again now that they are
+split into classes (environment, programmer, AML code, ACPI
+table, and internal).
+
+Fixed some additional alignment issues in the Resource
+Manager subcomponent
+
+Implemented semaphore tracking in the AcpiExec utility, and
+fixed several places where mutexes/semaphores were being
+unlocked without a corresponding lock operation. There are
+no known semaphore or mutex "leaks" at this time.
+
+Fixed the case where an ASL Return operator is used to
+return an unnamed package.
+
+-------------------------------------------
+Summary of changes for this label: 07_28_00
+
+Fixed a problem with the way addresses were calculated in
+AcpiAmlReadFieldData() and AcpiAmlWriteFieldData(). This
+problem manifested itself when a Field was created with
+WordAccess or DwordAccess, but the field unit defined within
+the Field was less than a Word or Dword.
+
+Fixed a problem in AmlDumpOperands() module's loop to pull
+operands off of the operand stack to display information.
+The problem manifested itself as a TLB error on 64-bit
+systems when accessing an operand stack with two or more
+operands.
+
+Fixed a problem with the PCI configuration space handlers
+where context was getting confused between accesses. This
+required a change to the generic address space handler and
+address space setup definitions. Handlers now get both a
+global handler context (this is the one passed in by the
+user when executing AcpiInstallAddressSpaceHandler() and a
+specific region context that is unique to each region (For
+example, the _ADR, _SEG and _BBN values associated with a
+specific region). The generic function definitions have
+changed to the following:
+
+typedef ACPI_STATUS (*ADDRESS_SPACE_HANDLER) ( UINT32
+Function, UINT32 Address, UINT32 BitWidth, UINT32 *Value,
+void *HandlerContext, // This used to be void *Context void
+*RegionContext); // This is an additional parameter
+
+typedef ACPI_STATUS (*ADDRESS_SPACE_SETUP) ( ACPI_HANDLE
+RegionHandle, UINT32 Function, void *HandlerContext, void
+**RegionContext); // This used to be **ReturnContext
+
+-------------------------------------------
+Summary of changes for this label: 07_21_00
+
+Major file consolidation and rename. All files within the
+interpreter have been renamed as well as most header files.
+This was done to prevent collisions with existing files in
+the host OSs -- filenames such as "config.h" and "global.h"
+seem to be quite common. The VC project files have been
+updated. All makefiles will require modification.
+
+The parser/interpreter integration continues in Phase 5 with
+the implementation of a complete 2-pass parse (the AML is
+parsed twice) for each table; This avoids the construction
+of a huge parse tree and therefore reduces the amount of
+dynamic memory required by the subsystem. Greater use of
+the parse object cache means that performance is
+unaffected.
+
+Many comments from the two code reviews have been rolled in.
+
+The 64-bit alignment support is complete.
+
+-------------------------------------------
+Summary of changes for this label: 06_30_00
+
+With a nod and a tip of the hat to the technology of
+yesteryear, we've added support in the source code for 80
+column output devices. The code is now mostly constrained
+to 80 columns or less to support environments and editors
+that 1) cannot display or print more than 80 characters on
+a single line, and 2) cannot disable line wrapping.
+
+A major restructuring of the namespace data structure has
+been completed. The result is 1) cleaner and more
+understandable/maintainable code, and 2) a significant
+reduction in the dynamic memory requirement for each named
+ACPI object (almost half).
+
+-------------------------------------------
+Summary of changes for this label: 06_23_00
+
+Linux support has been added. In order to obtain approval
+to get the ACPI CA subsystem into the Linux kernel, we've
+had to make quite a few changes to the base subsystem that
+will affect all users (all the changes are generic and OS-
+independent). The effects of these global changes have been
+somewhat far reaching. Files have been merged and/or
+renamed and interfaces have been renamed. The major
+changes are described below.
+
+Osd* interfaces renamed to AcpiOs* to eliminate namespace
+pollution/confusion within our target kernels. All OSD
+interfaces must be modified to match the new naming
+convention.
+
+Files merged across the subsystem. A number of the smaller
+source and header files have been merged to reduce the file
+count and increase the density of the existing files.
+There are too many to list here. In general, makefiles that
+call out individual files will require rebuilding.
+
+Interpreter files renamed. All interpreter files now have
+the prefix am* instead of ie* and is*.
+
+Header files renamed: The acapi.h file is now acpixf.h.
+The acpiosd.h file is now acpiosxf.h. We are removing
+references to the acronym "API" since it is somewhat
+windowsy. The new name is "external interface" or xface or
+xf in the filenames.j
+
+
+All manifest constants have been forced to upper case (some
+were mixed case.) Also, the string "ACPI_" has been
+prepended to many (not all) of the constants, typedefs, and
+structs.
+
+The globals "DebugLevel" and "DebugLayer" have been renamed
+"AcpiDbgLevel" and "AcpiDbgLayer" respectively.
+
+All other globals within the subsystem are now prefixed with
+"AcpiGbl_" Internal procedures within the subsystem are now
+prefixed with "Acpi" (with only a few exceptions). The
+original two-letter abbreviation for the subcomponent
+remains after "Acpi" - for example, CmCallocate became
+AcpiCmCallocate.
+
+Added a source code translation/conversion utility. Used to
+generate the Linux source code, it can be modified to
+generate other types of source as well. Can also be used to
+cleanup existing source by removing extraneous spaces and
+blank lines. Found in tools/acpisrc/*
+
+OsdUnMapMemory was renamed to OsdUnmapMemory and then
+AcpiOsUnmapMemory. (UnMap became Unmap).
+
+A "MaxUnits" parameter has been added to
+AcpiOsCreateSemaphore. When set to one, this indicates
+that the caller wants to use the semaphore as a mutex, not a
+counting semaphore. ACPI CA uses both types. However,
+implementers of this call may want to use different OS
+primitives depending on the type of semaphore requested.
+For example, some operating systems provide separate "mutex"
+and "semaphore" interfaces - where the mutex interface is
+much faster because it doesn't have all the overhead of a
+full semaphore implementation.
+
+Fixed a deadlock problem where a method that accesses the
+PCI address space can block forever if it is the first
+access to the space.
+
+-------------------------------------------
+Summary of changes for this label: 06_02_00
+
+Support for environments that cannot handle unaligned data
+accesses (e.g. firmware and OS environments devoid of
+alignment handler technology namely SAL/EFI and the IA-64
+Linux kernel) has been added (via configurable macros) in
+these three areas: - Transfer of data from the raw AML byte
+stream is done via byte moves instead of word/dword/qword
+moves. - External objects are aligned within the user
+buffer, including package elements (sub-objects). -
+Conversion of name strings to UINT32 Acpi Names is now done
+byte-wise.
+
+The Store operator was modified to mimic Microsoft's
+implementation when storing to a Buffer Field.
+
+Added a check of the BM_STS bit before entering C3.
+
+The methods subdirectory has been obsoleted and removed. A
+new file, cmeval.c subsumes the functionality.
+
+A 16-bit (DOS) version of AcpiExec has been developed. The
+makefile is under the acpiexec directory.
diff --git a/sys/contrib/dev/acpica/acapps.h b/sys/contrib/dev/acpica/acapps.h
new file mode 100644
index 0000000..7dd9b48
--- /dev/null
+++ b/sys/contrib/dev/acpica/acapps.h
@@ -0,0 +1,181 @@
+/******************************************************************************
+ *
+ * Module Name: acapps - common include for ACPI applications/tools
+ *
+ *****************************************************************************/
+
+/******************************************************************************
+ *
+ * 1. Copyright Notice
+ *
+ * Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
+ * All rights reserved.
+ *
+ * 2. License
+ *
+ * 2.1. This is your license from Intel Corp. under its intellectual property
+ * rights. You may have additional license terms from the party that provided
+ * you this software, covering your right to use that party's intellectual
+ * property rights.
+ *
+ * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
+ * copy of the source code appearing in this file ("Covered Code") an
+ * irrevocable, perpetual, worldwide license under Intel's copyrights in the
+ * base code distributed originally by Intel ("Original Intel Code") to copy,
+ * make derivatives, distribute, use and display any portion of the Covered
+ * Code in any form, with the right to sublicense such rights; and
+ *
+ * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
+ * license (with the right to sublicense), under only those claims of Intel
+ * patents that are infringed by the Original Intel Code, to make, use, sell,
+ * offer to sell, and import the Covered Code and derivative works thereof
+ * solely to the minimum extent necessary to exercise the above copyright
+ * license, and in no event shall the patent license extend to any additions
+ * to or modifications of the Original Intel Code. No other license or right
+ * is granted directly or by implication, estoppel or otherwise;
+ *
+ * The above copyright and patent license is granted only if the following
+ * conditions are met:
+ *
+ * 3. Conditions
+ *
+ * 3.1. Redistribution of Source with Rights to Further Distribute Source.
+ * Redistribution of source code of any substantial portion of the Covered
+ * Code or modification with rights to further distribute source must include
+ * the above Copyright Notice, the above License, this list of Conditions,
+ * and the following Disclaimer and Export Compliance provision. In addition,
+ * Licensee must cause all Covered Code to which Licensee contributes to
+ * contain a file documenting the changes Licensee made to create that Covered
+ * Code and the date of any change. Licensee must include in that file the
+ * documentation of any changes made by any predecessor Licensee. Licensee
+ * must include a prominent statement that the modification is derived,
+ * directly or indirectly, from Original Intel Code.
+ *
+ * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
+ * Redistribution of source code of any substantial portion of the Covered
+ * Code or modification without rights to further distribute source must
+ * include the following Disclaimer and Export Compliance provision in the
+ * documentation and/or other materials provided with distribution. In
+ * addition, Licensee may not authorize further sublicense of source of any
+ * portion of the Covered Code, and must include terms to the effect that the
+ * license from Licensee to its licensee is limited to the intellectual
+ * property embodied in the software Licensee provides to its licensee, and
+ * not to intellectual property embodied in modifications its licensee may
+ * make.
+ *
+ * 3.3. Redistribution of Executable. Redistribution in executable form of any
+ * substantial portion of the Covered Code or modification must reproduce the
+ * above Copyright Notice, and the following Disclaimer and Export Compliance
+ * provision in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3.4. Intel retains all right, title, and interest in and to the Original
+ * Intel Code.
+ *
+ * 3.5. Neither the name Intel nor any other trademark owned or controlled by
+ * Intel shall be used in advertising or otherwise to promote the sale, use or
+ * other dealings in products derived from or relating to the Covered Code
+ * without prior written authorization from Intel.
+ *
+ * 4. Disclaimer and Export Compliance
+ *
+ * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
+ * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
+ * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
+ * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
+ * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
+ * PARTICULAR PURPOSE.
+ *
+ * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
+ * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
+ * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
+ * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
+ * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
+ * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
+ * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
+ * LIMITED REMEDY.
+ *
+ * 4.3. Licensee shall not export, either directly or indirectly, any of this
+ * software or system incorporating such software without first obtaining any
+ * required license or other approval from the U. S. Department of Commerce or
+ * any other agency or department of the United States Government. In the
+ * event Licensee exports any such software from the United States or
+ * re-exports any such software from a foreign destination, Licensee shall
+ * ensure that the distribution and export/re-export of the software is in
+ * compliance with all laws, regulations, orders, or other restrictions of the
+ * U.S. Export Administration Regulations. Licensee agrees that neither it nor
+ * any of its subsidiaries will export/re-export any technical data, process,
+ * software, or service, directly or indirectly, to any country for which the
+ * United States government or any agency thereof requires an export license,
+ * other governmental approval, or letter of assurance, without first obtaining
+ * such license, approval or letter.
+ *
+ *****************************************************************************/
+
+#ifndef _ACAPPS
+#define _ACAPPS
+
+
+#ifdef _MSC_VER /* disable some level-4 warnings */
+#pragma warning(disable:4100) /* warning C4100: unreferenced formal parameter */
+#endif
+
+extern UINT8 *DsdtPtr;
+extern UINT32 AcpiDsdtLength;
+extern UINT8 *AmlStart;
+extern UINT32 AmlLength;
+
+
+extern int AcpiGbl_Optind;
+extern NATIVE_CHAR *AcpiGbl_Optarg;
+
+int
+AcpiGetopt(
+ int argc,
+ char **argv,
+ char *opts);
+
+ACPI_STATUS
+AdInitialize (
+ void);
+
+char *
+FlGenerateFilename (
+ char *InputFilename,
+ char *Suffix);
+
+ACPI_STATUS
+AdAmlDisassemble (
+ BOOLEAN OutToFile,
+ char *Filename,
+ char **OutFilename);
+
+void
+AdPrintStatistics (void);
+
+ACPI_STATUS
+AdFindDsdt(
+ UINT8 **DsdtPtr,
+ UINT32 *DsdtLength);
+
+void
+AdDumpTables (void);
+
+ACPI_STATUS
+AdGetTables (
+ char *Filename);
+
+ACPI_STATUS
+AdParseTables (void);
+
+ACPI_STATUS
+AdDisplayTables (
+ char *Filename);
+
+ACPI_STATUS
+AdDisplayStatistics (void);
+
+
+#endif /* _ACAPPS */
+
diff --git a/sys/contrib/dev/acpica/acconfig.h b/sys/contrib/dev/acpica/acconfig.h
index c08b5f8..7968a63 100644
--- a/sys/contrib/dev/acpica/acconfig.h
+++ b/sys/contrib/dev/acpica/acconfig.h
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acconfig.h - Global configuration constants
- * $Revision: 107 $
+ * $Revision: 109 $
*
*****************************************************************************/
@@ -125,7 +125,7 @@
*****************************************************************************/
/*
- * ACPI_DEBUG - This switch enables all the debug facilities of the
+ * ACPI_DEBUG_OUTPUT - This switch enables all the debug facilities of the
* ACPI subsystem. This includes the DEBUG_PRINT output
* statements. When disabled, all DEBUG_PRINT
* statements are compiled out.
@@ -145,7 +145,7 @@
/* Version string */
-#define ACPI_CA_VERSION 0x20020725
+#define ACPI_CA_VERSION 0x20020815
/* Version of ACPI supported */
diff --git a/sys/contrib/dev/acpica/acdisasm.h b/sys/contrib/dev/acpica/acdisasm.h
index 9cad736..00401d2 100644
--- a/sys/contrib/dev/acpica/acdisasm.h
+++ b/sys/contrib/dev/acpica/acdisasm.h
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acdisasm.h - AML disassembler
- * $Revision: 2 $
+ * $Revision: 3 $
*
*****************************************************************************/
@@ -161,7 +161,6 @@ ACPI_STATUS (*ASL_WALK_CALLBACK) (
void *Context);
-
/*
* dmwalk
*/
@@ -224,7 +223,7 @@ AcpiDmDisplayPath (
void
AcpiDmDisassembleOneOp (
ACPI_WALK_STATE *WalkState,
- ACPI_OP_WALK_INFO *Info,
+ ACPI_OP_WALK_INFO *Info,
ACPI_PARSE_OBJECT *Op);
void
@@ -276,12 +275,12 @@ BOOLEAN
AcpiDmCommaIfListMember (
ACPI_PARSE_OBJECT *Op);
-void
+void
AcpiDmCommaIfFieldMember (
ACPI_PARSE_OBJECT *Op);
-/*
+/*
* dmbuffer
*/
@@ -314,12 +313,12 @@ AcpiDmDisasmByteList (
void
AcpiDmByteList (
- ACPI_OP_WALK_INFO *Info,
+ ACPI_OP_WALK_INFO *Info,
ACPI_PARSE_OBJECT *Op);
void
AcpiDmResourceDescriptor (
- ACPI_OP_WALK_INFO *Info,
+ ACPI_OP_WALK_INFO *Info,
UINT8 *ByteData,
UINT32 ByteCount);
diff --git a/sys/contrib/dev/acpica/acefi.h b/sys/contrib/dev/acpica/acefi.h
index f8db82d..4c39ef7 100644
--- a/sys/contrib/dev/acpica/acefi.h
+++ b/sys/contrib/dev/acpica/acefi.h
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acefi.h - OS specific defines, etc.
- * $Revision: 10 $
+ * $Revision: 12 $
*
*****************************************************************************/
@@ -133,7 +133,7 @@
* Calling conventions:
*
* ACPI_SYSTEM_XFACE - Interfaces to host OS (handlers, threads)
- * ACPI_EXTERNAL_XFACE - External ACPI interfaces
+ * ACPI_EXTERNAL_XFACE - External ACPI interfaces
* ACPI_INTERNAL_XFACE - Internal ACPI interfaces
* ACPI_INTERNAL_VAR_XFACE - Internal variable-parameter list interfaces
*/
diff --git a/sys/contrib/dev/acpica/acenv.h b/sys/contrib/dev/acpica/acenv.h
index 9c4cfdd..0a1a407 100644
--- a/sys/contrib/dev/acpica/acenv.h
+++ b/sys/contrib/dev/acpica/acenv.h
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acenv.h - Generation environment specific items
- * $Revision: 99 $
+ * $Revision: 101 $
*
*****************************************************************************/
@@ -124,7 +124,7 @@
#ifdef _ACPI_DUMP_APP
#ifndef MSDOS
-#define ACPI_DEBUG
+#define ACPI_DEBUG_OUTPUT
#endif
#define ACPI_APPLICATION
#define ACPI_DISASSEMBLER
@@ -135,15 +135,15 @@
#ifdef _ACPI_EXEC_APP
#undef DEBUGGER_THREADING
#define DEBUGGER_THREADING DEBUGGER_SINGLE_THREADED
-#define ACPI_DEBUG
+#define ACPI_DEBUG_OUTPUT
#define ACPI_APPLICATION
-#define ENABLE_DEBUGGER
+#define ACPI_DEBUGGER
#define ACPI_DISASSEMBLER
#define ACPI_USE_SYSTEM_CLIBRARY
#endif
#ifdef _ACPI_ASL_COMPILER
-#define ACPI_DEBUG
+#define ACPI_DEBUG_OUTPUT
#define ACPI_APPLICATION
#define ACPI_DISASSEMBLER
#define ACPI_CONSTANT_EVAL_ONLY
@@ -240,7 +240,7 @@
* 1) This is the debug version
* 2) This is NOT a 16-bit version of the code (not enough real-mode memory)
*/
-#ifdef ACPI_DEBUG
+#ifdef ACPI_DEBUG_OUTPUT
#if ACPI_MACHINE_WIDTH != 16
#define ACPI_DBG_TRACK_ALLOCATIONS
#endif
@@ -399,7 +399,7 @@ typedef char *va_list;
* Calling conventions:
*
* ACPI_SYSTEM_XFACE - Interfaces to host OS (handlers, threads)
- * ACPI_EXTERNAL_XFACE - External ACPI interfaces
+ * ACPI_EXTERNAL_XFACE - External ACPI interfaces
* ACPI_INTERNAL_XFACE - Internal ACPI interfaces
* ACPI_INTERNAL_VAR_XFACE - Internal variable-parameter list interfaces
*/
diff --git a/sys/contrib/dev/acpica/acfreebsd.h b/sys/contrib/dev/acpica/acfreebsd.h
index 2154882..2f513c7 100644
--- a/sys/contrib/dev/acpica/acfreebsd.h
+++ b/sys/contrib/dev/acpica/acfreebsd.h
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acfreebsd.h - OS specific defines, etc.
- * $Revision: 9 $
+ * $Revision: 10 $
*
*****************************************************************************/
@@ -139,16 +139,16 @@
#define __cli() disable_intr()
#define __sti() enable_intr()
-#ifdef ACPI_DEBUG
+#ifdef ACPI_DEBUG_OUTPUT
#ifdef DEBUGGER_THREADING
#undef DEBUGGER_THREADING
#endif /* DEBUGGER_THREADING */
#define DEBUGGER_THREADING 0 /* integrated with DDB */
#include "opt_ddb.h"
#ifdef DDB
-#define ENABLE_DEBUGGER
+#define ACPI_DEBUGGER
#endif /* DDB */
-#endif /* ACPI_DEBUG */
+#endif /* ACPI_DEBUG_OUTPUT */
#else /* _KERNEL */
diff --git a/sys/contrib/dev/acpica/acglobal.h b/sys/contrib/dev/acpica/acglobal.h
index d39861e..37d5c34 100644
--- a/sys/contrib/dev/acpica/acglobal.h
+++ b/sys/contrib/dev/acpica/acglobal.h
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acglobal.h - Declarations for global variables
- * $Revision: 128 $
+ * $Revision: 130 $
*
*****************************************************************************/
@@ -243,8 +243,12 @@ extern const NATIVE_CHAR *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_
****************************************************************************/
#define NUM_NS_TYPES INTERNAL_TYPE_INVALID+1
-#define NUM_PREDEFINED_NAMES 9
+#if defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY)
+#define NUM_PREDEFINED_NAMES 10
+#else
+#define NUM_PREDEFINED_NAMES 9
+#endif
ACPI_EXTERN ACPI_NAMESPACE_NODE AcpiGbl_RootNodeStruct;
ACPI_EXTERN ACPI_NAMESPACE_NODE *AcpiGbl_RootNode;
@@ -252,7 +256,7 @@ ACPI_EXTERN ACPI_NAMESPACE_NODE *AcpiGbl_RootNode;
extern const UINT8 AcpiGbl_NsProperties[NUM_NS_TYPES];
extern const ACPI_PREDEFINED_NAMES AcpiGbl_PreDefinedNames [NUM_PREDEFINED_NAMES];
-#ifdef ACPI_DEBUG
+#ifdef ACPI_DEBUG_OUTPUT
ACPI_EXTERN UINT32 AcpiGbl_CurrentNodeCount;
ACPI_EXTERN UINT32 AcpiGbl_CurrentNodeSize;
ACPI_EXTERN UINT32 AcpiGbl_MaxConcurrentNodeCount;
@@ -336,7 +340,7 @@ ACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_verbose;
#endif
-#ifdef ENABLE_DEBUGGER
+#ifdef ACPI_DEBUGGER
extern BOOLEAN AcpiGbl_MethodExecuting;
extern BOOLEAN AcpiGbl_DbTerminateThreads;
@@ -378,7 +382,7 @@ ACPI_EXTERN UINT32 AcpiGbl_SizeOfMethodTrees;
ACPI_EXTERN UINT32 AcpiGbl_SizeOfNodeEntries;
ACPI_EXTERN UINT32 AcpiGbl_SizeOfAcpiObjects;
-#endif /* ENABLE_DEBUGGER */
+#endif /* ACPI_DEBUGGER */
#endif /* __ACGLOBAL_H__ */
diff --git a/sys/contrib/dev/acpica/aclocal.h b/sys/contrib/dev/acpica/aclocal.h
index f843123..ad86dc4 100644
--- a/sys/contrib/dev/acpica/aclocal.h
+++ b/sys/contrib/dev/acpica/aclocal.h
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: aclocal.h - Internal data types used across the ACPI subsystem
- * $Revision: 173 $
+ * $Revision: 175 $
*
*****************************************************************************/
@@ -129,7 +129,6 @@ typedef UINT32 ACPI_MUTEX_HANDLE;
#define AML_NUM_OPCODES 0x7E
-
/*****************************************************************************
*
* Mutex typedefs and structs
@@ -165,7 +164,7 @@ typedef UINT32 ACPI_MUTEX_HANDLE;
#define NUM_MTX MAX_MTX+1
-#if defined(ACPI_DEBUG) || defined(ENABLE_DEBUGGER)
+#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
#ifdef DEFINE_ACPI_GLOBALS
/* Names for the mutexes used in the subsystem */
@@ -659,7 +658,7 @@ ACPI_STATUS (*ACPI_EXECUTE_OP) (
*/
typedef struct acpi_opcode_info
{
-#if defined(ACPI_DISASSEMBLER) || defined(ACPI_DEBUG)
+#if defined(ACPI_DISASSEMBLER) || defined(ACPI_DEBUG_OUTPUT)
NATIVE_CHAR *Name; /* Opcode name (disassembler/debug only) */
#endif
UINT32 ParseArgs; /* Grammar/Parse time arguments */
@@ -778,7 +777,6 @@ typedef union acpi_parse_obj
} ACPI_PARSE_OBJECT;
-
/*
* Parse state - one state per parser invocation and each control
* method.
diff --git a/sys/contrib/dev/acpica/acmacros.h b/sys/contrib/dev/acpica/acmacros.h
index 1394c9c..8cfa916 100644
--- a/sys/contrib/dev/acpica/acmacros.h
+++ b/sys/contrib/dev/acpica/acmacros.h
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acmacros.h - C macros for the entire subsystem.
- * $Revision: 126 $
+ * $Revision: 128 $
*
*****************************************************************************/
@@ -182,7 +182,7 @@
#define ACPI_TO_POINTER(i) ACPI_PTR_ADD (void, (void *) NULL,(NATIVE_UINT)i)
#define ACPI_TO_INTEGER(p) ACPI_PTR_DIFF (p,(void *) NULL)
-#define ACPI_OFFSET(d,f) (ACPI_SIZE) ACPI_PTR_DIFF (&(((d *)0)->f),(void *) NULL)
+#define ACPI_OFFSET(d,f) (ACPI_SIZE) ACPI_PTR_DIFF (&(((d *)0)->f),(void *) NULL)
#define ACPI_FADT_OFFSET(f) ACPI_OFFSET (FADT_DESCRIPTOR, f)
#define ACPI_CAST_PTR(t, p) ((t *)(void *)(p))
@@ -378,7 +378,7 @@
/*
* Macros for the master AML opcode table
*/
-#if defined(ACPI_DISASSEMBLER) || defined (ACPI_DEBUG)
+#if defined(ACPI_DISASSEMBLER) || defined (ACPI_DEBUG_OUTPUT)
#define ACPI_OP(Name,PArgs,IArgs,ObjType,Class,Type,Flags) {Name,PArgs,IArgs,Flags,ObjType,Class,Type}
#else
#define ACPI_OP(Name,PArgs,IArgs,ObjType,Class,Type,Flags) {PArgs,IArgs,Flags,ObjType,Class,Type}
@@ -444,11 +444,11 @@
/*
* Error reporting. These versions add callers module and line#. Since
- * _THIS_MODULE gets compiled out when ACPI_DEBUG isn't defined, only
+ * _THIS_MODULE gets compiled out when ACPI_DEBUG_OUTPUT isn't defined, only
* use it in debug mode.
*/
-#ifdef ACPI_DEBUG
+#ifdef ACPI_DEBUG_OUTPUT
#define ACPI_REPORT_INFO(fp) {AcpiUtReportInfo(_THIS_MODULE,__LINE__,_COMPONENT); \
AcpiOsPrintf ACPI_PARAM_LIST(fp);}
@@ -481,7 +481,7 @@
* Debug macros that are conditionally compiled
*/
-#ifdef ACPI_DEBUG
+#ifdef ACPI_DEBUG_OUTPUT
#define ACPI_MODULE_NAME(name) static char *_THIS_MODULE = name;
@@ -616,9 +616,9 @@
/*
* Some code only gets executed when the debugger is built in.
* Note that this is entirely independent of whether the
- * DEBUG_PRINT stuff (set by ACPI_DEBUG) is on, or not.
+ * DEBUG_PRINT stuff (set by ACPI_DEBUG_OUTPUT) is on, or not.
*/
-#ifdef ENABLE_DEBUGGER
+#ifdef ACPI_DEBUGGER
#define ACPI_DEBUGGER_EXEC(a) a
#else
#define ACPI_DEBUGGER_EXEC(a)
@@ -627,7 +627,7 @@
/*
* For 16-bit code, we want to shrink some things even though
- * we are using ACPI_DEBUG to get the debug output
+ * we are using ACPI_DEBUG_OUTPUT to get the debug output
*/
#if ACPI_MACHINE_WIDTH == 16
#undef ACPI_DEBUG_ONLY_MEMBERS
@@ -636,7 +636,7 @@
#endif
-#ifdef ACPI_DEBUG
+#ifdef ACPI_DEBUG_OUTPUT
/*
* 1) Set name to blanks
* 2) Copy the object name
diff --git a/sys/contrib/dev/acpica/acobject.h b/sys/contrib/dev/acpica/acobject.h
index b5caeba..007e548 100644
--- a/sys/contrib/dev/acpica/acobject.h
+++ b/sys/contrib/dev/acpica/acobject.h
@@ -2,7 +2,7 @@
/******************************************************************************
*
* Name: acobject.h - Definition of ACPI_OPERAND_OBJECT (Internal object only)
- * $Revision: 112 $
+ * $Revision: 113 $
*
*****************************************************************************/
@@ -190,7 +190,6 @@
union acpi_operand_obj *AddrHandler; /* Handler for Address space */
-
/******************************************************************************
*
* Basic data types
@@ -247,7 +246,6 @@ typedef struct AcpiObjectPackage
} ACPI_OBJECT_PACKAGE;
-
/******************************************************************************
*
* Complex data types
@@ -311,7 +309,6 @@ typedef struct AcpiObjectRegion
} ACPI_OBJECT_REGION;
-
/******************************************************************************
*
* Objects that can be notified. All share a common NotifyInfo area.
@@ -366,7 +363,6 @@ typedef struct AcpiObjectThermalZone
} ACPI_OBJECT_THERMAL_ZONE;
-
/******************************************************************************
*
* Fields. All share a common header/info field.
@@ -430,7 +426,6 @@ typedef struct AcpiObjectBufferField
} ACPI_OBJECT_BUFFER_FIELD;
-
/******************************************************************************
*
* Objects for handlers
@@ -470,7 +465,6 @@ typedef struct AcpiObjectAddrHandler
} ACPI_OBJECT_ADDR_HANDLER;
-
/******************************************************************************
*
* Special internal objects
@@ -537,14 +531,13 @@ typedef struct AcpiObjectCacheList
} ACPI_OBJECT_CACHE_LIST;
-
/******************************************************************************
*
* ACPI_OPERAND_OBJECT Descriptor - a giant union of all of the above
*
*****************************************************************************/
-typedef union acpi_operand_obj
+typedef union acpi_operand_obj
{
ACPI_OBJECT_COMMON Common;
@@ -581,9 +574,6 @@ typedef union acpi_operand_obj
} ACPI_OPERAND_OBJECT;
-
-
-
/******************************************************************************
*
* ACPI_DESCRIPTOR - objects that share a common descriptor identifier
@@ -610,7 +600,6 @@ typedef union acpi_operand_obj
#define ACPI_DESC_TYPE_NAMED 0xAA
-
typedef union acpi_desc
{
UINT8 DescriptorId; /* To differentiate various internal objs */\
diff --git a/sys/contrib/dev/acpica/acoutput.h b/sys/contrib/dev/acpica/acoutput.h
index 923cd5e..25e7e6f 100644
--- a/sys/contrib/dev/acpica/acoutput.h
+++ b/sys/contrib/dev/acpica/acoutput.h
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acoutput.h -- debug output
- * $Revision: 87 $
+ * $Revision: 90 $
*
*****************************************************************************/
@@ -134,18 +134,20 @@
#define ACPI_DISPATCHER 0x00000040
#define ACPI_EXECUTER 0x00000080
#define ACPI_RESOURCES 0x00000100
-#define ACPI_DEBUGGER 0x00000200
+#define ACPI_CA_DEBUGGER 0x00000200
#define ACPI_OS_SERVICES 0x00000400
-
-#define ACPI_ALL_COMPONENTS 0x00000FFF
-
-#define ACPI_COMPONENT_DEFAULT (ACPI_ALL_COMPONENTS)
+#define ACPI_CA_DISASSEMBLER 0x00000800
/* Component IDs for ACPI tools and utilities */
#define ACPI_COMPILER 0x00001000
#define ACPI_TOOLS 0x00002000
+#define ACPI_ALL_COMPONENTS 0x00003FFF
+
+#define ACPI_COMPONENT_DEFAULT (ACPI_ALL_COMPONENTS)
+
+
/* Component IDs reserved for ACPI drivers */
#define ACPI_ALL_DRIVERS 0xFFFF0000
@@ -185,7 +187,8 @@
#define ACPI_LV_ALLOCATIONS 0x00100000
#define ACPI_LV_FUNCTIONS 0x00200000
-#define ACPI_LV_VERBOSITY2 0x00300000 | ACPI_LV_VERBOSITY1
+#define ACPI_LV_OPTIMIZATIONS 0x00400000
+#define ACPI_LV_VERBOSITY2 0x00700000 | ACPI_LV_VERBOSITY1
#define ACPI_LV_ALL ACPI_LV_VERBOSITY2
/* Trace verbosity level 3 [Threading, I/O, and Interrupts] */
@@ -235,6 +238,7 @@
#define ACPI_DB_BFIELD ACPI_DEBUG_LEVEL (ACPI_LV_BFIELD)
#define ACPI_DB_TABLES ACPI_DEBUG_LEVEL (ACPI_LV_TABLES)
#define ACPI_DB_FUNCTIONS ACPI_DEBUG_LEVEL (ACPI_LV_FUNCTIONS)
+#define ACPI_DB_OPTIMIZATIONS ACPI_DEBUG_LEVEL (ACPI_LV_OPTIMIZATIONS)
#define ACPI_DB_VALUES ACPI_DEBUG_LEVEL (ACPI_LV_VALUES)
#define ACPI_DB_OBJECTS ACPI_DEBUG_LEVEL (ACPI_LV_OBJECTS)
#define ACPI_DB_ALLOCATIONS ACPI_DEBUG_LEVEL (ACPI_LV_ALLOCATIONS)
@@ -249,7 +253,6 @@
#define ACPI_DB_ALL ACPI_DEBUG_LEVEL (ACPI_LV_ALL)
-
/* Defaults for DebugLevel, debug and normal */
#define DEBUG_DEFAULT (ACPI_LV_OK | ACPI_LV_WARN | ACPI_LV_ERROR | ACPI_LV_DEBUG_OBJECT)
diff --git a/sys/contrib/dev/acpica/acparser.h b/sys/contrib/dev/acpica/acparser.h
index 04b6a08..e51d9cb 100644
--- a/sys/contrib/dev/acpica/acparser.h
+++ b/sys/contrib/dev/acpica/acparser.h
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: acparser.h - AML Parser subcomponent prototypes and defines
- * $Revision: 60 $
+ * $Revision: 61 $
*
*****************************************************************************/
@@ -177,7 +177,7 @@ AcpiPsGetNextSimpleArg (
UINT32 ArgType,
ACPI_PARSE_OBJECT *Arg);
-void
+ACPI_STATUS
AcpiPsGetNextNamepath (
ACPI_PARSE_STATE *ParserState,
ACPI_PARSE_OBJECT *Arg,
@@ -188,11 +188,12 @@ ACPI_PARSE_OBJECT *
AcpiPsGetNextField (
ACPI_PARSE_STATE *ParserState);
-ACPI_PARSE_OBJECT *
+ACPI_STATUS
AcpiPsGetNextArg (
ACPI_PARSE_STATE *ParserState,
UINT32 ArgType,
- UINT32 *ArgCount);
+ UINT32 *ArgCount,
+ ACPI_PARSE_OBJECT **ReturnArg);
/* psfind */
diff --git a/sys/contrib/dev/acpica/acpiosxf.h b/sys/contrib/dev/acpica/acpiosxf.h
index 9263d7e..2bd108c 100644
--- a/sys/contrib/dev/acpica/acpiosxf.h
+++ b/sys/contrib/dev/acpica/acpiosxf.h
@@ -154,11 +154,11 @@ typedef struct AcpiFatalInfo
* Types specific to the OS service interfaces
*/
-typedef UINT32
+typedef UINT32
(ACPI_SYSTEM_XFACE *OSD_HANDLER) (
void *Context);
-typedef void
+typedef void
(ACPI_SYSTEM_XFACE *OSD_EXECUTION_CALLBACK) (
void *Context);
diff --git a/sys/contrib/dev/acpica/acresrc.h b/sys/contrib/dev/acpica/acresrc.h
index 9f09766..cdd491f 100644
--- a/sys/contrib/dev/acpica/acresrc.h
+++ b/sys/contrib/dev/acpica/acresrc.h
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acresrc.h - Resource Manager function prototypes
- * $Revision: 33 $
+ * $Revision: 34 $
*
*****************************************************************************/
@@ -174,11 +174,11 @@ AcpiRsDumpAddress16 (
void
AcpiRsDumpAddress32 (
ACPI_RESOURCE_DATA *Data);
-
+
void
AcpiRsDumpAddress64 (
ACPI_RESOURCE_DATA *Data);
-
+
void
AcpiRsDumpDma (
ACPI_RESOURCE_DATA *Data);
@@ -186,7 +186,7 @@ AcpiRsDumpDma (
void
AcpiRsDumpIo (
ACPI_RESOURCE_DATA *Data);
-
+
void
AcpiRsDumpExtendedIrq (
ACPI_RESOURCE_DATA *Data);
diff --git a/sys/contrib/dev/acpica/acutils.h b/sys/contrib/dev/acpica/acutils.h
index dbf40dc..689e864 100644
--- a/sys/contrib/dev/acpica/acutils.h
+++ b/sys/contrib/dev/acpica/acutils.h
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acutils.h -- prototypes for the common (subsystem-wide) procedures
- * $Revision: 142 $
+ * $Revision: 143 $
*
*****************************************************************************/
@@ -185,7 +185,7 @@ AcpiUtValidateFadt (
* UtGlobal - Global data structures and procedures
*/
-#if defined(ACPI_DEBUG) || defined(ENABLE_DEBUGGER)
+#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
NATIVE_CHAR *
AcpiUtGetMutexName (
@@ -777,7 +777,7 @@ void
AcpiUtSetIntegerWidth (
UINT8 Revision);
-#ifdef ACPI_DEBUG
+#ifdef ACPI_DEBUG_OUTPUT
void
AcpiUtDisplayInitPathname (
ACPI_HANDLE ObjHandle,
diff --git a/sys/contrib/dev/acpica/amlcode.h b/sys/contrib/dev/acpica/amlcode.h
index d807c9a..093ab0f 100644
--- a/sys/contrib/dev/acpica/amlcode.h
+++ b/sys/contrib/dev/acpica/amlcode.h
@@ -3,7 +3,7 @@
* Name: amlcode.h - Definitions for AML, as included in "definition blocks"
* Declarations and definitions contained herein are derived
* directly from the ACPI specification.
- * $Revision: 69 $
+ * $Revision: 70 $
*
*****************************************************************************/
@@ -565,5 +565,4 @@ typedef enum
#define METHOD_FLAGS_SYNCH_LEVEL 0xF0
-
#endif /* __AMLCODE_H__ */
diff --git a/sys/contrib/dev/acpica/amlresrc.h b/sys/contrib/dev/acpica/amlresrc.h
index 6b4994b..815fafb 100644
--- a/sys/contrib/dev/acpica/amlresrc.h
+++ b/sys/contrib/dev/acpica/amlresrc.h
@@ -2,7 +2,7 @@
/******************************************************************************
*
* Module Name: amlresrc.h - AML resource descriptors
- * $Revision: 20 $
+ * $Revision: 22 $
*
*****************************************************************************/
@@ -419,172 +419,5 @@ typedef union asl_resource_desc
} ASL_RESOURCE_DESC;
-#define NEXT_RESOURCE_DESC(a,b) (ASL_RESOURCE_DESC *) (((char *) (a)) + sizeof(b))
-
-#define DEFAULT_RESOURCE_DESC_SIZE (sizeof (ASL_RESOURCE_DESC) + sizeof (ASL_END_TAG_DESC))
-
-
-/*
- * Resource utilities
- */
-
-ASL_RESOURCE_NODE *
-RsAllocateResourceNode (
- UINT32 Size);
-
- void
-RsCreateBitField (
- ACPI_PARSE_OBJECT *Op,
- char *Name,
- UINT32 ByteOffset,
- UINT32 BitOffset);
-
-void
-RsCreateByteField (
- ACPI_PARSE_OBJECT *Op,
- char *Name,
- UINT32 ByteOffset);
-
-void
-RsSetFlagBits (
- UINT8 *Flags,
- ACPI_PARSE_OBJECT *Op,
- UINT8 Position,
- UINT8 Default);
-
-ACPI_PARSE_OBJECT *
-RsCompleteNodeAndGetNext (
- ACPI_PARSE_OBJECT *Op);
-
-ASL_RESOURCE_NODE *
-RsDoOneResourceDescriptor (
- ACPI_PARSE_OBJECT *DescriptorTypeOp,
- UINT32 CurrentByteOffset);
-
-UINT32
-RsLinkDescriptorChain (
- ASL_RESOURCE_NODE **PreviousRnode,
- ASL_RESOURCE_NODE *Rnode);
-
-
-/*
- * Small descriptors
- */
-
-ASL_RESOURCE_NODE *
-RsDoDmaDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoEndDependentDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoFixedIoDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoInterruptDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoIoDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoIrqDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoIrqNoFlagsDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoMemory24Descriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoMemory32Descriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoMemory32FixedDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoStartDependentDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoStartDependentNoPriDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoVendorSmallDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-
-/*
- * Large descriptors
- */
-
-UINT32
-RsGetStringDataLength (
- ACPI_PARSE_OBJECT *InitializerOp);
-
-ASL_RESOURCE_NODE *
-RsDoDwordIoDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoDwordMemoryDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoQwordIoDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoQwordMemoryDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoWordIoDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoWordBusNumberDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoVendorLargeDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoGeneralRegisterDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-
#endif
diff --git a/sys/contrib/dev/acpica/dbcmds.c b/sys/contrib/dev/acpica/dbcmds.c
index 4992787..d8c2d3e 100644
--- a/sys/contrib/dev/acpica/dbcmds.c
+++ b/sys/contrib/dev/acpica/dbcmds.c
@@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: dbcmds - debug commands and output routines
- * $Revision: 85 $
+ * $Revision: 87 $
*
******************************************************************************/
@@ -124,9 +124,9 @@
#include "acresrc.h"
#include "acdisasm.h"
-#ifdef ENABLE_DEBUGGER
+#ifdef ACPI_DEBUGGER
-#define _COMPONENT ACPI_DEBUGGER
+#define _COMPONENT ACPI_CA_DEBUGGER
ACPI_MODULE_NAME ("dbcmds")
@@ -859,7 +859,7 @@ AcpiDbDisplayObjects (
}
AcpiDbSetOutputDestination (ACPI_DB_DUPLICATE_OUTPUT);
- AcpiOsPrintf ("Objects of type [%s] defined in the current ACPI Namespace: \n",
+ AcpiOsPrintf ("Objects of type [%s] defined in the current ACPI Namespace: \n",
AcpiUtGetTypeName (Type));
AcpiDbSetOutputDestination (ACPI_DB_REDIRECTABLE_OUTPUT);
@@ -1175,9 +1175,7 @@ Cleanup:
}
-
-
-typedef struct
+typedef struct
{
UINT32 Nodes;
UINT32 Objects;
@@ -1267,4 +1265,4 @@ AcpiDbCheckIntegrity (void)
}
-#endif /* ENABLE_DEBUGGER */
+#endif /* ACPI_DEBUGGER */
diff --git a/sys/contrib/dev/acpica/dbdisply.c b/sys/contrib/dev/acpica/dbdisply.c
index 6013450..89daabc 100644
--- a/sys/contrib/dev/acpica/dbdisply.c
+++ b/sys/contrib/dev/acpica/dbdisply.c
@@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: dbdisply - debug display commands
- * $Revision: 76 $
+ * $Revision: 78 $
*
******************************************************************************/
@@ -124,10 +124,10 @@
#include "acdebug.h"
-#ifdef ENABLE_DEBUGGER
+#ifdef ACPI_DEBUGGER
-#define _COMPONENT ACPI_DEBUGGER
+#define _COMPONENT ACPI_CA_DEBUGGER
ACPI_MODULE_NAME ("dbdisply")
@@ -453,9 +453,9 @@ AcpiDbDecodeInternalObject (
}
break;
-
+
default:
-
+
AcpiOsPrintf ("%p", ObjDesc);
break;
}
@@ -619,7 +619,7 @@ AcpiDbDisplayInternalObject (
default:
- AcpiOsPrintf ("Unknown Reference opcode %X\n",
+ AcpiOsPrintf ("Unknown Reference opcode %X\n",
ObjDesc->Reference.Opcode);
break;
}
@@ -998,5 +998,5 @@ AcpiDbDisplayArgumentObject (
AcpiDbDisplayInternalObject (ObjDesc, WalkState);
}
-#endif /* ENABLE_DEBUGGER */
+#endif /* ACPI_DEBUGGER */
diff --git a/sys/contrib/dev/acpica/dbexec.c b/sys/contrib/dev/acpica/dbexec.c
index ddb8eb0..f17b26d 100644
--- a/sys/contrib/dev/acpica/dbexec.c
+++ b/sys/contrib/dev/acpica/dbexec.c
@@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: dbexec - debugger control method execution
- * $Revision: 42 $
+ * $Revision: 44 $
*
******************************************************************************/
@@ -118,9 +118,9 @@
#include "acpi.h"
#include "acdebug.h"
-#ifdef ENABLE_DEBUGGER
+#ifdef ACPI_DEBUGGER
-#define _COMPONENT ACPI_DEBUGGER
+#define _COMPONENT ACPI_CA_DEBUGGER
ACPI_MODULE_NAME ("dbexec")
@@ -308,7 +308,7 @@ AcpiDbExecute (
ACPI_BUFFER ReturnObj;
-#ifdef ACPI_DEBUG
+#ifdef ACPI_DEBUG_OUTPUT
UINT32 PreviousAllocations;
UINT32 Allocations;
@@ -335,7 +335,7 @@ AcpiDbExecute (
AcpiOsSleep (0, 10);
-#ifdef ACPI_DEBUG
+#ifdef ACPI_DEBUG_OUTPUT
/* Memory allocation tracking */
@@ -368,7 +368,7 @@ AcpiDbExecute (
}
else
{
- AcpiOsPrintf ("No return object from execution of %s\n",
+ AcpiOsPrintf ("No return object from execution of %s\n",
AcpiGbl_DbMethodInfo.Pathname);
}
}
@@ -513,6 +513,6 @@ AcpiDbCreateExecutionThreads (
}
-#endif /* ENABLE_DEBUGGER */
+#endif /* ACPI_DEBUGGER */
diff --git a/sys/contrib/dev/acpica/dbfileio.c b/sys/contrib/dev/acpica/dbfileio.c
index c04f531..12f970b 100644
--- a/sys/contrib/dev/acpica/dbfileio.c
+++ b/sys/contrib/dev/acpica/dbfileio.c
@@ -2,7 +2,7 @@
*
* Module Name: dbfileio - Debugger file I/O commands. These can't usually
* be used when running the debugger in Ring 0 (Kernel mode)
- * $Revision: 67 $
+ * $Revision: 68 $
*
******************************************************************************/
@@ -121,9 +121,9 @@
#include "acnamesp.h"
#include "actables.h"
-#if (defined ENABLE_DEBUGGER || defined ACPI_DISASSEMBLER)
+#if (defined ACPI_DEBUGGER || defined ACPI_DISASSEMBLER)
-#define _COMPONENT ACPI_DEBUGGER
+#define _COMPONENT ACPI_CA_DEBUGGER
ACPI_MODULE_NAME ("dbfileio")
@@ -180,7 +180,7 @@ AcpiDbMatchArgument (
}
-#ifdef ENABLE_DEBUGGER
+#ifdef ACPI_DEBUGGER
/*******************************************************************************
*
* FUNCTION: AcpiDbCloseDebugFile
@@ -509,5 +509,5 @@ AcpiDbLoadAcpiTable (
}
-#endif /* ENABLE_DEBUGGER */
+#endif /* ACPI_DEBUGGER */
diff --git a/sys/contrib/dev/acpica/dbhistry.c b/sys/contrib/dev/acpica/dbhistry.c
index 58cdc50..fb5b0e8 100644
--- a/sys/contrib/dev/acpica/dbhistry.c
+++ b/sys/contrib/dev/acpica/dbhistry.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: dbhistry - debugger HISTORY command
- * $Revision: 24 $
+ * $Revision: 25 $
*
*****************************************************************************/
@@ -118,9 +118,9 @@
#include "acpi.h"
#include "acdebug.h"
-#ifdef ENABLE_DEBUGGER
+#ifdef ACPI_DEBUGGER
-#define _COMPONENT ACPI_DEBUGGER
+#define _COMPONENT ACPI_CA_DEBUGGER
ACPI_MODULE_NAME ("dbhistry")
@@ -287,5 +287,5 @@ AcpiDbGetFromHistory (
}
-#endif /* ENABLE_DEBUGGER */
+#endif /* ACPI_DEBUGGER */
diff --git a/sys/contrib/dev/acpica/dbinput.c b/sys/contrib/dev/acpica/dbinput.c
index bc3c385..208be5d 100644
--- a/sys/contrib/dev/acpica/dbinput.c
+++ b/sys/contrib/dev/acpica/dbinput.c
@@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: dbinput - user front-end to the AML debugger
- * $Revision: 86 $
+ * $Revision: 87 $
*
******************************************************************************/
@@ -119,9 +119,9 @@
#include "acdebug.h"
-#ifdef ENABLE_DEBUGGER
+#ifdef ACPI_DEBUGGER
-#define _COMPONENT ACPI_DEBUGGER
+#define _COMPONENT ACPI_CA_DEBUGGER
ACPI_MODULE_NAME ("dbinput")
@@ -980,5 +980,5 @@ AcpiDbUserCommands (
}
-#endif /* ENABLE_DEBUGGER */
+#endif /* ACPI_DEBUGGER */
diff --git a/sys/contrib/dev/acpica/dbstats.c b/sys/contrib/dev/acpica/dbstats.c
index a6db41e..ec20e5a 100644
--- a/sys/contrib/dev/acpica/dbstats.c
+++ b/sys/contrib/dev/acpica/dbstats.c
@@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: dbstats - Generation and display of ACPI table statistics
- * $Revision: 60 $
+ * $Revision: 61 $
*
******************************************************************************/
@@ -119,9 +119,9 @@
#include <acdebug.h>
#include <acnamesp.h>
-#ifdef ENABLE_DEBUGGER
+#ifdef ACPI_DEBUGGER
-#define _COMPONENT ACPI_DEBUGGER
+#define _COMPONENT ACPI_CA_DEBUGGER
ACPI_MODULE_NAME ("dbstats")
/*
@@ -240,8 +240,6 @@ AcpiDbEnumerateObject (
}
-#ifndef PARSER_ONLY
-
/*******************************************************************************
*
* FUNCTION: AcpiDbClassifyOneObject
@@ -346,8 +344,6 @@ AcpiDbCountNamespaceObjects (
FALSE, AcpiDbClassifyOneObject, NULL, NULL);
}
-#endif
-
/*******************************************************************************
*
@@ -395,13 +391,11 @@ AcpiDbDisplayStatistics (
switch (Type)
{
-#ifndef PARSER_ONLY
case CMD_STAT_ALLOCATIONS:
#ifdef ACPI_DBG_TRACK_ALLOCATIONS
AcpiUtDumpAllocationInfo ();
#endif
break;
-#endif
case CMD_STAT_TABLES:
@@ -414,8 +408,6 @@ AcpiDbDisplayStatistics (
case CMD_STAT_OBJECTS:
-#ifndef PARSER_ONLY
-
AcpiDbCountNamespaceObjects ();
AcpiOsPrintf ("\nObjects defined in the current namespace:\n\n");
@@ -432,8 +424,6 @@ AcpiDbDisplayStatistics (
AcpiOsPrintf ("%16.16s % 10ld% 10ld\n", "TOTALS:",
AcpiGbl_NumNodes, AcpiGbl_NumObjects);
-
-#endif
break;
case CMD_STAT_MEMORY:
@@ -537,7 +527,7 @@ AcpiDbDisplayStatistics (
case CMD_STAT_STACK:
-#if defined(ACPI_DEBUG)
+#if defined(ACPI_DEBUG_OUTPUT)
Size = (UINT32) (AcpiGbl_EntryStackPointer - AcpiGbl_LowestStackPointer);
@@ -558,4 +548,4 @@ AcpiDbDisplayStatistics (
}
-#endif /* ENABLE_DEBUGGER */
+#endif /* ACPI_DEBUGGER */
diff --git a/sys/contrib/dev/acpica/dbutils.c b/sys/contrib/dev/acpica/dbutils.c
index f939f35..5ecdc63 100644
--- a/sys/contrib/dev/acpica/dbutils.c
+++ b/sys/contrib/dev/acpica/dbutils.c
@@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: dbutils - AML debugger utilities
- * $Revision: 55 $
+ * $Revision: 56 $
*
******************************************************************************/
@@ -123,9 +123,9 @@
#include "acdispat.h"
-#ifdef ENABLE_DEBUGGER
+#ifdef ACPI_DEBUGGER
-#define _COMPONENT ACPI_DEBUGGER
+#define _COMPONENT ACPI_CA_DEBUGGER
ACPI_MODULE_NAME ("dbutils")
@@ -486,6 +486,6 @@ AcpiDbLocalNsLookup (
}
-#endif /* ENABLE_DEBUGGER */
+#endif /* ACPI_DEBUGGER */
diff --git a/sys/contrib/dev/acpica/dbxface.c b/sys/contrib/dev/acpica/dbxface.c
index 5bad063..5844695 100644
--- a/sys/contrib/dev/acpica/dbxface.c
+++ b/sys/contrib/dev/acpica/dbxface.c
@@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: dbxface - AML Debugger external interfaces
- * $Revision: 61 $
+ * $Revision: 64 $
*
******************************************************************************/
@@ -121,9 +121,9 @@
#include "acdisasm.h"
-#ifdef ENABLE_DEBUGGER
+#ifdef ACPI_DEBUGGER
-#define _COMPONENT ACPI_DEBUGGER
+#define _COMPONENT ACPI_CA_DEBUGGER
ACPI_MODULE_NAME ("dbxface")
@@ -158,7 +158,7 @@ AcpiDbSingleStep (
/* Check for single-step breakpoint */
- if (WalkState->MethodBreakpoint &&
+ if (WalkState->MethodBreakpoint &&
(WalkState->MethodBreakpoint <= Op->Common.AmlOffset))
{
/* Check if the breakpoint has been reached or passed */
@@ -172,7 +172,7 @@ AcpiDbSingleStep (
/* Check for user breakpoint (Must be on exact Aml offset) */
- else if (WalkState->UserBreakpoint &&
+ else if (WalkState->UserBreakpoint &&
(WalkState->UserBreakpoint == Op->Common.AmlOffset))
{
AcpiOsPrintf ("***UserBreakpoint*** at AML offset %X\n", Op->Common.AmlOffset);
@@ -292,7 +292,7 @@ AcpiDbSingleStep (
/* Restore everything */
Op->Common.Next = Next;
- AcpiOsPrintf ("\n");
+ AcpiOsPrintf ("\n\n");
AcpiDbgLevel = OriginalDebugLevel;
}
@@ -512,4 +512,4 @@ AcpiDbTerminate (void)
}
-#endif /* ENABLE_DEBUGGER */
+#endif /* ACPI_DEBUGGER */
diff --git a/sys/contrib/dev/acpica/dmbuffer.c b/sys/contrib/dev/acpica/dmbuffer.c
index b349415..8d88136 100644
--- a/sys/contrib/dev/acpica/dmbuffer.c
+++ b/sys/contrib/dev/acpica/dmbuffer.c
@@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: dmbuffer - AML disassembler, buffer and string support
- * $Revision: 5 $
+ * $Revision: 7 $
*
******************************************************************************/
@@ -123,7 +123,7 @@
#ifdef ACPI_DISASSEMBLER
-#define _COMPONENT ACPI_DEBUGGER
+#define _COMPONENT ACPI_CA_DEBUGGER
ACPI_MODULE_NAME ("dmbuffer")
@@ -513,7 +513,7 @@ AcpiDmUnicode (
/*******************************************************************************
*
- * FUNCTION: AcpiIsEisaId
+ * FUNCTION: AcpiIsEisaId
*
* PARAMETERS: Op - Op to be examined
*
@@ -541,7 +541,7 @@ AcpiIsEisaId (
{
return;
}
-
+
/* We are looking for _HID */
if (ACPI_STRNCMP ((char *) &Name, "_HID", 4))
@@ -587,7 +587,7 @@ AcpiIsEisaId (
/*******************************************************************************
*
- * FUNCTION: AcpiDmEisaId
+ * FUNCTION: AcpiDmEisaId
*
* PARAMETERS: EncodedId - Raw encoded EISA ID.
*
diff --git a/sys/contrib/dev/acpica/dmnames.c b/sys/contrib/dev/acpica/dmnames.c
index b773c91..18e3614 100644
--- a/sys/contrib/dev/acpica/dmnames.c
+++ b/sys/contrib/dev/acpica/dmnames.c
@@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: dmnames - AML disassembler, names, namestrings, pathnames
- * $Revision: 2 $
+ * $Revision: 3 $
*
******************************************************************************/
@@ -124,7 +124,7 @@
#ifdef ACPI_DISASSEMBLER
-#define _COMPONENT ACPI_DEBUGGER
+#define _COMPONENT ACPI_CA_DEBUGGER
ACPI_MODULE_NAME ("dmnames")
@@ -145,7 +145,7 @@ AcpiDmValidateName (
char *Name,
ACPI_PARSE_OBJECT *Op)
{
-#ifdef PARSER_ONLY
+#if 0
ACPI_PARSE_OBJECT *TargetOp;
@@ -226,58 +226,6 @@ AcpiDmDumpName (
*
******************************************************************************/
-#ifdef PARSER_ONLY
-
-ACPI_STATUS
-AcpiPsDisplayObjectPathname (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *TargetOp;
- char *Name;
-
-
- if (Op->Common.Flags & ACPI_PARSEOP_GENERIC)
- {
- Name = Op->Common.Value.Name;
- if (Name[0] == '\\')
- {
- AcpiOsPrintf (" (Fully Qualified Pathname)");
- return (AE_OK);
- }
- }
- else
- {
- Name = (char *) &Op->Named.Name;
- }
-
- /* Search parent tree up to the root if necessary */
-
- TargetOp = AcpiPsFind (Op, Name, 0, 0);
- if (!TargetOp)
- {
- /*
- * Didn't find the name in the parse tree. This may be
- * a problem, or it may simply be one of the predefined names
- * (such as _OS_). Rather than worry about looking up all
- * the predefined names, just display the name as given
- */
- AcpiOsPrintf (" **** Path not found in parse tree");
- }
- else
- {
- /* The target was found, print the name and complete path */
-
- AcpiOsPrintf (" (Path ");
- AcpiDmDisplayPath (TargetOp);
- AcpiOsPrintf (")");
- }
-
- return (AE_OK);
-}
-
-#else
-
ACPI_STATUS
AcpiPsDisplayObjectPathname (
ACPI_WALK_STATE *WalkState,
@@ -341,8 +289,6 @@ Exit:
return (Status);
}
-#endif
-
/*******************************************************************************
*
diff --git a/sys/contrib/dev/acpica/dmopcode.c b/sys/contrib/dev/acpica/dmopcode.c
index b08042e..2a35fd3 100644
--- a/sys/contrib/dev/acpica/dmopcode.c
+++ b/sys/contrib/dev/acpica/dmopcode.c
@@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: dmopcode - AML disassembler, specific AML opcodes
- * $Revision: 75 $
+ * $Revision: 77 $
*
******************************************************************************/
@@ -122,7 +122,7 @@
#ifdef ACPI_DISASSEMBLER
-#define _COMPONENT ACPI_DEBUGGER
+#define _COMPONENT ACPI_CA_DEBUGGER
ACPI_MODULE_NAME ("dmopcode")
@@ -419,7 +419,7 @@ AcpiDmDisassembleOneOp (
case AML_BYTE_OP:
- AcpiOsPrintf ("0x%.2X", (UINT32) Op->Common.Value.Integer8);
+ AcpiOsPrintf ("0x%2.2X", (UINT32) Op->Common.Value.Integer8);
break;
@@ -431,7 +431,7 @@ AcpiDmDisassembleOneOp (
}
else
{
- AcpiOsPrintf ("0x%.2X", (UINT32) Op->Common.Value.Integer16);
+ AcpiOsPrintf ("0x%4.4X", (UINT32) Op->Common.Value.Integer16);
}
break;
@@ -442,30 +442,17 @@ AcpiDmDisassembleOneOp (
{
AcpiDmEisaId (Op->Common.Value.Integer32);
}
- else if ((Op->Common.Value.Integer32 == ACPI_UINT32_MAX) &&
- (AcpiGbl_DSDT->Revision < 2))
- {
- AcpiOsPrintf ("Ones");
- }
else
{
- AcpiOsPrintf ("0x%.2X", Op->Common.Value.Integer32);
+ AcpiOsPrintf ("0x%8.8X", Op->Common.Value.Integer32);
}
break;
case AML_QWORD_OP:
- if ((Op->Common.Value.Integer == ACPI_INTEGER_MAX) &&
- (AcpiGbl_DSDT->Revision >= 2))
- {
- AcpiOsPrintf ("Ones");
- }
- else
- {
- AcpiOsPrintf ("0x%X%8.8X", Op->Common.Value.Integer64.Hi,
- Op->Common.Value.Integer64.Lo);
- }
+ AcpiOsPrintf ("0x%8.8X%8.8X", Op->Common.Value.Integer64.Hi,
+ Op->Common.Value.Integer64.Lo);
break;
@@ -596,7 +583,7 @@ AcpiDmDisassembleOneOp (
AcpiOsPrintf ("%s", OpInfo->Name);
-#ifdef ENABLE_DEBUGGER
+#ifdef ACPI_DEBUGGER
if ((Op->Common.AmlOpcode == AML_INT_RETURN_VALUE_OP) &&
(WalkState) &&
diff --git a/sys/contrib/dev/acpica/dmresrc.c b/sys/contrib/dev/acpica/dmresrc.c
index b60f0c2..03d34bc 100644
--- a/sys/contrib/dev/acpica/dmresrc.c
+++ b/sys/contrib/dev/acpica/dmresrc.c
@@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: dmresrc.c - Resource Descriptor disassembly
- * $Revision: 3 $
+ * $Revision: 5 $
*
******************************************************************************/
@@ -121,7 +121,7 @@
#ifdef ACPI_DISASSEMBLER
-#define _COMPONENT ACPI_DEBUGGER
+#define _COMPONENT ACPI_CA_DEBUGGER
ACPI_MODULE_NAME ("dbresrc")
@@ -305,7 +305,7 @@ AcpiDmResourceDescriptor (
AcpiOsPrintf ("/*** Missing EndDependentFunctions descriptor */");
/*
- * We could fix the problem, but then the ASL would not match the AML
+ * We could fix the problem, but then the ASL would not match the AML
* So, we don't do this:
* AcpiDmEndDependentDescriptor (DescriptorBody, Length, Level);
*/
@@ -391,7 +391,7 @@ AcpiDmResourceDescriptor (
*
* PARAMETERS: Op - Buffer Op to be examined
*
- * RETURN: TRUE if this Buffer Op contains a valid resource
+ * RETURN: TRUE if this Buffer Op contains a valid resource
* descriptor.
*
* DESCRIPTION: Walk a byte list to determine if it consists of a valid set
@@ -441,7 +441,7 @@ AcpiDmIsResourceDescriptor (
}
/*
- * Walk the byte list. Abort on any invalid descriptor ID or
+ * Walk the byte list. Abort on any invalid descriptor ID or
* or length
*/
for (CurrentByteOffset = 0; CurrentByteOffset < ByteCount; )
diff --git a/sys/contrib/dev/acpica/dmresrcl.c b/sys/contrib/dev/acpica/dmresrcl.c
index 995569f..df27704 100644
--- a/sys/contrib/dev/acpica/dmresrcl.c
+++ b/sys/contrib/dev/acpica/dmresrcl.c
@@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: dmresrcl.c - "Large" Resource Descriptor disassembly
- * $Revision: 5 $
+ * $Revision: 7 $
*
******************************************************************************/
@@ -121,7 +121,7 @@
#ifdef ACPI_DISASSEMBLER
-#define _COMPONENT ACPI_DEBUGGER
+#define _COMPONENT ACPI_CA_DEBUGGER
ACPI_MODULE_NAME ("dbresrcl")
@@ -286,19 +286,19 @@ AcpiDmDwordDescriptor (
AcpiOsPrintf ("\n");
AcpiDmIndent (Level + 1);
- AcpiOsPrintf ("0x%8.8X,\n",
+ AcpiOsPrintf ("0x%8.8X,\n",
Resource->Granularity);
AcpiDmIndent (Level + 1);
AcpiOsPrintf ("0x%8.8X,\n",
Resource->AddressMin);
AcpiDmIndent (Level + 1);
- AcpiOsPrintf ("0x%8.8X,\n",
+ AcpiOsPrintf ("0x%8.8X,\n",
Resource->AddressMax);
AcpiDmIndent (Level + 1);
AcpiOsPrintf ("0x%8.8X,\n",
Resource->TranslationOffset);
AcpiDmIndent (Level + 1);
- AcpiOsPrintf ("0x%8.8X",
+ AcpiOsPrintf ("0x%8.8X",
Resource->AddressLength);
/* Optional fields */
@@ -512,9 +512,9 @@ AcpiDmGenericRegisterDescriptor (
AcpiDmIndent (Level);
AcpiOsPrintf ("Register (");
-
+
AcpiDmAddressSpace (Resource->AddressSpaceId);
-
+
AcpiOsPrintf ("0x%2.2X, 0x%2.2X, 0x%8.8X%8.8X)\n",
(UINT32) Resource->BitWidth,
(UINT32) Resource->BitOffset,
diff --git a/sys/contrib/dev/acpica/dmresrcs.c b/sys/contrib/dev/acpica/dmresrcs.c
index 114e1d1..a0ecee9 100644
--- a/sys/contrib/dev/acpica/dmresrcs.c
+++ b/sys/contrib/dev/acpica/dmresrcs.c
@@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: dmresrcs.c - "Small" Resource Descriptor disassembly
- * $Revision: 2 $
+ * $Revision: 3 $
*
******************************************************************************/
@@ -121,7 +121,7 @@
#ifdef ACPI_DISASSEMBLER
-#define _COMPONENT ACPI_DEBUGGER
+#define _COMPONENT ACPI_CA_DEBUGGER
ACPI_MODULE_NAME ("dbresrcs")
diff --git a/sys/contrib/dev/acpica/dmutils.c b/sys/contrib/dev/acpica/dmutils.c
index 1cfd5b5..bb6fca0 100644
--- a/sys/contrib/dev/acpica/dmutils.c
+++ b/sys/contrib/dev/acpica/dmutils.c
@@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: dmutils - AML disassembler utilities
- * $Revision: 2 $
+ * $Revision: 4 $
*
******************************************************************************/
@@ -122,12 +122,10 @@
#ifdef ACPI_DISASSEMBLER
-#define _COMPONENT ACPI_DEBUGGER
+#define _COMPONENT ACPI_CA_DEBUGGER
ACPI_MODULE_NAME ("dmutils")
-
-
/* Data used in keeping track of fields */
#if 0
const NATIVE_CHAR *AcpiGbl_FENames[NUM_FIELD_NAMES] =
@@ -401,5 +399,4 @@ AcpiDmCommaIfFieldMember (
}
-
#endif
diff --git a/sys/contrib/dev/acpica/dmwalk.c b/sys/contrib/dev/acpica/dmwalk.c
index 86404e2..2883a29 100644
--- a/sys/contrib/dev/acpica/dmwalk.c
+++ b/sys/contrib/dev/acpica/dmwalk.c
@@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: dmwalk - AML disassembly tree walk
- * $Revision: 6 $
+ * $Revision: 8 $
*
******************************************************************************/
@@ -124,14 +124,13 @@
#ifdef ACPI_DISASSEMBLER
-#define _COMPONENT ACPI_DEBUGGER
+#define _COMPONENT ACPI_CA_DEBUGGER
ACPI_MODULE_NAME ("dmwalk")
#define DB_FULL_OP_INFO "%5.5X #%4.4hX "
-
/*******************************************************************************
*
* FUNCTION: AcpiDmDisassemble
@@ -421,7 +420,7 @@ AcpiDmListType (
*
* RETURN: Status
*
- * DESCRIPTION: First visitation of a parse object during tree descent.
+ * DESCRIPTION: First visitation of a parse object during tree descent.
* Decode opcode name and begin parameter list(s), if any.
*
******************************************************************************/
@@ -483,7 +482,7 @@ AcpiDmDescendingOp (
*/
OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- if ((OpInfo->Flags & AML_HAS_ARGS) ||
+ if ((OpInfo->Flags & AML_HAS_ARGS) ||
(Op->Common.AmlOpcode == AML_EVENT_OP))
{
/* This opcode has an argument list */
@@ -680,7 +679,7 @@ AcpiDmDescendingOp (
if (Op->Common.DisasmOpcode == ACPI_DASM_RESOURCE)
{
/*
- * We have a resource list. Don't need to output
+ * We have a resource list. Don't need to output
* the buffer size Op. Open up a new block
*/
NextOp->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
diff --git a/sys/contrib/dev/acpica/dsfield.c b/sys/contrib/dev/acpica/dsfield.c
index 9188b8d..cb054aa 100644
--- a/sys/contrib/dev/acpica/dsfield.c
+++ b/sys/contrib/dev/acpica/dsfield.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: dsfield - Dispatcher field routines
- * $Revision: 65 $
+ * $Revision: 66 $
*
*****************************************************************************/
@@ -312,7 +312,7 @@ AcpiDsGetFieldNames (
{
case AML_INT_RESERVEDFIELD_OP:
- Position = (ACPI_INTEGER) Info->FieldBitPosition
+ Position = (ACPI_INTEGER) Info->FieldBitPosition
+ (ACPI_INTEGER) Arg->Common.Value.Size;
if (Position > ACPI_UINT32_MAX)
@@ -374,7 +374,7 @@ AcpiDsGetFieldNames (
/* Keep track of bit position for the next field */
- Position = (ACPI_INTEGER) Info->FieldBitPosition
+ Position = (ACPI_INTEGER) Info->FieldBitPosition
+ (ACPI_INTEGER) Arg->Common.Value.Size;
if (Position > ACPI_UINT32_MAX)
diff --git a/sys/contrib/dev/acpica/dsmethod.c b/sys/contrib/dev/acpica/dsmethod.c
index 927c263..6de47cf 100644
--- a/sys/contrib/dev/acpica/dsmethod.c
+++ b/sys/contrib/dev/acpica/dsmethod.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: dsmethod - Parser/Interpreter interface - control method parsing
- * $Revision: 87 $
+ * $Revision: 88 $
*
*****************************************************************************/
@@ -249,7 +249,7 @@ AcpiDsParseMethod (
return_ACPI_STATUS (Status);
}
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
+ ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
"**** [%4.4s] Parsed **** NamedObj=%p Op=%p\n",
((ACPI_NAMESPACE_NODE *) ObjHandle)->Name.Ascii, ObjHandle, Op));
@@ -459,7 +459,7 @@ AcpiDsCallControlMethod (
ThisWalkState->NumOperands = 0;
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
+ ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
"Starting nested execution, newstate=%p\n", NextWalkState));
return_ACPI_STATUS (AE_OK);
diff --git a/sys/contrib/dev/acpica/dsmthdat.c b/sys/contrib/dev/acpica/dsmthdat.c
index 12bfc85..e466158 100644
--- a/sys/contrib/dev/acpica/dsmthdat.c
+++ b/sys/contrib/dev/acpica/dsmthdat.c
@@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: dsmthdat - control method arguments and local variables
- * $Revision: 62 $
+ * $Revision: 63 $
*
******************************************************************************/
@@ -704,24 +704,43 @@ AcpiDsStoreObjectToLocal (
*
* Weird, but true.
*/
- if ((Opcode == AML_ARG_OP) &&
- (ACPI_GET_DESCRIPTOR_TYPE (CurrentObjDesc) == ACPI_DESC_TYPE_NAMED))
+ if (Opcode == AML_ARG_OP)
{
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "Arg (%p) is an ObjRef(Node), storing in node %p\n",
- ObjDesc, CurrentObjDesc));
-
- /* Detach an existing object from the Node */
-
- AcpiNsDetachObject ((ACPI_NAMESPACE_NODE *) CurrentObjDesc);
-
- /*
- * Store this object into the Node
- * (perform the indirect store)
+ /*
+ * Make sure that the object is the correct type. This may be overkill, but
+ * it is here because references were NS nodes in the past. Now they are
+ * operand objects of type Reference.
*/
- Status = AcpiNsAttachObject ((ACPI_NAMESPACE_NODE *) CurrentObjDesc,
- ObjDesc, ACPI_GET_OBJECT_TYPE (ObjDesc));
- return_ACPI_STATUS (Status);
+ if (ACPI_GET_DESCRIPTOR_TYPE (CurrentObjDesc) != ACPI_DESC_TYPE_OPERAND)
+ {
+ ACPI_REPORT_ERROR (("Invalid descriptor type while storing to method arg: %X\n",
+ CurrentObjDesc->Common.Type));
+ return_ACPI_STATUS (AE_AML_INTERNAL);
+ }
+
+ /*
+ * If we have a valid reference object that came from RefOf(), do the
+ * indirect store
+ */
+ if ((CurrentObjDesc->Common.Type == INTERNAL_TYPE_REFERENCE) &&
+ (CurrentObjDesc->Reference.Opcode == AML_REF_OF_OP))
+ {
+ ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
+ "Arg (%p) is an ObjRef(Node), storing in node %p\n",
+ ObjDesc, CurrentObjDesc));
+
+ /* Detach an existing object from the referenced Node */
+
+ AcpiNsDetachObject (CurrentObjDesc->Reference.Object);
+
+ /*
+ * Store this object into the Node
+ * (perform the indirect store)
+ */
+ Status = AcpiNsAttachObject (CurrentObjDesc->Reference.Object,
+ ObjDesc, ACPI_GET_OBJECT_TYPE (ObjDesc));
+ return_ACPI_STATUS (Status);
+ }
}
/*
diff --git a/sys/contrib/dev/acpica/dsobject.c b/sys/contrib/dev/acpica/dsobject.c
index 2acf819..7f54e84 100644
--- a/sys/contrib/dev/acpica/dsobject.c
+++ b/sys/contrib/dev/acpica/dsobject.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: dsobject - Dispatcher object management routines
- * $Revision: 105 $
+ * $Revision: 106 $
*
*****************************************************************************/
@@ -267,7 +267,7 @@ AcpiDsInitOneObject (
*
* RETURN: Status
*
- * DESCRIPTION: Walk the namespace starting at "StartNode" and perform any
+ * DESCRIPTION: Walk the namespace starting at "StartNode" and perform any
* necessary initialization on the objects found therein
*
******************************************************************************/
@@ -300,7 +300,7 @@ AcpiDsInitializeObjects (
AcpiDsInitOneObject, &Info, NULL);
if (ACPI_FAILURE (Status))
{
- ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "WalkNamespace failed, %s\n",
+ ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "WalkNamespace failed, %s\n",
AcpiFormatException (Status)));
}
@@ -461,7 +461,7 @@ AcpiDsBuildInternalBufferObj (
/*
* Second arg is the buffer data (optional) ByteList can be either
- * individual bytes or a string initializer. In either case, a
+ * individual bytes or a string initializer. In either case, a
* ByteList appears in the AML.
*/
Arg = Op->Common.Value.Arg; /* skip first arg */
@@ -471,7 +471,7 @@ AcpiDsBuildInternalBufferObj (
{
if (ByteList->Common.AmlOpcode != AML_INT_BYTELIST_OP)
{
- ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
+ ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
"Expecting bytelist, got AML opcode %X in op %p\n",
ByteList->Common.AmlOpcode, ByteList));
@@ -484,7 +484,7 @@ AcpiDsBuildInternalBufferObj (
/*
* The buffer length (number of bytes) will be the larger of:
- * 1) The specified buffer length and
+ * 1) The specified buffer length and
* 2) The length of the initializer byte list
*/
ObjDesc->Buffer.Length = BufferLength;
@@ -507,7 +507,7 @@ AcpiDsBuildInternalBufferObj (
if (!ObjDesc->Buffer.Pointer)
{
AcpiUtDeleteObjectDesc (ObjDesc);
- return_ACPI_STATUS (AE_NO_MEMORY);
+ return_ACPI_STATUS (AE_NO_MEMORY);
}
/* Initialize buffer from the ByteList (if present) */
@@ -789,7 +789,7 @@ AcpiDsInitObjectFromOp (
break;
- case ACPI_TYPE_INTEGER:
+ case ACPI_TYPE_INTEGER:
switch (OpInfo->Type)
{
@@ -882,7 +882,7 @@ AcpiDsInitObjectFromOp (
ObjDesc->Reference.Opcode = AML_LOCAL_OP;
ObjDesc->Reference.Offset = Opcode - AML_LOCAL_OP;
#ifndef ACPI_NO_METHOD_EXECUTION
- AcpiDsMethodDataGetNode (AML_LOCAL_OP, ObjDesc->Reference.Offset,
+ AcpiDsMethodDataGetNode (AML_LOCAL_OP, ObjDesc->Reference.Offset,
WalkState, (ACPI_NAMESPACE_NODE **) &ObjDesc->Reference.Object);
#endif
break;
@@ -924,4 +924,3 @@ AcpiDsInitObjectFromOp (
}
-
diff --git a/sys/contrib/dev/acpica/dsopcode.c b/sys/contrib/dev/acpica/dsopcode.c
index 8cf27ae..93a2d52 100644
--- a/sys/contrib/dev/acpica/dsopcode.c
+++ b/sys/contrib/dev/acpica/dsopcode.c
@@ -2,7 +2,7 @@
*
* Module Name: dsopcode - Dispatcher Op Region support and handling of
* "control" opcodes
- * $Revision: 80 $
+ * $Revision: 81 $
*
*****************************************************************************/
@@ -319,7 +319,7 @@ AcpiDsGetBufferArguments (
Node = ObjDesc->Buffer.Node;
if (!Node)
{
- ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
+ ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
"No pointer back to NS node in buffer %p\n", ObjDesc));
return_ACPI_STATUS (AE_AML_INTERNAL);
}
@@ -368,7 +368,7 @@ AcpiDsGetPackageArguments (
Node = ObjDesc->Package.Node;
if (!Node)
{
- ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
+ ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
"No pointer back to NS node in package %p\n", ObjDesc));
return_ACPI_STATUS (AE_AML_INTERNAL);
}
@@ -515,7 +515,7 @@ AcpiDsInitBufferField (
/*
* The last parameter to all of these opcodes (ResultDesc) started
* out as a NameString, and should therefore now be a NS node
- * after resolution in AcpiExResolveOperands().
+ * after resolution in AcpiExResolveOperands().
*/
if (ACPI_GET_DESCRIPTOR_TYPE (ResultDesc) != ACPI_DESC_TYPE_NAMED)
{
@@ -711,10 +711,10 @@ AcpiDsEvalBufferFieldOperands (
/* Resolve the operands */
- Status = AcpiExResolveOperands (Op->Common.AmlOpcode,
+ Status = AcpiExResolveOperands (Op->Common.AmlOpcode,
ACPI_WALK_OPERANDS, WalkState);
- ACPI_DUMP_OPERANDS (ACPI_WALK_OPERANDS, ACPI_IMODE_EXECUTE,
+ ACPI_DUMP_OPERANDS (ACPI_WALK_OPERANDS, ACPI_IMODE_EXECUTE,
AcpiPsGetOpcodeName (Op->Common.AmlOpcode),
WalkState->NumOperands, "after AcpiExResolveOperands");
@@ -732,16 +732,16 @@ AcpiDsEvalBufferFieldOperands (
{
/* NOTE: Slightly different operands for this opcode */
- Status = AcpiDsInitBufferField (Op->Common.AmlOpcode, ObjDesc,
- WalkState->Operands[0], WalkState->Operands[1],
+ Status = AcpiDsInitBufferField (Op->Common.AmlOpcode, ObjDesc,
+ WalkState->Operands[0], WalkState->Operands[1],
WalkState->Operands[2], WalkState->Operands[3]);
}
else
{
/* All other, CreateXxxField opcodes */
- Status = AcpiDsInitBufferField (Op->Common.AmlOpcode, ObjDesc,
- WalkState->Operands[0], WalkState->Operands[1],
+ Status = AcpiDsInitBufferField (Op->Common.AmlOpcode, ObjDesc,
+ WalkState->Operands[0], WalkState->Operands[1],
NULL, WalkState->Operands[2]);
}
@@ -848,7 +848,6 @@ AcpiDsEvalRegionOperands (
}
-
/*****************************************************************************
*
* FUNCTION: AcpiDsEvalDataObjectOperands
@@ -910,7 +909,7 @@ AcpiDsEvalDataObjectOperands (
AcpiUtRemoveReference (ArgDesc);
- /*
+ /*
* Create the actual data object
*/
switch (Op->Common.AmlOpcode)
@@ -950,7 +949,6 @@ AcpiDsEvalDataObjectOperands (
}
-
/*******************************************************************************
*
* FUNCTION: AcpiDsExecBeginControlOp
diff --git a/sys/contrib/dev/acpica/dswexec.c b/sys/contrib/dev/acpica/dswexec.c
index f8582e3..316442b 100644
--- a/sys/contrib/dev/acpica/dswexec.c
+++ b/sys/contrib/dev/acpica/dswexec.c
@@ -2,7 +2,7 @@
*
* Module Name: dswexec - Dispatcher method execution callbacks;
* dispatch to interpreter.
- * $Revision: 94 $
+ * $Revision: 95 $
*
*****************************************************************************/
@@ -417,7 +417,6 @@ AcpiDsExecBeginOp (
}
-
/*****************************************************************************
*
* FUNCTION: AcpiDsExecEndOp
@@ -660,7 +659,7 @@ AcpiDsExecEndOp (
case AML_INT_EVAL_SUBTREE_OP:
- Status = AcpiDsEvalDataObjectOperands (WalkState, Op,
+ Status = AcpiDsEvalDataObjectOperands (WalkState, Op,
AcpiNsGetAttachedObject (Op->Common.Parent->Common.Node));
break;
diff --git a/sys/contrib/dev/acpica/dswload.c b/sys/contrib/dev/acpica/dswload.c
index 6e794be..161c570 100644
--- a/sys/contrib/dev/acpica/dswload.c
+++ b/sys/contrib/dev/acpica/dswload.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: dswload - Dispatcher namespace load callbacks
- * $Revision: 69 $
+ * $Revision: 70 $
*
*****************************************************************************/
@@ -404,7 +404,7 @@ AcpiDsLoad2BeginOp (
NATIVE_CHAR *BufferPtr;
- ACPI_FUNCTION_NAME ("DsLoad2BeginOp");
+ ACPI_FUNCTION_TRACE ("DsLoad2BeginOp");
Op = WalkState->Op;
@@ -417,7 +417,7 @@ AcpiDsLoad2BeginOp (
if ((!(WalkState->OpInfo->Flags & AML_NSOPCODE) && (WalkState->Opcode != AML_INT_NAMEPATH_OP)) ||
(!(WalkState->OpInfo->Flags & AML_NAMED)))
{
- return (AE_OK);
+ return_ACPI_STATUS (AE_OK);
}
/*
@@ -432,7 +432,7 @@ AcpiDsLoad2BeginOp (
{
/* No name, just exit */
- return (AE_OK);
+ return_ACPI_STATUS (AE_OK);
}
}
else
@@ -488,11 +488,11 @@ AcpiDsLoad2BeginOp (
Status = AcpiDsScopeStackPush (Node, ObjectType, WalkState);
if (ACPI_FAILURE (Status))
{
- return (Status);
+ return_ACPI_STATUS (Status);
}
}
- return (AE_OK);
+ return_ACPI_STATUS (AE_OK);
}
/*
@@ -513,7 +513,7 @@ AcpiDsLoad2BeginOp (
Op = AcpiPsAllocOp (WalkState->Opcode);
if (!Op)
{
- return (AE_NO_MEMORY);
+ return_ACPI_STATUS (AE_NO_MEMORY);
}
/* Initialize the new op */
@@ -535,7 +535,7 @@ AcpiDsLoad2BeginOp (
Op->Common.Node = Node;
}
- return (Status);
+ return_ACPI_STATUS (Status);
}
@@ -569,7 +569,7 @@ AcpiDsLoad2EndOp (
#endif
- ACPI_FUNCTION_NAME ("DsLoad2EndOp");
+ ACPI_FUNCTION_TRACE ("DsLoad2EndOp");
Op = WalkState->Op;
ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Opcode [%s] Op %p State %p\n",
@@ -579,7 +579,7 @@ AcpiDsLoad2EndOp (
if (!(WalkState->OpInfo->Flags & AML_NSOBJECT))
{
- return (AE_OK);
+ return_ACPI_STATUS (AE_OK);
}
if (Op->Common.AmlOpcode == AML_SCOPE_OP)
@@ -606,7 +606,7 @@ AcpiDsLoad2EndOp (
/* Pop the scope stack */
- if (AcpiNsOpensScope (ObjectType))
+ if (AcpiNsOpensScope (ObjectType) && (Op->Common.AmlOpcode != AML_INT_METHODCALL_OP))
{
ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "(%s) Popping scope for Op %p\n",
AcpiUtGetTypeName (ObjectType), Op));
@@ -614,7 +614,7 @@ AcpiDsLoad2EndOp (
Status = AcpiDsScopeStackPop (WalkState);
if (ACPI_FAILURE (Status))
{
- return (Status);
+ return_ACPI_STATUS (Status);
}
}
@@ -871,7 +871,7 @@ Cleanup:
WalkState->Operands[0] = NULL;
WalkState->NumOperands = 0;
- return (Status);
+ return_ACPI_STATUS (Status);
}
diff --git a/sys/contrib/dev/acpica/dswstate.c b/sys/contrib/dev/acpica/dswstate.c
index 2b83708..8da290a 100644
--- a/sys/contrib/dev/acpica/dswstate.c
+++ b/sys/contrib/dev/acpica/dswstate.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: dswstate - Dispatcher parse tree walk management routines
- * $Revision: 67 $
+ * $Revision: 68 $
*
*****************************************************************************/
@@ -962,6 +962,8 @@ AcpiDsCreateWalkState (
WalkState->MethodDesc = MthDesc;
WalkState->Thread = Thread;
+ WalkState->ParserState.StartOp = Origin;
+
/* Init the method args/local */
#if (!defined (ACPI_NO_METHOD_EXECUTION) && !defined (ACPI_CONSTANT_EVAL_ONLY))
@@ -1012,6 +1014,7 @@ AcpiDsInitAmlWalk (
{
ACPI_STATUS Status;
ACPI_PARSE_STATE *ParserState = &WalkState->ParserState;
+ ACPI_PARSE_OBJECT *ExtraOp;
ACPI_FUNCTION_TRACE ("DsInitAmlWalk");
@@ -1059,9 +1062,26 @@ AcpiDsInitAmlWalk (
}
else
{
- /* Setup the current scope */
-
- ParserState->StartNode = ParserState->StartOp->Common.Node;
+ /*
+ * Setup the current scope.
+ * Find a Named Op that has a namespace node associated with it.
+ * search upwards from this Op. Current scope is the first
+ * Op with a namespace node.
+ */
+ ExtraOp = ParserState->StartOp;
+ while (ExtraOp && !ExtraOp->Common.Node)
+ {
+ ExtraOp = ExtraOp->Common.Parent;
+ }
+ if (!ExtraOp)
+ {
+ ParserState->StartNode = NULL;
+ }
+ else
+ {
+ ParserState->StartNode = ExtraOp->Common.Node;
+ }
+
if (ParserState->StartNode)
{
/* Push start scope on scope stack and make it current */
diff --git a/sys/contrib/dev/acpica/evevent.c b/sys/contrib/dev/acpica/evevent.c
index e4a22b3..46617c3 100644
--- a/sys/contrib/dev/acpica/evevent.c
+++ b/sys/contrib/dev/acpica/evevent.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: evevent - Fixed and General Purpose Even handling and dispatch
- * $Revision: 88 $
+ * $Revision: 90 $
*
*****************************************************************************/
@@ -198,7 +198,7 @@ AcpiEvHandlerInitialize (
ACPI_STATUS Status;
- ACPI_FUNCTION_TRACE ("EvInitialize");
+ ACPI_FUNCTION_TRACE ("EvHandlerInitialize");
/* Install the SCI handler */
@@ -545,12 +545,12 @@ AcpiEvGpeInitialize (void)
GpeRegisterInfo->BaseGpeNumber = (UINT8) (AcpiGbl_GpeBlockInfo[GpeBlock].BlockBaseNumber
+ (ACPI_MUL_8 (i)));
- ACPI_STORE_ADDRESS (GpeRegisterInfo->StatusAddress.Address,
- (ACPI_GET_ADDRESS (AcpiGbl_GpeBlockInfo[GpeBlock].BlockAddress->Address)
+ ACPI_STORE_ADDRESS (GpeRegisterInfo->StatusAddress.Address,
+ (ACPI_GET_ADDRESS (AcpiGbl_GpeBlockInfo[GpeBlock].BlockAddress->Address)
+ i));
ACPI_STORE_ADDRESS (GpeRegisterInfo->EnableAddress.Address,
- (ACPI_GET_ADDRESS (AcpiGbl_GpeBlockInfo[GpeBlock].BlockAddress->Address)
+ (ACPI_GET_ADDRESS (AcpiGbl_GpeBlockInfo[GpeBlock].BlockAddress->Address)
+ i
+ AcpiGbl_GpeBlockInfo[GpeBlock].RegisterCount));
@@ -599,7 +599,7 @@ AcpiEvGpeInitialize (void)
ACPI_LODWORD (ACPI_GET_ADDRESS (AcpiGbl_GpeBlockInfo[GpeBlock].BlockAddress->Address))));
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "GPE Block%d Range GPE #%2.2X to GPE #%2.2X\n",
- (INT32) GpeBlock,
+ (INT32) GpeBlock,
AcpiGbl_GpeBlockInfo[GpeBlock].BlockBaseNumber,
AcpiGbl_GpeBlockInfo[GpeBlock].BlockBaseNumber +
((AcpiGbl_GpeBlockInfo[GpeBlock].RegisterCount * 8) -1)));
diff --git a/sys/contrib/dev/acpica/evmisc.c b/sys/contrib/dev/acpica/evmisc.c
index 86f91a5..ad4c637 100644
--- a/sys/contrib/dev/acpica/evmisc.c
+++ b/sys/contrib/dev/acpica/evmisc.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: evmisc - Miscellaneous event manager support functions
- * $Revision: 53 $
+ * $Revision: 56 $
*
*****************************************************************************/
@@ -480,7 +480,7 @@ AcpiEvGlobalLockHandler (
/* Run the Global Lock thread which will signal all waiting threads */
- Status = AcpiOsQueueForExecution (OSD_PRIORITY_HIGH,
+ Status = AcpiOsQueueForExecution (OSD_PRIORITY_HIGH,
AcpiEvGlobalLockThread, Context);
if (ACPI_FAILURE (Status))
{
@@ -556,12 +556,14 @@ AcpiEvAcquireGlobalLock (
ACPI_FUNCTION_TRACE ("EvAcquireGlobalLock");
+#ifndef ACPI_APPLICATION
/* Make sure that we actually have a global lock */
if (!AcpiGbl_GlobalLockPresent)
{
return_ACPI_STATUS (AE_NO_GLOBAL_LOCK);
}
+#endif
/* One more thread wants the global lock */
@@ -672,9 +674,64 @@ AcpiEvReleaseGlobalLock (void)
void
AcpiEvTerminate (void)
{
+ NATIVE_UINT_MAX32 i;
+ ACPI_STATUS Status;
+
ACPI_FUNCTION_TRACE ("EvTerminate");
+ /*
+ * Disable all event-related functionality.
+ * In all cases, on error, print a message but obviously we don't abort.
+ */
+
+ /*
+ * Disable all fixed events
+ */
+ for (i = 0; i < ACPI_NUM_FIXED_EVENTS; i++)
+ {
+ Status = AcpiDisableEvent(i, ACPI_EVENT_FIXED, 0);
+ if (ACPI_FAILURE (Status))
+ {
+ ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Failed to disable fixed event %d.\n", i));
+ }
+ }
+
+ /*
+ * Disable all GPEs
+ */
+ for (i = 0; i < AcpiGbl_GpeNumberMax; i++)
+ {
+ if (AcpiEvGetGpeNumberIndex(i) != ACPI_GPE_INVALID)
+ {
+ Status = AcpiHwDisableGpe(i);
+ if (ACPI_FAILURE (Status))
+ {
+ ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Failed to disable GPE %d.\n", i));
+ }
+ }
+ }
+
+ /*
+ * Remove SCI handler
+ */
+ Status = AcpiEvRemoveSciHandler();
+ if (ACPI_FAILURE(Status))
+ {
+ ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Unable to remove SCI handler.\n"));
+ }
+
+ /*
+ * Return to original mode if necessary
+ */
+ if (AcpiGbl_OriginalMode == ACPI_SYS_MODE_LEGACY)
+ {
+ Status = AcpiDisable ();
+ if (ACPI_FAILURE (Status))
+ {
+ ACPI_DEBUG_PRINT ((ACPI_DB_WARN, "AcpiDisable failed.\n"));
+ }
+ }
/*
* Free global tables, etc.
diff --git a/sys/contrib/dev/acpica/evregion.c b/sys/contrib/dev/acpica/evregion.c
index 9a73be0..67ecc9f6 100644
--- a/sys/contrib/dev/acpica/evregion.c
+++ b/sys/contrib/dev/acpica/evregion.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: evregion - ACPI AddressSpace (OpRegion) handler dispatch
- * $Revision: 134 $
+ * $Revision: 135 $
*
*****************************************************************************/
@@ -126,7 +126,6 @@
ACPI_MODULE_NAME ("evregion")
-
/*******************************************************************************
*
* FUNCTION: AcpiEvInitAddressSpaces
diff --git a/sys/contrib/dev/acpica/evrgnini.c b/sys/contrib/dev/acpica/evrgnini.c
index 76890f4..b9566d7 100644
--- a/sys/contrib/dev/acpica/evrgnini.c
+++ b/sys/contrib/dev/acpica/evrgnini.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: evrgnini- ACPI AddressSpace (OpRegion) init
- * $Revision: 62 $
+ * $Revision: 63 $
*
*****************************************************************************/
@@ -303,7 +303,7 @@ AcpiEvPciConfigRegionSetup (
Status = AcpiUtEvaluateNumericObject (METHOD_NAME__ADR, Node, &Temp);
/*
- * The default is zero, and since the allocation above zeroed
+ * The default is zero, and since the allocation above zeroed
* the data, just do nothing on failure.
*/
if (ACPI_SUCCESS (Status))
diff --git a/sys/contrib/dev/acpica/evxface.c b/sys/contrib/dev/acpica/evxface.c
index 4444070..cf8502c 100644
--- a/sys/contrib/dev/acpica/evxface.c
+++ b/sys/contrib/dev/acpica/evxface.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: evxface - External interfaces for ACPI events
- * $Revision: 129 $
+ * $Revision: 130 $
*
*****************************************************************************/
@@ -126,7 +126,6 @@
ACPI_MODULE_NAME ("evxface")
-
/*******************************************************************************
*
* FUNCTION: AcpiInstallFixedEventHandler
diff --git a/sys/contrib/dev/acpica/evxfevnt.c b/sys/contrib/dev/acpica/evxfevnt.c
index 919e5da..9e70832 100644
--- a/sys/contrib/dev/acpica/evxfevnt.c
+++ b/sys/contrib/dev/acpica/evxfevnt.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: evxfevnt - External Interfaces, ACPI event disable/enable
- * $Revision: 55 $
+ * $Revision: 57 $
*
*****************************************************************************/
@@ -145,17 +145,15 @@ AcpiEnable (void)
ACPI_FUNCTION_TRACE ("AcpiEnable");
- /* Make sure we have ACPI tables */
+ /* Make sure we have the FADT*/
- if (!AcpiGbl_DSDT)
+ if (!AcpiGbl_FADT)
{
- ACPI_DEBUG_PRINT ((ACPI_DB_WARN, "No ACPI tables present!\n"));
+ ACPI_DEBUG_PRINT ((ACPI_DB_WARN, "No FADT information present!\n"));
return_ACPI_STATUS (AE_NO_ACPI_TABLES);
}
- AcpiGbl_OriginalMode = AcpiHwGetMode ();
-
- if (AcpiGbl_OriginalMode == ACPI_SYS_MODE_ACPI)
+ if (AcpiHwGetMode() == ACPI_SYS_MODE_ACPI)
{
ACPI_DEBUG_PRINT ((ACPI_DB_OK, "Already in ACPI mode.\n"));
}
@@ -185,8 +183,7 @@ AcpiEnable (void)
*
* RETURN: Status
*
- * DESCRIPTION: Returns the system to original ACPI/legacy mode, and
- * uninstalls the SCI interrupt handler.
+ * DESCRIPTION: Transfers the system into LEGACY mode.
*
******************************************************************************/
@@ -198,22 +195,30 @@ AcpiDisable (void)
ACPI_FUNCTION_TRACE ("AcpiDisable");
+ if (!AcpiGbl_FADT)
+ {
+ ACPI_DEBUG_PRINT ((ACPI_DB_WARN, "No FADT information present!\n"));
+ return_ACPI_STATUS (AE_NO_ACPI_TABLES);
+ }
- if (AcpiHwGetMode () != AcpiGbl_OriginalMode)
+ if (AcpiHwGetMode() == ACPI_SYS_MODE_LEGACY)
{
- /* Restore original mode */
+ ACPI_DEBUG_PRINT ((ACPI_DB_OK, "Already in LEGACY mode.\n"));
+ }
+ else
+ {
+ /* Transition to LEGACY mode */
+ Status = AcpiHwSetMode (ACPI_SYS_MODE_LEGACY);
- Status = AcpiHwSetMode (AcpiGbl_OriginalMode);
if (ACPI_FAILURE (Status))
{
- ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Unable to transition to original mode"));
+ ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Could not transition to LEGACY mode."));
return_ACPI_STATUS (Status);
}
- }
- /* Unload the SCI interrupt handler */
+ ACPI_DEBUG_PRINT ((ACPI_DB_OK, "Transition to LEGACY mode successful\n"));
+ }
- Status = AcpiEvRemoveSciHandler ();
return_ACPI_STATUS (Status);
}
diff --git a/sys/contrib/dev/acpica/exdump.c b/sys/contrib/dev/acpica/exdump.c
index 62cf206..9f374d0 100644
--- a/sys/contrib/dev/acpica/exdump.c
+++ b/sys/contrib/dev/acpica/exdump.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: exdump - Interpreter debug output routines
- * $Revision: 157 $
+ * $Revision: 159 $
*
*****************************************************************************/
@@ -130,7 +130,7 @@
* The following routines are used for debug output only
*/
-#if defined(ACPI_DEBUG) || defined(ENABLE_DEBUGGER)
+#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
/*****************************************************************************
*
@@ -155,7 +155,6 @@ AcpiExDumpOperand (
UINT16 ElementIndex;
-
ACPI_FUNCTION_NAME ("ExDumpOperand")
diff --git a/sys/contrib/dev/acpica/exfldio.c b/sys/contrib/dev/acpica/exfldio.c
index 02f646d..60c3f7b 100644
--- a/sys/contrib/dev/acpica/exfldio.c
+++ b/sys/contrib/dev/acpica/exfldio.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: exfldio - Aml Field I/O
- * $Revision: 87 $
+ * $Revision: 88 $
*
*****************************************************************************/
@@ -160,7 +160,7 @@ AcpiExSetupRegion (
if (ACPI_GET_OBJECT_TYPE (RgnDesc) != ACPI_TYPE_REGION)
{
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Needed Region, found type %X (%s)\n",
- ACPI_GET_OBJECT_TYPE (RgnDesc),
+ ACPI_GET_OBJECT_TYPE (RgnDesc),
AcpiUtGetObjectTypeName (RgnDesc)));
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
diff --git a/sys/contrib/dev/acpica/exmisc.c b/sys/contrib/dev/acpica/exmisc.c
index 4091a95..2b23b38 100644
--- a/sys/contrib/dev/acpica/exmisc.c
+++ b/sys/contrib/dev/acpica/exmisc.c
@@ -2,7 +2,7 @@
/******************************************************************************
*
* Module Name: exmisc - ACPI AML (p-code) execution - specific opcodes
- * $Revision: 107 $
+ * $Revision: 108 $
*
*****************************************************************************/
@@ -191,7 +191,7 @@ AcpiExGetObjectReference (
case ACPI_DESC_TYPE_NAMED:
- /*
+ /*
* A named reference that has already been resolved to a Node
*/
ReferencedObj = ObjDesc;
@@ -354,7 +354,7 @@ AcpiExDoConcatenate (
/*
* There are three cases to handle:
- *
+ *
* 1) Two Integers concatenated to produce a new Buffer
* 2) Two Strings concatenated to produce a new String
* 3) Two Buffers concatenated to produce a new Buffer
diff --git a/sys/contrib/dev/acpica/exoparg1.c b/sys/contrib/dev/acpica/exoparg1.c
index eca5036..08f2348 100644
--- a/sys/contrib/dev/acpica/exoparg1.c
+++ b/sys/contrib/dev/acpica/exoparg1.c
@@ -2,7 +2,7 @@
/******************************************************************************
*
* Module Name: exoparg1 - AML execution - opcodes with 1 argument
- * $Revision: 141 $
+ * $Revision: 142 $
*
*****************************************************************************/
@@ -306,7 +306,6 @@ AcpiExOpcode_1A_1T_1R (
ACPI_FUNCTION_TRACE_STR ("ExOpcode_1A_1T_1R", AcpiPsGetOpcodeName (WalkState->Opcode));
-
/* Examine the AML opcode */
switch (WalkState->Opcode)
@@ -894,8 +893,8 @@ AcpiExOpcode_1A_0T_1R (
* 2) Dereference the node to an actual object. Could be a Field, so we nee
* to resolve the node to a value.
*/
- Status = AcpiNsGetNodeByPath (Operand[0]->String.Pointer,
- WalkState->ScopeInfo->Scope.Node, ACPI_NS_SEARCH_PARENT,
+ Status = AcpiNsGetNodeByPath (Operand[0]->String.Pointer,
+ WalkState->ScopeInfo->Scope.Node, ACPI_NS_SEARCH_PARENT,
ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, &ReturnDesc));
if (ACPI_FAILURE (Status))
{
@@ -946,7 +945,7 @@ AcpiExOpcode_1A_0T_1R (
TempDesc = Operand[0]->Reference.Object;
/*
- * Create a new object that contains one element of the
+ * Create a new object that contains one element of the
* buffer -- the element pointed to by the index.
*
* NOTE: index into a buffer is NOT a pointer to a
@@ -973,7 +972,7 @@ AcpiExOpcode_1A_0T_1R (
case ACPI_TYPE_PACKAGE:
/*
- * Return the referenced element of the package. We must add
+ * Return the referenced element of the package. We must add
* another reference to the referenced object, however.
*/
ReturnDesc = *(Operand[0]->Reference.Where);
diff --git a/sys/contrib/dev/acpica/exoparg2.c b/sys/contrib/dev/acpica/exoparg2.c
index 12f1947..bd70810 100644
--- a/sys/contrib/dev/acpica/exoparg2.c
+++ b/sys/contrib/dev/acpica/exoparg2.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: exoparg2 - AML execution - opcodes with 2 arguments
- * $Revision: 109 $
+ * $Revision: 110 $
*
*****************************************************************************/
@@ -175,7 +175,7 @@ AcpiExOpcode_2A_0T_0R (
ACPI_STATUS Status = AE_OK;
- ACPI_FUNCTION_TRACE_STR ("ExOpcode_2A_0T_0R",
+ ACPI_FUNCTION_TRACE_STR ("ExOpcode_2A_0T_0R",
AcpiPsGetOpcodeName (WalkState->Opcode));
@@ -214,7 +214,7 @@ AcpiExOpcode_2A_0T_0R (
default:
- ACPI_REPORT_ERROR (("AcpiExOpcode_2A_0T_0R: Unknown opcode %X\n",
+ ACPI_REPORT_ERROR (("AcpiExOpcode_2A_0T_0R: Unknown opcode %X\n",
WalkState->Opcode));
Status = AE_AML_BAD_OPCODE;
}
@@ -647,7 +647,7 @@ AcpiExOpcode_2A_0T_1R (
default:
- ACPI_REPORT_ERROR (("AcpiExOpcode_2A_0T_1R: Unknown opcode %X\n",
+ ACPI_REPORT_ERROR (("AcpiExOpcode_2A_0T_1R: Unknown opcode %X\n",
WalkState->Opcode));
Status = AE_AML_BAD_OPCODE;
goto Cleanup;
diff --git a/sys/contrib/dev/acpica/exprep.c b/sys/contrib/dev/acpica/exprep.c
index f0aa081..2aeb7eed 100644
--- a/sys/contrib/dev/acpica/exprep.c
+++ b/sys/contrib/dev/acpica/exprep.c
@@ -2,7 +2,7 @@
/******************************************************************************
*
* Module Name: exprep - ACPI AML (p-code) execution - field prep utilities
- * $Revision: 118 $
+ * $Revision: 119 $
*
*****************************************************************************/
@@ -303,17 +303,17 @@ AcpiExPrepCommonFieldObject (
* two pieces of information - the width of each field access and the
* necessary ByteAlignment (address granularity) of the access.
*
- * For AnyAcc, the AccessBitWidth is the largest width that is both
+ * For AnyAcc, the AccessBitWidth is the largest width that is both
* necessary and possible in an attempt to access the whole field in one
- * I/O operation. However, for AnyAcc, the ByteAlignment is always one
+ * I/O operation. However, for AnyAcc, the ByteAlignment is always one
* byte.
*
* For all Buffer Fields, the ByteAlignment is always one byte.
*
- * For all other access types (Byte, Word, Dword, Qword), the Bitwidth is
+ * For all other access types (Byte, Word, Dword, Qword), the Bitwidth is
* the same (equivalent) as the ByteAlignment.
*/
- AccessBitWidth = AcpiExDecodeFieldAccess (ObjDesc, FieldFlags,
+ AccessBitWidth = AcpiExDecodeFieldAccess (ObjDesc, FieldFlags,
&ByteAlignment);
if (!AccessBitWidth)
{
@@ -322,26 +322,26 @@ AcpiExPrepCommonFieldObject (
/* Setup width (access granularity) fields */
- ObjDesc->CommonField.AccessByteWidth = (UINT8)
+ ObjDesc->CommonField.AccessByteWidth = (UINT8)
ACPI_DIV_8 (AccessBitWidth); /* 1, 2, 4, 8 */
/*
- * BaseByteOffset is the address of the start of the field within the
- * region. It is the byte address of the first *datum* (field-width data
- * unit) of the field. (i.e., the first datum that contains at least the
+ * BaseByteOffset is the address of the start of the field within the
+ * region. It is the byte address of the first *datum* (field-width data
+ * unit) of the field. (i.e., the first datum that contains at least the
* first *bit* of the field.)
*
- * Note: ByteAlignment is always either equal to the AccessBitWidth or 8
- * (Byte access), and it defines the addressing granularity of the parent
+ * Note: ByteAlignment is always either equal to the AccessBitWidth or 8
+ * (Byte access), and it defines the addressing granularity of the parent
* region or buffer.
*/
- NearestByteAddress =
+ NearestByteAddress =
ACPI_ROUND_BITS_DOWN_TO_BYTES (FieldBitPosition);
- ObjDesc->CommonField.BaseByteOffset =
+ ObjDesc->CommonField.BaseByteOffset =
ACPI_ROUND_DOWN (NearestByteAddress, ByteAlignment);
/*
- * StartFieldBitOffset is the offset of the first bit of the field within
+ * StartFieldBitOffset is the offset of the first bit of the field within
* a field datum.
*/
ObjDesc->CommonField.StartFieldBitOffset = (UINT8)
@@ -349,24 +349,24 @@ AcpiExPrepCommonFieldObject (
/*
* Valid bits -- the number of bits that compose a partial datum,
- * 1) At the end of the field within the region (arbitrary starting bit
+ * 1) At the end of the field within the region (arbitrary starting bit
* offset)
- * 2) At the end of a buffer used to contain the field (starting offset
+ * 2) At the end of a buffer used to contain the field (starting offset
* always zero)
*/
- ObjDesc->CommonField.EndFieldValidBits = (UINT8)
+ ObjDesc->CommonField.EndFieldValidBits = (UINT8)
((ObjDesc->CommonField.StartFieldBitOffset + FieldBitLength) %
AccessBitWidth);
/* StartBufferBitOffset always = 0 */
- ObjDesc->CommonField.EndBufferValidBits = (UINT8)
+ ObjDesc->CommonField.EndBufferValidBits = (UINT8)
(FieldBitLength % AccessBitWidth);
/*
- * DatumValidBits is the number of valid field bits in the first
+ * DatumValidBits is the number of valid field bits in the first
* field datum.
*/
- ObjDesc->CommonField.DatumValidBits = (UINT8)
+ ObjDesc->CommonField.DatumValidBits = (UINT8)
(AccessBitWidth - ObjDesc->CommonField.StartFieldBitOffset);
/*
@@ -482,11 +482,11 @@ AcpiExPrepFieldValue (
AcpiUtAddReference (ObjDesc->BankField.RegionObj);
AcpiUtAddReference (ObjDesc->BankField.BankObj);
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
+ ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
"Bank Field: BitOff=%X Off=%X Gran=%X Region %p BankReg %p\n",
- ObjDesc->BankField.StartFieldBitOffset,
+ ObjDesc->BankField.StartFieldBitOffset,
ObjDesc->BankField.BaseByteOffset,
- ObjDesc->Field.AccessByteWidth,
+ ObjDesc->Field.AccessByteWidth,
ObjDesc->BankField.RegionObj,
ObjDesc->BankField.BankObj));
break;
@@ -496,7 +496,7 @@ AcpiExPrepFieldValue (
ObjDesc->IndexField.IndexObj = AcpiNsGetAttachedObject (Info->RegisterNode);
ObjDesc->IndexField.DataObj = AcpiNsGetAttachedObject (Info->DataRegisterNode);
- ObjDesc->IndexField.Value = (UINT32)
+ ObjDesc->IndexField.Value = (UINT32)
(Info->FieldBitPosition / ACPI_MUL_8 (ObjDesc->Field.AccessByteWidth));
if (!ObjDesc->IndexField.DataObj || !ObjDesc->IndexField.IndexObj)
@@ -510,11 +510,11 @@ AcpiExPrepFieldValue (
AcpiUtAddReference (ObjDesc->IndexField.DataObj);
AcpiUtAddReference (ObjDesc->IndexField.IndexObj);
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
+ ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
"IndexField: bitoff=%X off=%X gran=%X Index %p Data %p\n",
- ObjDesc->IndexField.StartFieldBitOffset,
+ ObjDesc->IndexField.StartFieldBitOffset,
ObjDesc->IndexField.BaseByteOffset,
- ObjDesc->Field.AccessByteWidth,
+ ObjDesc->Field.AccessByteWidth,
ObjDesc->IndexField.IndexObj,
ObjDesc->IndexField.DataObj));
break;
diff --git a/sys/contrib/dev/acpica/exregion.c b/sys/contrib/dev/acpica/exregion.c
index 4339f10..c42e566 100644
--- a/sys/contrib/dev/acpica/exregion.c
+++ b/sys/contrib/dev/acpica/exregion.c
@@ -2,7 +2,7 @@
/******************************************************************************
*
* Module Name: exregion - ACPI default OpRegion (address space) handlers
- * $Revision: 79 $
+ * $Revision: 80 $
*
*****************************************************************************/
@@ -225,7 +225,7 @@ AcpiExSystemMemorySpaceHandler (
MemInfo->MappedLength);
}
- /*
+ /*
* Don't attempt to map memory beyond the end of the region, and
* constrain the maximum mapping size to something reasonable.
*/
@@ -234,7 +234,7 @@ AcpiExSystemMemorySpaceHandler (
{
WindowSize = SYSMEM_REGION_WINDOW_SIZE;
}
-
+
/* Create a new mapping starting at the address given */
Status = AcpiOsMapMemory (Address, WindowSize,
@@ -264,7 +264,7 @@ AcpiExSystemMemorySpaceHandler (
"SystemMemory %d (%d width) Address=%8.8X%8.8X\n", Function, BitWidth,
ACPI_HIDWORD (Address), ACPI_LODWORD (Address)));
- /*
+ /*
* Perform the memory read or write
*
* Note: For machines that do not support non-aligned transfers, the target
@@ -323,7 +323,7 @@ AcpiExSystemMemorySpaceHandler (
*(UINT64 *) LogicalAddrPtr = (UINT64) *Value;
break;
#endif
-
+
default:
/* BitWidth was already validated */
break;
diff --git a/sys/contrib/dev/acpica/exresop.c b/sys/contrib/dev/acpica/exresop.c
index b3da7c5..a3702d3 100644
--- a/sys/contrib/dev/acpica/exresop.c
+++ b/sys/contrib/dev/acpica/exresop.c
@@ -2,7 +2,7 @@
/******************************************************************************
*
* Module Name: exresop - AML Interpreter operand/object resolution
- * $Revision: 54 $
+ * $Revision: 55 $
*
*****************************************************************************/
@@ -201,8 +201,8 @@ AcpiExCheckObjectType (
* target operator.
*
* Each 5-bit group in ArgTypes represents one required
- * operand and indicates the required Type. The corresponding operand
- * will be converted to the required type if possible, otherwise we
+ * operand and indicates the required Type. The corresponding operand
+ * will be converted to the required type if possible, otherwise we
* abort with an exception.
*
******************************************************************************/
diff --git a/sys/contrib/dev/acpica/exstore.c b/sys/contrib/dev/acpica/exstore.c
index 97ec5e6..d89abba 100644
--- a/sys/contrib/dev/acpica/exstore.c
+++ b/sys/contrib/dev/acpica/exstore.c
@@ -2,7 +2,7 @@
/******************************************************************************
*
* Module Name: exstore - AML Interpreter object store support
- * $Revision: 168 $
+ * $Revision: 169 $
*
*****************************************************************************/
@@ -186,7 +186,7 @@ AcpiExStore (
/* Destination object must be a Reference or a Constant object */
switch (ACPI_GET_OBJECT_TYPE (DestDesc))
- {
+ {
case INTERNAL_TYPE_REFERENCE:
break;
diff --git a/sys/contrib/dev/acpica/exutils.c b/sys/contrib/dev/acpica/exutils.c
index fad89f8..0e75d9d 100644
--- a/sys/contrib/dev/acpica/exutils.c
+++ b/sys/contrib/dev/acpica/exutils.c
@@ -2,7 +2,7 @@
/******************************************************************************
*
* Module Name: exutils - interpreter/scanner utilities
- * $Revision: 102 $
+ * $Revision: 103 $
*
*****************************************************************************/
@@ -363,7 +363,8 @@ AcpiExReleaseGlobalLock (
{
/* Report the error, but there isn't much else we can do */
- ACPI_REPORT_ERROR (("Could not release ACPI Global Lock\n"));
+ ACPI_REPORT_ERROR (("Could not release ACPI Global Lock, %s\n",
+ AcpiFormatException (Status)));
}
}
diff --git a/sys/contrib/dev/acpica/hwacpi.c b/sys/contrib/dev/acpica/hwacpi.c
index 8391e55..9dffda3 100644
--- a/sys/contrib/dev/acpica/hwacpi.c
+++ b/sys/contrib/dev/acpica/hwacpi.c
@@ -2,7 +2,7 @@
/******************************************************************************
*
* Module Name: hwacpi - ACPI Hardware Initialization/Mode Interface
- * $Revision: 58 $
+ * $Revision: 60 $
*
*****************************************************************************/
@@ -190,13 +190,36 @@ AcpiHwSetMode (
ACPI_FUNCTION_TRACE ("HwSetMode");
+ /*
+ * ACPI 2.0 clarified that if SMI_CMD in FADT is zero,
+ * system does not support mode transition.
+ */
+ if (!AcpiGbl_FADT->SmiCmd)
+ {
+ ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "No SMI_CMD in FADT, mode transition failed.\n"));
+ return_ACPI_STATUS (AE_NO_HARDWARE_RESPONSE);
+ }
+
+ /*
+ * ACPI 2.0 clarified the meaning of ACPI_ENABLE and ACPI_DISABLE
+ * in FADT: If it is zero, enabling or disabling is not supported.
+ * As old systems may have used zero for mode transition,
+ * we make sure both the numbers are zero to determine these
+ * transitions are not supported.
+ */
+ if (!AcpiGbl_FADT->AcpiEnable && !AcpiGbl_FADT->AcpiDisable)
+ {
+ ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "No mode transition supported in this system.\n"));
+ return_ACPI_STATUS (AE_OK);
+ }
+
switch (Mode)
{
case ACPI_SYS_MODE_ACPI:
/* BIOS should have disabled ALL fixed and GP events */
- Status = AcpiOsWritePort (AcpiGbl_FADT->SmiCmd,
+ Status = AcpiOsWritePort (AcpiGbl_FADT->SmiCmd,
(ACPI_INTEGER) AcpiGbl_FADT->AcpiEnable, 8);
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Attempting to enable ACPI mode\n"));
break;
@@ -207,7 +230,7 @@ AcpiHwSetMode (
* BIOS should clear all fixed status bits and restore fixed event
* enable bits to default
*/
- Status = AcpiOsWritePort (AcpiGbl_FADT->SmiCmd,
+ Status = AcpiOsWritePort (AcpiGbl_FADT->SmiCmd,
(ACPI_INTEGER) AcpiGbl_FADT->AcpiDisable, 8);
ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
"Attempting to enable Legacy (non-ACPI) mode\n"));
@@ -231,12 +254,13 @@ AcpiHwSetMode (
{
Status = AE_NO_HARDWARE_RESPONSE;
- if (AcpiHwGetMode() == Mode) {
+ if (AcpiHwGetMode() == Mode)
+ {
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Mode %X successfully enabled\n", Mode));
Status = AE_OK;
break;
}
- AcpiOsStall(1000);
+ AcpiOsStall(1000);
Retry--;
}
diff --git a/sys/contrib/dev/acpica/hwgpe.c b/sys/contrib/dev/acpica/hwgpe.c
index c5cc7f7..cf822a5 100644
--- a/sys/contrib/dev/acpica/hwgpe.c
+++ b/sys/contrib/dev/acpica/hwgpe.c
@@ -2,7 +2,7 @@
/******************************************************************************
*
* Module Name: hwgpe - Low level GPE enable/disable/clear functions
- * $Revision: 41 $
+ * $Revision: 42 $
*
*****************************************************************************/
@@ -179,14 +179,14 @@ AcpiHwEnableGpe (
* Read the current value of the register, set the appropriate bit
* to enable the GPE, and write out the new register.
*/
- Status = AcpiHwLowLevelRead (8, &InByte,
+ Status = AcpiHwLowLevelRead (8, &InByte,
&AcpiGbl_GpeRegisterInfo[RegisterIndex].EnableAddress, 0);
if (ACPI_FAILURE (Status))
{
return (Status);
}
- Status = AcpiHwLowLevelWrite (8, (InByte | BitMask),
+ Status = AcpiHwLowLevelWrite (8, (InByte | BitMask),
&AcpiGbl_GpeRegisterInfo[RegisterIndex].EnableAddress, 0);
return (Status);
@@ -276,7 +276,7 @@ AcpiHwDisableGpe (
return (Status);
}
- Status = AcpiHwLowLevelWrite (8, (InByte & ~BitMask),
+ Status = AcpiHwLowLevelWrite (8, (InByte & ~BitMask),
&AcpiGbl_GpeRegisterInfo[RegisterIndex].EnableAddress, 0);
if (ACPI_FAILURE (Status))
{
@@ -363,7 +363,7 @@ AcpiHwClearGpe (
* Write a one to the appropriate bit in the status register to
* clear this GPE.
*/
- Status = AcpiHwLowLevelWrite (8, BitMask,
+ Status = AcpiHwLowLevelWrite (8, BitMask,
&AcpiGbl_GpeRegisterInfo[RegisterIndex].StatusAddress, 0);
return (Status);
@@ -486,7 +486,7 @@ AcpiHwDisableNonWakeupGpes (
* Read the enabled status of all GPEs. We
* will be using it to restore all the GPEs later.
*/
- Status = AcpiHwLowLevelRead (8, &InValue,
+ Status = AcpiHwLowLevelRead (8, &InValue,
&GpeRegisterInfo->EnableAddress, 0);
if (ACPI_FAILURE (Status))
{
@@ -498,7 +498,7 @@ AcpiHwDisableNonWakeupGpes (
/*
* Disable all GPEs except wakeup GPEs.
*/
- Status = AcpiHwLowLevelWrite (8, GpeRegisterInfo->WakeEnable,
+ Status = AcpiHwLowLevelWrite (8, GpeRegisterInfo->WakeEnable,
&GpeRegisterInfo->EnableAddress, 0);
if (ACPI_FAILURE (Status))
{
diff --git a/sys/contrib/dev/acpica/hwregs.c b/sys/contrib/dev/acpica/hwregs.c
index fb2b8e4..164a44f 100644
--- a/sys/contrib/dev/acpica/hwregs.c
+++ b/sys/contrib/dev/acpica/hwregs.c
@@ -3,7 +3,7 @@
*
* Module Name: hwregs - Read/write access functions for the various ACPI
* control and status registers.
- * $Revision: 133 $
+ * $Revision: 134 $
*
******************************************************************************/
@@ -305,7 +305,7 @@ AcpiGetSleepTypeData (
* FUNCTION: AcpiHwGetRegisterBitMask
*
* PARAMETERS: RegisterId - Index of ACPI Register to access
- *
+ *
* RETURN: The bit mask to be used when accessing the register
*
* DESCRIPTION: Map RegisterId into a register bit mask.
@@ -374,7 +374,7 @@ AcpiGetRegister (
}
}
- Status = AcpiHwRegisterRead (ACPI_MTX_DO_NOT_LOCK,
+ Status = AcpiHwRegisterRead (ACPI_MTX_DO_NOT_LOCK,
BitRegInfo->ParentRegister, &RegisterValue);
if (Flags & ACPI_MTX_LOCK)
@@ -386,7 +386,7 @@ AcpiGetRegister (
{
/* Normalize the value that was read */
- RegisterValue = ((RegisterValue & BitRegInfo->AccessBitMask)
+ RegisterValue = ((RegisterValue & BitRegInfo->AccessBitMask)
>> BitRegInfo->BitPosition);
*ReturnValue = RegisterValue;
@@ -447,7 +447,7 @@ AcpiSetRegister (
/* Always do a register read first so we can insert the new bits */
- Status = AcpiHwRegisterRead (ACPI_MTX_DO_NOT_LOCK,
+ Status = AcpiHwRegisterRead (ACPI_MTX_DO_NOT_LOCK,
BitRegInfo->ParentRegister, &RegisterValue);
if (ACPI_FAILURE (Status))
{
@@ -471,11 +471,11 @@ AcpiSetRegister (
* information is the single bit we're interested in, all others should
* be written as 0 so they will be left unchanged
*/
- Value = ACPI_REGISTER_PREPARE_BITS (Value,
+ Value = ACPI_REGISTER_PREPARE_BITS (Value,
BitRegInfo->BitPosition, BitRegInfo->AccessBitMask);
if (Value)
{
- Status = AcpiHwRegisterWrite (ACPI_MTX_DO_NOT_LOCK,
+ Status = AcpiHwRegisterWrite (ACPI_MTX_DO_NOT_LOCK,
ACPI_REGISTER_PM1_STATUS, (UINT16) Value);
RegisterValue = 0;
}
@@ -484,10 +484,10 @@ AcpiSetRegister (
case ACPI_REGISTER_PM1_ENABLE:
- ACPI_REGISTER_INSERT_VALUE (RegisterValue, BitRegInfo->BitPosition,
+ ACPI_REGISTER_INSERT_VALUE (RegisterValue, BitRegInfo->BitPosition,
BitRegInfo->AccessBitMask, Value);
- Status = AcpiHwRegisterWrite (ACPI_MTX_DO_NOT_LOCK,
+ Status = AcpiHwRegisterWrite (ACPI_MTX_DO_NOT_LOCK,
ACPI_REGISTER_PM1_ENABLE, (UINT16) RegisterValue);
break;
@@ -501,7 +501,7 @@ AcpiSetRegister (
*/
ACPI_DEBUG_PRINT ((ACPI_DB_IO, "PM1 control: Read %X\n", RegisterValue));
- ACPI_REGISTER_INSERT_VALUE (RegisterValue, BitRegInfo->BitPosition,
+ ACPI_REGISTER_INSERT_VALUE (RegisterValue, BitRegInfo->BitPosition,
BitRegInfo->AccessBitMask, Value);
Status = AcpiHwRegisterWrite (ACPI_MTX_DO_NOT_LOCK, RegisterId,
@@ -511,7 +511,7 @@ AcpiSetRegister (
case ACPI_REGISTER_PM2_CONTROL:
- Status = AcpiHwRegisterRead (ACPI_MTX_DO_NOT_LOCK,
+ Status = AcpiHwRegisterRead (ACPI_MTX_DO_NOT_LOCK,
ACPI_REGISTER_PM2_CONTROL, &RegisterValue);
if (ACPI_FAILURE (Status))
{
@@ -519,11 +519,11 @@ AcpiSetRegister (
}
ACPI_DEBUG_PRINT ((ACPI_DB_IO, "PM2 control: Read %X from %8.8X%8.8X\n",
- RegisterValue,
+ RegisterValue,
ACPI_HIDWORD (ACPI_GET_ADDRESS (AcpiGbl_FADT->XPm2CntBlk.Address)),
ACPI_LODWORD (ACPI_GET_ADDRESS (AcpiGbl_FADT->XPm2CntBlk.Address))));
- ACPI_REGISTER_INSERT_VALUE (RegisterValue, BitRegInfo->BitPosition,
+ ACPI_REGISTER_INSERT_VALUE (RegisterValue, BitRegInfo->BitPosition,
BitRegInfo->AccessBitMask, Value);
ACPI_DEBUG_PRINT ((ACPI_DB_IO, "About to write %4.4X to %8.8X%8.8X\n",
@@ -847,7 +847,7 @@ AcpiHwLowLevelRead (
{
case ACPI_ADR_SPACE_SYSTEM_MEMORY:
- MemAddress = (ACPI_GET_ADDRESS (Reg->Address)
+ MemAddress = (ACPI_GET_ADDRESS (Reg->Address)
+ (ACPI_PHYSICAL_ADDRESS) Offset);
Status = AcpiOsReadMemory (MemAddress, Value, Width);
@@ -856,7 +856,7 @@ AcpiHwLowLevelRead (
case ACPI_ADR_SPACE_SYSTEM_IO:
- IoAddress = (ACPI_IO_ADDRESS) (ACPI_GET_ADDRESS (Reg->Address)
+ IoAddress = (ACPI_IO_ADDRESS) (ACPI_GET_ADDRESS (Reg->Address)
+ (ACPI_PHYSICAL_ADDRESS) Offset);
Status = AcpiOsReadPort (IoAddress, Value, Width);
@@ -937,7 +937,7 @@ AcpiHwLowLevelWrite (
{
case ACPI_ADR_SPACE_SYSTEM_MEMORY:
- MemAddress = (ACPI_GET_ADDRESS (Reg->Address)
+ MemAddress = (ACPI_GET_ADDRESS (Reg->Address)
+ (ACPI_PHYSICAL_ADDRESS) Offset);
Status = AcpiOsWriteMemory (MemAddress, (ACPI_INTEGER) Value, Width);
@@ -946,7 +946,7 @@ AcpiHwLowLevelWrite (
case ACPI_ADR_SPACE_SYSTEM_IO:
- IoAddress = (ACPI_IO_ADDRESS) (ACPI_GET_ADDRESS (Reg->Address)
+ IoAddress = (ACPI_IO_ADDRESS) (ACPI_GET_ADDRESS (Reg->Address)
+ (ACPI_PHYSICAL_ADDRESS) Offset);
Status = AcpiOsWritePort (IoAddress, (ACPI_INTEGER) Value, Width);
@@ -959,7 +959,7 @@ AcpiHwLowLevelWrite (
PciId.Bus = 0;
PciId.Device = ACPI_PCI_DEVICE (ACPI_GET_ADDRESS (Reg->Address));
PciId.Function = ACPI_PCI_FUNCTION (ACPI_GET_ADDRESS (Reg->Address));
- PciRegister = (UINT16) (ACPI_PCI_REGISTER (ACPI_GET_ADDRESS (Reg->Address))
+ PciRegister = (UINT16) (ACPI_PCI_REGISTER (ACPI_GET_ADDRESS (Reg->Address))
+ Offset);
Status = AcpiOsWritePciConfiguration (&PciId, PciRegister, (ACPI_INTEGER) Value, Width);
diff --git a/sys/contrib/dev/acpica/hwsleep.c b/sys/contrib/dev/acpica/hwsleep.c
index f53f33b..92ef1e9 100644
--- a/sys/contrib/dev/acpica/hwsleep.c
+++ b/sys/contrib/dev/acpica/hwsleep.c
@@ -2,7 +2,7 @@
/******************************************************************************
*
* Name: hwsleep.c - ACPI Hardware Sleep/Wake Interface
- * $Revision: 45 $
+ * $Revision: 46 $
*
*****************************************************************************/
@@ -146,12 +146,12 @@ AcpiSetFirmwareWakingVector (
if (AcpiGbl_CommonFACS.VectorWidth == 32)
{
- *(ACPI_CAST_PTR (UINT32, AcpiGbl_CommonFACS.FirmwareWakingVector))
+ *(ACPI_CAST_PTR (UINT32, AcpiGbl_CommonFACS.FirmwareWakingVector))
= (UINT32) PhysicalAddress;
}
else
{
- *AcpiGbl_CommonFACS.FirmwareWakingVector
+ *AcpiGbl_CommonFACS.FirmwareWakingVector
= PhysicalAddress;
}
@@ -190,12 +190,12 @@ AcpiGetFirmwareWakingVector (
if (AcpiGbl_CommonFACS.VectorWidth == 32)
{
- *PhysicalAddress = (ACPI_PHYSICAL_ADDRESS)
+ *PhysicalAddress = (ACPI_PHYSICAL_ADDRESS)
*(ACPI_CAST_PTR (UINT32, AcpiGbl_CommonFACS.FirmwareWakingVector));
}
else
{
- *PhysicalAddress =
+ *PhysicalAddress =
*AcpiGbl_CommonFACS.FirmwareWakingVector;
}
@@ -410,7 +410,7 @@ AcpiEnterSleepState (
/* Wait until we enter sleep state */
- do
+ do
{
Status = AcpiGetRegister (ACPI_BITREG_WAKE_STATUS, &InValue, ACPI_MTX_LOCK);
if (ACPI_FAILURE (Status))
diff --git a/sys/contrib/dev/acpica/nsaccess.c b/sys/contrib/dev/acpica/nsaccess.c
index 3e05553..92594d0 100644
--- a/sys/contrib/dev/acpica/nsaccess.c
+++ b/sys/contrib/dev/acpica/nsaccess.c
@@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: nsaccess - Top-level functions for accessing ACPI namespace
- * $Revision: 156 $
+ * $Revision: 161 $
*
******************************************************************************/
@@ -216,6 +216,19 @@ AcpiNsRootInitialize (void)
*/
switch (InitVal->Type)
{
+ case ACPI_TYPE_METHOD:
+ ObjDesc->Method.ParamCount =
+ (UINT8) ACPI_STRTOUL (InitVal->Val, NULL, 10);
+ ObjDesc->Common.Flags |= AOPOBJ_DATA_VALID;
+
+#if defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY)
+
+ /* Compiler cheats by putting parameter count in the OwnerID */
+
+ NewNode->OwnerId = ObjDesc->Method.ParamCount;
+#endif
+ break;
+
case ACPI_TYPE_INTEGER:
ObjDesc->Integer.Value =
@@ -331,6 +344,7 @@ AcpiNsLookup (
ACPI_NAMESPACE_NODE **ReturnNode)
{
ACPI_STATUS Status;
+ NATIVE_CHAR *Path = Pathname;
ACPI_NAMESPACE_NODE *PrefixNode;
ACPI_NAMESPACE_NODE *CurrentNode = NULL;
ACPI_NAMESPACE_NODE *ThisNode = NULL;
@@ -338,7 +352,9 @@ AcpiNsLookup (
ACPI_NAME SimpleName;
ACPI_OBJECT_TYPE TypeToCheckFor;
ACPI_OBJECT_TYPE ThisSearchType;
- UINT32 LocalFlags = Flags & ~ACPI_NS_ERROR_IF_FOUND;
+ UINT32 SearchParentFlag = ACPI_NS_SEARCH_PARENT;
+ UINT32 LocalFlags = Flags & ~(ACPI_NS_ERROR_IF_FOUND |
+ ACPI_NS_SEARCH_PARENT);
ACPI_FUNCTION_TRACE ("NsLookup");
@@ -373,6 +389,23 @@ AcpiNsLookup (
else
{
PrefixNode = ScopeInfo->Scope.Node;
+ if (ACPI_GET_DESCRIPTOR_TYPE (PrefixNode) != ACPI_DESC_TYPE_NAMED)
+ {
+ ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "[%p] Not a namespace node\n",
+ PrefixNode));
+ return_ACPI_STATUS (AE_AML_INTERNAL);
+ }
+
+ /*
+ * This node might not be a actual "scope" node (such as a
+ * Device/Method, etc.) It could be a Package or other object node.
+ * Backup up the tree to find the containing scope node.
+ */
+ while (!AcpiNsOpensScope (PrefixNode->Type) &&
+ PrefixNode->Type != ACPI_TYPE_ANY)
+ {
+ PrefixNode = AcpiNsGetParentNode (PrefixNode);
+ }
}
/*
@@ -408,7 +441,7 @@ AcpiNsLookup (
NumSegments = 0;
ThisNode = AcpiGbl_RootNode;
- Pathname = "";
+ Path = "";
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
"Null Pathname (Zero segments), Flags=%X\n", Flags));
@@ -428,25 +461,26 @@ AcpiNsLookup (
* Parent Prefixes (in which case the name's scope is relative
* to the current scope).
*/
- if (*Pathname == (UINT8) AML_ROOT_PREFIX)
+ if (*Path == (UINT8) AML_ROOT_PREFIX)
{
/* Pathname is fully qualified, start from the root */
ThisNode = AcpiGbl_RootNode;
+ SearchParentFlag = ACPI_NS_NO_UPSEARCH;
/* Point to name segment part */
- Pathname++;
+ Path++;
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Searching from root [%p]\n",
- ThisNode));
+ ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
+ "Path is absolute from root [%p]\n", ThisNode));
}
else
{
/* Pathname is relative to current scope, start there */
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
- "Searching relative to pfx scope [%p]\n",
+ "Searching relative to prefix scope [%p]\n",
PrefixNode));
/*
@@ -454,13 +488,16 @@ AcpiNsLookup (
* the parent node for each prefix instance.
*/
ThisNode = PrefixNode;
- while (*Pathname == (UINT8) AML_PARENT_PREFIX)
+ while (*Path == (UINT8) AML_PARENT_PREFIX)
{
+ /* Name is fully qualified, no search rules apply */
+
+ SearchParentFlag = ACPI_NS_NO_UPSEARCH;
/*
* Point past this prefix to the name segment
* part or the next Parent Prefix
*/
- Pathname++;
+ Path++;
/* Backup to the parent node */
@@ -474,6 +511,12 @@ AcpiNsLookup (
return_ACPI_STATUS (AE_NOT_FOUND);
}
}
+
+ if (SearchParentFlag == ACPI_NS_NO_UPSEARCH)
+ {
+ ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
+ "Path is absolute with one or more carats\n"));
+ }
}
/*
@@ -489,7 +532,7 @@ AcpiNsLookup (
* Examine the name prefix opcode, if any, to determine the number of
* segments.
*/
- switch (*Pathname)
+ switch (*Path)
{
case 0:
/*
@@ -504,10 +547,14 @@ AcpiNsLookup (
case AML_DUAL_NAME_PREFIX:
+ /* More than one NameSeg, search rules do not apply */
+
+ SearchParentFlag = ACPI_NS_NO_UPSEARCH;
+
/* Two segments, point to first name segment */
NumSegments = 2;
- Pathname++;
+ Path++;
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
"Dual Pathname (2 segments, Flags=%X)\n", Flags));
@@ -515,11 +562,15 @@ AcpiNsLookup (
case AML_MULTI_NAME_PREFIX_OP:
+ /* More than one NameSeg, search rules do not apply */
+
+ SearchParentFlag = ACPI_NS_NO_UPSEARCH;
+
/* Extract segment count, point to first name segment */
- Pathname++;
- NumSegments = (UINT32) (UINT8) *Pathname;
- Pathname++;
+ Path++;
+ NumSegments = (UINT32) (UINT8) *Path;
+ Path++;
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
"Multi Pathname (%d Segments, Flags=%X) \n",
@@ -538,35 +589,53 @@ AcpiNsLookup (
break;
}
- ACPI_DEBUG_EXEC (AcpiNsPrintPathname (NumSegments, Pathname));
+ ACPI_DEBUG_EXEC (AcpiNsPrintPathname (NumSegments, Path));
}
+
/*
* Search namespace for each segment of the name. Loop through and
- * verify/add each name segment.
+ * verify (or add to the namespace) each name segment.
+ *
+ * The object type is significant only at the last name
+ * segment. (We don't care about the types along the path, only
+ * the type of the final target object.)
*/
+ ThisSearchType = ACPI_TYPE_ANY;
CurrentNode = ThisNode;
while (NumSegments && CurrentNode)
{
- /*
- * Search for the current name segment under the current
- * named object. The Type is significant only at the last name
- * segment. (We don't care about the types along the path, only
- * the type of the final target object.)
- */
- ThisSearchType = ACPI_TYPE_ANY;
NumSegments--;
if (!NumSegments)
{
+ /*
+ * This is the last segment, enable typechecking
+ */
ThisSearchType = Type;
- LocalFlags = Flags;
+
+ /*
+ * Only allow automatic parent search (search rules) if the caller
+ * requested it AND we have a single, non-fully-qualified NameSeg
+ */
+ if ((SearchParentFlag != ACPI_NS_NO_UPSEARCH) &&
+ (Flags & ACPI_NS_SEARCH_PARENT))
+ {
+ LocalFlags |= ACPI_NS_SEARCH_PARENT;
+ }
+
+ /* Set error flag according to caller */
+
+ if (Flags & ACPI_NS_ERROR_IF_FOUND)
+ {
+ LocalFlags |= ACPI_NS_ERROR_IF_FOUND;
+ }
}
/* Extract one ACPI name from the front of the pathname */
- ACPI_MOVE_UNALIGNED32_TO_32 (&SimpleName, Pathname);
+ ACPI_MOVE_UNALIGNED32_TO_32 (&SimpleName, Path);
- /* Try to find the ACPI name */
+ /* Try to find the single (4 character) ACPI name */
Status = AcpiNsSearchAndEnter (SimpleName, WalkState, CurrentNode,
InterpreterMode, ThisSearchType, LocalFlags, &ThisNode);
@@ -578,7 +647,8 @@ AcpiNsLookup (
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
"Name [%4.4s] not found in scope [%4.4s] %p\n",
- (char *) &SimpleName, (char *) &CurrentNode->Name, CurrentNode));
+ (char *) &SimpleName, (char *) &CurrentNode->Name,
+ CurrentNode));
}
return_ACPI_STATUS (Status);
@@ -627,7 +697,7 @@ AcpiNsLookup (
/* Point to next name segment and make this node current */
- Pathname += ACPI_NAME_SIZE;
+ Path += ACPI_NAME_SIZE;
CurrentNode = ThisNode;
}
@@ -649,7 +719,7 @@ AcpiNsLookup (
}
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
- "Setting current scope to [%4.4s] (%p)\n",
+ "Setting current scope to [%4.4s] (%p)\n",
ThisNode->Name.Ascii, ThisNode));
}
}
diff --git a/sys/contrib/dev/acpica/nsdump.c b/sys/contrib/dev/acpica/nsdump.c
index e8f3768..5194477 100644
--- a/sys/contrib/dev/acpica/nsdump.c
+++ b/sys/contrib/dev/acpica/nsdump.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: nsdump - table dumping routines for debug
- * $Revision: 137 $
+ * $Revision: 139 $
*
*****************************************************************************/
@@ -125,7 +125,7 @@
#define _COMPONENT ACPI_NAMESPACE
ACPI_MODULE_NAME ("nsdump")
-#if defined(ACPI_DEBUG) || defined(ENABLE_DEBUGGER)
+#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
/*******************************************************************************
@@ -369,7 +369,7 @@ AcpiNsDumpOneObject (
switch (Type)
{
case ACPI_TYPE_PROCESSOR:
-
+
AcpiOsPrintf (" ID %hd Addr %.4X Len %.4X\n",
ObjDesc->Processor.ProcId,
ObjDesc->Processor.Address,
@@ -378,13 +378,13 @@ AcpiNsDumpOneObject (
case ACPI_TYPE_DEVICE:
-
+
AcpiOsPrintf (" Notification object: %p", ObjDesc);
break;
case ACPI_TYPE_METHOD:
-
+
AcpiOsPrintf (" Args %hd Len %.4X Aml %p \n",
ObjDesc->Method.ParamCount,
ObjDesc->Method.AmlLength,
@@ -393,7 +393,7 @@ AcpiNsDumpOneObject (
case ACPI_TYPE_INTEGER:
-
+
AcpiOsPrintf (" = %8.8X%8.8X\n",
ACPI_HIDWORD (ObjDesc->Integer.Value),
ACPI_LODWORD (ObjDesc->Integer.Value));
@@ -441,7 +441,7 @@ AcpiNsDumpOneObject (
case ACPI_TYPE_STRING:
-
+
AcpiOsPrintf (" Len %.2X", ObjDesc->String.Length);
if (ObjDesc->String.Length > 0)
@@ -457,7 +457,7 @@ AcpiNsDumpOneObject (
case ACPI_TYPE_REGION:
-
+
AcpiOsPrintf (" [%s]", AcpiUtGetRegionName (ObjDesc->Region.SpaceId));
if (ObjDesc->Region.Flags & AOPOBJ_DATA_VALID)
{
@@ -474,14 +474,14 @@ AcpiNsDumpOneObject (
case INTERNAL_TYPE_REFERENCE:
-
+
AcpiOsPrintf (" [%s]\n",
AcpiPsGetOpcodeName (ObjDesc->Reference.Opcode));
break;
case ACPI_TYPE_BUFFER_FIELD:
-
+
if (ObjDesc->BufferField.BufferObj &&
ObjDesc->BufferField.BufferObj->Buffer.Node)
{
@@ -492,14 +492,14 @@ AcpiNsDumpOneObject (
case INTERNAL_TYPE_REGION_FIELD:
-
+
AcpiOsPrintf (" Rgn [%4.4s]",
ObjDesc->CommonField.RegionObj->Region.Node->Name.Ascii);
break;
case INTERNAL_TYPE_BANK_FIELD:
-
+
AcpiOsPrintf (" Rgn [%4.4s] Bnk [%4.4s]",
ObjDesc->CommonField.RegionObj->Region.Node->Name.Ascii,
ObjDesc->BankField.BankObj->CommonField.Node->Name.Ascii);
@@ -507,7 +507,7 @@ AcpiNsDumpOneObject (
case INTERNAL_TYPE_INDEX_FIELD:
-
+
AcpiOsPrintf (" Idx [%4.4s] Dat [%4.4s]",
ObjDesc->IndexField.IndexObj->CommonField.Node->Name.Ascii,
ObjDesc->IndexField.DataObj->CommonField.Node->Name.Ascii);
@@ -515,7 +515,7 @@ AcpiNsDumpOneObject (
default:
-
+
AcpiOsPrintf (" Object %p\n", ObjDesc);
break;
}
@@ -534,7 +534,7 @@ AcpiNsDumpOneObject (
ObjDesc->CommonField.BitLength,
ObjDesc->CommonField.AccessByteWidth);
break;
-
+
default:
break;
}
@@ -750,7 +750,7 @@ AcpiNsDumpObjects (
Info.DisplayType = DisplayType;
- (void) AcpiNsWalkNamespace (Type, StartHandle, MaxDepth,
+ (void) AcpiNsWalkNamespace (Type, StartHandle, MaxDepth,
ACPI_NS_WALK_NO_UNLOCK, AcpiNsDumpOneObject,
(void *) &Info, NULL);
}
diff --git a/sys/contrib/dev/acpica/nsdumpdv.c b/sys/contrib/dev/acpica/nsdumpdv.c
index 2a61aeb..944cc72 100644
--- a/sys/contrib/dev/acpica/nsdumpdv.c
+++ b/sys/contrib/dev/acpica/nsdumpdv.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: nsdump - table dumping routines for debug
- * $Revision: 1 $
+ * $Revision: 3 $
*
*****************************************************************************/
@@ -126,7 +126,7 @@
ACPI_MODULE_NAME ("nsdumpdv")
-#if defined(ACPI_DEBUG) || defined(ENABLE_DEBUGGER)
+#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
/*******************************************************************************
*
@@ -211,7 +211,7 @@ AcpiNsDumpRootDevices (void)
ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, "Display of all devices in the namespace:\n"));
- Status = AcpiNsWalkNamespace (ACPI_TYPE_DEVICE, SysBusHandle,
+ Status = AcpiNsWalkNamespace (ACPI_TYPE_DEVICE, SysBusHandle,
ACPI_UINT32_MAX, ACPI_NS_WALK_NO_UNLOCK,
AcpiNsDumpOneDevice, NULL, NULL);
}
diff --git a/sys/contrib/dev/acpica/nseval.c b/sys/contrib/dev/acpica/nseval.c
index 5ac07b9..043da21 100644
--- a/sys/contrib/dev/acpica/nseval.c
+++ b/sys/contrib/dev/acpica/nseval.c
@@ -2,7 +2,7 @@
*
* Module Name: nseval - Object evaluation interfaces -- includes control
* method lookup and execution.
- * $Revision: 117 $
+ * $Revision: 118 $
*
******************************************************************************/
@@ -602,7 +602,7 @@ AcpiNsGetObjectValue (
{
Status = AE_CTRL_RETURN_VALUE;
*ReturnObjDesc = ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, ResolvedNode);
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Returning object %p [%s]\n",
+ ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Returning object %p [%s]\n",
*ReturnObjDesc, AcpiUtGetObjectTypeName (*ReturnObjDesc)));
}
}
diff --git a/sys/contrib/dev/acpica/nsinit.c b/sys/contrib/dev/acpica/nsinit.c
index 9a46ea6..d1569ce 100644
--- a/sys/contrib/dev/acpica/nsinit.c
+++ b/sys/contrib/dev/acpica/nsinit.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: nsinit - namespace initialization
- * $Revision: 47 $
+ * $Revision: 49 $
*
*****************************************************************************/
@@ -165,15 +165,15 @@ AcpiNsInitializeObjects (
&Info, NULL);
if (ACPI_FAILURE (Status))
{
- ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "WalkNamespace failed! %s\n",
+ ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "WalkNamespace failed! %s\n",
AcpiFormatException (Status)));
}
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OK,
"\nInitialized %hd/%hd Regions %hd/%hd Fields %hd/%hd Buffers %hd/%hd Packages (%hd nodes)\n",
- Info.OpRegionInit, Info.OpRegionCount,
- Info.FieldInit, Info.FieldCount,
- Info.BufferInit, Info.BufferCount,
+ Info.OpRegionInit, Info.OpRegionCount,
+ Info.FieldInit, Info.FieldCount,
+ Info.BufferInit, Info.BufferCount,
Info.PackageInit, Info.PackageCount, Info.ObjectCount));
ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
"%hd Control Methods found\n", Info.MethodCount));
@@ -226,7 +226,7 @@ AcpiNsInitializeDevices (
if (ACPI_FAILURE (Status))
{
- ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "WalkNamespace failed! %s\n",
+ ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "WalkNamespace failed! %s\n",
AcpiFormatException (Status)));
}
@@ -331,7 +331,7 @@ AcpiNsInitOneObject (
/*
* Each of these types can contain executable AML code within
- * the declaration.
+ * the declaration.
*/
switch (Type)
{
@@ -479,7 +479,7 @@ AcpiNsInitOneDevice (
{
/* Ignore error and move on to next device */
- #ifdef ACPI_DEBUG
+ #ifdef ACPI_DEBUG_OUTPUT
NATIVE_CHAR *ScopeName = AcpiNsGetExternalPathname (ObjHandle);
ACPI_DEBUG_PRINT ((ACPI_DB_WARN, "%s._INI failed: %s\n",
diff --git a/sys/contrib/dev/acpica/nsload.c b/sys/contrib/dev/acpica/nsload.c
index 4bf6959..b644241 100644
--- a/sys/contrib/dev/acpica/nsload.c
+++ b/sys/contrib/dev/acpica/nsload.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: nsload - namespace loading/expanding/contracting procedures
- * $Revision: 57 $
+ * $Revision: 58 $
*
*****************************************************************************/
@@ -534,7 +534,6 @@ AcpiNsLoadNamespace (
}
-
/*******************************************************************************
*
* FUNCTION: AcpiNsDeleteSubtree
diff --git a/sys/contrib/dev/acpica/nsnames.c b/sys/contrib/dev/acpica/nsnames.c
index 670ce3a..09a51d2 100644
--- a/sys/contrib/dev/acpica/nsnames.c
+++ b/sys/contrib/dev/acpica/nsnames.c
@@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: nsnames - Name manipulation and search
- * $Revision: 78 $
+ * $Revision: 79 $
*
******************************************************************************/
@@ -198,7 +198,7 @@ AcpiNsBuildExternalPath (
}
-#ifdef ACPI_DEBUG
+#ifdef ACPI_DEBUG_OUTPUT
/*******************************************************************************
*
* FUNCTION: AcpiNsGetExternalPathname
diff --git a/sys/contrib/dev/acpica/nssearch.c b/sys/contrib/dev/acpica/nssearch.c
index 7b8ad59..b0add89 100644
--- a/sys/contrib/dev/acpica/nssearch.c
+++ b/sys/contrib/dev/acpica/nssearch.c
@@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: nssearch - Namespace search
- * $Revision: 86 $
+ * $Revision: 89 $
*
******************************************************************************/
@@ -163,7 +163,7 @@ AcpiNsSearchNode (
ACPI_FUNCTION_TRACE ("NsSearchNode");
-#ifdef ACPI_DEBUG
+#ifdef ACPI_DEBUG_OUTPUT
if (ACPI_LV_NAMES & AcpiDbgLevel)
{
NATIVE_CHAR *ScopeName;
@@ -306,7 +306,7 @@ AcpiNsSearchParentTree (
if (AcpiNsLocal (Type))
{
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
+ ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
"[%4.4s] type [%s] must be local to this scope (no parent search)\n",
(char *) &TargetName, AcpiUtGetTypeName (Type)));
}
@@ -395,10 +395,10 @@ AcpiNsSearchAndEnter (
if (!Node || !TargetName || !ReturnNode)
{
- ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Null param- Table %p Name %X Return %p\n",
+ ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Null param: Node %p Name %X ReturnNode %p\n",
Node, TargetName, ReturnNode));
- ACPI_REPORT_ERROR (("NsSearchAndEnter: bad (null) parameter\n"));
+ ACPI_REPORT_ERROR (("NsSearchAndEnter: Null parameter\n"));
return_ACPI_STATUS (AE_BAD_PARAMETER);
}
diff --git a/sys/contrib/dev/acpica/nsutils.c b/sys/contrib/dev/acpica/nsutils.c
index 017d917..a786de7 100644
--- a/sys/contrib/dev/acpica/nsutils.c
+++ b/sys/contrib/dev/acpica/nsutils.c
@@ -2,7 +2,7 @@
*
* Module Name: nsutils - Utilities for accessing ACPI namespace, accessing
* parents and siblings and Scope manipulation
- * $Revision: 110 $
+ * $Revision: 112 $
*
*****************************************************************************/
@@ -557,10 +557,14 @@ AcpiNsExternalizeName (
case '^':
for (i = 0; i < InternalNameLength; i++)
{
- if (InternalName[i] != '^')
+ if (InternalName[i] == '^')
{
PrefixLength = i + 1;
}
+ else
+ {
+ break;
+ }
}
if (i == InternalNameLength)
@@ -980,7 +984,7 @@ AcpiNsFindParentName (
}
-#if defined(ACPI_DEBUG) || defined(ENABLE_DEBUGGER)
+#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
/*******************************************************************************
*
@@ -1016,7 +1020,7 @@ AcpiNsExistDownstreamSibling (
return (FALSE);
}
-#endif /* ACPI_DEBUG */
+#endif /* ACPI_DEBUG_OUTPUT */
/*******************************************************************************
diff --git a/sys/contrib/dev/acpica/nsxfeval.c b/sys/contrib/dev/acpica/nsxfeval.c
index 3986871..1349eda 100644
--- a/sys/contrib/dev/acpica/nsxfeval.c
+++ b/sys/contrib/dev/acpica/nsxfeval.c
@@ -2,7 +2,7 @@
*
* Module Name: nsxfeval - Public interfaces to the ACPI subsystem
* ACPI Object evaluation interfaces
- * $Revision: 1 $
+ * $Revision: 2 $
*
******************************************************************************/
@@ -447,7 +447,6 @@ AcpiEvaluateObject (
}
-
/*******************************************************************************
*
* FUNCTION: AcpiWalkNamespace
diff --git a/sys/contrib/dev/acpica/psargs.c b/sys/contrib/dev/acpica/psargs.c
index 4034788..e1e5346 100644
--- a/sys/contrib/dev/acpica/psargs.c
+++ b/sys/contrib/dev/acpica/psargs.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: psargs - Parse AML opcode arguments
- * $Revision: 62 $
+ * $Revision: 64 $
*
*****************************************************************************/
@@ -256,7 +256,7 @@ AcpiPsGetNextNamestring (
while (AcpiPsIsPrefixChar (ACPI_GET8 (End)))
{
- /* include prefix '\\' or '^' */
+ /* Include prefix '\\' or '^' */
End++;
}
@@ -314,20 +314,17 @@ AcpiPsGetNextNamestring (
* MethodCall - Whether the namepath can be the start
* of a method call
*
- * RETURN: None
+ * RETURN: Status
*
- * DESCRIPTION: Get next name (if method call, push appropriate # args). Names
- * are looked up in either the parsed or internal namespace to
- * determine if the name represents a control method. If a method
+ * DESCRIPTION: Get next name (if method call, return # of required args).
+ * Names are looked up in the internal namespace to determine
+ * if the name represents a control method. If a method
* is found, the number of arguments to the method is returned.
* This information is critical for parsing to continue correctly.
*
******************************************************************************/
-
-#ifdef PARSER_ONLY
-
-void
+ACPI_STATUS
AcpiPsGetNextNamepath (
ACPI_PARSE_STATE *ParserState,
ACPI_PARSE_OBJECT *Arg,
@@ -336,69 +333,77 @@ AcpiPsGetNextNamepath (
{
NATIVE_CHAR *Path;
ACPI_PARSE_OBJECT *NameOp;
- ACPI_PARSE_OBJECT *Op;
- ACPI_PARSE_OBJECT *Count;
+ ACPI_STATUS Status = AE_OK;
+ ACPI_OPERAND_OBJECT *MethodDesc;
+ ACPI_NAMESPACE_NODE *Node;
+ ACPI_GENERIC_STATE ScopeInfo;
ACPI_FUNCTION_TRACE ("PsGetNextNamepath");
Path = AcpiPsGetNextNamestring (ParserState);
- if (!Path || !MethodCall)
- {
- /* Null name case, create a null namepath object */
-
- AcpiPsInitOp (Arg, AML_INT_NAMEPATH_OP);
- Arg->Common.Value.Name = Path;
- return_VOID;
- }
+ /* Null path case is allowed */
- if (AcpiGbl_ParsedNamespaceRoot)
+ if (Path)
{
/*
- * Lookup the name in the parsed namespace
+ * Lookup the name in the internal namespace
*/
- Op = NULL;
- if (MethodCall)
+ ScopeInfo.Scope.Node = NULL;
+ Node = ParserState->StartNode;
+ if (Node)
{
- Op = AcpiPsFind (AcpiPsGetParentScope (ParserState),
- Path, AML_METHOD_OP, 0);
+ ScopeInfo.Scope.Node = Node;
}
- if (Op)
+ /*
+ * Lookup object. We don't want to add anything new to the namespace
+ * here, however. So we use MODE_EXECUTE. Allow searching of the
+ * parent tree, but don't open a new scope -- we just want to lookup the
+ * object (MUST BE mode EXECUTE to perform upsearch)
+ */
+ Status = AcpiNsLookup (&ScopeInfo, Path, ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE,
+ ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, NULL,
+ &Node);
+ if (ACPI_SUCCESS (Status) && MethodCall)
{
- if (Op->Common.AmlOpcode == AML_METHOD_OP)
+ if (Node->Type == ACPI_TYPE_METHOD)
{
- /*
- * The name refers to a control method, so this namepath is a
- * method invocation. We need to 1) Get the number of arguments
- * associated with this method, and 2) Change the NAMEPATH
- * object into a METHODCALL object.
- */
- Count = AcpiPsGetArg (Op, 0);
- if (Count && Count->Common.AmlOpcode == AML_BYTE_OP)
+ MethodDesc = AcpiNsGetAttachedObject (Node);
+ ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Control Method - %p Desc %p Path=%p\n",
+ Node, MethodDesc, Path));
+
+ NameOp = AcpiPsAllocOp (AML_INT_NAMEPATH_OP);
+ if (!NameOp)
{
- NameOp = AcpiPsAllocOp (AML_INT_NAMEPATH_OP);
- if (NameOp)
- {
- /* Change arg into a METHOD CALL and attach the name */
+ return_ACPI_STATUS (AE_NO_MEMORY);
+ }
+
+ /* Change arg into a METHOD CALL and attach name to it */
- AcpiPsInitOp (Arg, AML_INT_METHODCALL_OP);
+ AcpiPsInitOp (Arg, AML_INT_METHODCALL_OP);
- NameOp->Common.Value.Name = Path;
+ NameOp->Common.Value.Name = Path;
- /* Point METHODCALL/NAME to the METHOD Node */
+ /* Point METHODCALL/NAME to the METHOD Node */
- NameOp->Common.Node = (ACPI_NAMESPACE_NODE *) Op;
- AcpiPsAppendArg (Arg, NameOp);
+ NameOp->Common.Node = Node;
+ AcpiPsAppendArg (Arg, NameOp);
- *ArgCount = (UINT32) Count->Common.Value.Integer &
- METHOD_FLAGS_ARG_COUNT;
- }
+ if (!MethodDesc)
+ {
+ ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Control Method - %p has no attached object\n",
+ Node));
+ return_ACPI_STATUS (AE_AML_INTERNAL);
}
- return_VOID;
+ ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Control Method - %p Args %X\n",
+ Node, MethodDesc->Method.ParamCount));
+
+ *ArgCount = MethodDesc->Method.ParamCount;
+ return_ACPI_STATUS (AE_OK);
}
/*
@@ -410,127 +415,15 @@ AcpiPsGetNextNamepath (
}
/*
- * Either we didn't find the object in the namespace, or the object is
- * something other than a control method. Just initialize the Op with the
- * pathname
- */
- AcpiPsInitOp (Arg, AML_INT_NAMEPATH_OP);
- Arg->Common.Value.Name = Path;
-
-
- return_VOID;
-}
-
-
-#else
-
-
-void
-AcpiPsGetNextNamepath (
- ACPI_PARSE_STATE *ParserState,
- ACPI_PARSE_OBJECT *Arg,
- UINT32 *ArgCount,
- BOOLEAN MethodCall)
-{
- NATIVE_CHAR *Path;
- ACPI_PARSE_OBJECT *NameOp;
- ACPI_STATUS Status;
- ACPI_OPERAND_OBJECT *MethodDesc;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_GENERIC_STATE ScopeInfo;
-
-
- ACPI_FUNCTION_TRACE ("PsGetNextNamepath");
-
-
- Path = AcpiPsGetNextNamestring (ParserState);
- if (!Path || !MethodCall)
- {
- /* Null name case, create a null namepath object */
-
- AcpiPsInitOp (Arg, AML_INT_NAMEPATH_OP);
- Arg->Common.Value.Name = Path;
- return_VOID;
- }
-
- /*
- * Lookup the name in the internal namespace
- */
- ScopeInfo.Scope.Node = NULL;
- Node = ParserState->StartNode;
- if (Node)
- {
- ScopeInfo.Scope.Node = Node;
- }
-
- /*
- * Lookup object. We don't want to add anything new to the namespace
- * here, however. So we use MODE_EXECUTE. Allow searching of the
- * parent tree, but don't open a new scope -- we just want to lookup the
- * object (MUST BE mode EXECUTE to perform upsearch)
- */
- Status = AcpiNsLookup (&ScopeInfo, Path, ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE,
- ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, NULL,
- &Node);
- if (ACPI_SUCCESS (Status))
- {
- if (Node->Type == ACPI_TYPE_METHOD)
- {
- MethodDesc = AcpiNsGetAttachedObject (Node);
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Control Method - %p Desc %p Path=%p\n",
- Node, MethodDesc, Path));
-
- NameOp = AcpiPsAllocOp (AML_INT_NAMEPATH_OP);
- if (!NameOp)
- {
- return_VOID;
- }
-
- /* Change arg into a METHOD CALL and attach name to it */
-
- AcpiPsInitOp (Arg, AML_INT_METHODCALL_OP);
-
- NameOp->Common.Value.Name = Path;
-
- /* Point METHODCALL/NAME to the METHOD Node */
-
- NameOp->Common.Node = Node;
- AcpiPsAppendArg (Arg, NameOp);
-
- if (!MethodDesc)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Control Method - %p has no attached object\n",
- Node));
- return_VOID;
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Control Method - %p Args %X\n",
- Node, MethodDesc->Method.ParamCount));
-
- *ArgCount = MethodDesc->Method.ParamCount;
- return_VOID;
- }
-
- /*
- * Else this is normal named object reference.
- * Just init the NAMEPATH object with the pathname.
- * (See code below)
- */
- }
-
- /*
- * Either we didn't find the object in the namespace, or the object is
- * something other than a control method. Just initialize the Op with the
- * pathname.
+ * Regardless of success/failure above,
+ * Just initialize the Op with the pathname.
*/
AcpiPsInitOp (Arg, AML_INT_NAMEPATH_OP);
Arg->Common.Value.Name = Path;
-
- return_VOID;
+ return_ACPI_STATUS (Status);
}
-#endif
/*******************************************************************************
*
@@ -744,23 +637,25 @@ AcpiPsGetNextField (
* ArgCount - If the argument points to a control method
* the method's argument is returned here.
*
- * RETURN: An op object containing the next argument.
+ * RETURN: Status, and an op object containing the next argument.
*
* DESCRIPTION: Get next argument (including complex list arguments that require
* pushing the parser stack)
*
******************************************************************************/
-ACPI_PARSE_OBJECT *
+ACPI_STATUS
AcpiPsGetNextArg (
ACPI_PARSE_STATE *ParserState,
UINT32 ArgType,
- UINT32 *ArgCount)
+ UINT32 *ArgCount,
+ ACPI_PARSE_OBJECT **ReturnArg)
{
ACPI_PARSE_OBJECT *Arg = NULL;
ACPI_PARSE_OBJECT *Prev = NULL;
ACPI_PARSE_OBJECT *Field;
UINT32 Subop;
+ ACPI_STATUS Status = AE_OK;
ACPI_FUNCTION_TRACE_PTR ("PsGetNextArg", ParserState);
@@ -778,16 +673,17 @@ AcpiPsGetNextArg (
/* constants, strings, and namestrings are all the same size */
Arg = AcpiPsAllocOp (AML_BYTE_OP);
- if (Arg)
+ if (!Arg)
{
- AcpiPsGetNextSimpleArg (ParserState, ArgType, Arg);
+ return_ACPI_STATUS (AE_NO_MEMORY);
}
+ AcpiPsGetNextSimpleArg (ParserState, ArgType, Arg);
break;
case ARGP_PKGLENGTH:
- /* package length, nothing returned */
+ /* Package length, nothing returned */
ParserState->PkgEnd = AcpiPsGetNextPackageEnd (ParserState);
break;
@@ -797,21 +693,20 @@ AcpiPsGetNextArg (
if (ParserState->Aml < ParserState->PkgEnd)
{
- /* non-empty list */
+ /* Non-empty list */
while (ParserState->Aml < ParserState->PkgEnd)
{
Field = AcpiPsGetNextField (ParserState);
if (!Field)
{
- break;
+ return_ACPI_STATUS (AE_NO_MEMORY);
}
if (Prev)
{
Prev->Common.Next = Field;
}
-
else
{
Arg = Field;
@@ -820,7 +715,7 @@ AcpiPsGetNextArg (
Prev = Field;
}
- /* skip to End of byte data */
+ /* Skip to End of byte data */
ParserState->Aml = ParserState->PkgEnd;
}
@@ -831,18 +726,20 @@ AcpiPsGetNextArg (
if (ParserState->Aml < ParserState->PkgEnd)
{
- /* non-empty list */
+ /* Non-empty list */
Arg = AcpiPsAllocOp (AML_INT_BYTELIST_OP);
- if (Arg)
+ if (!Arg)
{
- /* fill in bytelist data */
-
- Arg->Common.Value.Size = ACPI_PTR_DIFF (ParserState->PkgEnd, ParserState->Aml);
- Arg->Named.Data = ParserState->Aml;
+ return_ACPI_STATUS (AE_NO_MEMORY);
}
- /* skip to End of byte data */
+ /* Fill in bytelist data */
+
+ Arg->Common.Value.Size = ACPI_PTR_DIFF (ParserState->PkgEnd, ParserState->Aml);
+ Arg->Named.Data = ParserState->Aml;
+
+ /* Skip to End of byte data */
ParserState->Aml = ParserState->PkgEnd;
}
@@ -852,27 +749,27 @@ AcpiPsGetNextArg (
case ARGP_TARGET:
case ARGP_SUPERNAME:
case ARGP_SIMPLENAME:
+
+ Subop = AcpiPsPeekOpcode (ParserState);
+ if (Subop == 0 ||
+ AcpiPsIsLeadingChar (Subop) ||
+ AcpiPsIsPrefixChar (Subop))
{
- Subop = AcpiPsPeekOpcode (ParserState);
- if (Subop == 0 ||
- AcpiPsIsLeadingChar (Subop) ||
- AcpiPsIsPrefixChar (Subop))
- {
- /* NullName or NameString */
+ /* NullName or NameString */
- Arg = AcpiPsAllocOp (AML_INT_NAMEPATH_OP);
- if (Arg)
- {
- AcpiPsGetNextNamepath (ParserState, Arg, ArgCount, 0);
- }
+ Arg = AcpiPsAllocOp (AML_INT_NAMEPATH_OP);
+ if (!Arg)
+ {
+ return_ACPI_STATUS (AE_NO_MEMORY);
}
- else
- {
- /* single complex argument, nothing returned */
+ Status = AcpiPsGetNextNamepath (ParserState, Arg, ArgCount, 0);
+ }
+ else
+ {
+ /* single complex argument, nothing returned */
- *ArgCount = 1;
- }
+ *ArgCount = 1;
}
break;
@@ -898,10 +795,14 @@ AcpiPsGetNextArg (
}
break;
+
default:
+
ACPI_REPORT_ERROR (("Invalid ArgType: %X\n", ArgType));
+ Status = AE_AML_OPERAND_TYPE;
break;
}
- return_PTR (Arg);
+ *ReturnArg = Arg;
+ return_ACPI_STATUS (Status);
}
diff --git a/sys/contrib/dev/acpica/psopcode.c b/sys/contrib/dev/acpica/psopcode.c
index 53723e4..270c743 100644
--- a/sys/contrib/dev/acpica/psopcode.c
+++ b/sys/contrib/dev/acpica/psopcode.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: psopcode - Parser/Interpreter opcode information table
- * $Revision: 71 $
+ * $Revision: 72 $
*
*****************************************************************************/
@@ -649,17 +649,17 @@ const ACPI_OPCODE_INFO AcpiGbl_AmlOpInfo[AML_NUM_OPCODES] =
/* 60 */ ACPI_OP ("LNotEqual", ARGP_LNOTEQUAL_OP, ARGI_LNOTEQUAL_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, AML_HAS_ARGS | AML_CONSTANT),
/* 61 */ ACPI_OP ("LLessEqual", ARGP_LLESSEQUAL_OP, ARGI_LLESSEQUAL_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, AML_HAS_ARGS | AML_CONSTANT),
/* 62 */ ACPI_OP ("LGreaterEqual", ARGP_LGREATEREQUAL_OP, ARGI_LGREATEREQUAL_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, AML_HAS_ARGS | AML_CONSTANT),
-/* 63 */ ACPI_OP ("[NamePath]", ARGP_NAMEPATH_OP, ARGI_NAMEPATH_OP, INTERNAL_TYPE_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LITERAL, AML_NSOBJECT | AML_NSNODE ),
-/* 64 */ ACPI_OP ("[MethodCall]", ARGP_METHODCALL_OP, ARGI_METHODCALL_OP, ACPI_TYPE_METHOD, AML_CLASS_METHOD_CALL, AML_TYPE_METHOD_CALL, AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE),
-/* 65 */ ACPI_OP ("[ByteList]", ARGP_BYTELIST_OP, ARGI_BYTELIST_OP, ACPI_TYPE_ANY, AML_CLASS_ARGUMENT, AML_TYPE_LITERAL, 0),
-/* 66 */ ACPI_OP ("[ReservedField]", ARGP_RESERVEDFIELD_OP, ARGI_RESERVEDFIELD_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, 0),
-/* 67 */ ACPI_OP ("[NamedField]", ARGP_NAMEDFIELD_OP, ARGI_NAMEDFIELD_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED ),
-/* 68 */ ACPI_OP ("[AccessField]", ARGP_ACCESSFIELD_OP, ARGI_ACCESSFIELD_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, 0),
-/* 69 */ ACPI_OP ("[StaticString", ARGP_STATICSTRING_OP, ARGI_STATICSTRING_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, 0),
-/* 6A */ ACPI_OP ("[Return Value]", ARG_NONE, ARG_NONE, ACPI_TYPE_ANY, AML_CLASS_RETURN_VALUE, AML_TYPE_RETURN, AML_HAS_ARGS | AML_HAS_RETVAL),
-/* 6B */ ACPI_OP ("UNKNOWN_OP!", ARG_NONE, ARG_NONE, INTERNAL_TYPE_INVALID, AML_CLASS_UNKNOWN, AML_TYPE_BOGUS, AML_HAS_ARGS),
-/* 6C */ ACPI_OP ("ASCII_ONLY!", ARG_NONE, ARG_NONE, ACPI_TYPE_ANY, AML_CLASS_ASCII, AML_TYPE_BOGUS, AML_HAS_ARGS),
-/* 6D */ ACPI_OP ("PREFIX_ONLY!", ARG_NONE, ARG_NONE, ACPI_TYPE_ANY, AML_CLASS_PREFIX, AML_TYPE_BOGUS, AML_HAS_ARGS),
+/* 63 */ ACPI_OP ("-NamePath-", ARGP_NAMEPATH_OP, ARGI_NAMEPATH_OP, INTERNAL_TYPE_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LITERAL, AML_NSOBJECT | AML_NSNODE ),
+/* 64 */ ACPI_OP ("-MethodCall-", ARGP_METHODCALL_OP, ARGI_METHODCALL_OP, ACPI_TYPE_METHOD, AML_CLASS_METHOD_CALL, AML_TYPE_METHOD_CALL, AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE),
+/* 65 */ ACPI_OP ("-ByteList-", ARGP_BYTELIST_OP, ARGI_BYTELIST_OP, ACPI_TYPE_ANY, AML_CLASS_ARGUMENT, AML_TYPE_LITERAL, 0),
+/* 66 */ ACPI_OP ("-ReservedField-", ARGP_RESERVEDFIELD_OP, ARGI_RESERVEDFIELD_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, 0),
+/* 67 */ ACPI_OP ("-NamedField-", ARGP_NAMEDFIELD_OP, ARGI_NAMEDFIELD_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED ),
+/* 68 */ ACPI_OP ("-AccessField-", ARGP_ACCESSFIELD_OP, ARGI_ACCESSFIELD_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, 0),
+/* 69 */ ACPI_OP ("-StaticString", ARGP_STATICSTRING_OP, ARGI_STATICSTRING_OP, ACPI_TYPE_ANY, AML_CLASS_INTERNAL, AML_TYPE_BOGUS, 0),
+/* 6A */ ACPI_OP ("-Return Value-", ARG_NONE, ARG_NONE, ACPI_TYPE_ANY, AML_CLASS_RETURN_VALUE, AML_TYPE_RETURN, AML_HAS_ARGS | AML_HAS_RETVAL),
+/* 6B */ ACPI_OP ("-UNKNOWN_OP-", ARG_NONE, ARG_NONE, INTERNAL_TYPE_INVALID, AML_CLASS_UNKNOWN, AML_TYPE_BOGUS, AML_HAS_ARGS),
+/* 6C */ ACPI_OP ("-ASCII_ONLY-", ARG_NONE, ARG_NONE, ACPI_TYPE_ANY, AML_CLASS_ASCII, AML_TYPE_BOGUS, AML_HAS_ARGS),
+/* 6D */ ACPI_OP ("-PREFIX_ONLY-", ARG_NONE, ARG_NONE, ACPI_TYPE_ANY, AML_CLASS_PREFIX, AML_TYPE_BOGUS, AML_HAS_ARGS),
/* ACPI 2.0 opcodes */
diff --git a/sys/contrib/dev/acpica/psparse.c b/sys/contrib/dev/acpica/psparse.c
index 3740e19..8d4606d 100644
--- a/sys/contrib/dev/acpica/psparse.c
+++ b/sys/contrib/dev/acpica/psparse.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: psparse - Parser top level AML parse routines
- * $Revision: 129 $
+ * $Revision: 133 $
*
*****************************************************************************/
@@ -206,60 +206,6 @@ AcpiPsPeekOpcode (
/*******************************************************************************
*
- * FUNCTION: AcpiPsFindObject
- *
- * PARAMETERS: Opcode - Current opcode
- * ParserState - Current state
- * WalkState - Current state
- * *Op - Where found/new op is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Find a named object. Two versions - one to search the parse
- * tree (for parser-only applications such as acpidump), another
- * to search the ACPI internal namespace (the parse tree may no
- * longer exist)
- *
- ******************************************************************************/
-
-#ifdef PARSER_ONLY
-
-ACPI_STATUS
-AcpiPsFindObject (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT **OutOp)
-{
- NATIVE_CHAR *Path;
-
-
- /* We are only interested in opcodes that have an associated name */
-
- if (!(WalkState->OpInfo->Flags & AML_NAMED))
- {
- *OutOp = WalkState->Op;
- return (AE_OK);
- }
-
- /* Find the name in the parse tree */
-
- Path = AcpiPsGetNextNamestring (&WalkState->ParserState);
-
- *OutOp = AcpiPsFind (AcpiPsGetParentScope (&WalkState->ParserState),
- Path, WalkState->Opcode, 1);
-
- if (!(*OutOp))
- {
- return (AE_NOT_FOUND);
- }
-
- return (AE_OK);
-}
-
-#endif
-
-
-/*******************************************************************************
- *
* FUNCTION: AcpiPsCompleteThisOp
*
* PARAMETERS: WalkState - Current State
@@ -276,7 +222,6 @@ AcpiPsCompleteThisOp (
ACPI_WALK_STATE *WalkState,
ACPI_PARSE_OBJECT *Op)
{
-#ifndef PARSER_ONLY
ACPI_PARSE_OBJECT *Prev;
ACPI_PARSE_OBJECT *Next;
const ACPI_OPCODE_INFO *ParentInfo;
@@ -431,10 +376,6 @@ AcpiPsCompleteThisOp (
}
return_VOID;
-
-#else
- return;
-#endif
}
@@ -496,6 +437,13 @@ AcpiPsNextParseState (
ParserState->Aml = WalkState->AmlLastWhile;
break;
+#if 0
+ case AE_CTRL_SKIP:
+
+ ParserState->Aml = ParserState->Scope->ParseScope.PkgEnd;
+ Status = AE_OK;
+ break;
+#endif
case AE_CTRL_TRUE:
@@ -712,15 +660,28 @@ AcpiPsParseLoop (
* Get and append arguments until we find the node that contains
* the name (the type ARGP_NAME).
*/
- while (GET_CURRENT_ARG_TYPE (WalkState->ArgTypes) != ARGP_NAME)
+ while (GET_CURRENT_ARG_TYPE (WalkState->ArgTypes) &&
+ (GET_CURRENT_ARG_TYPE (WalkState->ArgTypes) != ARGP_NAME))
{
- Arg = AcpiPsGetNextArg (ParserState,
- GET_CURRENT_ARG_TYPE (WalkState->ArgTypes),
- &WalkState->ArgCount);
+ Status = AcpiPsGetNextArg (ParserState,
+ GET_CURRENT_ARG_TYPE (WalkState->ArgTypes),
+ &WalkState->ArgCount, &Arg);
+ if (ACPI_FAILURE (Status))
+ {
+ goto CloseThisOp;
+ }
+
AcpiPsAppendArg (&PreOp, Arg);
INCREMENT_ARG_LIST (WalkState->ArgTypes);
}
+ /* Make sure that we found a NAME and didn't run out of arguments */
+
+ if (!GET_CURRENT_ARG_TYPE (WalkState->ArgTypes))
+ {
+ return_ACPI_STATUS (AE_AML_NO_OPERAND);
+ }
+
/* We know that this arg is a name, move to next arg */
INCREMENT_ARG_LIST (WalkState->ArgTypes);
@@ -828,8 +789,8 @@ AcpiPsParseLoop (
if (WalkState->OpInfo)
{
ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
- "Opcode %4.4hX [%s] Op %p Aml %p AmlOffset %5.5X\n",
- Op->Common.AmlOpcode, WalkState->OpInfo->Name,
+ "Opcode %4.4X [%s] Op %p Aml %p AmlOffset %5.5X\n",
+ (UINT32) Op->Common.AmlOpcode, WalkState->OpInfo->Name,
Op, ParserState->Aml, Op->Common.AmlOffset));
}
}
@@ -859,7 +820,19 @@ AcpiPsParseLoop (
case AML_INT_NAMEPATH_OP: /* AML_NAMESTRING_ARG */
- AcpiPsGetNextNamepath (ParserState, Op, &WalkState->ArgCount, 1);
+ Status = AcpiPsGetNextNamepath (ParserState, Op, &WalkState->ArgCount, 1);
+ if (ACPI_FAILURE (Status))
+ {
+ /* NOT_FOUND is an error only if we are actually executing a method */
+
+ if ((((WalkState->ParseFlags & ACPI_PARSE_MODE_MASK) == ACPI_PARSE_EXECUTE) &&
+ (Status == AE_NOT_FOUND)) ||
+ (Status != AE_NOT_FOUND))
+ {
+ goto CloseThisOp;
+ }
+ }
+
WalkState->ArgTypes = 0;
break;
@@ -870,17 +843,29 @@ AcpiPsParseLoop (
while (GET_CURRENT_ARG_TYPE (WalkState->ArgTypes) && !WalkState->ArgCount)
{
- WalkState->AmlOffset = ACPI_PTR_DIFF (ParserState->Aml,
+ WalkState->AmlOffset = ACPI_PTR_DIFF (ParserState->Aml,
ParserState->AmlStart);
- Arg = AcpiPsGetNextArg (ParserState,
- GET_CURRENT_ARG_TYPE (WalkState->ArgTypes),
- &WalkState->ArgCount);
+ Status = AcpiPsGetNextArg (ParserState,
+ GET_CURRENT_ARG_TYPE (WalkState->ArgTypes),
+ &WalkState->ArgCount, &Arg);
+ if (ACPI_FAILURE (Status))
+ {
+ /* NOT_FOUND is an error only if we are actually executing a method */
+
+ if ((((WalkState->ParseFlags & ACPI_PARSE_MODE_MASK) == ACPI_PARSE_EXECUTE) &&
+ (Status == AE_NOT_FOUND) &&
+ (Op->Common.AmlOpcode != AML_COND_REF_OF_OP)) ||
+ (Status != AE_NOT_FOUND))
+ {
+ goto CloseThisOp;
+ }
+ }
+
if (Arg)
{
Arg->Common.AmlOffset = WalkState->AmlOffset;
AcpiPsAppendArg (Op, Arg);
}
-
INCREMENT_ARG_LIST (WalkState->ArgTypes);
}
@@ -915,7 +900,7 @@ AcpiPsParseLoop (
(WalkState->DescendingCallback != AcpiDsExecBeginOp))
{
/*
- * Skip parsing of
+ * Skip parsing of
* because we don't have enough info in the first pass
* to parse them correctly.
*/
@@ -1043,15 +1028,18 @@ CloseThisOp:
AcpiPsPopScope (ParserState, &Op, &WalkState->ArgTypes, &WalkState->ArgCount);
- WalkState->Op = Op;
- WalkState->OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- WalkState->Opcode = Op->Common.AmlOpcode;
+ if (Op)
+ {
+ WalkState->Op = Op;
+ WalkState->OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
+ WalkState->Opcode = Op->Common.AmlOpcode;
- Status = WalkState->AscendingCallback (WalkState);
- Status = AcpiPsNextParseState (WalkState, Op, Status);
+ Status = WalkState->AscendingCallback (WalkState);
+ Status = AcpiPsNextParseState (WalkState, Op, Status);
- AcpiPsCompleteThisOp (WalkState, Op);
- Op = NULL;
+ AcpiPsCompleteThisOp (WalkState, Op);
+ Op = NULL;
+ }
Status = AE_OK;
break;
@@ -1225,6 +1213,7 @@ AcpiPsParseAml (
ACPI_WALK_STATE *WalkState)
{
ACPI_STATUS Status;
+ ACPI_STATUS TerminateStatus;
ACPI_THREAD_STATE *Thread;
ACPI_THREAD_STATE *PrevWalkList = AcpiGbl_CurrentWalkList;
ACPI_WALK_STATE *PreviousWalkState;
@@ -1309,11 +1298,10 @@ AcpiPsParseAml (
*/
if ((WalkState->ParseFlags & ACPI_PARSE_MODE_MASK) == ACPI_PARSE_EXECUTE)
{
- Status = AcpiDsTerminateControlMethod (WalkState);
- if (ACPI_FAILURE (Status))
+ TerminateStatus = AcpiDsTerminateControlMethod (WalkState);
+ if (ACPI_FAILURE (TerminateStatus))
{
ACPI_REPORT_ERROR (("Could not terminate control method properly\n"));
- Status = AE_OK;
/* Ignore error and continue */
}
diff --git a/sys/contrib/dev/acpica/pstree.c b/sys/contrib/dev/acpica/pstree.c
index 2117e6c..d1729db 100644
--- a/sys/contrib/dev/acpica/pstree.c
+++ b/sys/contrib/dev/acpica/pstree.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: pstree - Parser op tree manipulation/traversal/search
- * $Revision: 39 $
+ * $Revision: 40 $
*
*****************************************************************************/
@@ -219,7 +219,7 @@ AcpiPsAppendArg (
{
/* Invalid opcode */
- ACPI_REPORT_ERROR (("PsAppendArg: Invalid AML Opcode: 0x%2.2X\n",
+ ACPI_REPORT_ERROR (("PsAppendArg: Invalid AML Opcode: 0x%2.2X\n",
Op->Common.AmlOpcode));
return;
}
diff --git a/sys/contrib/dev/acpica/rsdump.c b/sys/contrib/dev/acpica/rsdump.c
index 956cdf4..b024347 100644
--- a/sys/contrib/dev/acpica/rsdump.c
+++ b/sys/contrib/dev/acpica/rsdump.c
@@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: rsdump - Functions to display the resource structures.
- * $Revision: 32 $
+ * $Revision: 33 $
*
******************************************************************************/
@@ -124,7 +124,7 @@
ACPI_MODULE_NAME ("rsdump")
-#if defined(ACPI_DEBUG) || defined(ENABLE_DEBUGGER)
+#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
/*******************************************************************************
*
diff --git a/sys/contrib/dev/acpica/tbconvrt.c b/sys/contrib/dev/acpica/tbconvrt.c
index f2f2479..14d33e4 100644
--- a/sys/contrib/dev/acpica/tbconvrt.c
+++ b/sys/contrib/dev/acpica/tbconvrt.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: tbconvrt - ACPI Table conversion utilities
- * $Revision: 42 $
+ * $Revision: 43 $
*
*****************************************************************************/
@@ -195,7 +195,7 @@ AcpiTbConvertToXsdt (
/* Compute size of the converted XSDT */
- TableSize = ((ACPI_SIZE) AcpiGbl_RsdtTableCount * sizeof (UINT64)) +
+ TableSize = ((ACPI_SIZE) AcpiGbl_RsdtTableCount * sizeof (UINT64)) +
sizeof (ACPI_TABLE_HEADER);
/* Allocate an XSDT */
@@ -242,7 +242,6 @@ AcpiTbConvertToXsdt (
}
-
/*******************************************************************************
*
* FUNCTION: AcpiTbConvertFadt1
@@ -365,49 +364,49 @@ AcpiTbConvertFadt2 (
if (!(ACPI_GET_ADDRESS (LocalFadt->XPm1aEvtBlk.Address)))
{
- ASL_BUILD_GAS_FROM_V1_ENTRY (LocalFadt->XPm1aEvtBlk,
+ ASL_BUILD_GAS_FROM_V1_ENTRY (LocalFadt->XPm1aEvtBlk,
LocalFadt->Pm1EvtLen, LocalFadt->V1_Pm1aEvtBlk);
}
if (!(ACPI_GET_ADDRESS (LocalFadt->XPm1bEvtBlk.Address)))
{
- ASL_BUILD_GAS_FROM_V1_ENTRY (LocalFadt->XPm1bEvtBlk,
+ ASL_BUILD_GAS_FROM_V1_ENTRY (LocalFadt->XPm1bEvtBlk,
LocalFadt->Pm1EvtLen, LocalFadt->V1_Pm1bEvtBlk);
}
if (!(ACPI_GET_ADDRESS (LocalFadt->XPm1aCntBlk.Address)))
{
- ASL_BUILD_GAS_FROM_V1_ENTRY (LocalFadt->XPm1aCntBlk,
+ ASL_BUILD_GAS_FROM_V1_ENTRY (LocalFadt->XPm1aCntBlk,
LocalFadt->Pm1CntLen, LocalFadt->V1_Pm1aCntBlk);
}
if (!(ACPI_GET_ADDRESS (LocalFadt->XPm1bCntBlk.Address)))
{
- ASL_BUILD_GAS_FROM_V1_ENTRY (LocalFadt->XPm1bCntBlk,
+ ASL_BUILD_GAS_FROM_V1_ENTRY (LocalFadt->XPm1bCntBlk,
LocalFadt->Pm1CntLen, LocalFadt->V1_Pm1bCntBlk);
}
if (!(ACPI_GET_ADDRESS (LocalFadt->XPm2CntBlk.Address)))
{
- ASL_BUILD_GAS_FROM_V1_ENTRY (LocalFadt->XPm2CntBlk,
+ ASL_BUILD_GAS_FROM_V1_ENTRY (LocalFadt->XPm2CntBlk,
LocalFadt->Pm2CntLen, LocalFadt->V1_Pm2CntBlk);
}
if (!(ACPI_GET_ADDRESS (LocalFadt->XPmTmrBlk.Address)))
{
- ASL_BUILD_GAS_FROM_V1_ENTRY (LocalFadt->XPmTmrBlk,
+ ASL_BUILD_GAS_FROM_V1_ENTRY (LocalFadt->XPmTmrBlk,
LocalFadt->PmTmLen, LocalFadt->V1_PmTmrBlk);
}
if (!(ACPI_GET_ADDRESS (LocalFadt->XGpe0Blk.Address)))
{
- ASL_BUILD_GAS_FROM_V1_ENTRY (LocalFadt->XGpe0Blk,
+ ASL_BUILD_GAS_FROM_V1_ENTRY (LocalFadt->XGpe0Blk,
LocalFadt->Gpe0BlkLen, LocalFadt->V1_Gpe0Blk);
}
if (!(ACPI_GET_ADDRESS (LocalFadt->XGpe1Blk.Address)))
{
- ASL_BUILD_GAS_FROM_V1_ENTRY (LocalFadt->XGpe1Blk,
+ ASL_BUILD_GAS_FROM_V1_ENTRY (LocalFadt->XGpe1Blk,
LocalFadt->Gpe1BlkLen, LocalFadt->V1_Gpe1Blk);
}
}
@@ -449,7 +448,7 @@ AcpiTbConvertTableFadt (void)
{
return_ACPI_STATUS (AE_NO_MEMORY);
}
-
+
/*
* FADT length and version validation. The table must be at least as
* long as the version 1.0 FADT
@@ -466,7 +465,7 @@ AcpiTbConvertTableFadt (void)
{
/* Length is too short to be a V2.0 table */
- ACPI_REPORT_WARNING (("Inconsistent FADT length (0x%X) and revision (0x%X), using FADT V1.0 portion of table\n",
+ ACPI_REPORT_WARNING (("Inconsistent FADT length (0x%X) and revision (0x%X), using FADT V1.0 portion of table\n",
AcpiGbl_FADT->Header.Length, AcpiGbl_FADT->Header.Revision));
AcpiTbConvertFadt1 (LocalFadt, (void *) AcpiGbl_FADT);
@@ -545,7 +544,7 @@ AcpiTbBuildCommonFacs (
if (AcpiGbl_FACS->Length < 64)
{
- ACPI_REPORT_WARNING (("FACS is shorter than the ACPI specification allows: 0x%X, using anyway\n",
+ ACPI_REPORT_WARNING (("FACS is shorter than the ACPI specification allows: 0x%X, using anyway\n",
AcpiGbl_FACS->Length));
}
diff --git a/sys/contrib/dev/acpica/tbget.c b/sys/contrib/dev/acpica/tbget.c
index 3616875..6e8178c 100644
--- a/sys/contrib/dev/acpica/tbget.c
+++ b/sys/contrib/dev/acpica/tbget.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: tbget - ACPI Table get* routines
- * $Revision: 78 $
+ * $Revision: 79 $
*
*****************************************************************************/
@@ -164,7 +164,7 @@ AcpiTbGetTable (
Status = AcpiTbGetTableBody (Address, &Header, TableInfo);
if (ACPI_FAILURE (Status))
{
- ACPI_REPORT_ERROR (("Could not get ACPI table (size %X), %s\n",
+ ACPI_REPORT_ERROR (("Could not get ACPI table (size %X), %s\n",
Header.Length, AcpiFormatException (Status)));
return_ACPI_STATUS (Status);
}
@@ -185,7 +185,7 @@ AcpiTbGetTable (
*
* DESCRIPTION: Get an ACPI table header. Works in both physical or virtual
* addressing mode. Works with both physical or logical pointers.
- * Table is either copied or mapped, depending on the pointer
+ * Table is either copied or mapped, depending on the pointer
* type and mode of the processor.
*
******************************************************************************/
@@ -260,10 +260,10 @@ AcpiTbGetTableHeader (
* RETURN: Status
*
* DESCRIPTION: Get an entire ACPI table with support to allow the host OS to
- * replace the table with a newer version (table override.)
+ * replace the table with a newer version (table override.)
* Works in both physical or virtual
* addressing mode. Works with both physical or logical pointers.
- * Table is either copied or mapped, depending on the pointer
+ * Table is either copied or mapped, depending on the pointer
* type and mode of the processor.
*
******************************************************************************/
@@ -332,7 +332,7 @@ AcpiTbTableOverride (
/*
* The OSL will examine the header and decide whether to override this
- * table. If it decides to override, a table will be returned in NewTable,
+ * table. If it decides to override, a table will be returned in NewTable,
* which we will then copy.
*/
Status = AcpiOsTableOverride (Header, &NewTable);
@@ -340,7 +340,7 @@ AcpiTbTableOverride (
{
/* Some severe error from the OSL, but we basically ignore it */
- ACPI_REPORT_ERROR (("Could not override ACPI table, %s\n",
+ ACPI_REPORT_ERROR (("Could not override ACPI table, %s\n",
AcpiFormatException (Status)));
return_ACPI_STATUS (Status);
}
@@ -352,8 +352,8 @@ AcpiTbTableOverride (
return_ACPI_STATUS (AE_NO_ACPI_TABLES);
}
- /*
- * We have a new table to override the old one. Get a copy of
+ /*
+ * We have a new table to override the old one. Get a copy of
* the new one. We know that the new table has a logical pointer.
*/
Address.PointerType = ACPI_LOGICAL_POINTER | ACPI_LOGICAL_ADDRESSING;
@@ -369,7 +369,7 @@ AcpiTbTableOverride (
/* Copy the table info */
- ACPI_REPORT_INFO (("Table [%4.4s] replaced by host OS\n",
+ ACPI_REPORT_INFO (("Table [%4.4s] replaced by host OS\n",
TableInfo->Pointer->Signature));
return_ACPI_STATUS (AE_OK);
@@ -389,7 +389,7 @@ AcpiTbTableOverride (
*
* DESCRIPTION: Get an entire ACPI table. Works in both physical or virtual
* addressing mode. Works with both physical or logical pointers.
- * Table is either copied or mapped, depending on the pointer
+ * Table is either copied or mapped, depending on the pointer
* type and mode of the processor.
*
******************************************************************************/
@@ -404,7 +404,7 @@ AcpiTbGetThisTable (
UINT8 Allocation;
ACPI_STATUS Status = AE_OK;
-
+
ACPI_FUNCTION_TRACE ("TbGetThisTable");
@@ -443,7 +443,7 @@ AcpiTbGetThisTable (
* Just map the table's physical memory
* into our address space.
*/
- Status = AcpiOsMapMemory (Address->Pointer.Physical, (ACPI_SIZE) Header->Length,
+ Status = AcpiOsMapMemory (Address->Pointer.Physical, (ACPI_SIZE) Header->Length,
(void **) &FullTable);
if (ACPI_FAILURE (Status))
{
@@ -490,9 +490,9 @@ AcpiTbGetThisTable (
TableInfo->Allocation = Allocation;
TableInfo->BasePointer = FullTable;
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "Found table [%4.4s] at %8.8X%8.8X, mapped/copied to %p\n",
- FullTable->Signature,
+ ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
+ "Found table [%4.4s] at %8.8X%8.8X, mapped/copied to %p\n",
+ FullTable->Signature,
ACPI_HIDWORD (Address->Pointer.Physical),
ACPI_LODWORD (Address->Pointer.Physical), FullTable));
diff --git a/sys/contrib/dev/acpica/tbgetall.c b/sys/contrib/dev/acpica/tbgetall.c
index dbd41c5..690a999 100644
--- a/sys/contrib/dev/acpica/tbgetall.c
+++ b/sys/contrib/dev/acpica/tbgetall.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: tbgetall - Get all required ACPI tables
- * $Revision: 1 $
+ * $Revision: 2 $
*
*****************************************************************************/
@@ -124,7 +124,6 @@
ACPI_MODULE_NAME ("tbgetall")
-
/*******************************************************************************
*
* FUNCTION: AcpiTbGetPrimaryTable
@@ -291,12 +290,12 @@ AcpiTbGetRequiredTables (
ACPI_STATUS Status = AE_OK;
UINT32 i;
ACPI_TABLE_DESC TableInfo;
- ACPI_POINTER Address;
+ ACPI_POINTER Address;
ACPI_FUNCTION_TRACE ("TbGetRequiredTables");
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "%d ACPI tables in RSDT\n",
+ ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "%d ACPI tables in RSDT\n",
AcpiGbl_RsdtTableCount));
@@ -316,7 +315,7 @@ AcpiTbGetRequiredTables (
Address.Pointer.Value = ACPI_GET_ADDRESS (AcpiGbl_XSDT->TableOffsetEntry[i]);
- /*
+ /*
* Get the tables needed by this subsystem (FADT and any SSDTs).
* NOTE: All other tables are completely ignored at this time.
*/
diff --git a/sys/contrib/dev/acpica/tbinstal.c b/sys/contrib/dev/acpica/tbinstal.c
index 7286124..6f7a213 100644
--- a/sys/contrib/dev/acpica/tbinstal.c
+++ b/sys/contrib/dev/acpica/tbinstal.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: tbinstal - ACPI table installation and removal
- * $Revision: 62 $
+ * $Revision: 63 $
*
*****************************************************************************/
@@ -171,7 +171,7 @@ AcpiTbMatchSignature (
TableInfo->Type = (UINT8) i;
}
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
+ ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
"Table [%4.4s] matched and is a required ACPI table\n",
(char *) AcpiGbl_AcpiTableData[i].Signature));
@@ -179,7 +179,7 @@ AcpiTbMatchSignature (
}
}
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
+ ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
"Table [%4.4s] is not a required ACPI table - ignored\n",
(char *) Signature));
@@ -215,7 +215,7 @@ AcpiTbInstallTable (
Status = AcpiUtAcquireMutex (ACPI_MTX_TABLES);
if (ACPI_FAILURE (Status))
{
- ACPI_REPORT_ERROR (("Could not acquire table mutex for [%4.4s], %s\n",
+ ACPI_REPORT_ERROR (("Could not acquire table mutex for [%4.4s], %s\n",
TableInfo->Pointer->Signature, AcpiFormatException (Status)));
return_ACPI_STATUS (Status);
}
@@ -225,7 +225,7 @@ AcpiTbInstallTable (
Status = AcpiTbInitTableDescriptor (TableInfo->Type, TableInfo);
if (ACPI_FAILURE (Status))
{
- ACPI_REPORT_ERROR (("Could not install ACPI table [%s], %s\n",
+ ACPI_REPORT_ERROR (("Could not install ACPI table [%s], %s\n",
TableInfo->Pointer->Signature, AcpiFormatException (Status)));
}
diff --git a/sys/contrib/dev/acpica/tbrsdt.c b/sys/contrib/dev/acpica/tbrsdt.c
index 06204f4..66c14cb 100644
--- a/sys/contrib/dev/acpica/tbrsdt.c
+++ b/sys/contrib/dev/acpica/tbrsdt.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: tbrsdt - ACPI RSDT table utilities
- * $Revision: 2 $
+ * $Revision: 3 $
*
*****************************************************************************/
@@ -166,7 +166,7 @@ AcpiTbVerifyRsdp (
return_ACPI_STATUS (Status);
}
break;
-
+
default:
return_ACPI_STATUS (AE_BAD_PARAMETER);
}
@@ -346,7 +346,7 @@ AcpiTbGetTableRsdt (
{
ACPI_TABLE_DESC TableInfo;
ACPI_STATUS Status;
- ACPI_POINTER Address;
+ ACPI_POINTER Address;
ACPI_FUNCTION_TRACE ("TbGetTableRsdt");
diff --git a/sys/contrib/dev/acpica/tbutils.c b/sys/contrib/dev/acpica/tbutils.c
index 72df10a..a1334b6 100644
--- a/sys/contrib/dev/acpica/tbutils.c
+++ b/sys/contrib/dev/acpica/tbutils.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: tbutils - Table manipulation utilities
- * $Revision: 55 $
+ * $Revision: 56 $
*
*****************************************************************************/
@@ -233,7 +233,7 @@ AcpiTbValidateTableHeader (
TableHeader, (char *) &Signature));
ACPI_REPORT_WARNING (("Invalid table header length (0x%X) found\n",
- TableHeader->Length));
+ (UINT32) TableHeader->Length));
ACPI_DUMP_BUFFER (TableHeader, sizeof (ACPI_TABLE_HEADER));
return (AE_BAD_HEADER);
}
@@ -275,7 +275,7 @@ AcpiTbVerifyTableChecksum (
if (Checksum)
{
ACPI_REPORT_WARNING (("Invalid checksum (%X) in table %4.4s\n",
- Checksum, TableHeader->Signature));
+ (UINT32) Checksum, TableHeader->Signature));
Status = AE_BAD_CHECKSUM;
}
diff --git a/sys/contrib/dev/acpica/utdebug.c b/sys/contrib/dev/acpica/utdebug.c
index 2280075..78548c6 100644
--- a/sys/contrib/dev/acpica/utdebug.c
+++ b/sys/contrib/dev/acpica/utdebug.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: utdebug - Debug print routines
- * $Revision: 103 $
+ * $Revision: 104 $
*
*****************************************************************************/
@@ -122,7 +122,7 @@
ACPI_MODULE_NAME ("utdebug")
-#ifdef ACPI_DEBUG
+#ifdef ACPI_DEBUG_OUTPUT
static UINT32 AcpiGbl_PrevThreadId = 0xFFFFFFFF;
static char *AcpiGbl_FnEntryStr = "----Entry";
diff --git a/sys/contrib/dev/acpica/uteval.c b/sys/contrib/dev/acpica/uteval.c
index eb5fbab..aaca246 100644
--- a/sys/contrib/dev/acpica/uteval.c
+++ b/sys/contrib/dev/acpica/uteval.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: uteval - Object evaluation
- * $Revision: 40 $
+ * $Revision: 41 $
*
*****************************************************************************/
@@ -277,7 +277,7 @@ AcpiUtExecute_HID (
Status = AE_TYPE;
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
"Type returned from _HID not a number or string: %s(%X) \n",
- AcpiUtGetObjectTypeName (ObjDesc),
+ AcpiUtGetObjectTypeName (ObjDesc),
ACPI_GET_OBJECT_TYPE (ObjDesc)));
}
else
@@ -390,7 +390,7 @@ AcpiUtExecute_CID (
Status = AE_TYPE;
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
"Type returned from _CID not a number, string, or package: %s(%X) \n",
- AcpiUtGetObjectTypeName (ObjDesc),
+ AcpiUtGetObjectTypeName (ObjDesc),
ACPI_GET_OBJECT_TYPE (ObjDesc)));
break;
}
diff --git a/sys/contrib/dev/acpica/utglobal.c b/sys/contrib/dev/acpica/utglobal.c
index ab72e4b..5a7b5f8 100644
--- a/sys/contrib/dev/acpica/utglobal.c
+++ b/sys/contrib/dev/acpica/utglobal.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: utglobal - Global variables for the ACPI subsystem
- * $Revision: 165 $
+ * $Revision: 168 $
*
*****************************************************************************/
@@ -125,7 +125,6 @@
ACPI_MODULE_NAME ("utglobal")
-
/******************************************************************************
*
* FUNCTION: AcpiFormatException
@@ -225,7 +224,7 @@ Unknown:
/* Debug switch - level and trace mask */
-#ifdef ACPI_DEBUG
+#ifdef ACPI_DEBUG_OUTPUT
UINT32 AcpiDbgLevel = DEBUG_DEFAULT;
#else
UINT32 AcpiDbgLevel = NORMAL_DEFAULT;
@@ -285,6 +284,10 @@ const ACPI_PREDEFINED_NAMES AcpiGbl_PreDefinedNames[] =
{"_REV", ACPI_TYPE_INTEGER, "2"},
{"_OS_", ACPI_TYPE_STRING, ACPI_OS_NAME},
{"_GL_", ACPI_TYPE_MUTEX, "0"},
+
+#if defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY)
+ {"_OSI", ACPI_TYPE_METHOD, "1"},
+#endif
{NULL, ACPI_TYPE_ANY, NULL} /* Table terminator */
};
@@ -622,7 +625,7 @@ AcpiUtGetObjectTypeName (
}
-#if defined(ACPI_DEBUG) || defined(ENABLE_DEBUGGER)
+#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
/*
* Strings and procedures used for debug only
@@ -873,7 +876,7 @@ AcpiUtInitGlobals (
AcpiGbl_RootNodeStruct.Flags = ANOBJ_END_OF_PEER_LIST;
-#ifdef ACPI_DEBUG
+#ifdef ACPI_DEBUG_OUTPUT
AcpiGbl_LowestStackPointer = ACPI_SIZE_MAX;
#endif
diff --git a/sys/contrib/dev/acpica/utinit.c b/sys/contrib/dev/acpica/utinit.c
index 617fbc6..1d9d231 100644
--- a/sys/contrib/dev/acpica/utinit.c
+++ b/sys/contrib/dev/acpica/utinit.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: utinit - Common ACPI subsystem initialization
- * $Revision: 112 $
+ * $Revision: 113 $
*
*****************************************************************************/
@@ -301,14 +301,14 @@ AcpiUtSubsystemShutdown (void)
AcpiGbl_Shutdown = TRUE;
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Shutting down ACPI Subsystem...\n"));
- /* Close the Namespace */
-
- AcpiNsTerminate ();
-
/* Close the AcpiEvent Handling */
AcpiEvTerminate ();
+ /* Close the Namespace */
+
+ AcpiNsTerminate ();
+
/* Close the globals */
AcpiUtTerminate ();
diff --git a/sys/contrib/dev/acpica/utmisc.c b/sys/contrib/dev/acpica/utmisc.c
index e2a3eff..4ff0eb7 100644
--- a/sys/contrib/dev/acpica/utmisc.c
+++ b/sys/contrib/dev/acpica/utmisc.c
@@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: utmisc - common utility procedures
- * $Revision: 78 $
+ * $Revision: 80 $
*
******************************************************************************/
@@ -201,8 +201,7 @@ AcpiUtSetIntegerWidth (
}
-
-#ifdef ACPI_DEBUG
+#ifdef ACPI_DEBUG_OUTPUT
/*******************************************************************************
*
* FUNCTION: AcpiUtDisplayInitPathname
diff --git a/sys/contrib/dev/acpica/utxface.c b/sys/contrib/dev/acpica/utxface.c
index c2f82a7..99c312c 100644
--- a/sys/contrib/dev/acpica/utxface.c
+++ b/sys/contrib/dev/acpica/utxface.c
@@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: utxface - External interfaces for "global" ACPI functions
- * $Revision: 97 $
+ * $Revision: 100 $
*
*****************************************************************************/
@@ -260,6 +260,8 @@ AcpiEnableSubsystem (
{
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[Init] Going into ACPI mode\n"));
+ AcpiGbl_OriginalMode = AcpiHwGetMode();
+
Status = AcpiEnable ();
if (ACPI_FAILURE (Status))
{
@@ -309,7 +311,7 @@ AcpiEnableSubsystem (
*
* RETURN: Status
*
- * DESCRIPTION: Completes namespace initialization by initializing device
+ * DESCRIPTION: Completes namespace initialization by initializing device
* objects and executing AML code for Regions, buffers, etc.
*
******************************************************************************/
@@ -401,7 +403,7 @@ AcpiTerminate (void)
AcpiUtMutexTerminate ();
-#ifdef ENABLE_DEBUGGER
+#ifdef ACPI_DEBUGGER
/* Shut down the debugger */
OpenPOWER on IntegriCloud