summaryrefslogtreecommitdiffstats
path: root/sys/contrib/dev
diff options
context:
space:
mode:
authoravg <avg@FreeBSD.org>2009-05-19 14:46:41 +0000
committeravg <avg@FreeBSD.org>2009-05-19 14:46:41 +0000
commit446155c1b9c328c7c094f10e8652c983b9213091 (patch)
tree1bf29b36bb41677c0742ff0393268009db7bb74a /sys/contrib/dev
parentcec3f46f5f61173a687aa7e171b0ac680707a164 (diff)
downloadFreeBSD-src-446155c1b9c328c7c094f10e8652c983b9213091.zip
FreeBSD-src-446155c1b9c328c7c094f10e8652c983b9213091.tar.gz
flatten acpica vendor area
do it for current ('dist') and previous versions; disable keywords expansion at the same time Reviewed by: attilio Approved by: rpaulo
Diffstat (limited to 'sys/contrib/dev')
-rw-r--r--sys/contrib/dev/acpica/CHANGES.txt8448
-rw-r--r--sys/contrib/dev/acpica/acapps.h243
-rw-r--r--sys/contrib/dev/acpica/acconfig.h296
-rw-r--r--sys/contrib/dev/acpica/acdebug.h437
-rw-r--r--sys/contrib/dev/acpica/acdisasm.h680
-rw-r--r--sys/contrib/dev/acpica/acdispat.h514
-rw-r--r--sys/contrib/dev/acpica/acefi.h148
-rw-r--r--sys/contrib/dev/acpica/acenv.h444
-rw-r--r--sys/contrib/dev/acpica/acevents.h374
-rw-r--r--sys/contrib/dev/acpica/acexcep.h390
-rw-r--r--sys/contrib/dev/acpica/acfreebsd.h201
-rw-r--r--sys/contrib/dev/acpica/acgcc.h139
-rw-r--r--sys/contrib/dev/acpica/acglobal.h472
-rw-r--r--sys/contrib/dev/acpica/achware.h247
-rw-r--r--sys/contrib/dev/acpica/acinterp.h793
-rw-r--r--sys/contrib/dev/acpica/aclocal.h1202
-rw-r--r--sys/contrib/dev/acpica/acmacros.h754
-rw-r--r--sys/contrib/dev/acpica/acnames.h158
-rw-r--r--sys/contrib/dev/acpica/acnamesp.h493
-rw-r--r--sys/contrib/dev/acpica/acobject.h619
-rw-r--r--sys/contrib/dev/acpica/acopcode.h398
-rw-r--r--sys/contrib/dev/acpica/acoutput.h263
-rw-r--r--sys/contrib/dev/acpica/acparser.h403
-rw-r--r--sys/contrib/dev/acpica/acpi.h143
-rw-r--r--sys/contrib/dev/acpica/acpiosxf.h504
-rw-r--r--sys/contrib/dev/acpica/acpixf.h550
-rw-r--r--sys/contrib/dev/acpica/acresrc.h465
-rw-r--r--sys/contrib/dev/acpica/acstruct.h333
-rw-r--r--sys/contrib/dev/acpica/actables.h243
-rw-r--r--sys/contrib/dev/acpica/actbl.h395
-rw-r--r--sys/contrib/dev/acpica/actbl1.h917
-rw-r--r--sys/contrib/dev/acpica/actbl2.h123
-rw-r--r--sys/contrib/dev/acpica/actypes.h1453
-rw-r--r--sys/contrib/dev/acpica/acutils.h942
-rw-r--r--sys/contrib/dev/acpica/aecommon.h243
-rw-r--r--sys/contrib/dev/acpica/amlcode.h595
-rw-r--r--sys/contrib/dev/acpica/amlresrc.h486
-rw-r--r--sys/contrib/dev/acpica/common/adfile.c398
-rw-r--r--sys/contrib/dev/acpica/common/adisasm.c1132
-rw-r--r--sys/contrib/dev/acpica/common/adwalk.c1001
-rw-r--r--sys/contrib/dev/acpica/common/dmrestag.c990
-rw-r--r--sys/contrib/dev/acpica/common/dmtable.c734
-rw-r--r--sys/contrib/dev/acpica/common/dmtbdump.c798
-rw-r--r--sys/contrib/dev/acpica/common/dmtbinfo.c967
-rw-r--r--sys/contrib/dev/acpica/common/getopt.c246
-rw-r--r--sys/contrib/dev/acpica/compiler/aslanalyze.c2211
-rw-r--r--sys/contrib/dev/acpica/compiler/aslcodegen.c661
-rw-r--r--sys/contrib/dev/acpica/compiler/aslcompile.c929
-rw-r--r--sys/contrib/dev/acpica/compiler/aslcompiler.h913
-rw-r--r--sys/contrib/dev/acpica/compiler/aslcompiler.l1182
-rw-r--r--sys/contrib/dev/acpica/compiler/aslcompiler.y3189
-rw-r--r--sys/contrib/dev/acpica/compiler/asldefine.h211
-rw-r--r--sys/contrib/dev/acpica/compiler/aslerror.c647
-rw-r--r--sys/contrib/dev/acpica/compiler/aslfiles.c873
-rw-r--r--sys/contrib/dev/acpica/compiler/aslfold.c564
-rw-r--r--sys/contrib/dev/acpica/compiler/aslglobal.h278
-rw-r--r--sys/contrib/dev/acpica/compiler/asllength.c531
-rw-r--r--sys/contrib/dev/acpica/compiler/asllisting.c1494
-rw-r--r--sys/contrib/dev/acpica/compiler/aslload.c826
-rw-r--r--sys/contrib/dev/acpica/compiler/asllookup.c1370
-rw-r--r--sys/contrib/dev/acpica/compiler/aslmain.c868
-rw-r--r--sys/contrib/dev/acpica/compiler/aslmap.c750
-rw-r--r--sys/contrib/dev/acpica/compiler/aslopcodes.c812
-rw-r--r--sys/contrib/dev/acpica/compiler/asloperands.c1230
-rw-r--r--sys/contrib/dev/acpica/compiler/aslopt.c869
-rw-r--r--sys/contrib/dev/acpica/compiler/aslresource.c760
-rw-r--r--sys/contrib/dev/acpica/compiler/aslrestype1.c1186
-rw-r--r--sys/contrib/dev/acpica/compiler/aslrestype2.c2842
-rw-r--r--sys/contrib/dev/acpica/compiler/aslstubs.c280
-rw-r--r--sys/contrib/dev/acpica/compiler/asltransform.c806
-rw-r--r--sys/contrib/dev/acpica/compiler/asltree.c1194
-rw-r--r--sys/contrib/dev/acpica/compiler/asltypes.h562
-rw-r--r--sys/contrib/dev/acpica/compiler/aslutils.c1055
-rw-r--r--sys/contrib/dev/acpica/dbcmds.c1834
-rw-r--r--sys/contrib/dev/acpica/dbdisply.c961
-rw-r--r--sys/contrib/dev/acpica/dbexec.c712
-rw-r--r--sys/contrib/dev/acpica/dbfileio.c651
-rw-r--r--sys/contrib/dev/acpica/dbhistry.c292
-rw-r--r--sys/contrib/dev/acpica/dbinput.c1069
-rw-r--r--sys/contrib/dev/acpica/dbstats.c621
-rw-r--r--sys/contrib/dev/acpica/dbutils.c596
-rw-r--r--sys/contrib/dev/acpica/dbxface.c606
-rw-r--r--sys/contrib/dev/acpica/dmbuffer.c555
-rw-r--r--sys/contrib/dev/acpica/dmnames.c521
-rw-r--r--sys/contrib/dev/acpica/dmobject.c649
-rw-r--r--sys/contrib/dev/acpica/dmopcode.c631
-rw-r--r--sys/contrib/dev/acpica/dmresrc.c509
-rw-r--r--sys/contrib/dev/acpica/dmresrcl.c1125
-rw-r--r--sys/contrib/dev/acpica/dmresrcs.c387
-rw-r--r--sys/contrib/dev/acpica/dmutils.c493
-rw-r--r--sys/contrib/dev/acpica/dmwalk.c1043
-rw-r--r--sys/contrib/dev/acpica/dsfield.c748
-rw-r--r--sys/contrib/dev/acpica/dsinit.c299
-rw-r--r--sys/contrib/dev/acpica/dsmethod.c754
-rw-r--r--sys/contrib/dev/acpica/dsmthdat.c844
-rw-r--r--sys/contrib/dev/acpica/dsobject.c789
-rw-r--r--sys/contrib/dev/acpica/dsopcode.c1344
-rw-r--r--sys/contrib/dev/acpica/dsutils.c1010
-rw-r--r--sys/contrib/dev/acpica/dswexec.c833
-rw-r--r--sys/contrib/dev/acpica/dswload.c1294
-rw-r--r--sys/contrib/dev/acpica/dswscope.c311
-rw-r--r--sys/contrib/dev/acpica/dswstate.c926
-rw-r--r--sys/contrib/dev/acpica/evevent.c427
-rw-r--r--sys/contrib/dev/acpica/evgpe.c866
-rw-r--r--sys/contrib/dev/acpica/evgpeblk.c1372
-rw-r--r--sys/contrib/dev/acpica/evmisc.c763
-rw-r--r--sys/contrib/dev/acpica/evregion.c1232
-rw-r--r--sys/contrib/dev/acpica/evrgnini.c821
-rw-r--r--sys/contrib/dev/acpica/evsci.c281
-rw-r--r--sys/contrib/dev/acpica/evxface.c965
-rw-r--r--sys/contrib/dev/acpica/evxfevnt.c924
-rw-r--r--sys/contrib/dev/acpica/evxfregn.c345
-rw-r--r--sys/contrib/dev/acpica/exconfig.c523
-rw-r--r--sys/contrib/dev/acpica/exconvrt.c817
-rw-r--r--sys/contrib/dev/acpica/excreate.c737
-rw-r--r--sys/contrib/dev/acpica/exdump.c1217
-rw-r--r--sys/contrib/dev/acpica/exfield.c475
-rw-r--r--sys/contrib/dev/acpica/exfldio.c1056
-rw-r--r--sys/contrib/dev/acpica/exmisc.c873
-rw-r--r--sys/contrib/dev/acpica/exmutex.c596
-rw-r--r--sys/contrib/dev/acpica/exnames.c560
-rw-r--r--sys/contrib/dev/acpica/exoparg1.c1178
-rw-r--r--sys/contrib/dev/acpica/exoparg2.c741
-rw-r--r--sys/contrib/dev/acpica/exoparg3.c377
-rw-r--r--sys/contrib/dev/acpica/exoparg6.c441
-rw-r--r--sys/contrib/dev/acpica/exprep.c675
-rw-r--r--sys/contrib/dev/acpica/exregion.c609
-rw-r--r--sys/contrib/dev/acpica/exresnte.c377
-rw-r--r--sys/contrib/dev/acpica/exresolv.c639
-rw-r--r--sys/contrib/dev/acpica/exresop.c812
-rw-r--r--sys/contrib/dev/acpica/exstore.c756
-rw-r--r--sys/contrib/dev/acpica/exstoren.c385
-rw-r--r--sys/contrib/dev/acpica/exstorob.c302
-rw-r--r--sys/contrib/dev/acpica/exsystem.c419
-rw-r--r--sys/contrib/dev/acpica/exutils.c558
-rw-r--r--sys/contrib/dev/acpica/hwacpi.c277
-rw-r--r--sys/contrib/dev/acpica/hwgpe.c545
-rw-r--r--sys/contrib/dev/acpica/hwregs.c1001
-rw-r--r--sys/contrib/dev/acpica/hwsleep.c752
-rw-r--r--sys/contrib/dev/acpica/hwtimer.c288
-rw-r--r--sys/contrib/dev/acpica/nsaccess.c750
-rw-r--r--sys/contrib/dev/acpica/nsalloc.c628
-rw-r--r--sys/contrib/dev/acpica/nsdump.c826
-rw-r--r--sys/contrib/dev/acpica/nsdumpdv.c235
-rw-r--r--sys/contrib/dev/acpica/nseval.c316
-rw-r--r--sys/contrib/dev/acpica/nsinit.c701
-rw-r--r--sys/contrib/dev/acpica/nsload.c429
-rw-r--r--sys/contrib/dev/acpica/nsnames.c347
-rw-r--r--sys/contrib/dev/acpica/nsobject.c567
-rw-r--r--sys/contrib/dev/acpica/nsparse.c283
-rw-r--r--sys/contrib/dev/acpica/nssearch.c514
-rw-r--r--sys/contrib/dev/acpica/nsutils.c1220
-rw-r--r--sys/contrib/dev/acpica/nswalk.c388
-rw-r--r--sys/contrib/dev/acpica/nsxfeval.c891
-rw-r--r--sys/contrib/dev/acpica/nsxfname.c474
-rw-r--r--sys/contrib/dev/acpica/nsxfobj.c356
-rw-r--r--sys/contrib/dev/acpica/osunixxf.c1155
-rw-r--r--sys/contrib/dev/acpica/psargs.c869
-rw-r--r--sys/contrib/dev/acpica/psloop.c1186
-rw-r--r--sys/contrib/dev/acpica/psopcode.c589
-rw-r--r--sys/contrib/dev/acpica/psparse.c765
-rw-r--r--sys/contrib/dev/acpica/psscope.c374
-rw-r--r--sys/contrib/dev/acpica/pstree.c427
-rw-r--r--sys/contrib/dev/acpica/psutils.c362
-rw-r--r--sys/contrib/dev/acpica/pswalk.c193
-rw-r--r--sys/contrib/dev/acpica/psxface.c473
-rw-r--r--sys/contrib/dev/acpica/rsaddr.c479
-rw-r--r--sys/contrib/dev/acpica/rscalc.c715
-rw-r--r--sys/contrib/dev/acpica/rscreate.c526
-rw-r--r--sys/contrib/dev/acpica/rsdump.c870
-rw-r--r--sys/contrib/dev/acpica/rsinfo.c290
-rw-r--r--sys/contrib/dev/acpica/rsio.c341
-rw-r--r--sys/contrib/dev/acpica/rsirq.c313
-rw-r--r--sys/contrib/dev/acpica/rslist.c286
-rw-r--r--sys/contrib/dev/acpica/rsmemory.c323
-rw-r--r--sys/contrib/dev/acpica/rsmisc.c671
-rw-r--r--sys/contrib/dev/acpica/rsutils.c875
-rw-r--r--sys/contrib/dev/acpica/rsxface.c713
-rw-r--r--sys/contrib/dev/acpica/tbfadt.c520
-rw-r--r--sys/contrib/dev/acpica/tbfind.c205
-rw-r--r--sys/contrib/dev/acpica/tbinstal.c684
-rw-r--r--sys/contrib/dev/acpica/tbutils.c594
-rw-r--r--sys/contrib/dev/acpica/tbxface.c674
-rw-r--r--sys/contrib/dev/acpica/tbxfroot.c370
-rw-r--r--sys/contrib/dev/acpica/utalloc.c482
-rw-r--r--sys/contrib/dev/acpica/utcache.c425
-rw-r--r--sys/contrib/dev/acpica/utclib.c961
-rw-r--r--sys/contrib/dev/acpica/utcopy.c1091
-rw-r--r--sys/contrib/dev/acpica/utdebug.c807
-rw-r--r--sys/contrib/dev/acpica/utdelete.c775
-rw-r--r--sys/contrib/dev/acpica/uteval.c880
-rw-r--r--sys/contrib/dev/acpica/utglobal.c842
-rw-r--r--sys/contrib/dev/acpica/utinit.c241
-rw-r--r--sys/contrib/dev/acpica/utmath.c431
-rw-r--r--sys/contrib/dev/acpica/utmisc.c1314
-rw-r--r--sys/contrib/dev/acpica/utmutex.c464
-rw-r--r--sys/contrib/dev/acpica/utobject.c764
-rw-r--r--sys/contrib/dev/acpica/utresrc.c772
-rw-r--r--sys/contrib/dev/acpica/utstate.c470
-rw-r--r--sys/contrib/dev/acpica/uttrack.c726
-rw-r--r--sys/contrib/dev/acpica/utxface.c638
201 files changed, 0 insertions, 146106 deletions
diff --git a/sys/contrib/dev/acpica/CHANGES.txt b/sys/contrib/dev/acpica/CHANGES.txt
deleted file mode 100644
index f26ed47..0000000
--- a/sys/contrib/dev/acpica/CHANGES.txt
+++ /dev/null
@@ -1,8448 +0,0 @@
-----------------------------------------
-20 March 2007. Summary of changes for version 20070320:
-
-1) ACPI CA Core Subsystem:
-
-Implemented a change to the order of interpretation and
-evaluation of AML operand objects within the AML interpreter. The
-interpreter now evaluates operands in the order that they appear
-in the AML stream (and the corresponding ASL code), instead of in
-the reverse order (after the entire operand list has been
-parsed). The previous behavior caused several subtle
-incompatibilities with the Microsoft AML interpreter as well as
-being somewhat non-intuitive. BZ 7871, local BZ 263. Valery
-Podrezov.
-
-Implemented a change to the ACPI Global Lock support. All
-interfaces to the global lock now allow the same thread to
-acquire the lock multiple times. This affects the
-AcpiAcquireGlobalLock external interface to the global lock as
-well as the internal use of the global lock to support AML fields
--- a control method that is holding the global lock can now
-simultaneously access AML fields that require global lock
-protection. Previously, in both cases, this would have resulted
-in an AE_ALREADY_ACQUIRED exception. The change to
-AcpiAcquireGlobalLock is of special interest to drivers for the
-Embedded Controller. There is no change to the behavior of the
-AML Acquire operator, as this can already be used to acquire a
-mutex multiple times by the same thread. BZ 8066. With assistance
-from Alexey Starikovskiy.
-
-Fixed a problem where invalid objects could be referenced in the
-AML Interpreter after error conditions. During operand
-evaluation, ensure that the internal "Return Object" field is
-cleared on error and only valid pointers are stored there. Caused
-occasional access to deleted objects that resulted in "large
-reference count" warning messages. Valery Podrezov.
-
-Fixed a problem where an AE_STACK_OVERFLOW internal exception
-could occur on deeply nested control method invocations. BZ 7873,
-local BZ 487. Valery Podrezov.
-
-Fixed an internal problem with the handling of result objects on
-the interpreter result stack. BZ 7872. Valery Podrezov.
-
-Removed obsolete code that handled the case where AML_NAME_OP is
-the target of a reference (Reference.Opcode). This code was no
-longer necessary. BZ 7874. Valery Podrezov.
-
-Removed obsolete ACPI_NO_INTEGER64_SUPPORT from two header files.
-This was a remnant from the previously discontinued 16-bit
-support.
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-
- Previous Release:
- Non-Debug Version: 78.0K Code, 17.1K Data, 95.1K Total
- Debug Version: 155.8K Code, 63.3K Data, 219.1K Total
- Current Release:
- Non-Debug Version: 78.0K Code, 17.1K Data, 95.1K Total
- Debug Version: 155.9K Code, 63.1K Data, 219.0K Total
-
-----------------------------------------
-26 January 2007. Summary of changes for version 20070126:
-
-1) ACPI CA Core Subsystem:
-
-Added the 2007 copyright to all module headers and signons. This
-affects virtually every file in the ACPICA core subsystem, the
-iASL compiler, and the utilities.
-
-Implemented a fix for an incorrect parameter passed to
-AcpiTbDeleteTable during a table load. A bad pointer was passed
-in the case where the DSDT is overridden, causing a fault in this
-case.
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-
- Previous Release:
- Non-Debug Version: 78.0K Code, 17.1K Data, 95.1K Total
- Debug Version: 155.8K Code, 63.3K Data, 219.1K Total
- Current Release:
- Non-Debug Version: 78.0K Code, 17.1K Data, 95.1K Total
- Debug Version: 155.8K Code, 63.3K Data, 219.1K Total
-
-----------------------------------------
-15 December 2006. Summary of changes for version 20061215:
-
-1) ACPI CA Core Subsystem:
-
-Support for 16-bit ACPICA has been completely removed since it is
-no longer necessary and it clutters the code. All 16-bit macros,
-types, and conditional compiles have been removed, cleaning up
-and simplifying the code across the entire subsystem. DOS support
-is no longer needed since the bootable Linux firmware kit is now
-available.
-
-The handler for the Global Lock is now removed during
-AcpiTerminate to enable a clean subsystem restart, via the
-implementation of the AcpiEvRemoveGlobalLockHandler function.
-(With assistance from Joel Bretz, HP)
-
-Implemented enhancements to the multithreading support within the
-debugger to enable improved multithreading debugging and
-evaluation of the subsystem. (Valery Podrezov)
-
-Debugger: Enhanced the Statistics/Memory command to emit the
-total (maximum) memory used during the execution, as well as the
-maximum memory consumed by each of the various object types.
-(Valery Podrezov)
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-
- Previous Release:
- Non-Debug Version: 77.9K Code, 17.0K Data, 94.9K Total
- Debug Version: 155.2K Code, 63.1K Data, 218.3K Total
- Current Release:
- Non-Debug Version: 78.0K Code, 17.1K Data, 95.1K Total
- Debug Version: 155.8K Code, 63.3K Data, 219.1K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-AcpiExec: Implemented a new option (-m) to display full memory
-use statistics upon subsystem/program termination. (Valery
-Podrezov)
-
-----------------------------------------
-09 November 2006. Summary of changes for version 20061109:
-
-1) ACPI CA Core Subsystem:
-
-Optimized the Load ASL operator in the case where the source
-operand is an operation region. Simply map the operation region
-memory, instead of performing a bytewise read. (Region must be of
-type SystemMemory, see below.)
-
-Fixed the Load ASL operator for the case where the source operand
-is a region field. A buffer object is also allowed as the source
-operand. BZ 480
-
-Fixed a problem where the Load ASL operator allowed the source
-operand to be an operation region of any type. It is now
-restricted to regions of type SystemMemory, as per the ACPI
-specification. BZ 481
-
-Additional cleanup and optimizations for the new Table Manager
-code.
-
-AcpiEnable will now fail if all of the required ACPI tables are
-not loaded (FADT, FACS, DSDT). BZ 477
-
-Added #pragma pack(8/4) to acobject.h to ensure that the
-structures in this header are always compiled as aligned. The
-ACPI_OPERAND_OBJECT has been manually optimized to be aligned and
-will not work if it is byte-packed.
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-
- Previous Release:
- Non-Debug Version: 78.1K Code, 17.1K Data, 95.2K Total
- Debug Version: 155.4K Code, 63.1K Data, 218.5K Total
- Current Release:
- Non-Debug Version: 77.9K Code, 17.0K Data, 94.9K Total
- Debug Version: 155.2K Code, 63.1K Data, 218.3K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Fixed a problem where the presence of the _OSI predefined control
-method within complex expressions could cause an internal
-compiler error.
-
-AcpiExec: Implemented full region support for multiple address
-spaces. SpaceId is now part of the REGION object. BZ 429
-
-----------------------------------------
-11 October 2006. Summary of changes for version 20061011:
-
-1) ACPI CA Core Subsystem:
-
-Completed an AML interpreter performance enhancement for control
-method execution. Previously a 2-pass parse/execution, control
-methods are now completely parsed and executed in a single pass.
-This improves overall interpreter performance by ~25%, reduces
-code size, and reduces CPU stack use. (Valery Podrezov +
-interpreter changes in version 20051202 that eliminated namespace
-loading during the pass one parse.)
-
-Implemented _CID support for PCI Root Bridge detection. If the
-_HID does not match the predefined PCI Root Bridge IDs, the _CID
-list (if present) is now obtained and also checked for an ID
-match.
-
-Implemented additional support for the PCI _ADR execution:
-upsearch until a device scope is found before executing _ADR.
-This allows PCI_Config operation regions to be declared locally
-within control methods underneath PCI device objects.
-
-Fixed a problem with a possible race condition between threads
-executing AcpiWalkNamespace and the AML interpreter. This
-condition was removed by modifying AcpiWalkNamespace to (by
-default) ignore all temporary namespace entries created during
-any concurrent control method execution. An additional namespace
-race condition is known to exist between AcpiWalkNamespace and
-the Load/Unload ASL operators and is still under investigation.
-
-Restructured the AML ParseLoop function, breaking it into several
-subfunctions in order to reduce CPU stack use and improve
-maintainability. (Mikhail Kouzmich)
-
-AcpiGetHandle: Fix for parameter validation to detect invalid
-combinations of prefix handle and pathname. BZ 478
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-
- Previous Release:
- Non-Debug Version: 77.9K Code, 17.1K Data, 95.0K Total
- Debug Version: 154.6K Code, 63.0K Data, 217.6K Total
- Current Release:
- Non-Debug Version: 78.1K Code, 17.1K Data, 95.2K Total
- Debug Version: 155.4K Code, 63.1K Data, 218.5K Total
-
-2) iASL Compiler/Disassembler and Tools:
-
-Ported the -g option (get local ACPI tables) to the new ACPICA
-Table Manager to restore original behavior.
-
-----------------------------------------
-27 September 2006. Summary of changes for version 20060927:
-
-1) ACPI CA Core Subsystem:
-
-Removed the "Flags" parameter from AcpiGetRegister and
-AcpiSetRegister. These functions now use a spinlock for mutual
-exclusion and the interrupt level indication flag is not needed.
-
-Fixed a problem with the Global Lock where the lock could appear
-to be obtained before it is actually obtained. The global lock
-semaphore was inadvertently created with one unit instead of zero
-units. (BZ 464) Fiodor Suietov.
-
-Fixed a possible memory leak and fault in
-AcpiExResolveObjectToValue during a read from a buffer or region
-field. (BZ 458) Fiodor Suietov.
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-
- Previous Release:
- Non-Debug Version: 77.9K Code, 17.1K Data, 95.0K Total
- Debug Version: 154.7K Code, 63.0K Data, 217.7K Total
- Current Release:
- Non-Debug Version: 77.9K Code, 17.1K Data, 95.0K Total
- Debug Version: 154.6K Code, 63.0K Data, 217.6K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Fixed a compilation problem with the pre-defined Resource
-Descriptor field names where an "object does not exist" error
-could be incorrectly generated if the parent ResourceTemplate
-pathname places the template within a different namespace scope
-than the current scope. (BZ 7212)
-
-Fixed a problem where the compiler could hang after syntax errors
-detected in an ElseIf construct. (BZ 453)
-
-Fixed a problem with the AmlFilename parameter to the
-DefinitionBlock() operator. An incorrect output filename was
-produced when this parameter was a null string (""). Now, the
-original input filename is used as the AML output filename, with
-an ".aml" extension.
-
-Implemented a generic batch command mode for the AcpiExec utility
-(execute any AML debugger command) (Valery Podrezov).
-
-----------------------------------------
-12 September 2006. Summary of changes for version 20060912:
-
-1) ACPI CA Core Subsystem:
-
-Enhanced the implementation of the "serialized mode" of the
-interpreter (enabled via the AcpiGbl_AllMethodsSerialized flag.)
-When this mode is specified, instead of creating a serialization
-semaphore per control method, the interpreter lock is simply no
-longer released before a blocking operation during control method
-execution. This effectively makes the AML Interpreter single-
-threaded. The overhead of a semaphore per-method is eliminated.
-
-Fixed a regression where an error was no longer emitted if a
-control method attempts to create 2 objects of the same name.
-This once again returns AE_ALREADY_EXISTS. When this exception
-occurs, it invokes the mechanism that will dynamically serialize
-the control method to possible prevent future errors. (BZ 440)
-
-Integrated a fix for a problem with PCI Express HID detection in
-the PCI Config Space setup procedure. (BZ 7145)
-
-Moved all FADT-related functions to a new file, tbfadt.c.
-Eliminated the AcpiHwInitialize function - the FADT registers are
-now validated when the table is loaded.
-
-Added two new warnings during FADT verification - 1) if the FADT
-is larger than the largest known FADT version, and 2) if there is
-a mismatch between a 32-bit block address and the 64-bit X
-counterpart (when both are non-zero.)
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-
- Previous Release:
- Non-Debug Version: 77.9K Code, 16.7K Data, 94.6K Total
- Debug Version: 154.9K Code, 62.6K Data, 217.5K Total
- Current Release:
- Non-Debug Version: 77.9K Code, 17.1K Data, 95.0K Total
- Debug Version: 154.7K Code, 63.0K Data, 217.7K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Fixed a problem with the implementation of the Switch() operator
-where the temporary variable was declared too close to the actual
-Switch, instead of at method level. This could cause a problem if
-the Switch() operator is within a while loop, causing an error on
-the second iteration. (BZ 460)
-
-Disassembler - fix for error emitted for unknown type for target
-of scope operator. Now, ignore it and continue.
-
-Disassembly of an FADT now verifies the input FADT and reports
-any errors found. Fix for proper disassembly of full-sized (ACPI
-2.0) FADTs.
-
-Disassembly of raw data buffers with byte initialization data now
-prefixes each output line with the current buffer offset.
-
-Disassembly of ASF! table now includes all variable-length data
-fields at the end of some of the subtables.
-
-The disassembler now emits a comment if a buffer appears to be a
-ResourceTemplate, but cannot be disassembled as such because the
-EndTag does not appear at the very end of the buffer.
-
-AcpiExec - Added the "-t" command line option to enable the
-serialized mode of the AML interpreter.
-
-----------------------------------------
-31 August 2006. Summary of changes for version 20060831:
-
-1) ACPI CA Core Subsystem:
-
-Miscellaneous fixes for the Table Manager:
-- Correctly initialize internal common FADT for all 64-bit "X"
-fields
-- Fixed a couple table mapping issues during table load
-- Fixed a couple alignment issues for IA64
-- Initialize input array to zero in AcpiInitializeTables
-- Additional parameter validation for AcpiGetTable,
-AcpiGetTableHeader, AcpiGetTableByIndex
-
-Change for GPE support: when a "wake" GPE is received, all wake
-GPEs are now immediately disabled to prevent the waking GPE from
-firing again and to prevent other wake GPEs from interrupting the
-wake process.
-
-Added the AcpiGpeCount global that tracks the number of processed
-GPEs, to be used for debugging systems with a large number of
-ACPI interrupts.
-
-Implemented support for the "DMAR" ACPI table (DMA Redirection
-Table) in both the ACPICA headers and the disassembler.
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-
- Previous Release:
- Non-Debug Version: 77.8K Code, 16.5K Data, 94.3K Total
- Debug Version: 154.6K Code, 62.3K Data, 216.9K Total
- Current Release:
- Non-Debug Version: 77.9K Code, 16.7K Data, 94.6K Total
- Debug Version: 154.9K Code, 62.6K Data, 217.5K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Disassembler support for the DMAR ACPI table.
-
-----------------------------------------
-23 August 2006. Summary of changes for version 20060823:
-
-1) ACPI CA Core Subsystem:
-
-The Table Manager component has been completely redesigned and
-reimplemented. The new design is much simpler, and reduces the
-overall code and data size of the kernel-resident ACPICA by
-approximately 5%. Also, it is now possible to obtain the ACPI
-tables very early during kernel initialization, even before
-dynamic memory management is initialized. (Alexey Starikovskiy,
-Fiodor Suietov, Bob Moore)
-
-Obsolete ACPICA interfaces:
-
-- AcpiGetFirmwareTable: Use AcpiGetTable instead (works at early
-kernel init time).
-- AcpiLoadTable: Not needed.
-- AcpiUnloadTable: Not needed.
-
-New ACPICA interfaces:
-
-- AcpiInitializeTables: Must be called before the table manager
-can be used.
-- AcpiReallocateRootTable: Used to transfer the root table to
-dynamically allocated memory after it becomes available.
-- AcpiGetTableByIndex: Allows the host to easily enumerate all
-ACPI tables in the RSDT/XSDT.
-
-Other ACPICA changes:
-
-- AcpiGetTableHeader returns the actual mapped table header, not
-a copy. Use AcpiOsUnmapMemory to free this mapping.
-- AcpiGetTable returns the actual mapped table. The mapping is
-managed internally and must not be deleted by the caller. Use of
-this interface causes no additional dynamic memory allocation.
-- AcpiFindRootPointer: Support for physical addressing has been
-eliminated, it appeared to be unused.
-- The interface to AcpiOsMapMemory has changed to be consistent
-with the other allocation interfaces.
-- The interface to AcpiOsGetRootPointer has changed to eliminate
-unnecessary parameters.
-- ACPI_PHYSICAL_ADDRESS is now 32 bits on 32-bit platforms, 64
-bits on 64-bit platforms. Was previously 64 bits on all
-platforms.
-- The interface to the ACPI Global Lock acquire/release macros
-have changed slightly since ACPICA no longer keeps a local copy
-of the FACS with a constructed pointer to the actual global lock.
-
-Porting to the new table manager:
-
-- AcpiInitializeTables: Must be called once, and can be called
-anytime during the OS initialization process. It allows the host
-to specify an area of memory to be used to store the internal
-version of the RSDT/XSDT (root table). This allows the host to
-access ACPI tables before memory management is initialized and
-running.
-- AcpiReallocateRootTable: Can be called after memory management
-is running to copy the root table to a dynamically allocated
-array, freeing up the scratch memory specified in the call to
-AcpiInitializeTables.
-- AcpiSubsystemInitialize: This existing interface is independent
-of the Table Manager, and does not have to be called before the
-Table Manager can be used, it only must be called before the rest
-of ACPICA can be used.
-- ACPI Tables: Some changes have been made to the names and
-structure of the actbl.h and actbl1.h header files and may
-require changes to existing code. For example, bitfields have
-been completely removed because of their lack of portability
-across C compilers.
-- Update interfaces to the Global Lock acquire/release macros if
-local versions are used. (see acwin.h)
-
-Obsolete files: tbconvrt.c, tbget.c, tbgetall.c, tbrsdt.c
-
-New files: tbfind.c
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-
- Previous Release:
- Non-Debug Version: 80.7K Code, 17.9K Data, 98.6K Total
- Debug Version: 161.0K Code, 65.1K Data, 226.1K Total
- Current Release:
- Non-Debug Version: 77.8K Code, 16.5K Data, 94.3K Total
- Debug Version: 154.6K Code, 62.3K Data, 216.9K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-No changes for this release.
-
-----------------------------------------
-21 July 2006. Summary of changes for version 20060721:
-
-1) ACPI CA Core Subsystem:
-
-The full source code for the ASL test suite used to validate the
-iASL compiler and the ACPICA core subsystem is being released
-with the ACPICA source for the first time. The source is
-contained in a separate package and consists of over 1100 files
-that exercise all ASL/AML operators. The package should appear on
-the Intel/ACPI web site shortly. (Valery Podrezov, Fiodor
-Suietov)
-
-Completed a new design and implementation for support of the ACPI
-Global Lock. On the OS side, the global lock is now treated as a
-standard AML mutex. Previously, multiple OS threads could
-"acquire" the global lock simultaneously. However, this could
-cause the BIOS to be starved out of the lock - especially in
-cases such as the Embedded Controller driver where there is a
-tight coupling between the OS and the BIOS.
-
-Implemented an optimization for the ACPI Global Lock interrupt
-mechanism. The Global Lock interrupt handler no longer queues the
-execution of a separate thread to signal the global lock
-semaphore. Instead, the semaphore is signaled directly from the
-interrupt handler.
-
-Implemented support within the AML interpreter for package
-objects that contain a larger AML length (package list length)
-than the package element count. In this case, the length of the
-package is truncated to match the package element count. Some
-BIOS code apparently modifies the package length on the fly, and
-this change supports this behavior. Provides compatibility with
-the MS AML interpreter. (With assistance from Fiodor Suietov)
-
-Implemented a temporary fix for the BankValue parameter of a Bank
-Field to support all constant values, now including the Zero and
-One opcodes. Evaluation of this parameter must eventually be
-converted to a full TermArg evaluation. A not-implemented error
-is now returned (temporarily) for non-constant values for this
-parameter.
-
-Fixed problem reports (Fiodor Suietov) integrated:
-- Fix for premature object deletion after CopyObject on Operation
-Region (BZ 350)
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-
- Previous Release:
- Non-Debug Version: 80.7K Code, 18.0K Data, 98.7K Total
- Debug Version: 160.9K Code, 65.1K Data, 226.0K Total
- Current Release:
- Non-Debug Version: 80.7K Code, 17.9K Data, 98.6K Total
- Debug Version: 161.0K Code, 65.1K Data, 226.1K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-No changes for this release.
-
-----------------------------------------
-07 July 2006. Summary of changes for version 20060707:
-
-1) ACPI CA Core Subsystem:
-
-Added the ACPI_PACKED_POINTERS_NOT_SUPPORTED macro to support C
-compilers that do not allow the initialization of address
-pointers within packed structures - even though the hardware
-itself may support misaligned transfers. Some of the debug data
-structures are packed by default to minimize size.
-
-Added an error message for the case where AcpiOsGetThreadId()
-returns zero. A non-zero value is required by the core ACPICA
-code to ensure the proper operation of AML mutexes and recursive
-control methods.
-
-The DSDT is now the only ACPI table that determines whether the
-AML interpreter is in 32-bit or 64-bit mode. Not really a
-functional change, but the hooks for per-table 32/64 switching
-have been removed from the code. A clarification to the ACPI
-specification is forthcoming in ACPI 3.0B.
-
-Fixed a possible leak of an OwnerID in the error path of
-AcpiTbInitTableDescriptor (tbinstal.c), and migrated all table
-OwnerID deletion to a single place in AcpiTbUninstallTable to
-correct possible leaks when using the AcpiTbDeleteTablesByType
-interface (with assistance from Lance Ortiz.)
-
-Fixed a problem with Serialized control methods where the
-semaphore associated with the method could be over-signaled after
-multiple method invocations.
-
-Fixed two issues with the locking of the internal namespace data
-structure. Both the Unload() operator and AcpiUnloadTable
-interface now lock the namespace during the namespace deletion
-associated with the table unload (with assistance from Linn
-Crosetto.)
-
-Fixed problem reports (Valery Podrezov) integrated:
-- Eliminate unnecessary memory allocation for CreateXxxxField (BZ
-5426)
-
-Fixed problem reports (Fiodor Suietov) integrated:
-- Incomplete cleanup branches in AcpiTbGetTableRsdt (BZ 369)
-- On Address Space handler deletion, needless deactivation call
-(BZ 374)
-- AcpiRemoveAddressSpaceHandler: validate Device handle parameter
-(BZ 375)
-- Possible memory leak, Notify sub-objects of Processor, Power,
-ThermalZone (BZ 376)
-- AcpiRemoveAddressSpaceHandler: validate Handler parameter (BZ
-378)
-- Minimum Length of RSDT should be validated (BZ 379)
-- AcpiRemoveNotifyHandler: return AE_NOT_EXIST if Processor Obj
-has no Handler (BZ (380)
-- AcpiUnloadTable: return AE_NOT_EXIST if no table of specified
-type loaded (BZ 381)
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-
- Previous Release:
- Non-Debug Version: 80.5K Code, 17.8K Data, 98.3K Total
- Debug Version: 160.8K Code, 64.8K Data, 225.6K Total
- Current Release:
- Non-Debug Version: 80.7K Code, 17.9K Data, 98.6K Total
- Debug Version: 161.0K Code, 65.1K Data, 226.1K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Fixed problem reports:
-Compiler segfault when ASL contains a long (>1024) String
-declaration (BZ 436)
-
-----------------------------------------
-23 June 2006. Summary of changes for version 20060623:
-
-1) ACPI CA Core Subsystem:
-
-Implemented a new ACPI_SPINLOCK type for the OSL lock interfaces.
-This allows the type to be customized to the host OS for improved
-efficiency (since a spinlock is usually a very small object.)
-
-Implemented support for "ignored" bits in the ACPI registers.
-According to the ACPI specification, these bits should be
-preserved when writing the registers via a read/modify/write
-cycle. There are 3 bits preserved in this manner: PM1_CONTROL[0]
-(SCI_EN), PM1_CONTROL[9], and PM1_STATUS[11].
-
-Implemented the initial deployment of new OSL mutex interfaces.
-Since some host operating systems have separate mutex and
-semaphore objects, this feature was requested. The base code now
-uses mutexes (and the new mutex interfaces) wherever a binary
-semaphore was used previously. However, for the current release,
-the mutex interfaces are defined as macros to map them to the
-existing semaphore interfaces. Therefore, no OSL changes are
-required at this time. (See acpiosxf.h)
-
-Fixed several problems with the support for the control method
-SyncLevel parameter. The SyncLevel now works according to the
-ACPI specification and in concert with the Mutex SyncLevel
-parameter, since the current SyncLevel is a property of the
-executing thread. Mutual exclusion for control methods is now
-implemented with a mutex instead of a semaphore.
-
-Fixed three instances of the use of the C shift operator in the
-bitfield support code (exfldio.c) to avoid the use of a shift
-value larger than the target data width. The behavior of C
-compilers is undefined in this case and can cause unpredictable
-results, and therefore the case must be detected and avoided.
-(Fiodor Suietov)
-
-Added an info message whenever an SSDT or OEM table is loaded
-dynamically via the Load() or LoadTable() ASL operators. This
-should improve debugging capability since it will show exactly
-what tables have been loaded (beyond the tables present in the
-RSDT/XSDT.)
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-
- Previous Release:
- Non-Debug Version: 80.0K Code, 17.6K Data, 97.6K Total
- Debug Version: 160.2K Code, 64.7K Data, 224.9K Total
- Current Release:
- Non-Debug Version: 80.5K Code, 17.8K Data, 98.3K Total
- Debug Version: 160.8K Code, 64.8K Data, 225.6K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-No changes for this release.
-
-----------------------------------------
-08 June 2006. Summary of changes for version 20060608:
-
-1) ACPI CA Core Subsystem:
-
-Converted the locking mutex used for the ACPI hardware to a
-spinlock. This change should eliminate all problems caused by
-attempting to acquire a semaphore at interrupt level, and it
-means that all ACPICA external interfaces that directly access
-the ACPI hardware can be safely called from interrupt level. OSL
-code that implements the semaphore interfaces should be able to
-eliminate any workarounds for being called at interrupt level.
-
-Fixed a regression introduced in 20060526 where the ACPI device
-initialization could be prematurely aborted with an AE_NOT_FOUND
-if a device did not have an optional _INI method.
-
-Fixed an IndexField issue where a write to the Data Register
-should be limited in size to the AccessSize (width) of the
-IndexField itself. (BZ 433, Fiodor Suietov)
-
-Fixed problem reports (Valery Podrezov) integrated:
-- Allow store of ThermalZone objects to Debug object (BZ
-5369/5370)
-
-Fixed problem reports (Fiodor Suietov) integrated:
-- AcpiGetTableHeader doesn't handle multiple instances correctly
-(BZ 364)
-
-Removed four global mutexes that were obsolete and were no longer
-being used.
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-
- Previous Release:
- Non-Debug Version: 80.0K Code, 17.7K Data, 97.7K Total
- Debug Version: 160.3K Code, 64.9K Data, 225.2K Total
- Current Release:
- Non-Debug Version: 80.0K Code, 17.6K Data, 97.6K Total
- Debug Version: 160.2K Code, 64.7K Data, 224.9K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Fixed a fault when using -g option (get tables from registry) on
-Windows machines.
-
-Fixed problem reports integrated:
-- Generate error if CreateField NumBits parameter is zero. (BZ
-405)
-- Fault if Offset/Length in Field unit is very large (BZ 432,
-Fiodor Suietov)
-- Global table revision override (-r) is ignored (BZ 413)
-
-----------------------------------------
-26 May 2006. Summary of changes for version 20060526:
-
-1) ACPI CA Core Subsystem:
-
-Restructured, flattened, and simplified the internal interfaces
-for namespace object evaluation - resulting in smaller code, less
-CPU stack use, and fewer interfaces. (With assistance from
-Mikhail Kouzmich)
-
-Fixed a problem with the CopyObject operator where the first
-parameter was not typed correctly for the parser, interpreter,
-compiler, and disassembler. Caused various errors and unexpected
-behavior.
-
-Fixed a problem where a ShiftLeft or ShiftRight of more than 64
-bits produced incorrect results with some C compilers. Since the
-behavior of C compilers when the shift value is larger than the
-datatype width is apparently not well defined, the interpreter
-now detects this condition and simply returns zero as expected in
-all such cases. (BZ 395)
-
-Fixed problem reports (Valery Podrezov) integrated:
-- Update String-to-Integer conversion to match ACPI 3.0A spec (BZ
-5329)
-- Allow interpreter to handle nested method declarations (BZ
-5361)
-
-Fixed problem reports (Fiodor Suietov) integrated:
-- AcpiTerminate doesn't free debug memory allocation list objects
-(BZ 355)
-- After Core Subsystem shutdown, AcpiSubsystemStatus returns
-AE_OK (BZ 356)
-- AcpiOsUnmapMemory for RSDP can be invoked inconsistently (BZ
-357)
-- Resource Manager should return AE_TYPE for non-device objects
-(BZ 358)
-- Incomplete cleanup branch in AcpiNsEvaluateRelative (BZ 359)
-- Use AcpiOsFree instead of ACPI_FREE in AcpiRsSetSrsMethodData
-(BZ 360)
-- Incomplete cleanup branch in AcpiPsParseAml (BZ 361)
-- Incomplete cleanup branch in AcpiDsDeleteWalkState (BZ 362)
-- AcpiGetTableHeader returns AE_NO_ACPI_TABLES until DSDT is
-loaded (BZ 365)
-- Status of the Global Initialization Handler call not used (BZ
-366)
-- Incorrect object parameter to Global Initialization Handler (BZ
-367)
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-
- Previous Release:
- Non-Debug Version: 79.8K Code, 17.7K Data, 97.5K Total
- Debug Version: 160.5K Code, 65.1K Data, 225.6K Total
- Current Release:
- Non-Debug Version: 80.0K Code, 17.7K Data, 97.7K Total
- Debug Version: 160.3K Code, 64.9K Data, 225.2K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Modified the parser to allow the names IO, DMA, and IRQ to be
-used as namespace identifiers with no collision with existing
-resource descriptor macro names. This provides compatibility with
-other ASL compilers and is most useful for
-disassembly/recompilation of existing tables without parse
-errors. (With assistance from Thomas Renninger)
-
-Disassembler: fixed an incorrect disassembly problem with the
-DataTableRegion and CopyObject operators. Fixed a possible fault
-during disassembly of some Alias operators.
-
-----------------------------------------
-12 May 2006. Summary of changes for version 20060512:
-
-1) ACPI CA Core Subsystem:
-
-Replaced the AcpiOsQueueForExecution interface with a new
-interface named AcpiOsExecute. The major difference is that the
-new interface does not have a Priority parameter, this appeared
-to be useless and has been replaced by a Type parameter. The Type
-tells the host what type of execution is being requested, such as
-global lock handler, notify handler, GPE handler, etc. This
-allows the host to queue and execute the request as appropriate
-for the request type, possibly using different work queues and
-different priorities for the various request types. This enables
-fixes for multithreading deadlock problems such as BZ #5534, and
-will require changes to all existing OS interface layers. (Alexey
-Starikovskiy and Bob Moore)
-
-Fixed a possible memory leak associated with the support for the
-so-called "implicit return" ACPI extension. Reported by FreeBSD,
-BZ #6514. (Fiodor Suietov)
-
-Fixed a problem with the Load() operator where a table load from
-an operation region could overwrite an internal table buffer by
-up to 7 bytes and cause alignment faults on IPF systems. (With
-assistance from Luming Yu)
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-
- Previous Release:
- Non-Debug Version: 79.7K Code, 17.7K Data, 97.4K Total
- Debug Version: 160.1K Code, 65.2K Data, 225.3K Total
- Current Release:
- Non-Debug Version: 79.8K Code, 17.7K Data, 97.5K Total
- Debug Version: 160.5K Code, 65.1K Data, 225.6K Total
-
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Disassembler: Implemented support to cross reference the internal
-namespace and automatically generate ASL External() statements
-for symbols not defined within the current table being
-disassembled. This will simplify the disassembly and
-recompilation of interdependent tables such as SSDTs since these
-statements will no longer have to be added manually.
-
-Disassembler: Implemented experimental support to automatically
-detect invocations of external control methods and generate
-appropriate External() statements. This is problematic because
-the AML cannot be correctly parsed until the number of arguments
-for each control method is known. Currently, standalone method
-invocations and invocations as the source operand of a Store()
-statement are supported.
-
-Disassembler: Implemented support for the ASL pseudo-operators
-LNotEqual, LLessEqual, and LGreaterEqual. Previously disassembled
-as LNot(LEqual()), LNot(LGreater()), and LNot(LLess()), this
-makes the disassembled ASL code more readable and likely closer
-to the original ASL source.
-
-----------------------------------------
-21 April 2006. Summary of changes for version 20060421:
-
-1) ACPI CA Core Subsystem:
-
-Removed a device initialization optimization introduced in
-20051216 where the _STA method was not run unless an _INI was
-also present for the same device. This optimization could cause
-problems because it could allow _INI methods to be run within a
-not-present device subtree. (If a not-present device had no _INI,
-_STA would not be run, the not-present status would not be
-discovered, and the children of the device would be incorrectly
-traversed.)
-
-Implemented a new _STA optimization where namespace subtrees that
-do not contain _INI are identified and ignored during device
-initialization. Selectively running _STA can significantly
-improve boot time on large machines (with assistance from Len
-Brown.)
-
-Implemented support for the device initialization case where the
-returned _STA flags indicate a device not-present but
-functioning. In this case, _INI is not run, but the device
-children are examined for presence, as per the ACPI
-specification.
-
-Implemented an additional change to the IndexField support in
-order to conform to MS behavior. The value written to the Index
-Register is not simply a byte offset, it is a byte offset in
-units of the access width of the parent Index Field. (Fiodor
-Suietov)
-
-Defined and deployed a new OSL interface, AcpiOsValidateAddress.
-This interface is called during the creation of all AML operation
-regions, and allows the host OS to exert control over what
-addresses it will allow the AML code to access. Operation Regions
-whose addresses are disallowed will cause a runtime exception
-when they are actually accessed (will not affect or abort table
-loading.) See oswinxf or osunixxf for an example implementation.
-
-Defined and deployed a new OSL interface,
-AcpiOsValidateInterface. This interface allows the host OS to
-match the various "optional" interface/behavior strings for the
-_OSI predefined control method as appropriate (with assistance
-from Bjorn Helgaas.) See oswinxf or osunixxf for an example
-implementation.
-
-Restructured and corrected various problems in the exception
-handling code paths within DsCallControlMethod and
-DsTerminateControlMethod in dsmethod (with assistance from
-Takayoshi Kochi.)
-
-Modified the Linux source converter to ignore quoted string
-literals while converting identifiers from mixed to lower case.
-This will correct problems with the disassembler and other areas
-where such strings must not be modified.
-
-The ACPI_FUNCTION_* macros no longer require quotes around the
-function name. This allows the Linux source converter to convert
-the names, now that the converter ignores quoted strings.
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-
- Previous Release:
-
- Non-Debug Version: 81.1K Code, 17.7K Data, 98.8K Total
- Debug Version: 158.9K Code, 64.9K Data, 223.8K Total
- Current Release:
- Non-Debug Version: 79.7K Code, 17.7K Data, 97.4K Total
- Debug Version: 160.1K Code, 65.2K Data, 225.3K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Implemented 3 new warnings for iASL, and implemented multiple
-warning levels (w2 flag).
-
-1) Ignored timeouts: If the TimeoutValue parameter to Wait or
-Acquire is not WAIT_FOREVER (0xFFFF) and the code does not
-examine the return value to check for the possible timeout, a
-warning is issued.
-
-2) Useless operators: If an ASL operator does not specify an
-optional target operand and it also does not use the function
-return value from the operator, a warning is issued since the
-operator effectively does nothing.
-
-3) Unreferenced objects: If a namespace object is created, but
-never referenced, a warning is issued. This is a warning level 2
-since there are cases where this is ok, such as when a secondary
-table is loaded that uses the unreferenced objects. Even so, care
-is taken to only flag objects that don't look like they will ever
-be used. For example, the reserved methods (starting with an
-underscore) are usually not referenced because it is expected
-that the OS will invoke them.
-
-----------------------------------------
-31 March 2006. Summary of changes for version 20060331:
-
-1) ACPI CA Core Subsystem:
-
-Implemented header file support for the following additional ACPI
-tables: ASF!, BOOT, CPEP, DBGP, MCFG, SPCR, SPMI, TCPA, and WDRT.
-With this support, all current and known ACPI tables are now
-defined in the ACPICA headers and are available for use by device
-drivers and other software.
-
-Implemented support to allow tables that contain ACPI names with
-invalid characters to be loaded. Previously, this would cause the
-table load to fail, but since there are several known cases of
-such tables on existing machines, this change was made to enable
-ACPI support for them. Also, this matches the behavior of the
-Microsoft ACPI implementation.
-
-Fixed a couple regressions introduced during the memory
-optimization in the 20060317 release. The namespace node
-definition required additional reorganization and an internal
-datatype that had been changed to 8-bit was restored to 32-bit.
-(Valery Podrezov)
-
-Fixed a problem where a null pointer passed to
-AcpiUtDeleteGenericState could be passed through to
-AcpiOsReleaseObject which is unexpected. Such null pointers are
-now trapped and ignored, matching the behavior of the previous
-implementation before the deployment of AcpiOsReleaseObject.
-(Valery Podrezov, Fiodor Suietov)
-
-Fixed a memory mapping leak during the deletion of a SystemMemory
-operation region where a cached memory mapping was not deleted.
-This became a noticeable problem for operation regions that are
-defined within frequently used control methods. (Dana Meyers)
-
-Reorganized the ACPI table header files into two main files: one
-for the ACPI tables consumed by the ACPICA core, and another for
-the miscellaneous ACPI tables that are consumed by the drivers
-and other software. The various FADT definitions were merged into
-one common section and three different tables (ACPI 1.0, 1.0+,
-and 2.0)
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-
- Previous Release:
- Non-Debug Version: 80.9K Code, 17.7K Data, 98.6K Total
- Debug Version: 158.7K Code, 64.8K Data, 223.5K Total
- Current Release:
- Non-Debug Version: 81.1K Code, 17.7K Data, 98.8K Total
- Debug Version: 158.9K Code, 64.9K Data, 223.8K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Disassembler: Implemented support to decode and format all non-
-AML ACPI tables (tables other than DSDTs and SSDTs.) This
-includes the new tables added to the ACPICA headers, therefore
-all current and known ACPI tables are supported.
-
-Disassembler: The change to allow ACPI names with invalid
-characters also enables the disassembly of such tables. Invalid
-characters within names are changed to '*' to make the name
-printable; the iASL compiler will still generate an error for
-such names, however, since this is an invalid ACPI character.
-
-Implemented an option for AcpiXtract (-a) to extract all tables
-found in the input file. The default invocation extracts only the
-DSDTs and SSDTs.
-
-Fixed a couple of gcc generation issues for iASL and AcpiExec and
-added a makefile for the AcpiXtract utility.
-
-----------------------------------------
-17 March 2006. Summary of changes for version 20060317:
-
-1) ACPI CA Core Subsystem:
-
-Implemented the use of a cache object for all internal namespace
-nodes. Since there are about 1000 static nodes in a typical
-system, this will decrease memory use for cache implementations
-that minimize per-allocation overhead (such as a slab allocator.)
-
-Removed the reference count mechanism for internal namespace
-nodes, since it was deemed unnecessary. This reduces the size of
-each namespace node by about 5%-10% on all platforms. Nodes are
-now 20 bytes for the 32-bit case, and 32 bytes for the 64-bit
-case.
-
-Optimized several internal data structures to reduce object size
-on 64-bit platforms by packing data within the 64-bit alignment.
-This includes the frequently used ACPI_OPERAND_OBJECT, of which
-there can be ~1000 static instances corresponding to the
-namespace objects.
-
-Added two new strings for the predefined _OSI method: "Windows
-2001.1 SP1" and "Windows 2006".
-
-Split the allocation tracking mechanism out to a separate file,
-from utalloc.c to uttrack.c. This mechanism appears to be only
-useful for application-level code. Kernels may wish to not
-include uttrack.c in distributions.
-
-Removed all remnants of the obsolete ACPI_REPORT_* macros and the
-associated code. (These macros have been replaced by the
-ACPI_ERROR and ACPI_WARNING macros.)
-
-Code and Data Size: These are the sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
-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 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 Release:
- Non-Debug Version: 81.1K Code, 17.8K Data, 98.9K Total
- Debug Version: 161.6K Code, 65.7K Data, 227.3K Total
- Current Release:
- Non-Debug Version: 80.9K Code, 17.7K Data, 98.6K Total
- Debug Version: 158.7K Code, 64.8K Data, 223.5K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Implemented an ANSI C version of the acpixtract utility. This
-version will automatically extract the DSDT and all SSDTs from
-the input acpidump text file and dump the binary output to
-separate files. It can also display a summary of the input file
-including the headers for each table found and will extract any
-single ACPI table, with any signature. (See
-source/tools/acpixtract)
-
-----------------------------------------
-10 March 2006. Summary of changes for version 20060310:
-
-1) ACPI CA Core Subsystem:
-
-Tagged all external interfaces to the subsystem with the new
-ACPI_EXPORT_SYMBOL macro. This macro can be defined as necessary
-to assist kernel integration. For Linux, the macro resolves to
-the EXPORT_SYMBOL macro. The default definition is NULL.
-
-Added the ACPI_THREAD_ID type for the return value from
-AcpiOsGetThreadId. This allows the host to define this as
-necessary to simplify kernel integration. The default definition
-is ACPI_NATIVE_UINT.
-
-Fixed two interpreter problems related to error processing, the
-deletion of objects, and placing invalid pointers onto the
-internal operator result stack. BZ 6028, 6151 (Valery Podrezov)
-
-Increased the reference count threshold where a warning is
-emitted for large reference counts in order to eliminate
-unnecessary warnings on systems with large namespaces (especially
-64-bit.) Increased the value from 0x400 to 0x800.
-
-Due to universal disagreement as to the meaning of the 'c' in the
-calloc() function, the ACPI_MEM_CALLOCATE macro has been renamed
-to ACPI_ALLOCATE_ZEROED so that the purpose of the interface is
-'clear'. ACPI_MEM_ALLOCATE and ACPI_MEM_FREE are renamed to
-ACPI_ALLOCATE and ACPI_FREE.
-
-Code and Data Size: These are the sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
-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 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 Release:
- Non-Debug Version: 81.0K Code, 17.8K Data, 98.8K Total
- Debug Version: 161.4K Code, 65.7K Data, 227.1K Total
- Current Release:
- Non-Debug Version: 81.1K Code, 17.8K Data, 98.9K Total
- Debug Version: 161.6K Code, 65.7K Data, 227.3K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Disassembler: implemented support for symbolic resource
-descriptor references. If a CreateXxxxField operator references a
-fixed offset within a resource descriptor, a name is assigned to
-the descriptor and the offset is translated to the appropriate
-resource tag and pathname. The addition of this support brings
-the disassembled code very close to the original ASL source code
-and helps eliminate run-time errors when the disassembled code is
-modified (and recompiled) in such a way as to invalidate the
-original fixed offsets.
-
-Implemented support for a Descriptor Name as the last parameter
-to the ASL Register() macro. This parameter was inadvertently
-left out of the ACPI specification, and will be added for ACPI
-3.0b.
-
-Fixed a problem where the use of the "_OSI" string (versus the
-full path "\_OSI") caused an internal compiler error. ("No back
-ptr to op")
-
-Fixed a problem with the error message that occurs when an
-invalid string is used for a _HID object (such as one with an
-embedded asterisk: "*PNP010A".) The correct message is now
-displayed.
-
-----------------------------------------
-17 February 2006. Summary of changes for version 20060217:
-
-1) ACPI CA Core Subsystem:
-
-Implemented a change to the IndexField support to match the
-behavior of the Microsoft AML interpreter. The value written to
-the Index register is now a byte offset, no longer an index based
-upon the width of the Data register. This should fix IndexField
-problems seen on some machines where the Data register is not
-exactly one byte wide. The ACPI specification will be clarified
-on this point.
-
-Fixed a problem where several resource descriptor types could
-overrun the internal descriptor buffer due to size
-miscalculation: VendorShort, VendorLong, and Interrupt. This was
-noticed on IA64 machines, but could affect all platforms.
-
-Fixed a problem where individual resource descriptors were
-misaligned within the internal buffer, causing alignment faults
-on IA64 platforms.
-
-Code and Data Size: These are the sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
-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 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 Release:
- Non-Debug Version: 81.1K Code, 17.8K Data, 98.9K Total
- Debug Version: 161.3K Code, 65.6K Data, 226.9K Total
- Current Release:
- Non-Debug Version: 81.0K Code, 17.8K Data, 98.8K Total
- Debug Version: 161.4K Code, 65.7K Data, 227.1K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented support for new reserved names: _WDG and _WED are
-Microsoft extensions for Windows Instrumentation Management, _TDL
-is a new ACPI-defined method (Throttling Depth Limit.)
-
-Fixed a problem where a zero-length VendorShort or VendorLong
-resource descriptor was incorrectly emitted as a descriptor of
-length one.
-
-----------------------------------------
-10 February 2006. Summary of changes for version 20060210:
-
-1) ACPI CA Core Subsystem:
-
-Removed a couple of extraneous ACPI_ERROR messages that appeared
-during normal execution. These became apparent after the
-conversion from ACPI_DEBUG_PRINT.
-
-Fixed a problem where the CreateField operator could hang if the
-BitIndex or NumBits parameter referred to a named object. (Valery
-Podrezov, BZ 5359)
-
-Fixed a problem where a DeRefOf operation on a buffer object
-incorrectly failed with an exception. This also fixes a couple of
-related RefOf and DeRefOf issues. (Valery Podrezov, BZ
-5360/5392/5387)
-
-Fixed a problem where the AE_BUFFER_LIMIT exception was returned
-instead of AE_STRING_LIMIT on an out-of-bounds Index() operation.
-(Valery Podrezov, BZ 5480)
-
-Implemented a memory cleanup at the end of the execution of each
-iteration of an AML While() loop, preventing the accumulation of
-outstanding objects. (Valery Podrezov, BZ 5427)
-
-Eliminated a chunk of duplicate code in the object resolution
-code. (Valery Podrezov, BZ 5336)
-
-Fixed several warnings during the 64-bit code generation.
-
-The AcpiSrc source code conversion tool now inserts one line of
-whitespace after an if() statement that is followed immediately
-by a comment, improving readability of the Linux code.
-
-Code and Data Size: The current and previous library sizes for
-the core subsystem are shown below. These are the code and data
-sizes for the acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. 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 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 Release:
- Non-Debug Version: 81.0K Code, 17.9K Data, 98.9K Total
- Debug Version: 161.3K Code, 65.7K Data, 227.0K Total
- Current Release:
- Non-Debug Version: 81.1K Code, 17.8K Data, 98.9K Total
- Debug Version: 161.3K Code, 65.6K Data, 226.9K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem with the disassembly of a BankField operator with
-a complex expression for the BankValue parameter.
-
-----------------------------------------
-27 January 2006. Summary of changes for version 20060127:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support in the Resource Manager to allow unresolved
-namestring references within resource package objects for the
-_PRT method. This support is in addition to the previously
-implemented unresolved reference support within the AML parser.
-If the interpreter slack mode is enabled, these unresolved
-references will be passed through to the caller as a NULL package
-entry.
-
-Implemented and deployed new macros and functions for error and
-warning messages across the subsystem. These macros are simpler
-and generate less code than their predecessors. The new macros
-ACPI_ERROR, ACPI_EXCEPTION, ACPI_WARNING, and ACPI_INFO replace
-the ACPI_REPORT_* macros. The older macros remain defined to
-allow ACPI drivers time to migrate to the new macros.
-
-Implemented the ACPI_CPU_FLAGS type to simplify host OS
-integration of the Acquire/Release Lock OSL interfaces.
-
-Fixed a problem where Alias ASL operators are sometimes not
-correctly resolved, in both the interpreter and the iASL
-compiler.
-
-Fixed several problems with the implementation of the
-ConcatenateResTemplate ASL operator. As per the ACPI
-specification, zero length buffers are now treated as a single
-EndTag. One-length buffers always cause a fatal exception. Non-
-zero length buffers that do not end with a full 2-byte EndTag
-cause a fatal exception.
-
-Fixed a possible structure overwrite in the AcpiGetObjectInfo
-external interface. (With assistance from Thomas Renninger)
-
-Code and Data Size: The current and previous library sizes for
-the core subsystem are shown below. These are the code and data
-sizes for the acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. 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 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 Release:
- Non-Debug Version: 83.1K Code, 18.4K Data, 101.5K Total
- Debug Version: 163.2K Code, 66.2K Data, 229.4K Total
- Current Release:
- Non-Debug Version: 81.0K Code, 17.9K Data, 98.9K Total
- Debug Version: 161.3K Code, 65.7K Data, 227.0K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed an internal error that was generated for any forward
-references to ASL Alias objects.
-
-----------------------------------------
-13 January 2006. Summary of changes for version 20060113:
-
-1) ACPI CA Core Subsystem:
-
-Added 2006 copyright to all module headers and signons. This
-affects virtually every file in the ACPICA core subsystem, iASL
-compiler, and the utilities.
-
-Enhanced the ACPICA error reporting in order to simplify user
-migration to the non-debug version of ACPICA. Replaced all
-instances of the ACPI_DEBUG_PRINT macro invoked at the
-ACPI_DB_ERROR and ACPI_DB_WARN debug levels with the
-ACPI_REPORT_ERROR and ACPI_REPORT_WARNING macros, respectively.
-This preserves all error and warning messages in the non-debug
-version of the ACPICA code (this has been referred to as the
-"debug lite" option.) Over 200 cases were converted to create a
-total of over 380 error/warning messages across the ACPICA code.
-This increases the code and data size of the default non-debug
-version of the code somewhat (about 13K), but all error/warning
-reporting may be disabled if desired (and code eliminated) by
-specifying the ACPI_NO_ERROR_MESSAGES compile-time configuration
-option. The size of the debug version of ACPICA remains about the
-same.
-
-Fixed a memory leak within the AML Debugger "Set" command. One
-object was not properly deleted for every successful invocation
-of the command.
-
-Code and Data Size: The current and previous library sizes for
-the core subsystem are shown below. These are the code and data
-sizes for the acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. 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 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 Release:
- Non-Debug Version: 76.6K Code, 12.3K Data, 88.9K Total
- Debug Version: 163.7K Code, 67.5K Data, 231.2K Total
- Current Release:
- Non-Debug Version: 83.1K Code, 18.4K Data, 101.5K Total
- Debug Version: 163.2K Code, 66.2K Data, 229.4K Total
-
-
-2) iASL Compiler/Disassembler:
-
-The compiler now officially supports the ACPI 3.0a specification
-that was released on December 30, 2005. (Specification is
-available at www.acpi.info)
-
-----------------------------------------
-16 December 2005. Summary of changes for version 20051216:
-
-1) ACPI CA Core Subsystem:
-
-Implemented optional support to allow unresolved names within ASL
-Package objects. A null object is inserted in the package when a
-named reference cannot be located in the current namespace.
-Enabled via the interpreter slack flag, this should eliminate
-AE_NOT_FOUND exceptions seen on machines that contain such code.
-
-Implemented an optimization to the initialization sequence that
-can improve boot time. During ACPI device initialization, the
-_STA method is now run if and only if the _INI method exists. The
-_STA method is used to determine if the device is present; An
-_INI can only be run if _STA returns present, but it is a waste
-of time to run the _STA method if the _INI does not exist.
-(Prototype and assistance from Dong Wei)
-
-Implemented use of the C99 uintptr_t for the pointer casting
-macros if it is available in the current compiler. Otherwise, the
-default (void *) cast is used as before.
-
-Fixed some possible memory leaks found within the execution path
-of the Break, Continue, If, and CreateField operators. (Valery
-Podrezov)
-
-Fixed a problem introduced in the 20051202 release where an
-exception is generated during method execution if a control
-method attempts to declare another method.
-
-Moved resource descriptor string constants that are used by both
-the AML disassembler and AML debugger to the common utilities
-directory so that these components are independent.
-
-Implemented support in the AcpiExec utility (-e switch) to
-globally ignore exceptions during control method execution
-(method is not aborted.)
-
-Added the rsinfo.c source file to the AcpiExec makefile for
-Linux/Unix generation.
-
-Code and Data Size: The current and previous library sizes for
-the core subsystem are shown below. These are the code and data
-sizes for the acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. 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 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 Release:
- Non-Debug Version: 76.3K Code, 12.3K Data, 88.6K Total
- Debug Version: 163.2K Code, 67.4K Data, 230.6K Total
- Current Release:
- Non-Debug Version: 76.6K Code, 12.3K Data, 88.9K Total
- Debug Version: 163.7K Code, 67.5K Data, 231.2K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem where a CPU stack overflow fault could occur if a
-recursive method call was made from within a Return statement.
-
-----------------------------------------
-02 December 2005. Summary of changes for version 20051202:
-
-1) ACPI CA Core Subsystem:
-
-Modified the parsing of control methods to no longer create
-namespace objects during the first pass of the parse. Objects are
-now created only during the execute phase, at the moment the
-namespace creation operator is encountered in the AML (Name,
-OperationRegion, CreateByteField, etc.) This should eliminate
-ALREADY_EXISTS exceptions seen on some machines where reentrant
-control methods are protected by an AML mutex. The mutex will now
-correctly block multiple threads from attempting to create the
-same object more than once.
-
-Increased the number of available Owner Ids for namespace object
-tracking from 32 to 255. This should eliminate the OWNER_ID_LIMIT
-exceptions seen on some machines with a large number of ACPI
-tables (either static or dynamic).
-
-Fixed a problem with the AcpiExec utility where a fault could
-occur when the -b switch (batch mode) is used.
-
-Enhanced the namespace dump routine to output the owner ID for
-each namespace object.
-
-Code and Data Size: The current and previous library sizes for
-the core subsystem are shown below. These are the code and data
-sizes for the acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. 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 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 Release:
- Non-Debug Version: 76.3K Code, 12.3K Data, 88.6K Total
- Debug Version: 163.0K Code, 67.4K Data, 230.4K Total
- Current Release:
- Non-Debug Version: 76.3K Code, 12.3K Data, 88.6K Total
- Debug Version: 163.2K Code, 67.4K Data, 230.6K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a parse error during compilation of certain Switch/Case
-constructs. To simplify the parse, the grammar now allows for
-multiple Default statements and this error is now detected and
-flagged during the analysis phase.
-
-Disassembler: The disassembly now includes the contents of the
-original table header within a comment at the start of the file.
-This includes the name and version of the original ASL compiler.
-
-----------------------------------------
-17 November 2005. Summary of changes for version 20051117:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem in the AML parser where the method thread count
-could be decremented below zero if any errors occurred during the
-method parse phase. This should eliminate AE_AML_METHOD_LIMIT
-exceptions seen on some machines. This also fixed a related
-regression with the mechanism that detects and corrects methods
-that cannot properly handle reentrancy (related to the deployment
-of the new OwnerId mechanism.)
-
-Eliminated the pre-parsing of control methods (to detect errors)
-during table load. Related to the problem above, this was causing
-unwind issues if any errors occurred during the parse, and it
-seemed to be overkill. A table load should not be aborted if
-there are problems with any single control method, thus rendering
-this feature rather pointless.
-
-Fixed a problem with the new table-driven resource manager where
-an internal buffer overflow could occur for small resource
-templates.
-
-Implemented a new external interface, AcpiGetVendorResource. This
-interface will find and return a vendor-defined resource
-descriptor within a _CRS or _PRS method via an ACPI 3.0 UUID
-match. With assistance from Bjorn Helgaas.
-
-Removed the length limit (200) on string objects as per the
-upcoming ACPI 3.0A specification. This affects the following
-areas of the interpreter: 1) any implicit conversion of a Buffer
-to a String, 2) a String object result of the ASL Concatentate
-operator, 3) the String object result of the ASL ToString
-operator.
-
-Fixed a problem in the Windows OS interface layer (OSL) where a
-WAIT_FOREVER on a semaphore object would incorrectly timeout.
-This allows the multithreading features of the AcpiExec utility
-to work properly under Windows.
-
-Updated the Linux makefiles for the iASL compiler and AcpiExec to
-include the recently added file named "utresrc.c".
-
-Code and Data Size: The current and previous library sizes for
-the core subsystem are shown below. These are the code and data
-sizes for the acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. 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 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 Release:
- Non-Debug Version: 76.2K Code, 12.3K Data, 88.5K Total
- Debug Version: 163.0K Code, 67.4K Data, 230.4K Total
- Current Release:
- Non-Debug Version: 76.3K Code, 12.3K Data, 88.6K Total
- Debug Version: 163.0K Code, 67.4K Data, 230.4K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Removed the limit (200) on string objects as per the upcoming
-ACPI 3.0A specification. For the iASL compiler, this means that
-string literals within the source ASL can be of any length.
-
-Enhanced the listing output to dump the AML code for resource
-descriptors immediately after the ASL code for each descriptor,
-instead of in a block at the end of the entire resource template.
-
-Enhanced the compiler debug output to dump the entire original
-parse tree constructed during the parse phase, before any
-transforms are applied to the tree. The transformed tree is
-dumped also.
-
-----------------------------------------
-02 November 2005. Summary of changes for version 20051102:
-
-1) ACPI CA Core Subsystem:
-
-Modified the subsystem initialization sequence to improve GPE
-support. The GPE initialization has been split into two parts in
-order to defer execution of the _PRW methods (Power Resources for
-Wake) until after the hardware is fully initialized and the SCI
-handler is installed. This allows the _PRW methods to access
-fields protected by the Global Lock. This will fix systems where
-a NO_GLOBAL_LOCK exception has been seen during initialization.
-
-Converted the ACPI internal object disassemble and display code
-within the AML debugger to fully table-driven operation, reducing
-code size and increasing maintainability.
-
-Fixed a regression with the ConcatenateResTemplate() ASL operator
-introduced in the 20051021 release.
-
-Implemented support for "local" internal ACPI object types within
-the debugger "Object" command and the AcpiWalkNamespace external
-interfaces. These local types include RegionFields, BankFields,
-IndexFields, Alias, and reference objects.
-
-Moved common AML resource handling code into a new file,
-"utresrc.c". This code is shared by both the Resource Manager and
-the AML Debugger.
-
-Code and Data Size: The current and previous library sizes for
-the core subsystem are shown below. These are the code and data
-sizes for the acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. 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 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 Release:
- Non-Debug Version: 76.1K Code, 12.2K Data, 88.3K Total
- Debug Version: 163.5K Code, 67.0K Data, 230.5K Total
- Current Release:
- Non-Debug Version: 76.2K Code, 12.3K Data, 88.5K Total
- Debug Version: 163.0K Code, 67.4K Data, 230.4K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem with very large initializer lists (more than 4000
-elements) for both Buffer and Package objects where the parse
-stack could overflow.
-
-Enhanced the pre-compile source code scan for non-ASCII
-characters to ignore characters within comment fields. The scan
-is now always performed and is no longer optional, detecting
-invalid characters within a source file immediately rather than
-during the parse phase or later.
-
-Enhanced the ASL grammar definition to force early reductions on
-all list-style grammar elements so that the overall parse stack
-usage is greatly reduced. This should improve performance and
-reduce the possibility of parse stack overflow.
-
-Eliminated all reduce/reduce conflicts in the iASL parser
-generation. Also, with the addition of a %expected statement, the
-compiler generates from source with no warnings.
-
-Fixed a possible segment fault in the disassembler if the input
-filename does not contain a "dot" extension (Thomas Renninger).
-
-----------------------------------------
-21 October 2005. Summary of changes for version 20051021:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support for the EM64T and other x86-64 processors.
-This essentially entails recognizing that these processors
-support non-aligned memory transfers. Previously, all 64-bit
-processors were assumed to lack hardware support for non-aligned
-transfers.
-
-Completed conversion of the Resource Manager to nearly full table-
-driven operation. Specifically, the resource conversion code
-(convert AML to internal format and the reverse) and the debug
-code to dump internal resource descriptors are fully table-
-driven, reducing code and data size and improving
-maintainability.
-
-The OSL interfaces for Acquire and Release Lock now use a 64-bit
-flag word on 64-bit processors instead of a fixed 32-bit word.
-(With assistance from Alexey Starikovskiy)
-
-Implemented support within the resource conversion code for the
-Type-Specific byte within the various ACPI 3.0 *WordSpace macros.
-
-Fixed some issues within the resource conversion code for the
-type-specific flags for both Memory and I/O address resource
-descriptors. For Memory, implemented support for the MTP and TTP
-flags. For I/O, split the TRS and TTP flags into two separate
-fields.
-
-Code and Data Size: The current and previous library sizes for
-the core subsystem are shown below. These are the code and data
-sizes for the acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. 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 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 Release:
- Non-Debug Version: 77.1K Code, 12.1K Data, 89.2K Total
- Debug Version: 168.0K Code, 68.3K Data, 236.3K Total
- Current Release:
- Non-Debug Version: 76.1K Code, 12.2K Data, 88.3K Total
- Debug Version: 163.5K Code, 67.0K Data, 230.5K Total
-
-
-
-2) iASL Compiler/Disassembler:
-
-Relaxed a compiler restriction that disallowed a ResourceIndex
-byte if the corresponding ResourceSource string was not also
-present in a resource descriptor declaration. This restriction
-caused problems with existing AML/ASL code that includes the
-Index byte without the string. When such AML was disassembled, it
-could not be compiled without modification. Further, the modified
-code created a resource template with a different size than the
-original, breaking code that used fixed offsets into the resource
-template buffer.
-
-Removed a recent feature of the disassembler to ignore a lone
-ResourceIndex byte. This byte is now emitted if present so that
-the exact AML can be reproduced when the disassembled code is
-recompiled.
-
-Improved comments and text alignment for the resource descriptor
-code emitted by the disassembler.
-
-Implemented disassembler support for the ACPI 3.0 AccessSize
-field within a Register() resource descriptor.
-
-----------------------------------------
-30 September 2005. Summary of changes for version 20050930:
-
-1) ACPI CA Core Subsystem:
-
-Completed a major overhaul of the Resource Manager code -
-specifically, optimizations in the area of the AML/internal
-resource conversion code. The code has been optimized to simplify
-and eliminate duplicated code, CPU stack use has been decreased
-by optimizing function parameters and local variables, and naming
-conventions across the manager have been standardized for clarity
-and ease of maintenance (this includes function, parameter,
-variable, and struct/typedef names.) The update may force changes
-in some driver code, depending on how resources are handled by
-the host OS.
-
-All Resource Manager dispatch and information tables have been
-moved to a single location for clarity and ease of maintenance.
-One new file was created, named "rsinfo.c".
-
-The ACPI return macros (return_ACPI_STATUS, etc.) have been
-modified to guarantee that the argument is not evaluated twice,
-making them less prone to macro side-effects. However, since
-there exists the possibility of additional stack use if a
-particular compiler cannot optimize them (such as in the debug
-generation case), the original macros are optionally available.
-Note that some invocations of the return_VALUE macro may now
-cause size mismatch warnings; the return_UINT8 and return_UINT32
-macros are provided to eliminate these. (From Randy Dunlap)
-
-Implemented a new mechanism to enable debug tracing for
-individual control methods. A new external interface,
-AcpiDebugTrace, is provided to enable this mechanism. The intent
-is to allow the host OS to easily enable and disable tracing for
-problematic control methods. This interface can be easily exposed
-to a user or debugger interface if desired. See the file
-psxface.c for details.
-
-AcpiUtCallocate will now return a valid pointer if a length of
-zero is specified - a length of one is used and a warning is
-issued. This matches the behavior of AcpiUtAllocate.
-
-Code and Data Size: The current and previous library sizes for
-the core subsystem are shown below. These are the code and data
-sizes for the acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. 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 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 Release:
- Non-Debug Version: 77.5K Code, 12.0K Data, 89.5K Total
- Debug Version: 168.1K Code, 68.4K Data, 236.5K Total
- Current Release:
- Non-Debug Version: 77.1K Code, 12.1K Data, 89.2K Total
- Debug Version: 168.0K Code, 68.3K Data, 236.3K Total
-
-
-2) iASL Compiler/Disassembler:
-
-A remark is issued if the effective compile-time length of a
-package or buffer is zero. Previously, this was a warning.
-
-----------------------------------------
-16 September 2005. Summary of changes for version 20050916:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem within the Resource Manager where support for the
-Generic Register descriptor was not fully implemented. This
-descriptor is now fully recognized, parsed, disassembled, and
-displayed.
-
-Completely restructured the Resource Manager code to utilize
-table-driven dispatch and lookup, eliminating many of the large
-switch() statements. This reduces overall subsystem code size and
-code complexity. Affects the resource parsing and construction,
-disassembly, and debug dump output.
-
-Cleaned up and restructured the debug dump output for all
-resource descriptors. Improved readability of the output and
-reduced code size.
-
-Fixed a problem where changes to internal data structures caused
-the optional ACPI_MUTEX_DEBUG code to fail compilation if
-specified.
-
-Code and Data Size: The current and previous library sizes for
-the core subsystem are shown below. These are the code and data
-sizes for the acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. 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 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 Release:
- Non-Debug Version: 78.4K Code, 11.8K Data, 90.2K Total
- Debug Version: 169.6K Code, 69.9K Data, 239.5K Total
- Current Release:
- Non-Debug Version: 77.5K Code, 12.0K Data, 89.5K Total
- Debug Version: 168.1K Code, 68.4K Data, 236.5K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Updated the disassembler to automatically insert an
-EndDependentFn() macro into the ASL stream if this macro is
-missing in the original AML code, simplifying compilation of the
-resulting ASL module.
-
-Fixed a problem in the disassembler where a disassembled
-ResourceSource string (within a large resource descriptor) was
-not surrounded by quotes and not followed by a comma, causing
-errors when the resulting ASL module was compiled. Also, escape
-sequences within a ResourceSource string are now handled
-correctly (especially "\\")
-
-----------------------------------------
-02 September 2005. Summary of changes for version 20050902:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem with the internal Owner ID allocation and
-deallocation mechanisms for control method execution and
-recursive method invocation. This should eliminate the
-OWNER_ID_LIMIT exceptions and "Invalid OwnerId" messages seen on
-some systems. Recursive method invocation depth is currently
-limited to 255. (Alexey Starikovskiy)
-
-Completely eliminated all vestiges of support for the "module-
-level executable code" until this support is fully implemented
-and debugged. This should eliminate the NO_RETURN_VALUE
-exceptions seen during table load on some systems that invoke
-this support.
-
-Fixed a problem within the resource manager code where the
-transaction flags for a 64-bit address descriptor were handled
-incorrectly in the type-specific flag byte.
-
-Consolidated duplicate code within the address descriptor
-resource manager code, reducing overall subsystem code size.
-
-Fixed a fault when using the AML debugger "disassemble" command
-to disassemble individual control methods.
-
-Removed references to the "release_current" directory within the
-Unix release package.
-
-Code and Data Size: The current and previous 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. 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 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 Release:
- Non-Debug Version: 78.6K Code, 11.7K Data, 90.3K Total
- Debug Version: 170.0K Code, 69.9K Data, 239.9K Total
- Current Release:
- Non-Debug Version: 78.4K Code, 11.8K Data, 90.2K Total
- Debug Version: 169.6K Code, 69.9K Data, 239.5K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented an error check for illegal duplicate values in the
-interrupt and dma lists for the following ASL macros: Dma(),
-Irq(), IrqNoFlags(), and Interrupt().
-
-Implemented error checking for the Irq() and IrqNoFlags() macros
-to detect too many values in the interrupt list (16 max) and
-invalid values in the list (range 0 - 15)
-
-The maximum length string literal within an ASL file is now
-restricted to 200 characters as per the ACPI specification.
-
-Fixed a fault when using the -ln option (generate namespace
-listing).
-
-Implemented an error check to determine if a DescriptorName
-within a resource descriptor has already been used within the
-current scope.
-
-----------------------------------------
-15 August 2005. Summary of changes for version 20050815:
-
-1) ACPI CA Core Subsystem:
-
-Implemented a full bytewise compare to determine if a table load
-request is attempting to load a duplicate table. The compare is
-performed if the table signatures and table lengths match. This
-will allow different tables with the same OEM Table ID and
-revision to be loaded - probably against the ACPI specification,
-but discovered in the field nonetheless.
-
-Added the changes.txt logfile to each of the zipped release
-packages.
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 78.6K Code, 11.7K Data, 90.3K Total
- Debug Version: 167.0K Code, 69.9K Data, 236.9K Total
- Current Release:
- Non-Debug Version: 78.6K Code, 11.7K Data, 90.3K Total
- Debug Version: 170.0K Code, 69.9K Data, 239.9K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem where incorrect AML code could be generated for
-Package objects if optimization is disabled (via the -oa switch).
-
-Fixed a problem with where incorrect AML code is generated for
-variable-length packages when the package length is not specified
-and the number of initializer values is greater than 255.
-
-
-----------------------------------------
-29 July 2005. Summary of changes for version 20050729:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support to ignore an attempt to install/load a
-particular ACPI table more than once. Apparently there exists
-BIOS code that repeatedly attempts to load the same SSDT upon
-certain events. With assistance from Venkatesh Pallipadi.
-
-Restructured the main interface to the AML parser in order to
-correctly handle all exceptional conditions. This will prevent
-leakage of the OwnerId resource and should eliminate the
-AE_OWNER_ID_LIMIT exceptions seen on some machines. With
-assistance from Alexey Starikovskiy.
-
-Support for "module level code" has been disabled in this version
-due to a number of issues that have appeared on various machines.
-The support can be enabled by defining
-ACPI_ENABLE_MODULE_LEVEL_CODE during subsystem compilation. When
-the issues are fully resolved, the code will be enabled by
-default again.
-
-Modified the internal functions for debug print support to define
-the FunctionName parameter as a (const char *) for compatibility
-with compiler built-in macros such as __FUNCTION__, etc.
-
-Linted the entire ACPICA source tree for both 32-bit and 64-bit.
-
-Implemented support to display an object count summary for the
-AML Debugger commands Object and Methods.
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 78.6K Code, 11.6K Data, 90.2K Total
- Debug Version: 170.0K Code, 69.7K Data, 239.7K Total
- Current Release:
- Non-Debug Version: 78.6K Code, 11.7K Data, 90.3K Total
- Debug Version: 167.0K Code, 69.9K Data, 236.9K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a regression that appeared in the 20050708 version of the
-compiler where an error message was inadvertently emitted for
-invocations of the _OSI reserved control method.
-
-----------------------------------------
-08 July 2005. Summary of changes for version 20050708:
-
-1) ACPI CA Core Subsystem:
-
-The use of the CPU stack in the debug version of the subsystem
-has been considerably reduced. Previously, a debug structure was
-declared in every function that used the debug macros. This
-structure has been removed in favor of declaring the individual
-elements as parameters to the debug functions. This reduces the
-cumulative stack use during nested execution of ACPI function
-calls at the cost of a small increase in the code size of the
-debug version of the subsystem. With assistance from Alexey
-Starikovskiy and Len Brown.
-
-Added the ACPI_GET_FUNCTION_NAME macro to enable the compiler-
-dependent headers to define a macro that will return the current
-function name at runtime (such as __FUNCTION__ or _func_, etc.)
-The function name is used by the debug trace output. If
-ACPI_GET_FUNCTION_NAME is not defined in the compiler-dependent
-header, the function name is saved on the CPU stack (one pointer
-per function.) This mechanism is used because apparently there
-exists no standard ANSI-C defined macro that that returns the
-function name.
-
-Redesigned and reimplemented the "Owner ID" mechanism used to
-track namespace objects created/deleted by ACPI tables and
-control method execution. A bitmap is now used to allocate and
-free the IDs, thus solving the wraparound problem present in the
-previous implementation. The size of the namespace node
-descriptor was reduced by 2 bytes as a result (Alexey
-Starikovskiy).
-
-Removed the UINT32_BIT and UINT16_BIT types that were used for
-the bitfield flag definitions within the headers for the
-predefined ACPI tables. These have been replaced by UINT8_BIT in
-order to increase the code portability of the subsystem. If the
-use of UINT8 remains a problem, we may be forced to eliminate
-bitfields entirely because of a lack of portability.
-
-Enhanced the performance of the AcpiUtUpdateObjectReference
-procedure. This is a frequently used function and this
-improvement increases the performance of the entire subsystem
-(Alexey Starikovskiy).
-
-Fixed several possible memory leaks and the inverse - premature
-object deletion (Alexey Starikovskiy).
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 78.6K Code, 11.5K Data, 90.1K Total
- Debug Version: 165.2K Code, 69.6K Data, 234.8K Total
- Current Release:
- Non-Debug Version: 78.6K Code, 11.6K Data, 90.2K Total
- Debug Version: 170.0K Code, 69.7K Data, 239.7K Total
-
-----------------------------------------
-24 June 2005. Summary of changes for version 20050624:
-
-1) ACPI CA Core Subsystem:
-
-Modified the new OSL cache interfaces to use ACPI_CACHE_T as the
-type for the host-defined cache object. This allows the OSL
-implementation to define and type this object in any manner
-desired, simplifying the OSL implementation. For example,
-ACPI_CACHE_T is defined as kmem_cache_t for Linux, and should be
-defined in the OS-specific header file for other operating
-systems as required.
-
-Changed the interface to AcpiOsAcquireObject to directly return
-the requested object as the function return (instead of
-ACPI_STATUS.) This change was made for performance reasons, since
-this is the purpose of the interface in the first place.
-AcpiOsAcquireObject is now similar to the AcpiOsAllocate
-interface.
-
-Implemented a new AML debugger command named Businfo. This
-command displays information about all devices that have an
-associate _PRT object. The _ADR, _HID, _UID, and _CID are
-displayed for these devices.
-
-Modified the initialization sequence in AcpiInitializeSubsystem
-to call the OSL interface AcpiOslInitialize first, before any
-local initialization. This change was required because the global
-initialization now calls OSL interfaces.
-
-Enhanced the Dump command to display the entire contents of
-Package objects (including all sub-objects and their values.)
-
-Restructured the code base to split some files because of size
-and/or because the code logically belonged in a separate file.
-New files are listed below. All makefiles and project files
-included in the ACPI CA release have been updated.
- utilities/utcache.c /* Local cache interfaces */
- utilities/utmutex.c /* Local mutex support */
- utilities/utstate.c /* State object support */
- interpreter/parser/psloop.c /* Main AML parse loop */
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 78.3K Code, 11.6K Data, 89.9K Total
- Debug Version: 164.0K Code, 69.1K Data, 233.1K Total
- Current Release:
- Non-Debug Version: 78.6K Code, 11.5K Data, 90.1K Total
- Debug Version: 165.2K Code, 69.6K Data, 234.8K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a regression introduced in version 20050513 where the use
-of a Package object within a Case() statement caused a compile
-time exception. The original behavior has been restored (a
-Match() operator is emitted.)
-
-----------------------------------------
-17 June 2005. Summary of changes for version 20050617:
-
-1) ACPI CA Core Subsystem:
-
-Moved the object cache operations into the OS interface layer
-(OSL) to allow the host OS to handle these operations if desired
-(for example, the Linux OSL will invoke the slab allocator). This
-support is optional; the compile time define ACPI_USE_LOCAL_CACHE
-may be used to utilize the original cache code in the ACPI CA
-core. The new OSL interfaces are shown below. See utalloc.c for
-an example implementation, and acpiosxf.h for the exact interface
-definitions. With assistance from Alexey Starikovskiy.
- AcpiOsCreateCache
- AcpiOsDeleteCache
- AcpiOsPurgeCache
- AcpiOsAcquireObject
- AcpiOsReleaseObject
-
-Modified the interfaces to AcpiOsAcquireLock and
-AcpiOsReleaseLock to return and restore a flags parameter. This
-fits better with many OS lock models. Note: the current execution
-state (interrupt handler or not) is no longer passed to these
-interfaces. If necessary, the OSL must determine this state by
-itself, a simple and fast operation. With assistance from Alexey
-Starikovskiy.
-
-Fixed a problem in the ACPI table handling where a valid XSDT was
-assumed present if the revision of the RSDP was 2 or greater.
-According to the ACPI specification, the XSDT is optional in all
-cases, and the table manager therefore now checks for both an
-RSDP >=2 and a valid XSDT pointer. Otherwise, the RSDT pointer is
-used. Some ACPI 2.0 compliant BIOSs contain only the RSDT.
-
-Fixed an interpreter problem with the Mid() operator in the case
-of an input string where the resulting output string is of zero
-length. It now correctly returns a valid, null terminated string
-object instead of a string object with a null pointer.
-
-Fixed a problem with the control method argument handling to
-allow a store to an Arg object that already contains an object of
-type Device. The Device object is now correctly overwritten.
-Previously, an error was returned.
-
-
-Enhanced the debugger Find command to emit object values in
-addition to the found object pathnames. The output format is the
-same as the dump namespace command.
-
-Enhanced the debugger Set command. It now has the ability to set
-the value of any Named integer object in the namespace
-(Previously, only method locals and args could be set.)
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 78.1K Code, 11.6K Data, 89.7K Total
- Debug Version: 164.0K Code, 69.3K Data, 233.3K Total
- Current Release:
- Non-Debug Version: 78.3K Code, 11.6K Data, 89.9K Total
- Debug Version: 164.0K Code, 69.1K Data, 233.1K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a regression in the disassembler where if/else/while
-constructs were output incorrectly. This problem was introduced
-in the previous release (20050526). This problem also affected
-the single-step disassembly in the debugger.
-
-Fixed a problem where compiling the reserved _OSI method would
-randomly (but rarely) produce compile errors.
-
-Enhanced the disassembler to emit compilable code in the face of
-incorrect AML resource descriptors. If the optional
-ResourceSourceIndex is present, but the ResourceSource is not, do
-not emit the ResourceSourceIndex in the disassembly. Otherwise,
-the resulting code cannot be compiled without errors.
-
-----------------------------------------
-26 May 2005. Summary of changes for version 20050526:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support to execute Type 1 and Type 2 AML opcodes
-appearing at the module level (not within a control method.)
-These opcodes are executed exactly once at the time the table is
-loaded. This type of code was legal up until the release of ACPI
-2.0B (2002) and is now supported within ACPI CA in order to
-provide backwards compatibility with earlier BIOS
-implementations. This eliminates the "Encountered executable code
-at module level" warning that was previously generated upon
-detection of such code.
-
-Fixed a problem in the interpreter where an AE_NOT_FOUND
-exception could inadvertently be generated during the lookup of
-namespace objects in the second pass parse of ACPI tables and
-control methods. It appears that this problem could occur during
-the resolution of forward references to namespace objects.
-
-Added the ACPI_MUTEX_DEBUG #ifdef to the AcpiUtReleaseMutex
-function, corresponding to the same #ifdef in the
-AcpiUtAcquireMutex function. This allows the deadlock detection
-debug code to be compiled out in the normal case, improving mutex
-performance (and overall subsystem performance) considerably.
-
-Implemented a handful of miscellaneous fixes for possible memory
-leaks on error conditions and error handling control paths. These
-fixes were suggested by FreeBSD and the Coverity Prevent source
-code analysis tool.
-
-Added a check for a null RSDT pointer in AcpiGetFirmwareTable
-(tbxfroot.c) to prevent a fault in this error case.
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 78.2K Code, 11.6K Data, 89.8K Total
- Debug Version: 163.7K Code, 69.3K Data, 233.0K Total
- Current Release:
- Non-Debug Version: 78.1K Code, 11.6K Data, 89.7K Total
- Debug Version: 164.0K Code, 69.3K Data, 233.3K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented support to allow Type 1 and Type 2 ASL operators to
-appear at the module level (not within a control method.) These
-operators will be executed once at the time the table is loaded.
-This type of code was legal up until the release of ACPI 2.0B
-(2002) and is now supported by the iASL compiler in order to
-provide backwards compatibility with earlier BIOS ASL code.
-
-The ACPI integer width (specified via the table revision ID or
-the -r override, 32 or 64 bits) is now used internally during
-compile-time constant folding to ensure that constants are
-truncated to 32 bits if necessary. Previously, the revision ID
-value was only emitted in the AML table header.
-
-An error message is now generated for the Mutex and Method
-operators if the SyncLevel parameter is outside the legal range
-of 0 through 15.
-
-Fixed a problem with the Method operator ParameterTypes list
-handling (ACPI 3.0). Previously, more than 2 types or 2 arguments
-generated a syntax error. The actual underlying implementation
-of method argument typechecking is still under development,
-however.
-
-----------------------------------------
-13 May 2005. Summary of changes for version 20050513:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support for PCI Express root bridges -- added support
-for device PNP0A08 in the root bridge search within
-AcpiEvPciConfigRegionSetup.
-
-The interpreter now automatically truncates incoming 64-bit
-constants to 32 bits if currently executing out of a 32-bit ACPI
-table (Revision < 2). This also affects the iASL compiler
-constant folding. (Note: as per below, the iASL compiler no
-longer allows 64-bit constants within 32-bit tables.)
-
-Fixed a problem where string and buffer objects with "static"
-pointers (pointers to initialization data within an ACPI table)
-were not handled consistently. The internal object copy operation
-now always copies the data to a newly allocated buffer,
-regardless of whether the source object is static or not.
-
-Fixed a problem with the FromBCD operator where an implicit
-result conversion was improperly performed while storing the
-result to the target operand. Since this is an "explicit
-conversion" operator, the implicit conversion should never be
-performed on the output.
-
-Fixed a problem with the CopyObject operator where a copy to an
-existing named object did not always completely overwrite the
-existing object stored at name. Specifically, a buffer-to-buffer
-copy did not delete the existing buffer.
-
-Replaced "InterruptLevel" with "InterruptNumber" in all GPE
-interfaces and structs for consistency.
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 78.2K Code, 11.6K Data, 89.8K Total
- Debug Version: 163.7K Code, 69.3K Data, 233.0K Total
- Current Release: (Same sizes)
- Non-Debug Version: 78.2K Code, 11.6K Data, 89.8K Total
- Debug Version: 163.7K Code, 69.3K Data, 233.0K Total
-
-
-2) iASL Compiler/Disassembler:
-
-The compiler now emits a warning if an attempt is made to
-generate a 64-bit integer constant from within a 32-bit ACPI
-table (Revision < 2). The integer is truncated to 32 bits.
-
-Fixed a problem with large package objects: if the static length
-of the package is greater than 255, the "variable length package"
-opcode is emitted. Previously, this caused an error. This
-requires an update to the ACPI spec, since it currently
-(incorrectly) states that packages larger than 255 elements are
-not allowed.
-
-The disassembler now correctly handles variable length packages
-and packages larger than 255 elements.
-
-----------------------------------------
-08 April 2005. Summary of changes for version 20050408:
-
-1) ACPI CA Core Subsystem:
-
-Fixed three cases in the interpreter where an "index" argument to
-an ASL function was still (internally) 32 bits instead of the
-required 64 bits. This was the Index argument to the Index, Mid,
-and Match operators.
-
-The "strupr" function is now permanently local (AcpiUtStrupr),
-since this is not a POSIX-defined function and not present in
-most kernel-level C libraries. All references to the C library
-strupr function have been removed from the headers.
-
-Completed the deployment of static functions/prototypes. All
-prototypes with the static attribute have been moved from the
-headers to the owning C file.
-
-Implemented an extract option (-e) for the AcpiBin utility (AML
-binary utility). This option allows the utility to extract
-individual ACPI tables from the output of AcpiDmp. It provides
-the same functionality of the acpixtract.pl perl script without
-the worry of setting the correct perl options. AcpiBin runs on
-Windows and has not yet been generated/validated in the
-Linux/Unix environment (but should be soon).
-
-Updated and fixed the table dump option for AcpiBin (-d). This
-option converts a single ACPI table to a hex/ascii file, similar
-to the output of AcpiDmp.
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 78.0K Code, 11.6K Data, 89.6K Total
- Debug Version: 163.5K Code, 69.3K Data, 232.8K Total
- Current Release:
- Non-Debug Version: 78.2K Code, 11.6K Data, 89.8K Total
- Debug Version: 163.7K Code, 69.3K Data, 233.0K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Disassembler fix: Added a check to ensure that the table length
-found in the ACPI table header within the input file is not
-longer than the actual input file size. This indicates some kind
-of file or table corruption.
-
-----------------------------------------
-29 March 2005. Summary of changes for version 20050329:
-
-1) ACPI CA Core Subsystem:
-
-An error is now generated if an attempt is made to create a
-Buffer Field of length zero (A CreateField with a length operand
-of zero.)
-
-The interpreter now issues a warning whenever executable code at
-the module level is detected during ACPI table load. This will
-give some idea of the prevalence of this type of code.
-
-Implemented support for references to named objects (other than
-control methods) within package objects.
-
-Enhanced package object output for the debug object. Package
-objects are now completely dumped, showing all elements.
-
-Enhanced miscellaneous object output for the debug object. Any
-object can now be written to the debug object (for example, a
-device object can be written, and the type of the object will be
-displayed.)
-
-The "static" qualifier has been added to all local functions
-across both the core subsystem and the iASL compiler.
-
-The number of "long" lines (> 80 chars) within the source has
-been significantly reduced, by about 1/3.
-
-Cleaned up all header files to ensure that all CA/iASL functions
-are prototyped (even static functions) and the formatting is
-consistent.
-
-Two new header files have been added, acopcode.h and acnames.h.
-
-Removed several obsolete functions that were no longer used.
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total
- Debug Version: 165.4K Code, 69.7K Data, 236.1K Total
- Current Release:
- Non-Debug Version: 78.0K Code, 11.6K Data, 89.6K Total
- Debug Version: 163.5K Code, 69.3K Data, 232.8K Total
-
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem with the resource descriptor generation/support.
-For the ResourceSourceIndex and the ResourceSource fields, both
-must be present, or both must be not present - can't have one
-without the other.
-
-The compiler now returns non-zero from the main procedure if any
-errors have occurred during the compilation.
-
-
-----------------------------------------
-09 March 2005. Summary of changes for version 20050309:
-
-1) ACPI CA Core Subsystem:
-
-The string-to-buffer implicit conversion code has been modified
-again after a change to the ACPI specification. In order to
-match the behavior of the other major ACPI implementation, the
-target buffer is no longer truncated if the source string is
-smaller than an existing target buffer. This change requires an
-update to the ACPI spec, and should eliminate the recent
-AE_AML_BUFFER_LIMIT issues.
-
-The "implicit return" support was rewritten to a new algorithm
-that solves the general case. Rather than attempt to determine
-when a method is about to exit, the result of every ASL operator
-is saved momentarily until the very next ASL operator is
-executed. Therefore, no matter how the method exits, there will
-always be a saved implicit return value. This feature is only
-enabled with the AcpiGbl_EnableInterpreterSlack flag, and should
-eliminate AE_AML_NO_RETURN_VALUE errors when enabled.
-
-Implemented implicit conversion support for the predicate
-(operand) of the If, Else, and While operators. String and Buffer
-arguments are automatically converted to Integers.
-
-Changed the string-to-integer conversion behavior to match the
-new ACPI errata: "If no integer object exists, a new integer is
-created. The ASCII string is interpreted as a hexadecimal
-constant. Each string character is interpreted as a hexadecimal
-value (`0'-`9', `A'-`F', `a', `f'), starting with the first
-character as the most significant digit, and ending with the
-first non-hexadecimal character or end-of-string." This means
-that the first non-hex character terminates the conversion and
-this is the code that was changed.
-
-Fixed a problem where the ObjectType operator would fail (fault)
-when used on an Index of a Package which pointed to a null
-package element. The operator now properly returns zero
-(Uninitialized) in this case.
-
-Fixed a problem where the While operator used excessive memory by
-not properly popping the result stack during execution. There was
-no memory leak after execution, however. (Code provided by Valery
-Podrezov.)
-
-Fixed a problem where references to control methods within
-Package objects caused the method to be invoked, instead of
-producing a reference object pointing to the method.
-
-Restructured and simplified the pswalk.c module
-(AcpiPsDeleteParseTree) to improve performance and reduce code
-size. (Code provided by Alexey Starikovskiy.)
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total
- Debug Version: 165.4K Code, 69.6K Data, 236.0K Total
- Current Release:
- Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total
- Debug Version: 165.4K Code, 69.7K Data, 236.1K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem with the Return operator with no arguments. Since
-the AML grammar for the byte encoding requires an operand for the
-Return opcode, the compiler now emits a Return(Zero) for this
-case. An ACPI specification update has been written for this
-case.
-
-For tables other than the DSDT, namepath optimization is
-automatically disabled. This is because SSDTs can be loaded
-anywhere in the namespace, the compiler has no knowledge of
-where, and thus cannot optimize namepaths.
-
-Added "ProcessorObj" to the ObjectTypeKeyword list. This object
-type was inadvertently omitted from the ACPI specification, and
-will require an update to the spec.
-
-The source file scan for ASCII characters is now optional (-a).
-This change was made because some vendors place non-ascii
-characters within comments. However, the scan is simply a brute-
-force byte compare to ensure all characters in the file are in
-the range 0x00 to 0x7F.
-
-Fixed a problem with the CondRefOf operator where the compiler
-was inappropriately checking for the existence of the target.
-Since the point of the operator is to check for the existence of
-the target at run-time, the compiler no longer checks for the
-target existence.
-
-Fixed a problem where errors generated from the internal AML
-interpreter during constant folding were not handled properly,
-causing a fault.
-
-Fixed a problem with overly aggressive range checking for the
-Stall operator. The valid range (max 255) is now only checked if
-the operand is of type Integer. All other operand types cannot be
-statically checked.
-
-Fixed a problem where control method references within the RefOf,
-DeRefOf, and ObjectType operators were not treated properly. They
-are now treated as actual references, not method invocations.
-
-Fixed and enhanced the "list namespace" option (-ln). This option
-was broken a number of releases ago.
-
-Improved error handling for the Field, IndexField, and BankField
-operators. The compiler now cleanly reports and recovers from
-errors in the field component (FieldUnit) list.
-
-Fixed a disassembler problem where the optional
-ResourceDescriptor fields TRS and TTP were not always handled
-correctly.
-
-Disassembler - Comments in output now use "//" instead of "/*"
-
-----------------------------------------
-28 February 2005. Summary of changes for version 20050228:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem where the result of an Index() operator (an
-object reference) must increment the reference count on the
-target object for the life of the object reference.
-
-Implemented AML Interpreter and Debugger support for the new ACPI
-3.0 Extended Address (IO, Memory, Space), QwordSpace, DwordSpace,
-and WordSpace resource descriptors.
-
-Implemented support in the _OSI method for the ACPI 3.0 "Extended
-Address Space Descriptor" string, indicating interpreter support
-for the descriptors above.
-
-Implemented header support for the new ACPI 3.0 FADT flag bits.
-
-Implemented header support for the new ACPI 3.0 PCI Express bits
-for the PM1 status/enable registers.
-
-Updated header support for the MADT processor local Apic struct
-and MADT platform interrupt source struct for new ACPI 3.0
-fields.
-
-Implemented header support for the SRAT and SLIT ACPI tables.
-
-Implemented the -s switch in AcpiExec to enable the
-"InterpreterSlack" flag at runtime.
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 78.2K Code, 11.5K Data, 89.7K Total
- Debug Version: 164.9K Code, 69.2K Data, 234.1K Total
- Current Release:
- Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total
- Debug Version: 165.4K Code, 69.6K Data, 236.0K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem with the internal 64-bit String-to-integer
-conversion with strings less than two characters long.
-
-Fixed a problem with constant folding where the result of the
-Index() operator can not be considered a constant. This means
-that Index() cannot be a type3 opcode and this will require an
-update to the ACPI specification.
-
-Disassembler: Implemented support for the TTP, MTP, and TRS
-resource descriptor fields. These fields were inadvertently
-ignored and not output in the disassembly of the resource
-descriptor.
-
-
- ----------------------------------------
-11 February 2005. Summary of changes for version 20050211:
-
-1) ACPI CA Core Subsystem:
-
-Implemented ACPI 3.0 support for implicit conversion within the
-Match() operator. MatchObjects can now be of type integer,
-buffer, or string instead of just type integer. Package elements
-are implicitly converted to the type of the MatchObject. This
-change aligns the behavior of Match() with the behavior of the
-other logical operators (LLess(), etc.) It also requires an
-errata change to the ACPI specification as this support was
-intended for ACPI 3.0, but was inadvertently omitted.
-
-Fixed a problem with the internal implicit "to buffer"
-conversion. Strings that are converted to buffers will cause
-buffer truncation if the string is smaller than the target
-buffer. Integers that are converted to buffers will not cause
-buffer truncation, only zero extension (both as per the ACPI
-spec.) The problem was introduced when code was added to truncate
-the buffer, but this should not be performed in all cases, only
-the string case.
-
-Fixed a problem with the Buffer and Package operators where the
-interpreter would get confused if two such operators were used as
-operands to an ASL operator (such as
-LLess(Buffer(1){0},Buffer(1){1}). The internal result stack was
-not being popped after the execution of these operators,
-resulting in an AE_NO_RETURN_VALUE exception.
-
-Fixed a problem with constructs of the form
-Store(Index(...),...). The reference object returned from Index
-was inadvertently resolved to an actual value. This problem was
-introduced in version 20050114 when the behavior of Store() was
-modified to restrict the object types that can be used as the
-source operand (to match the ACPI specification.)
-
-Reduced excessive stack use within the AcpiGetObjectInfo
-procedure.
-
-Added a fix to aclinux.h to allow generation of AcpiExec on
-Linux.
-
-Updated the AcpiSrc utility to add the FADT_DESCRIPTOR_REV2_MINUS
-struct.
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 78.1K Code, 11.5K Data, 89.6K Total
- Debug Version: 164.8K Code, 69.2K Data, 234.0K Total
- Current Release:
- Non-Debug Version: 78.2K Code, 11.5K Data, 89.7K Total
- Debug Version: 164.9K Code, 69.2K Data, 234.1K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a code generation problem in the constant folding
-optimization code where incorrect code was generated if a
-constant was reduced to a buffer object (i.e., a reduced type 5
-opcode.)
-
-Fixed a typechecking problem for the ToBuffer operator. Caused by
-an incorrect return type in the internal opcode information
-table.
-
-----------------------------------------
-25 January 2005. Summary of changes for version 20050125:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a recently introduced problem with the Global Lock where
-the underlying semaphore was not created. This problem was
-introduced in version 20050114, and caused an AE_AML_NO_OPERAND
-exception during an Acquire() operation on _GL.
-
-The local object cache is now optional, and is disabled by
-default. Both AcpiExec and the iASL compiler enable the cache
-because they run in user mode and this enhances their
-performance. #define ACPI_ENABLE_OBJECT_CACHE to enable the local
-cache.
-
-Fixed an issue in the internal function AcpiUtEvaluateObject
-concerning the optional "implicit return" support where an error
-was returned if no return object was expected, but one was
-implicitly returned. AE_OK is now returned in this case and the
-implicitly returned object is deleted. AcpiUtEvaluateObject is
-only occasionally used, and only to execute reserved methods such
-as _STA and _INI where the return type is known up front.
-
-Fixed a few issues with the internal convert-to-integer code. It
-now returns an error if an attempt is made to convert a null
-string, a string of only blanks/tabs, or a zero-length buffer.
-This affects both implicit conversion and explicit conversion via
-the ToInteger() operator.
-
-The internal debug code in AcpiUtAcquireMutex has been commented
-out. It is not needed for normal operation and should increase
-the performance of the entire subsystem. The code remains in case
-it is needed for debug purposes again.
-
-The AcpiExec source and makefile are included in the Unix/Linux
-package for the first time.
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 78.4K Code, 11.5K Data, 89.9K Total
- Debug Version: 165.4K Code, 69.4K Data, 234.8K Total
- Current Release:
- Non-Debug Version: 78.1K Code, 11.5K Data, 89.6K Total
- Debug Version: 164.8K Code, 69.2K Data, 234.0K Total
-
-2) iASL Compiler/Disassembler:
-
-Switch/Case support: A warning is now issued if the type of the
-Switch value cannot be determined at compile time. For example,
-Switch(Arg0) will generate the warning, and the type is assumed
-to be an integer. As per the ACPI spec, use a construct such as
-Switch(ToInteger(Arg0)) to eliminate the warning.
-
-Switch/Case support: Implemented support for buffer and string
-objects as the switch value. This is an ACPI 3.0 feature, now
-that LEqual supports buffers and strings.
-
-Switch/Case support: The emitted code for the LEqual()
-comparisons now uses the switch value as the first operand, not
-the second. The case value is now the second operand, and this
-allows the case value to be implicitly converted to the type of
-the switch value, not the other way around.
-
-Switch/Case support: Temporary variables are now emitted
-immediately within the control method, not at the global level.
-This means that there are now 36 temps available per-method, not
-36 temps per-module as was the case with the earlier
-implementation (_T_0 through _T_9 and _T_A through _T_Z.)
-
-----------------------------------------
-14 January 2005. Summary of changes for version 20050114:
-
-Added 2005 copyright to all module headers. This affects every
-module in the core subsystem, iASL compiler, and the utilities.
-
-1) ACPI CA Core Subsystem:
-
-Fixed an issue with the String-to-Buffer conversion code where
-the string null terminator was not included in the buffer after
-conversion, but there is existing ASL that assumes the string
-null terminator is included. This is the root of the
-ACPI_AML_BUFFER_LIMIT regression. This problem was introduced in
-the previous version when the code was updated to correctly set
-the converted buffer size as per the ACPI specification. The ACPI
-spec is ambiguous and will be updated to specify that the null
-terminator must be included in the converted buffer. This also
-affects the ToBuffer() ASL operator.
-
-Fixed a problem with the Mid() ASL/AML operator where it did not
-work correctly on Buffer objects. Newly created sub-buffers were
-not being marked as initialized.
-
-
-Fixed a problem in AcpiTbFindTable where incorrect string
-compares were performed on the OemId and OemTableId table header
-fields. These fields are not null terminated, so strncmp is now
-used instead of strcmp.
-
-Implemented a restriction on the Store() ASL/AML operator to
-align the behavior with the ACPI specification. Previously, any
-object could be used as the source operand. Now, the only
-objects that may be used are Integers, Buffers, Strings,
-Packages, Object References, and DDB Handles. If necessary, the
-original behavior can be restored by enabling the
-EnableInterpreterSlack flag.
-
-Enhanced the optional "implicit return" support to allow an
-implicit return value from methods that are invoked externally
-via the AcpiEvaluateObject interface. This enables implicit
-returns from the _STA and _INI methods, for example.
-
-Changed the Revision() ASL/AML operator to return the current
-version of the AML interpreter, in the YYYYMMDD format.
-Previously, it incorrectly returned the supported ACPI version
-(This is the function of the _REV method).
-
-Updated the _REV predefined method to return the currently
-supported version of ACPI, now 3.
-
-Implemented batch mode option for the AcpiExec utility (-b).
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total
- Debug Version: 165.3K Code, 69.4K Data, 234.7K Total
- Current Release:
- Non-Debug Version: 78.4K Code, 11.5K Data, 89.9K Total
- Debug Version: 165.4K Code, 69.4K Data, 234.8K Total
-
-----------------------------------------
-10 December 2004. Summary of changes for version 20041210:
-
-ACPI 3.0 support is nearing completion in both the iASL compiler
-and the ACPI CA core subsystem.
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem in the ToDecimalString operator where the
-resulting string length was incorrectly calculated. The length is
-now calculated exactly, eliminating incorrect AE_STRING_LIMIT
-exceptions.
-
-Fixed a problem in the ToHexString operator to allow a maximum
-200 character string to be produced.
-
-Fixed a problem in the internal string-to-buffer and buffer-to-
-buffer copy routine where the length of the resulting buffer was
-not truncated to the new size (if the target buffer already
-existed).
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total
- Debug Version: 164.7K Code, 68.5K Data, 233.2K Total
- Current Release:
- Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total
- Debug Version: 165.3K Code, 69.4K Data, 234.7K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented the new ACPI 3.0 resource template macros -
-DWordSpace, ExtendedIO, ExtendedMemory, ExtendedSpace,
-QWordSpace, and WordSpace. Includes support in the disassembler.
-
-Implemented support for the new (ACPI 3.0) parameter to the
-Register macro, AccessSize.
-
-Fixed a problem where the _HE resource name for the Interrupt
-macro was referencing bit 0 instead of bit 1.
-
-Implemented check for maximum 255 interrupts in the Interrupt
-macro.
-
-Fixed a problem with the predefined resource descriptor names
-where incorrect AML code was generated if the offset within the
-resource buffer was 0 or 1. The optimizer shortened the AML code
-to a single byte opcode but did not update the surrounding
-package lengths.
-
-Changes to the Dma macro: All channels within the channel list
-must be in the range 0-7. Maximum 8 channels can be specified.
-BusMaster operand is optional (default is BusMaster).
-
-Implemented check for maximum 7 data bytes for the VendorShort
-macro.
-
-The ReadWrite parameter is now optional for the Memory32 and
-similar macros.
-
-----------------------------------------
-03 December 2004. Summary of changes for version 20041203:
-
-1) ACPI CA Core Subsystem:
-
-The low-level field insertion/extraction code (exfldio) has been
-completely rewritten to eliminate unnecessary complexity, bugs,
-and boundary conditions.
-
-Fixed a problem in the ToInteger, ToBuffer, ToHexString, and
-ToDecimalString operators where the input operand could be
-inadvertently deleted if no conversion was necessary (e.g., if
-the input to ToInteger was an Integer object.)
-
-Fixed a problem with the ToDecimalString and ToHexString where an
-incorrect exception code was returned if the resulting string
-would be > 200 chars. AE_STRING_LIMIT is now returned.
-
-Fixed a problem with the Concatenate operator where AE_OK was
-always returned, even if the operation failed.
-
-Fixed a problem in oswinxf (used by AcpiExec and iASL) to allow >
-128 semaphores to be allocated.
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 78.5K Code, 11.5K Data, 90.0K Total
- Debug Version: 165.2K Code, 68.6K Data, 233.8K Total
- Current Release:
- Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total
- Debug Version: 164.7K Code, 68.5K Data, 233.2K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed typechecking for the ObjectType and SizeOf operators.
-Problem was recently introduced in 20041119.
-
-Fixed a problem with the ToUUID macro where the upper nybble of
-each buffer byte was inadvertently set to zero.
-
-----------------------------------------
-19 November 2004. Summary of changes for version 20041119:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem in the internal ConvertToInteger routine where
-new integers were not truncated to 32 bits for 32-bit ACPI
-tables. This routine converts buffers and strings to integers.
-
-Implemented support to store a value to an Index() on a String
-object. This is an ACPI 2.0 feature that had not yet been
-implemented.
-
-Implemented new behavior for storing objects to individual
-package elements (via the Index() operator). The previous
-behavior was to invoke the implicit conversion rules if an object
-was already present at the index. The new behavior is to simply
-delete any existing object and directly store the new object.
-Although the ACPI specification seems unclear on this subject,
-other ACPI implementations behave in this manner. (This is the
-root of the AE_BAD_HEX_CONSTANT issue.)
-
-Modified the RSDP memory scan mechanism to support the extended
-checksum for ACPI 2.0 (and above) RSDPs. Note that the search
-continues until a valid RSDP signature is found with a valid
-checksum.
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 78.5K Code, 11.5K Data, 90.0K Total
- Debug Version: 165.2K Code, 68.6K Data, 233.8K Total
- Current Release:
- Non-Debug Version: 78.5K Code, 11.5K Data, 90.0K Total
- Debug Version: 165.2K Code, 68.6K Data, 233.8K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a missing semicolon in the aslcompiler.y file.
-
-----------------------------------------
-05 November 2004. Summary of changes for version 20041105:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support for FADT revision 2. This was an interim
-table (between ACPI 1.0 and ACPI 2.0) that adds support for the
-FADT reset register.
-
-Implemented optional support to allow uninitialized LocalX and
-ArgX variables in a control method. The variables are
-initialized to an Integer object with a value of zero. This
-support is enabled by setting the AcpiGbl_EnableInterpreterSlack
-flag to TRUE.
-
-Implemented support for Integer objects for the SizeOf operator.
-Either 4 or 8 is returned, depending on the current integer size
-(32-bit or 64-bit, depending on the parent table revision).
-
-Fixed a problem in the implementation of the SizeOf and
-ObjectType operators where the operand was resolved to a value
-too early, causing incorrect return values for some objects.
-
-Fixed some possible memory leaks during exceptional conditions.
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 78.0K Code, 11.5K Data, 89.5K Total
- Debug Version: 164.8K Code, 68.6K Data, 233.4K Total
- Current Release:
- Non-Debug Version: 78.5K Code, 11.5K Data, 90.0K Total
- Debug Version: 165.2K Code, 68.6K Data, 233.8K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented support for all ACPI 3.0 reserved names and methods.
-
-Implemented all ACPI 3.0 grammar elements in the front-end,
-including support for semicolons.
-
-Implemented the ACPI 3.0 Function() and ToUUID() macros
-
-Fixed a problem in the disassembler where a Scope() operator
-would not be emitted properly if the target of the scope was in
-another table.
-
-----------------------------------------
-15 October 2004. Summary of changes for version 20041015:
-
-Note: ACPI CA is currently undergoing an in-depth and complete
-formal evaluation to test/verify the following areas. Other
-suggestions are welcome. This will result in an increase in the
-frequency of releases and the number of bug fixes in the next few
-months.
- - Functional tests for all ASL/AML operators
- - All implicit/explicit type conversions
- - Bit fields and operation regions
- - 64-bit math support and 32-bit-only "truncated" math support
- - Exceptional conditions, both compiler and interpreter
- - Dynamic object deletion and memory leaks
- - ACPI 3.0 support when implemented
- - External interfaces to the ACPI subsystem
-
-
-1) ACPI CA Core Subsystem:
-
-Fixed two alignment issues on 64-bit platforms - within debug
-statements in AcpiEvGpeDetect and AcpiEvCreateGpeBlock. Removed
-references to the Address field within the non-aligned ACPI
-generic address structure.
-
-Fixed a problem in the Increment and Decrement operators where
-incorrect operand resolution could result in the inadvertent
-modification of the original integer when the integer is passed
-into another method as an argument and the arg is then
-incremented/decremented.
-
-Fixed a problem in the FromBCD operator where the upper 32-bits
-of a 64-bit BCD number were truncated during conversion.
-
-Fixed a problem in the ToDecimal operator where the length of the
-resulting string could be set incorrectly too long if the input
-operand was a Buffer object.
-
-Fixed a problem in the Logical operators (LLess, etc.) where a
-NULL byte (0) within a buffer would prematurely terminate a
-compare between buffer objects.
-
-Added a check for string overflow (>200 characters as per the
-ACPI specification) during the Concatenate operator with two
-string operands.
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 77.8K Code, 11.5K Data, 89.3K Total
- Debug Version: 164.6K Code, 68.5K Data, 233.1K Total
- Current Release:
- Non-Debug Version: 78.0K Code, 11.5K Data, 89.5K Total
- Debug Version: 164.8K Code, 68.6K Data, 233.4K Total
-
-
-
-2) iASL Compiler/Disassembler:
-
-Allow the use of the ObjectType operator on uninitialized Locals
-and Args (returns 0 as per the ACPI specification).
-
-Fixed a problem where the compiler would fault if there was a
-syntax error in the FieldName of all of the various
-CreateXXXField operators.
-
-Disallow the use of lower case letters within the EISAID macro,
-as per the ACPI specification. All EISAID strings must be of the
-form "UUUNNNN" Where U is an uppercase letter and N is a hex
-digit.
-
-
-----------------------------------------
-06 October 2004. Summary of changes for version 20041006:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support for the ACPI 3.0 Timer operator. This ASL
-function implements a 64-bit timer with 100 nanosecond
-granularity.
-
-Defined a new OSL interface, AcpiOsGetTimer. This interface is
-used to implement the ACPI 3.0 Timer operator. This allows the
-host OS to implement the timer with the best clock available.
-Also, it keeps the core subsystem out of the clock handling
-business, since the host OS (usually) performs this function.
-
-Fixed an alignment issue on 64-bit platforms. The
-HwLowLevelRead(Write) functions use a 64-bit address which is
-part of the packed ACPI Generic Address Structure. Since the
-structure is non-aligned, the alignment macros are now used to
-extract the address to a local variable before use.
-
-Fixed a problem where the ToInteger operator assumed all input
-strings were hexadecimal. The operator now handles both decimal
-strings and hex strings (prefixed with "0x").
-
-Fixed a problem where the string length in the string object
-created as a result of the internal ConvertToString procedure
-could be incorrect. This potentially affected all implicit
-conversions and also the ToDecimalString and ToHexString
-operators.
-
-Fixed two problems in the ToString operator. If the length
-parameter was zero, an incorrect string object was created and
-the value of the input length parameter was inadvertently changed
-from zero to Ones.
-
-Fixed a problem where the optional ResourceSource string in the
-ExtendedIRQ resource macro was ignored.
-
-Simplified the interfaces to the internal division functions,
-reducing code size and complexity.
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 77.9K Code, 11.4K Data, 89.3K Total
- Debug Version: 164.5K Code, 68.3K Data, 232.8K Total
- Current Release:
- Non-Debug Version: 77.8K Code, 11.5K Data, 89.3K Total
- Debug Version: 164.6K Code, 68.5K Data, 233.1K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented support for the ACPI 3.0 Timer operator.
-
-Fixed a problem where the Default() operator was inadvertently
-ignored in a Switch/Case block. This was a problem in the
-translation of the Switch statement to If...Else pairs.
-
-Added support to allow a standalone Return operator, with no
-parentheses (or operands).
-
-Fixed a problem with code generation for the ElseIf operator
-where the translated Else...If parse tree was improperly
-constructed leading to the loss of some code.
-
-----------------------------------------
-22 September 2004. Summary of changes for version 20040922:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem with the implementation of the LNot() operator
-where "Ones" was not returned for the TRUE case. Changed the code
-to return Ones instead of (!Arg) which was usually 1. This change
-affects iASL constant folding for this operator also.
-
-Fixed a problem in AcpiUtInitializeBuffer where an existing
-buffer was not initialized properly -- Now zero the entire buffer
-in this case where the buffer already exists.
-
-Changed the interface to AcpiOsSleep from (UINT32 Seconds, UINT32
-Milliseconds) to simply (ACPI_INTEGER Milliseconds). This
-simplifies all related code considerably. This will require
-changes/updates to all OS interface layers (OSLs.)
-
-Implemented a new external interface,
-AcpiInstallExceptionHandler, to allow a system exception handler
-to be installed. This handler is invoked upon any run-time
-exception that occurs during control method execution.
-
-Added support for the DSDT in AcpiTbFindTable. This allows the
-DataTableRegion() operator to access the local copy of the DSDT.
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 77.8K Code, 11.4K Data, 89.2K Total
- Debug Version: 164.2K Code, 68.2K Data, 232.4K Total
- Current Release:
- Non-Debug Version: 77.9K Code, 11.4K Data, 89.3K Total
- Debug Version: 164.5K Code, 68.3K Data, 232.8K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem with constant folding and the LNot operator. LNot
-was returning 1 in the TRUE case, not Ones as per the ACPI
-specification. This could result in the generation of an
-incorrect folded/reduced constant.
-
-End-Of-File is now allowed within a "//"-style comment. A parse
-error no longer occurs if such a comment is at the very end of
-the input ASL source file.
-
-Implemented the "-r" option to override the Revision in the table
-header. The initial use of this option will be to simplify the
-evaluation of the AML interpreter by allowing a single ASL source
-module to be compiled for either 32-bit or 64-bit integers.
-
-
-----------------------------------------
-27 August 2004. Summary of changes for version 20040827:
-
-1) ACPI CA Core Subsystem:
-
-- Implemented support for implicit object conversion in the non-
-numeric logical operators (LEqual, LGreater, LGreaterEqual,
-LLess, LLessEqual, and LNotEqual.) Any combination of
-Integers/Strings/Buffers may now be used; the second operand is
-implicitly converted on the fly to match the type of the first
-operand. For example:
-
- LEqual (Source1, Source2)
-
-Source1 and Source2 must each evaluate to an integer, a string,
-or a buffer. The data type of Source1 dictates the required type
-of Source2. Source2 is implicitly converted if necessary to match
-the type of Source1.
-
-- Updated and corrected the behavior of the string conversion
-support. The rules concerning conversion of buffers to strings
-(according to the ACPI specification) are as follows:
-
-ToDecimalString - explicit byte-wise conversion of buffer to
-string of decimal values (0-255) separated by commas. ToHexString
-- explicit byte-wise conversion of buffer to string of hex values
-(0-FF) separated by commas. ToString - explicit byte-wise
-conversion of buffer to string. Byte-by-byte copy with no
-transform except NULL terminated. Any other implicit buffer-to-
-string conversion - byte-wise conversion of buffer to string of
-hex values (0-FF) separated by spaces.
-
-- Fixed typo in definition of AcpiGbl_EnableInterpreterSlack.
-
-- Fixed a problem in AcpiNsGetPathnameLength where the returned
-length was one byte too short in the case of a node in the root
-scope. This could cause a fault during debug output.
-
-- Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 77.9K Code, 11.5K Data, 89.4K Total
- Debug Version: 164.1K Code, 68.3K Data, 232.4K Total
- Current Release:
- Non-Debug Version: 77.8K Code, 11.4K Data, 89.2K Total
- Debug Version: 164.2K Code, 68.2K Data, 232.4K Total
-
-
-2) iASL Compiler/Disassembler:
-
-- Fixed a Linux generation error.
-
-
-----------------------------------------
-16 August 2004. Summary of changes for version 20040816:
-
-1) ACPI CA Core Subsystem:
-
-Designed and implemented support within the AML interpreter for
-the so-called "implicit return". This support returns the result
-of the last ASL operation within a control method, in the absence
-of an explicit Return() operator. A few machines depend on this
-behavior, even though it is not explicitly supported by the ASL
-language. It is optional support that can be enabled at runtime
-via the AcpiGbl_EnableInterpreterSlack flag.
-
-Removed support for the PCI_Config address space from the
-internal low level hardware interfaces (AcpiHwLowLevelRead and
-AcpiHwLowLevelWrite). This support was not used internally, and
-would not work correctly anyway because the PCI bus number and
-segment number were not supported. There are separate interfaces
-for PCI configuration space access because of the unique
-interface.
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 78.0K Code, 11.5K Data, 89.5K Total
- Debug Version: 164.1K Code, 68.2K Data, 232.3K Total
- Current Release:
- Non-Debug Version: 77.9K Code, 11.5K Data, 89.4K Total
- Debug Version: 164.1K Code, 68.3K Data, 232.4K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem where constants in ASL expressions at the root
-level (not within a control method) could be inadvertently
-truncated during code generation. This problem was introduced in
-the 20040715 release.
-
-
-----------------------------------------
-15 July 2004. Summary of changes for version 20040715:
-
-1) ACPI CA Core Subsystem:
-
-Restructured the internal HW GPE interfaces to pass/track the
-current state of interrupts (enabled/disabled) in order to avoid
-possible deadlock and increase flexibility of the interfaces.
-
-Implemented a "lexicographical compare" for String and Buffer
-objects within the logical operators -- LGreater, LLess,
-LGreaterEqual, and LLessEqual -- as per further clarification to
-the ACPI specification. Behavior is similar to C library
-"strcmp".
-
-Completed a major reduction in CPU stack use for the
-AcpiGetFirmwareTable external function. In the 32-bit non-debug
-case, the stack use has been reduced from 168 bytes to 32 bytes.
-
-Deployed a new run-time configuration flag,
-AcpiGbl_EnableInterpreterSlack, whose purpose is to allow the AML
-interpreter to forgive certain bad AML constructs. Default
-setting is FALSE.
-
-Implemented the first use of AcpiGbl_EnableInterpreterSlack in
-the Field IO support code. If enabled, it allows field access to
-go beyond the end of a region definition if the field is within
-the region length rounded up to the next access width boundary (a
-common coding error.)
-
-Renamed OSD_HANDLER to ACPI_OSD_HANDLER, and
-OSD_EXECUTION_CALLBACK to ACPI_OSD_EXEC_CALLBACK for consistency
-with other ACPI symbols. Also, these symbols are lowercased by
-the latest version of the AcpiSrc tool.
-
-The prototypes for the PCI interfaces in acpiosxf.h have been
-updated to rename "Register" to simply "Reg" to prevent certain
-compilers from complaining.
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 77.8K Code, 11.5K Data, 89.3K Total
- Debug Version: 163.8K Code, 68.2K Data, 232.0K Total
- Current Release:
- Non-Debug Version: 78.0K Code, 11.5K Data, 89.5K Total
- Debug Version: 164.1K Code, 68.2K Data, 232.3K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented full support for Package objects within the Case()
-operator. Note: The Break() operator is currently not supported
-within Case blocks (TermLists) as there is some question about
-backward compatibility with ACPI 1.0 interpreters.
-
-
-Fixed a problem where complex terms were not supported properly
-within the Switch() operator.
-
-Eliminated extraneous warning for compiler-emitted reserved names
-of the form "_T_x". (Used in Switch/Case operators.)
-
-Eliminated optimization messages for "_T_x" objects and small
-constants within the DefinitionBlock operator.
-
-
-----------------------------------------
-15 June 2004. Summary of changes for version 20040615:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support for Buffer and String objects (as per ACPI
-2.0) for the following ASL operators: LEqual, LGreater, LLess,
-LGreaterEqual, and LLessEqual.
-
-All directory names in the entire source package are lower case,
-as they were in earlier releases.
-
-Implemented "Disassemble" command in the AML debugger that will
-disassemble a single control method.
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 77.7K Code, 11.5K Data, 89.2K Total
- Debug Version: 163.3K Code, 67.2K Data, 230.5K Total
-
- Current Release:
- Non-Debug Version: 77.8K Code, 11.5K Data, 89.3K Total
- Debug Version: 163.8K Code, 68.2K Data, 232.0K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented support for Buffer and String objects (as per ACPI
-2.0) for the following ASL operators: LEqual, LGreater, LLess,
-LGreaterEqual, and LLessEqual.
-
-All directory names in the entire source package are lower case,
-as they were in earlier releases.
-
-Fixed a fault when using the -g or -d<nofilename> options if the
-FADT was not found.
-
-Fixed an issue with the Windows version of the compiler where
-later versions of Windows place the FADT in the registry under
-the name "FADT" and not "FACP" as earlier versions did. This
-applies when using the -g or -d<nofilename> options. The
-compiler now looks for both strings as necessary.
-
-Fixed a problem with compiler namepath optimization where a
-namepath within the Scope() operator could not be optimized if
-the namepath was a subpath of the current scope path.
-
-----------------------------------------
-27 May 2004. Summary of changes for version 20040527:
-
-1) ACPI CA Core Subsystem:
-
-Completed a new design and implementation for EBDA (Extended BIOS
-Data Area) support in the RSDP scan code. The original code
-improperly scanned for the EBDA by simply scanning from memory
-location 0 to 0x400. The correct method is to first obtain the
-EBDA pointer from within the BIOS data area, then scan 1K of
-memory starting at the EBDA pointer. There appear to be few if
-any machines that place the RSDP in the EBDA, however.
-
-Integrated a fix for a possible fault during evaluation of
-BufferField arguments. Obsolete code that was causing the
-problem was removed.
-
-Found and fixed a problem in the Field Support Code where data
-could be corrupted on a bit field read that starts on an aligned
-boundary but does not end on an aligned boundary. Merged the
-read/write "datum length" calculation code into a common
-procedure.
-
-Rolled in a couple of changes to the FreeBSD-specific header.
-
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 77.6K Code, 11.5K Data, 89.1K Total
- Debug Version: 163.2K Code, 67.2K Data, 230.4K Total
- Current Release:
- Non-Debug Version: 77.7K Code, 11.5K Data, 89.2K Total
- Debug Version: 163.3K Code, 67.2K Data, 230.5K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a generation warning produced by some overly-verbose
-compilers for a 64-bit constant.
-
-----------------------------------------
-14 May 2004. Summary of changes for version 20040514:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem where hardware GPE enable bits sometimes not set
-properly during and after GPE method execution. Result of 04/27
-changes.
-
-Removed extra "clear all GPEs" when sleeping/waking.
-
-Removed AcpiHwEnableGpe and AcpiHwDisableGpe, replaced by the
-single AcpiHwWriteGpeEnableReg. Changed a couple of calls to the
-functions above to the new AcpiEv* calls as appropriate.
-
-ACPI_OS_NAME was removed from the OS-specific headers. The
-default name is now "Microsoft Windows NT" for maximum
-compatibility. However this can be changed by modifying the
-acconfig.h file.
-
-Allow a single invocation of AcpiInstallNotifyHandler for a
-handler that traps both types of notifies (System, Device). Use
-ACPI_ALL_NOTIFY flag.
-
-Run _INI methods on ThermalZone objects. This is against the
-ACPI specification, but there is apparently ASL code in the field
-that has these _INI methods, and apparently "other" AML
-interpreters execute them.
-
-Performed a full 16/32/64 bit lint that resulted in some small
-changes.
-
-Added a sleep simulation command to the AML debugger to test
-sleep code.
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 77.6K Code, 11.5K Data, 89.1K Total
- Debug Version: 162.9K Code, 67.0K Data, 229.9K Total
- Current Release:
- Non-Debug Version: 77.6K Code, 11.5K Data, 89.1K Total
- Debug Version: 163.2K Code, 67.2K Data, 230.4K Total
-
-----------------------------------------
-27 April 2004. Summary of changes for version 20040427:
-
-1) ACPI CA Core Subsystem:
-
-Completed a major overhaul of the GPE handling within ACPI CA.
-There are now three types of GPEs: wake-only, runtime-only, and
-combination wake/run. The only GPEs allowed to be combination
-wake/run are for button-style devices such as a control-method
-power button, control-method sleep button, or a notebook lid
-switch. GPEs that have an _Lxx or _Exx method and are not
-referenced by any _PRW methods are marked for "runtime" and
-hardware enabled. Any GPE that is referenced by a _PRW method is
-marked for "wake" (and disabled at runtime). However, at sleep
-time, only those GPEs that have been specifically enabled for
-wake via the AcpiEnableGpe interface will actually be hardware
-enabled.
-
-A new external interface has been added, AcpiSetGpeType(), that
-is meant to be used by device drivers to force a GPE to a
-particular type. It will be especially useful for the drivers
-for the button devices mentioned above.
-
-Completed restructuring of the ACPI CA initialization sequence so
-that default operation region handlers are installed before GPEs
-are initialized and the _PRW methods are executed. This will
-prevent errors when the _PRW methods attempt to access system
-memory or I/O space.
-
-GPE enable/disable no longer reads the GPE enable register. We
-now keep the enable info for runtime and wake separate and in the
-GPE_EVENT_INFO. We thus no longer depend on the hardware to
-maintain these bits.
-
-Always clear the wake status and fixed/GPE status bits before
-sleep, even for state S5.
-
-Improved the AML debugger output for displaying the GPE blocks
-and their current status.
-
-Added new strings for the _OSI method, of the form "Windows 2001
-SPx" where x = 0,1,2,3,4.
-
-Fixed a problem where the physical address was incorrectly
-calculated when the Load() operator was used to directly load
-from an Operation Region (vs. loading from a Field object.) Also
-added check for minimum table length for this case.
-
-Fix for multiple mutex acquisition. Restore original thread
-SyncLevel on mutex release.
-
-Added ACPI_VALID_SXDS flag to the AcpiGetObjectInfo interface for
-consistency with the other fields returned.
-
-Shrunk the ACPI_GPE_EVENT_INFO structure by 40%. There is one
-such structure for each GPE in the system, so the size of this
-structure is important.
-
-CPU stack requirement reduction: Cleaned up the method execution
-and object evaluation paths so that now a parameter structure is
-passed, instead of copying the various method parameters over and
-over again.
-
-In evregion.c: Correctly exit and reenter the interpreter region
-if and only if dispatching an operation region request to a user-
-installed handler. Do not exit/reenter when dispatching to a
-default handler (e.g., default system memory or I/O handlers)
-
-
-Notes for updating drivers for the new GPE support. The
-following changes must be made to ACPI-related device drivers
-that are attached to one or more GPEs: (This information will be
-added to the ACPI CA Programmer Reference.)
-
-1) AcpiInstallGpeHandler no longer automatically enables the GPE,
-you must explicitly call AcpiEnableGpe.
-2) There is a new interface called AcpiSetGpeType. This should be
-called before enabling the GPE. Also, this interface will
-automatically disable the GPE if it is currently enabled.
-3) AcpiEnableGpe no longer supports a GPE type flag.
-
-Specific drivers that must be changed:
-1) EC driver:
- AcpiInstallGpeHandler (NULL, GpeNum, ACPI_GPE_EDGE_TRIGGERED,
-AeGpeHandler, NULL);
- AcpiSetGpeType (NULL, GpeNum, ACPI_GPE_TYPE_RUNTIME);
- AcpiEnableGpe (NULL, GpeNum, ACPI_NOT_ISR);
-
-2) Button Drivers (Power, Lid, Sleep):
-Run _PRW method under parent device
-If _PRW exists: /* This is a control-method button */
- Extract GPE number and possibly GpeDevice
- AcpiSetGpeType (GpeDevice, GpeNum, ACPI_GPE_TYPE_WAKE_RUN);
- AcpiEnableGpe (GpeDevice, GpeNum, ACPI_NOT_ISR);
-
-For all other devices that have _PRWs, we automatically set the
-GPE type to ACPI_GPE_TYPE_WAKE, but the GPE is NOT automatically
-(wake) enabled. This must be done on a selective basis, usually
-requiring some kind of user app to allow the user to pick the
-wake devices.
-
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 77.0K Code, 11.4K Data, 88.4K Total
- Debug Version: 161.0K Code, 66.3K Data, 227.3K Total
- Current Release:
-
- Non-Debug Version: 77.6K Code, 11.5K Data, 89.1K Total
- Debug Version: 162.9K Code, 67.0K Data, 229.9K Total
-
-
-
-----------------------------------------
-02 April 2004. Summary of changes for version 20040402:
-
-1) ACPI CA Core Subsystem:
-
-Fixed an interpreter problem where an indirect store through an
-ArgX parameter was incorrectly applying the "implicit conversion
-rules" during the store. From the ACPI specification: "If the
-target is a method local or argument (LocalX or ArgX), no
-conversion is performed and the result is stored directly to the
-target". The new behavior is to disable implicit conversion
-during ALL stores to an ArgX.
-
-Changed the behavior of the _PRW method scan to ignore any and
-all errors returned by a given _PRW. This prevents the scan from
-aborting from the failure of any single _PRW.
-
-Moved the runtime configuration parameters from the global init
-procedure to static variables in acglobal.h. This will allow the
-host to override the default values easily.
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 76.9K Code, 11.4K Data, 88.3K Total
- Debug Version: 160.8K Code, 66.1K Data, 226.9K Total
- Current Release:
- Non-Debug Version: 77.0K Code, 11.4K Data, 88.4K Total
- Debug Version: 161.0K Code, 66.3K Data, 227.3K Total
-
-
-2) iASL Compiler/Disassembler:
-
-iASL now fully disassembles SSDTs. However, External()
-statements are not generated automatically for unresolved symbols
-at this time. This is a planned feature for future
-implementation.
-
-Fixed a scoping problem in the disassembler that occurs when the
-type of the target of a Scope() operator is overridden. This
-problem caused an incorrectly nested internal namespace to be
-constructed.
-
-Any warnings or errors that are emitted during disassembly are
-now commented out automatically so that the resulting file can be
-recompiled without any hand editing.
-
-----------------------------------------
-26 March 2004. Summary of changes for version 20040326:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support for "wake" GPEs via interaction between GPEs
-and the _PRW methods. Every GPE that is pointed to by one or
-more _PRWs is identified as a WAKE GPE and by default will no
-longer be enabled at runtime. Previously, we were blindly
-enabling all GPEs with a corresponding _Lxx or _Exx method - but
-most of these turn out to be WAKE GPEs anyway. We believe this
-has been the cause of thousands of "spurious" GPEs on some
-systems.
-
-This new GPE behavior is can be reverted to the original behavior
-(enable ALL GPEs at runtime) via a runtime flag.
-
-Fixed a problem where aliased control methods could not access
-objects properly. The proper scope within the namespace was not
-initialized (transferred to the target of the aliased method)
-before executing the target method.
-
-Fixed a potential race condition on internal object deletion on
-the return object in AcpiEvaluateObject.
-
-Integrated a fix for resource descriptors where both _MEM and
-_MTP were being extracted instead of just _MEM. (i.e. bitmask
-was incorrectly too wide, 0x0F instead of 0x03.)
-
-Added a special case for ACPI_ROOT_OBJECT in AcpiUtGetNodeName,
-preventing a fault in some cases.
-
-Updated Notify() values for debug statements in evmisc.c
-
-Return proper status from AcpiUtMutexInitialize, not just simply
-AE_OK.
-
-Code and Data Size: Current and previous 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 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 Release:
-
- Non-Debug Version: 76.5K Code, 11.3K Data, 87.8K Total
- Debug Version: 160.3K Code, 66.0K Data, 226.3K Total
- Current Release:
- Non-Debug Version: 76.9K Code, 11.4K Data, 88.3K Total
- Debug Version: 160.8K Code, 66.1K Data, 226.9K Total
-
-----------------------------------------
-11 March 2004. Summary of changes for version 20040311:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem where errors occurring during the parse phase of
-control method execution did not abort cleanly. For example,
-objects created and installed in the namespace were not deleted.
-This caused all subsequent invocations of the method to return
-the AE_ALREADY_EXISTS exception.
-
-Implemented a mechanism to force a control method to "Serialized"
-execution if the method attempts to create namespace objects.
-(The root of the AE_ALREADY_EXISTS problem.)
-
-Implemented support for the predefined _OSI "internal" control
-method. Initial supported strings are "Linux", "Windows 2000",
-"Windows 2001", and "Windows 2001.1", and can be easily upgraded
-for new strings as necessary. This feature will allow "other"
-operating systems to execute the fully tested, "Windows" code
-path through the ASL code
-
-Global Lock Support: Now allows multiple acquires and releases
-with any internal thread. Removed concept of "owning thread" for
-this special mutex.
-
-Fixed two functions that were inappropriately declaring large
-objects on the CPU stack: PsParseLoop, NsEvaluateRelative.
-Reduces the stack usage during method execution considerably.
-
-Fixed a problem in the ACPI 2.0 FACS descriptor (actbl2.h) where
-the S4Bios_f field was incorrectly defined as UINT32 instead of
-UINT32_BIT.
-
-Fixed a problem where AcpiEvGpeDetect would fault if there were
-no GPEs defined on the machine.
-
-Implemented two runtime options: One to force all control method
-execution to "Serialized" to mimic Windows behavior, another to
-disable _OSI support if it causes problems on a given machine.
-
-Code and Data Size: Current and previous 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 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 Release:
- Non-Debug Version: 74.8K Code, 10.1K Data, 84.9K Total
- Debug Version: 158.7K Code, 65.1K Data, 223.8K Total
- Current Release:
- Non-Debug Version: 76.5K Code, 11.3K Data, 87.8K Total
- Debug Version: 160.3K Code, 66.0K Data, 226.3K Total
-
-2) iASL Compiler/Disassembler:
-
-Fixed an array size problem for FreeBSD that would cause the
-compiler to fault.
-
-----------------------------------------
-20 February 2004. Summary of changes for version 20040220:
-
-
-1) ACPI CA Core Subsystem:
-
-Implemented execution of _SxD methods for Device objects in the
-GetObjectInfo interface.
-
-Fixed calls to _SST method to pass the correct arguments.
-
-Added a call to _SST on wake to restore to "working" state.
-
-Check for End-Of-Buffer failure case in the WalkResources
-interface.
-
-Integrated fix for 64-bit alignment issue in acglobal.h by moving
-two structures to the beginning of the file.
-
-After wake, clear GPE status register(s) before enabling GPEs.
-
-After wake, clear/enable power button. (Perhaps we should
-clear/enable all fixed events upon wake.)
-
-Fixed a couple of possible memory leaks in the Namespace manager.
-
-Integrated latest acnetbsd.h file.
-
-----------------------------------------
-11 February 2004. Summary of changes for version 20040211:
-
-
-1) ACPI CA Core Subsystem:
-
-Completed investigation and implementation of the call-by-
-reference mechanism for control method arguments.
-
-Fixed a problem where a store of an object into an indexed
-package could fail if the store occurs within a different method
-than the method that created the package.
-
-Fixed a problem where the ToDecimal operator could return
-incorrect results.
-
-Fixed a problem where the CopyObject operator could fail on some
-of the more obscure objects (e.g., Reference objects.)
-
-Improved the output of the Debug object to display buffer,
-package, and index objects.
-
-Fixed a problem where constructs of the form "RefOf (ArgX)" did
-not return the expected result.
-
-Added permanent ACPI_REPORT_ERROR macros for all instances of the
-ACPI_AML_INTERNAL exception.
-
-Integrated latest version of acfreebsd.h
-
-----------------------------------------
-16 January 2004. Summary of changes for version 20040116:
-
-The purpose of this release is primarily to update the copyright
-years in each module, thus causing a huge number of diffs. There
-are a few small functional changes, however.
-
-1) ACPI CA Core Subsystem:
-
-Improved error messages when there is a problem finding one or
-more of the required base ACPI tables
-
-Reintroduced the definition of APIC_HEADER in actbl.h
-
-Changed definition of MADT_ADDRESS_OVERRIDE to 64 bits (actbl.h)
-
-Removed extraneous reference to NewObj in dsmthdat.c
-
-2) iASL compiler
-
-Fixed a problem introduced in December that disabled the correct
-disassembly of Resource Templates
-
-
-----------------------------------------
-03 December 2003. Summary of changes for version 20031203:
-
-1) ACPI CA Core Subsystem:
-
-Changed the initialization of Operation Regions during subsystem
-init to perform two entire walks of the ACPI namespace; The first
-to initialize the regions themselves, the second to execute the
-_REG methods. This fixed some interdependencies across _REG
-methods found on some machines.
-
-Fixed a problem where a Store(Local0, Local1) could simply update
-the object reference count, and not create a new copy of the
-object if the Local1 is uninitialized.
-
-Implemented support for the _SST reserved method during sleep
-transitions.
-
-Implemented support to clear the SLP_TYP and SLP_EN bits when
-waking up, this is apparently required by some machines.
-
-When sleeping, clear the wake status only if SleepState is not
-S5.
-
-Fixed a problem in AcpiRsExtendedIrqResource() where an incorrect
-pointer arithmetic advanced a string pointer too far.
-
-Fixed a problem in AcpiTbGetTablePtr() where a garbage pointer
-could be returned if the requested table has not been loaded.
-
-Within the support for IRQ resources, restructured the handling
-of
-the active and edge/level bits.
-
-Fixed a few problems in AcpiPsxExecute() where memory could be
-leaked under certain error conditions.
-
-Improved error messages for the cases where the ACPI mode could
-not be entered.
-
-Code and Data Size: Current and previous 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 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 Release (20031029):
- Non-Debug Version: 74.4K Code, 10.1K Data, 84.5K Total
- Debug Version: 158.3K Code, 65.0K Data, 223.3K Total
- Current Release:
- Non-Debug Version: 74.8K Code, 10.1K Data, 84.9K Total
- Debug Version: 158.7K Code, 65.1K Data, 223.8K Total
-
-2) iASL Compiler/Disassembler:
-
-Implemented a fix for the iASL disassembler where a bad index was
-generated. This was most noticeable on 64-bit platforms
-
-
-----------------------------------------
-29 October 2003. Summary of changes for version 20031029:
-
-1) ACPI CA Core Subsystem:
-
-
-Fixed a problem where a level-triggered GPE with an associated
-_Lxx control method was incorrectly cleared twice.
-
-Fixed a problem with the Field support code where an access can
-occur beyond the end-of-region if the field is non-aligned but
-extends to the very end of the parent region (resulted in an
-AE_AML_REGION_LIMIT exception.)
-
-Fixed a problem with ACPI Fixed Events where an RT Clock handler
-would not get invoked on an RTC event. The RTC event bitmasks
-for
-the PM1 registers were not being initialized properly.
-
-Implemented support for executing _STA and _INI methods for
-Processor objects. Although this is currently not part of the
-ACPI specification, there is existing ASL code that depends on
-the
-init-time execution of these methods.
-
-Implemented and deployed a GetDescriptorName function to decode
-the various types of internal descriptors. Guards against null
-descriptors during debug output also.
-
-Implemented and deployed a GetNodeName function to extract the 4-
-character namespace node name. This function simplifies the
-debug
-and error output, as well as guarding against null pointers
-during
-output.
-
-Implemented and deployed the ACPI_FORMAT_UINT64 helper macro to
-simplify the debug and error output of 64-bit integers. This
-macro replaces the HIDWORD and LODWORD macros for dumping these
-integers.
-
-Updated the implementation of the Stall() operator to only call
-AcpiOsStall(), and also return an error if the operand is larger
-than 255. This preserves the required behavior of not
-relinquishing the processor, as would happen if AcpiOsSleep() was
-called for "long stalls".
-
-Constructs of the form "Store(LocalX,LocalX)" where LocalX is not
-initialized are now treated as NOOPs.
-
-Cleaned up a handful of warnings during 64-bit generation.
-
-Fixed a reported error where and incorrect GPE number was passed
-to the GPE dispatch handler. This value is only used for error
-output, however. Used this opportunity to clean up and
-streamline
-the GPE dispatch code.
-
-Code and Data Size: Current and previous 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 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 Release (20031002):
- Non-Debug Version: 74.1K Code, 9.7K Data, 83.8K Total
- Debug Version: 157.9K Code, 64.8K Data, 222.7K Total
- Current Release:
- Non-Debug Version: 74.4K Code, 10.1K Data, 84.5K Total
- Debug Version: 158.3K Code, 65.0K Data, 223.3K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Updated the iASL compiler to return an error if the operand to
-the
-Stall() operator is larger than 255.
-
-
-----------------------------------------
-02 October 2003. Summary of changes for version 20031002:
-
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem with Index Fields where the index was not
-incremented for fields that require multiple writes to the
-index/data registers (Fields that are wider than the data
-register.)
-
-Fixed a problem with all Field objects where a write could go
-beyond the end-of-field if the field was larger than the access
-granularity and therefore required multiple writes to complete
-the
-request. An extra write beyond the end of the field could happen
-inadvertently.
-
-Fixed a problem with Index Fields where a BUFFER_OVERFLOW error
-would incorrectly be returned if the width of the Data Register
-was larger than the specified field access width.
-
-Completed fixes for LoadTable() and Unload() and verified their
-operation. Implemented full support for the "DdbHandle" object
-throughout the ACPI CA subsystem.
-
-Implemented full support for the MADT and ECDT tables in the ACPI
-CA header files. Even though these tables are not directly
-consumed by ACPI CA, the header definitions are useful for ACPI
-device drivers.
-
-Integrated resource descriptor fixes posted to the Linux ACPI
-list. This included checks for minimum descriptor length, and
-support for trailing NULL strings within descriptors that have
-optional string elements.
-
-Code and Data Size: Current and previous 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 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 Release (20030918):
- Non-Debug Version: 73.9K Code, 9.7K Data, 83.6K Total
- Debug Version: 157.3K Code, 64.5K Data, 221.8K Total
- Current Release:
- Non-Debug Version: 74.1K Code, 9.7K Data, 83.8K Total
- Debug Version: 157.9K Code, 64.8K Data, 222.7K Total
-
-
-2) iASL Compiler:
-
-Implemented detection of non-ASCII characters within the input
-source ASL file. This catches attempts to compile binary (AML)
-files early in the compile, with an informative error message.
-
-Fixed a problem where the disassembler would fault if the output
-filename could not be generated or if the output file could not
-be
-opened.
-
-----------------------------------------
-18 September 2003. Summary of changes for version 20030918:
-
-
-1) ACPI CA Core Subsystem:
-
-Found and fixed a longstanding problem with the late execution of
-the various deferred AML opcodes (such as Operation Regions,
-Buffer Fields, Buffers, and Packages). If the name string
-specified for the name of the new object placed the object in a
-scope other than the current scope, the initialization/execution
-of the opcode failed. The solution to this problem was to
-implement a mechanism where the late execution of such opcodes
-does not attempt to lookup/create the name a second time in an
-incorrect scope. This fixes the "region size computed
-incorrectly" problem.
-
-Fixed a call to AcpiHwRegisterWrite in hwregs.c that was causing
-a
-Global Lock AE_BAD_PARAMETER error.
-
-Fixed several 64-bit issues with prototypes, casting and data
-types.
-
-Removed duplicate prototype from acdisasm.h
-
-Fixed an issue involving EC Operation Region Detach (Shaohua Li)
-
-Code and Data Size: Current and previous 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 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 Release:
-
- Non-Debug Version: 73.7K Code, 9.7K Data, 83.4K Total
- Debug Version: 156.9K Code, 64.2K Data, 221.1K Total
- Current Release:
- Non-Debug Version: 73.9K Code, 9.7K Data, 83.6K Total
- Debug Version: 157.3K Code, 64.5K Data, 221.8K Total
-
-
-2) Linux:
-
-Fixed the AcpiOsSleep implementation in osunixxf.c to pass the
-correct sleep time in seconds.
-
-----------------------------------------
-14 July 2003. Summary of changes for version 20030619:
-
-1) ACPI CA Core Subsystem:
-
-Parse SSDTs in order discovered, as opposed to reverse order
-(Hrvoje Habjanic)
-
-Fixes from FreeBSD and NetBSD. (Frank van der Linden, Thomas
-Klausner,
- Nate Lawson)
-
-
-2) Linux:
-
-Dynamically allocate SDT list (suggested by Andi Kleen)
-
-proc function return value cleanups (Andi Kleen)
-
-Correctly handle NMI watchdog during long stalls (Andrew Morton)
-
-Make it so acpismp=force works (reported by Andrew Morton)
-
-
-----------------------------------------
-19 June 2003. Summary of changes for version 20030619:
-
-1) ACPI CA Core Subsystem:
-
-Fix To/FromBCD, eliminating the need for an arch-specific
-#define.
-
-Do not acquire a semaphore in the S5 shutdown path.
-
-Fix ex_digits_needed for 0. (Takayoshi Kochi)
-
-Fix sleep/stall code reversal. (Andi Kleen)
-
-Revert a change having to do with control method calling
-semantics.
-
-2) Linux:
-
-acpiphp update (Takayoshi Kochi)
-
-Export acpi_disabled for sonypi (Stelian Pop)
-
-Mention acpismp=force in config help
-
-Re-add acpitable.c and acpismp=force. This improves backwards
-
-compatibility and also cleans up the code to a significant
-degree.
-
-Add ASUS Value-add driver (Karol Kozimor and Julien Lerouge)
-
-----------------------------------------
-22 May 2003. Summary of changes for version 20030522:
-
-1) ACPI CA Core Subsystem:
-
-Found and fixed a reported problem where an AE_NOT_FOUND error
-occurred occasionally during _BST evaluation. This turned out to
-be an Owner ID allocation issue where a called method did not get
-a new ID assigned to it. Eventually, (after 64k calls), the
-Owner
-ID UINT16 would wraparound so that the ID would be the same as
-the
-caller's and the called method would delete the caller's
-namespace.
-
-Implemented extended error reporting for control methods that are
-aborted due to a run-time exception. Output includes the exact
-AML instruction that caused the method abort, a dump of the
-method
-locals and arguments at the time of the abort, and a trace of all
-nested control method calls.
-
-Modified the interpreter to allow the creation of buffers of zero
-length from the AML code. Implemented new code to ensure that no
-attempt is made to actually allocate a memory buffer (of length
-zero) - instead, a simple buffer object with a NULL buffer
-pointer
-and length zero is created. A warning is no longer issued when
-the AML attempts to create a zero-length buffer.
-
-Implemented a workaround for the "leading asterisk issue" in
-_HIDs, _UIDs, and _CIDs in the AML interpreter. One leading
-asterisk is automatically removed if present in any HID, UID, or
-CID strings. The iASL compiler will still flag this asterisk as
-an error, however.
-
-Implemented full support for _CID methods that return a package
-of
-multiple CIDs (Compatible IDs). The AcpiGetObjectInfo()
-interface
-now additionally returns a device _CID list if present. This
-required a change to the external interface in order to pass an
-ACPI_BUFFER object as a parameter since the _CID list is of
-variable length.
-
-Fixed a problem with the new AE_SAME_HANDLER exception where
-handler initialization code did not know about this exception.
-
-Code and Data Size: Current and previous 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 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 Release (20030509):
- Non-Debug Version: 73.4K Code, 9.7K Data, 83.1K Total
- Debug Version: 156.1K Code, 63.9K Data, 220.0K Total
- Current Release:
- Non-Debug Version: 73.7K Code, 9.7K Data, 83.4K Total
- Debug Version: 156.9K Code, 64.2K Data, 221.1K Total
-
-
-2) Linux:
-
-Fixed a bug in which we would reinitialize the ACPI interrupt
-after it was already working, thus disabling all ACPI and the
-IRQs
-for any other device sharing the interrupt. (Thanks to Stian
-Jordet)
-
-Toshiba driver update (John Belmonte)
-
-Return only 0 or 1 for our interrupt handler status (Andrew
-Morton)
-
-
-3) iASL Compiler:
-
-Fixed a reported problem where multiple (nested) ElseIf()
-statements were not handled correctly by the compiler, resulting
-in incorrect warnings and incorrect AML code. This was a problem
-in both the ASL parser and the code generator.
-
-
-4) Documentation:
-
-Added changes to existing interfaces, new exception codes, and
-new
-text concerning reference count object management versus garbage
-collection.
-
-----------------------------------------
-09 May 2003. Summary of changes for version 20030509.
-
-
-1) ACPI CA Core Subsystem:
-
-Changed the subsystem initialization sequence to hold off
-installation of address space handlers until the hardware has
-been
-initialized and the system has entered ACPI mode. This is
-because
-the installation of space handlers can cause _REG methods to be
-run. Previously, the _REG methods could potentially be run
-before
-ACPI mode was enabled.
-
-Fixed some memory leak issues related to address space handler
-and
-notify handler installation. There were some problems with the
-reference count mechanism caused by the fact that the handler
-objects are shared across several namespace objects.
-
-Fixed a reported problem where reference counts within the
-namespace were not properly updated when named objects created by
-method execution were deleted.
-
-Fixed a reported problem where multiple SSDTs caused a deletion
-issue during subsystem termination. Restructured the table data
-structures to simplify the linked lists and the related code.
-
-Fixed a problem where the table ID associated with secondary
-tables (SSDTs) was not being propagated into the namespace
-objects
-created by those tables. This would only present a problem for
-tables that are unloaded at run-time, however.
-
-Updated AcpiOsReadable and AcpiOsWritable to use the ACPI_SIZE
-type as the length parameter (instead of UINT32).
-
-Solved a long-standing problem where an ALREADY_EXISTS error
-appears on various systems. This problem could happen when there
-are multiple PCI_Config operation regions under a single PCI root
-bus. This doesn't happen very frequently, but there are some
-systems that do this in the ASL.
-
-Fixed a reported problem where the internal DeleteNode function
-was incorrectly handling the case where a namespace node was the
-first in the parent's child list, and had additional peers (not
-the only child, but first in the list of children.)
-
-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 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 Release
- Non-Debug Version: 73.7K Code, 9.5K Data, 83.2K Total
- Debug Version: 156.1K Code, 63.6K Data, 219.7K Total
- Current Release:
- Non-Debug Version: 73.4K Code, 9.7K Data, 83.1K Total
- Debug Version: 156.1K Code, 63.9K Data, 220.0K Total
-
-
-2) Linux:
-
-Allow ":" in OS override string (Ducrot Bruno)
-
-Kobject fix (Greg KH)
-
-
-3 iASL Compiler/Disassembler:
-
-Fixed a problem in the generation of the C source code files (AML
-is emitted in C source statements for BIOS inclusion) where the
-Ascii dump that appears within a C comment at the end of each
-line
-could cause a compile time error if the AML sequence happens to
-have an open comment or close comment sequence embedded.
-
-
-----------------------------------------
-24 April 2003. Summary of changes for version 20030424.
-
-
-1) ACPI CA Core Subsystem:
-
-Support for big-endian systems has been implemented. Most of the
-support has been invisibly added behind big-endian versions of
-the
-ACPI_MOVE_* macros.
-
-Fixed a problem in AcpiHwDisableGpeBlock() and
-AcpiHwClearGpeBlock() where an incorrect offset was passed to the
-low level hardware write routine. The offset parameter was
-actually eliminated from the low level read/write routines
-because
-they had become obsolete.
-
-Fixed a problem where a handler object was deleted twice during
-the removal of a fixed event handler.
-
-
-2) Linux:
-
-A fix for SMP systems with link devices was contributed by
-
-Compaq's Dan Zink.
-
-(2.5) Return whether we handled the interrupt in our IRQ handler.
-(Linux ISRs no longer return void, so we can propagate the
-handler
-return value from the ACPI CA core back to the OS.)
-
-
-
-3) Documentation:
-
-The ACPI CA Programmer Reference has been updated to reflect new
-interfaces and changes to existing interfaces.
-
-----------------------------------------
-28 March 2003. Summary of changes for version 20030328.
-
-1) ACPI CA Core Subsystem:
-
-The GPE Block Device support has been completed. New interfaces
-are AcpiInstallGpeBlock and AcpiRemoveGpeBlock. The Event
-interfaces (enable, disable, clear, getstatus) have been split
-into separate interfaces for Fixed Events and General Purpose
-Events (GPEs) in order to support GPE Block Devices properly.
-
-Fixed a problem where the error message "Failed to acquire
-semaphore" would appear during operations on the embedded
-controller (EC).
-
-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 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 Release
- Non-Debug Version: 72.3K Code, 9.5K Data, 81.8K Total
- Debug Version: 154.0K Code, 63.4K Data, 217.4K Total
- Current Release:
- Non-Debug Version: 73.7K Code, 9.5K Data, 83.2K Total
- Debug Version: 156.1K Code, 63.6K Data, 219.7K Total
-
-
-----------------------------------------
-28 February 2003. Summary of changes for version 20030228.
-
-
-1) ACPI CA Core Subsystem:
-
-The GPE handling and dispatch code has been completely overhauled
-in preparation for support of GPE Block Devices (ID ACPI0006).
-This affects internal data structures and code only; there should
-be no differences visible externally. One new file has been
-added, evgpeblk.c
-
-The FADT fields GPE0_BLK_LEN and GPE1_BLK_LEN are now the only
-fields that are used to determine the GPE block lengths. The
-REGISTER_BIT_WIDTH field of the X_GPEx_BLK extended address
-structures are ignored. This is per the ACPI specification but
-it
-isn't very clear. The full 256 Block 0/1 GPEs are now supported
-(the use of REGISTER_BIT_WIDTH limited the number of GPEs to
-128).
-
-In the SCI interrupt handler, removed the read of the PM1_CONTROL
-register to look at the SCI_EN bit. On some machines, this read
-causes an SMI event and greatly slows down SCI events. (This may
-in fact be the cause of slow battery status response on some
-systems.)
-
-Fixed a problem where a store of a NULL string to a package
-object
-could cause the premature deletion of the object. This was seen
-during execution of the battery _BIF method on some systems,
-resulting in no battery data being returned.
-
-Added AcpiWalkResources interface to simplify parsing of resource
-lists.
-
-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 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 Release
- Non-Debug Version: 72.0K Code, 9.5K Data, 81.5K Total
- Debug Version: 153.0K Code, 62.9K Data, 215.9K Total
- Current Release:
- Non-Debug Version: 72.3K Code, 9.5K Data, 81.8K Total
- Debug Version: 154.0K Code, 63.4K Data, 217.4K Total
-
-
-2) Linux
-
-S3 fixes (Ole Rohne)
-
-Update ACPI PHP driver with to use new acpi_walk_resource API
-(Bjorn Helgaas)
-
-Add S4BIOS support (Pavel Machek)
-
-Map in entire table before performing checksum (John Stultz)
-
-Expand the mem= cmdline to allow the specification of reserved
-and
-ACPI DATA blocks (Pavel Machek)
-
-Never use ACPI on VISWS
-
-Fix derive_pci_id (Ducrot Bruno, Alvaro Lopez)
-
-Revert a change that allowed P_BLK lengths to be 4 or 5. This is
-causing us to think that some systems support C2 when they really
-don't.
-
-Do not count processor objects for non-present CPUs (Thanks to
-Dominik Brodowski)
-
-
-3) iASL Compiler:
-
-Fixed a problem where ASL include files could not be found and
-opened.
-
-Added support for the _PDC reserved name.
-
-
-----------------------------------------
-22 January 2003. Summary of changes for version 20030122.
-
-
-1) ACPI CA Core Subsystem:
-
-Added a check for constructs of the form: Store (Local0, Local0)
-where Local0 is not initialized. Apparently, some BIOS
-programmers believe that this is a NOOP. Since this store
-doesn't
-do anything anyway, the new prototype behavior will ignore this
-error. This is a case where we can relax the strict checking in
-the interpreter in the name of compatibility.
-
-
-2) Linux
-
-The AcpiSrc Source Conversion Utility has been released with the
-Linux package for the first time. This is the utility that is
-used to convert the ACPI CA base source code to the Linux
-version.
-
-(Both) Handle P_BLK lengths shorter than 6 more gracefully
-
-(Both) Move more headers to include/acpi, and delete an unused
-header.
-
-(Both) Move drivers/acpi/include directory to include/acpi
-
-(Both) Boot functions don't use cmdline, so don't pass it around
-
-(Both) Remove include of unused header (Adrian Bunk)
-
-(Both) acpiphp.h includes both linux/acpi.h and acpi_bus.h. Since
-the
-former now also includes the latter, acpiphp.h only needs the
-one,
-now.
-
-(2.5) Make it possible to select method of bios restoring after
-S3
-resume. [=> no more ugly ifdefs] (Pavel Machek)
-
-(2.5) Make proc write interfaces work (Pavel Machek)
-
-(2.5) Properly init/clean up in cpufreq/acpi (Dominik Brodowski)
-
-(2.5) Break out ACPI Perf code into its own module, under cpufreq
-(Dominik Brodowski)
-
-(2.4) S4BIOS support (Ducrot Bruno)
-
-(2.4) Fix acpiphp_glue.c for latest ACPI struct changes (Sergio
-Visinoni)
-
-
-3) iASL Compiler:
-
-Added support to disassemble SSDT and PSDTs.
-
-Implemented support to obtain SSDTs from the Windows registry if
-available.
-
-
-----------------------------------------
-09 January 2003. Summary of changes for version 20030109.
-
-1) ACPI CA Core Subsystem:
-
-Changed the behavior of the internal Buffer-to-String conversion
-function. The current ACPI specification states that the
-contents
-of the buffer are "converted to a string of two-character
-hexadecimal numbers, each separated by a space". Unfortunately,
-this definition is not backwards compatible with existing ACPI
-1.0
-implementations (although the behavior was not defined in the
-ACPI
-1.0 specification). The new behavior simply copies data from the
-buffer to the string until a null character is found or the end
-of
-the buffer is reached. The new String object is always null
-terminated. This problem was seen during the generation of _BIF
-battery data where incorrect strings were returned for battery
-type, etc. This will also require an errata to the ACPI
-specification.
-
-Renamed all instances of NATIVE_UINT and NATIVE_INT to
-ACPI_NATIVE_UINT and ACPI_NATIVE_INT, respectively.
-
-Copyright in all module headers (both Linux and non-Linux) has be
-updated to 2003.
-
-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 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 Release
- Non-Debug Version: 72.0K Code, 9.5K Data, 81.5K Total
- Debug Version: 153.0K Code, 62.9K Data, 215.9K Total
- Current Release:
- Non-Debug Version: 72.0K Code, 9.5K Data, 81.5K Total
- Debug Version: 153.0K Code, 62.9K Data, 215.9K Total
-
-
-2) Linux
-
-Fixed an oops on module insertion/removal (Matthew Tippett)
-
-(2.4) Fix to handle dynamic size of mp_irqs (Joerg Prante)
-
-(2.5) Replace pr_debug (Randy Dunlap)
-
-(2.5) Remove usage of CPUFREQ_ALL_CPUS (Dominik Brodowski)
-
-(Both) Eliminate spawning of thread from timer callback, in favor
-of schedule_work()
-
-(Both) Show Lid status in /proc (Zdenek OGAR Skalak)
-
-(Both) Added define for Fixed Function HW region (Matthew Wilcox)
-
-(Both) Add missing statics to button.c (Pavel Machek)
-
-Several changes have been made to the source code translation
-utility that generates the Linux Code in order to make the code
-more "Linux-like":
-
-All typedefs on structs and unions have been removed in keeping
-with the Linux coding style.
-
-Removed the non-Linux SourceSafe module revision number from each
-module header.
-
-Completed major overhaul of symbols to be lowercased for linux.
-Doubled the number of symbols that are lowercased.
-
-Fixed a problem where identifiers within procedure headers and
-within quotes were not fully lower cased (they were left with a
-starting capital.)
-
-Some C macros whose only purpose is to allow the generation of 16-
-bit code are now completely removed in the Linux code, increasing
-readability and maintainability.
-
-----------------------------------------
-
-12 December 2002. Summary of changes for version 20021212.
-
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem where the creation of a zero-length AML Buffer
-would cause a fault.
-
-Fixed a problem where a Buffer object that pointed to a static
-AML
-buffer (in an ACPI table) could inadvertently be deleted, causing
-memory corruption.
-
-Fixed a problem where a user buffer (passed in to the external
-ACPI CA interfaces) could be overwritten if the buffer was too
-small to complete the operation, causing memory corruption.
-
-Fixed a problem in the Buffer-to-String conversion code where a
-string of length one was always returned, regardless of the size
-of the input Buffer object.
-
-Removed the NATIVE_CHAR data type across the entire source due to
-lack of need and lack of consistent use.
-
-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 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 Release
- Non-Debug Version: 72.1K Code, 9.5K Data, 81.6K Total
- Debug Version: 152.7K Code, 62.7K Data, 215.4K Total
- Current Release:
- Non-Debug Version: 72.0K Code, 9.5K Data, 81.5K Total
- Debug Version: 153.0K Code, 62.9K Data, 215.9K Total
-
-
-----------------------------------------
-05 December 2002. Summary of changes for version 20021205.
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem where a store to a String or Buffer object could
-cause corruption of the DSDT if the object type being stored was
-the same as the target object type and the length of the object
-being stored was equal to or smaller than the original (existing)
-target object. This was seen to cause corruption of battery _BIF
-buffers if the _BIF method modified the buffer on the fly.
-
-Fixed a problem where an internal error was generated if a
-control
-method invocation was used in an OperationRegion, Buffer, or
-Package declaration. This was caused by the deferred parsing of
-the control method and thus the deferred creation of the internal
-method object. The solution to this problem was to create the
-internal method object at the moment the method is encountered in
-the first pass - so that subsequent references to the method will
-able to obtain the required parameter count and thus properly
-parse the method invocation. This problem presented itself as an
-AE_AML_INTERNAL during the pass 1 parse phase during table load.
-
-Fixed a problem where the internal String object copy routine did
-not always allocate sufficient memory for the target String
-object
-and caused memory corruption. This problem was seen to cause
-"Allocation already present in list!" errors as memory allocation
-became corrupted.
-
-Implemented a new function for the evaluation of namespace
-objects
-that allows the specification of the allowable return object
-types. This simplifies a lot of code that checks for a return
-object of one or more specific objects returned from the
-evaluation (such as _STA, etc.) This may become and external
-function if it would be useful to ACPI-related drivers.
-
-Completed another round of prefixing #defines with "ACPI_" for
-clarity.
-
-Completed additional code restructuring to allow more modular
-linking for iASL compiler and AcpiExec. Several files were split
-creating new files. New files: nsparse.c dsinit.c evgpe.c
-
-Implemented an abort mechanism to terminate an executing control
-method via the AML debugger. This feature is useful for
-debugging
-control methods that depend (wait) for specific hardware
-responses.
-
-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 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 Release
- Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total
- Debug Version: 152.9K Code, 63.3K Data, 216.2K Total
- Current Release:
- Non-Debug Version: 72.1K Code, 9.5K Data, 81.6K Total
- Debug Version: 152.7K Code, 62.7K Data, 215.4K Total
-
-
-2) iASL Compiler/Disassembler
-
-Fixed a compiler code generation problem for "Interrupt" Resource
-Descriptors. If specified in the ASL, the optional "Resource
-Source Index" and "Resource Source" fields were not inserted into
-the correct location within the AML resource descriptor, creating
-an invalid descriptor.
-
-Fixed a disassembler problem for "Interrupt" resource
-descriptors.
-The optional "Resource Source Index" and "Resource Source" fields
-were ignored.
-
-
-----------------------------------------
-22 November 2002. Summary of changes for version 20021122.
-
-
-1) ACPI CA Core Subsystem:
-
-Fixed a reported problem where an object stored to a Method Local
-or Arg was not copied to a new object during the store - the
-object pointer was simply copied to the Local/Arg. This caused
-all subsequent operations on the Local/Arg to also affect the
-original source of the store operation.
-
-Fixed a problem where a store operation to a Method Local or Arg
-was not completed properly if the Local/Arg contained a reference
-(from RefOf) to a named field. The general-purpose store-to-
-namespace-node code is now used so that this case is handled
-automatically.
-
-Fixed a problem where the internal object copy routine would
-cause
-a protection fault if the object being copied was a Package and
-contained either 1) a NULL package element or 2) a nested sub-
-package.
-
-Fixed a problem with the GPE initialization that resulted from an
-ambiguity in the ACPI specification. One section of the
-specification states that both the address and length of the GPE
-block must be zero if the block is not supported. Another
-section
-implies that only the address need be zero if the block is not
-supported. The code has been changed so that both the address
-and
-the length must be non-zero to indicate a valid GPE block (i.e.,
-if either the address or the length is zero, the GPE block is
-invalid.)
-
-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 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 Release
- Non-Debug Version: 71.3K Code, 9.0K Data, 80.3K Total
- Debug Version: 152.7K Code, 63.2K Data, 215.5K Total
- Current Release:
- Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total
- Debug Version: 152.9K Code, 63.3K Data, 216.2K Total
-
-
-2) Linux
-
-Cleaned up EC driver. Exported an external EC read/write
-interface. By going through this, other drivers (most notably
-sonypi) will be able to serialize access to the EC.
-
-
-3) iASL Compiler/Disassembler
-
-Implemented support to optionally generate include files for both
-ASM and C (the -i switch). This simplifies BIOS development by
-automatically creating include files that contain external
-declarations for the symbols that are created within the
-
-(optionally generated) ASM and C AML source files.
-
-
-----------------------------------------
-15 November 2002. Summary of changes for version 20021115.
-
-1) ACPI CA Core Subsystem:
-
-Fixed a memory leak problem where an error during resolution of
-
-method arguments during a method invocation from another method
-failed to cleanup properly by deleting all successfully resolved
-argument objects.
-
-Fixed a problem where the target of the Index() operator was not
-correctly constructed if the source object was a package. This
-problem has not been detected because the use of a target operand
-with Index() is very rare.
-
-Fixed a problem with the Index() operator where an attempt was
-made to delete the operand objects twice.
-
-Fixed a problem where an attempt was made to delete an operand
-twice during execution of the CondRefOf() operator if the target
-did not exist.
-
-Implemented the first of perhaps several internal create object
-functions that create and initialize a specific object type.
-This
-consolidates duplicated code wherever the object is created, thus
-shrinking the size of the subsystem.
-
-Implemented improved debug/error messages for errors that occur
-during nested method invocations. All executing method pathnames
-are displayed (with the error) as the call stack is unwound -
-thus
-simplifying debug.
-
-Fixed a problem introduced in the 10/02 release that caused
-premature deletion of a buffer object if a buffer was used as an
-ASL operand where an integer operand is required (Thus causing an
-implicit object conversion from Buffer to Integer.) The change
-in
-the 10/02 release was attempting to fix a memory leak (albeit
-incorrectly.)
-
-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 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 Release
- Non-Debug Version: 71.9K Code, 9.1K Data, 81.0K Total
- Debug Version: 153.1K Code, 63.3K Data, 216.4K Total
- Current Release:
- Non-Debug Version: 71.3K Code, 9.0K Data, 80.3K Total
- Debug Version: 152.7K Code, 63.2K Data, 215.5K Total
-
-
-2) Linux
-
-Changed the implementation of the ACPI semaphores to use down()
-instead of down_interruptable(). It is important that the
-execution of ACPI control methods not be interrupted by signals.
-Methods must run to completion, or the system may be left in an
-unknown/unstable state.
-
-Fixed a compilation error when CONFIG_SOFTWARE_SUSPEND is not
-set.
-(Shawn Starr)
-
-
-3) iASL Compiler/Disassembler
-
-
-Changed the default location of output files. All output files
-are now placed in the current directory by default instead of in
-the directory of the source file. This change may affect some
-existing makefiles, but it brings the behavior of the compiler in
-line with other similar tools. The location of the output files
-can be overridden with the -p command line switch.
-
-
-----------------------------------------
-11 November 2002. Summary of changes for version 20021111.
-
-
-0) ACPI Specification 2.0B is released and is now available at:
-http://www.acpi.info/index.html
-
-
-1) ACPI CA Core Subsystem:
-
-Implemented support for the ACPI 2.0 SMBus Operation Regions.
-This includes the early detection and handoff of the request to
-the SMBus region handler (avoiding all of the complex field
-support code), and support for the bidirectional return packet
-from an SMBus write operation. This paves the way for the
-development of SMBus drivers in each host operating system.
-
-Fixed a problem where the semaphore WAIT_FOREVER constant was
-defined as 32 bits, but must be 16 bits according to the ACPI
-specification. This had the side effect of causing ASL
-Mutex/Event timeouts even though the ASL code requested a wait
-forever. Changed all internal references to the ACPI timeout
-parameter to 16 bits to prevent future problems. Changed the
-name
-of WAIT_FOREVER to ACPI_WAIT_FOREVER.
-
-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 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 Release
- Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total
- Debug Version: 152.3K Code, 63.0K Data, 215.3K Total
- Current Release:
- Non-Debug Version: 71.9K Code, 9.1K Data, 81.0K Total
- Debug Version: 153.1K Code, 63.3K Data, 216.4K Total
-
-
-2) Linux
-
-Module loading/unloading fixes (John Cagle)
-
-
-3) iASL Compiler/Disassembler
-
-Added support for the SMBBlockProcessCall keyword (ACPI 2.0)
-
-Implemented support for the disassembly of all SMBus protocol
-keywords (SMBQuick, SMBWord, etc.)
-
-----------------------------------------
-01 November 2002. Summary of changes for version 20021101.
-
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem where platforms that have a GPE1 block but no
-GPE0
-block were not handled correctly. This resulted in a "GPE
-overlap" error message. GPE0 is no longer required.
-
-Removed code added in the previous release that inserted nodes
-into the namespace in alphabetical order. This caused some side-
-effects on various machines. The root cause of the problem is
-still under investigation since in theory, the internal ordering
-of the namespace nodes should not matter.
-
-
-Enhanced error reporting for the case where a named object is not
-found during control method execution. The full ACPI namepath
-(name reference) of the object that was not found is displayed in
-this case.
-
-Note: as a result of the overhaul of the namespace object types
-in
-the previous release, the namespace nodes for the predefined
-scopes (_TZ, _PR, etc.) are now of the type ACPI_TYPE_LOCAL_SCOPE
-instead of ACPI_TYPE_ANY. This simplifies the namespace
-management code but may affect code that walks the namespace tree
-looking for specific object types.
-
-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 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 Release
- Non-Debug Version: 70.7K Code, 8.6K Data, 79.3K Total
- Debug Version: 151.7K Code, 62.4K Data, 214.1K Total
- Current Release:
- Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total
- Debug Version: 152.3K Code, 63.0K Data, 215.3K Total
-
-
-2) Linux
-
-Fixed a problem introduced in the previous release where the
-Processor and Thermal objects were not recognized and installed
-in
-/proc. This was related to the scope type change described
-above.
-
-
-3) iASL Compiler/Disassembler
-
-Implemented the -g option to get all of the required ACPI tables
-from the registry and save them to files (Windows version of the
-compiler only.) The required tables are the FADT, FACS, and
-DSDT.
-
-Added ACPI table checksum validation during table disassembly in
-order to catch corrupted tables.
-
-
-----------------------------------------
-22 October 2002. Summary of changes for version 20021022.
-
-1) ACPI CA Core Subsystem:
-
-Implemented a restriction on the Scope operator that the target
-must already exist in the namespace at the time the operator is
-encountered (during table load or method execution). In other
-words, forward references are not allowed and Scope() cannot
-create a new object. This changes the previous behavior where the
-interpreter would create the name if not found. This new
-behavior
-correctly enables the search-to-root algorithm during namespace
-lookup of the target name. Because of this upsearch, this fixes
-the known Compaq _SB_.OKEC problem and makes both the AML
-interpreter and iASL compiler compatible with other ACPI
-implementations.
-
-Completed a major overhaul of the internal ACPI object types for
-the ACPI Namespace and the associated operand objects. Many of
-these types had become obsolete with the introduction of the two-
-pass namespace load. This cleanup simplifies the code and makes
-the entire namespace load mechanism much clearer and easier to
-understand.
-
-Improved debug output for tracking scope opening/closing to help
-diagnose scoping issues. The old scope name as well as the new
-scope name are displayed. Also improved error messages for
-problems with ASL Mutex objects and error messages for GPE
-problems.
-
-Cleaned up the namespace dump code, removed obsolete code.
-
-All string output (for all namespace/object dumps) now uses the
-common ACPI string output procedure which handles escapes
-properly
-and does not emit non-printable characters.
-
-Fixed some issues with constants in the 64-bit version of the
-local C library (utclib.c)
-
-
-2) Linux
-
-EC Driver: No longer attempts to acquire the Global Lock at
-interrupt level.
-
-
-3) iASL Compiler/Disassembler
-
-Implemented ACPI 2.0B grammar change that disallows all Type 1
-and
-2 opcodes outside of a control method. This means that the
-"executable" operators (versus the "namespace" operators) cannot
-be used at the table level; they can only be used within a
-control
-method.
-
-Implemented the restriction on the Scope() operator where the
-target must already exist in the namespace at the time the
-operator is encountered (during ASL compilation). In other words,
-forward references are not allowed and Scope() cannot create a
-new
-object. This makes the iASL compiler compatible with other ACPI
-implementations and makes the Scope() implementation adhere to
-the
-ACPI specification.
-
-Fixed a problem where namepath optimization for the Alias
-operator
-was optimizing the wrong path (of the two namepaths.) This
-caused
-a "Missing alias link" error message.
-
-Fixed a problem where an "unknown reserved name" warning could be
-incorrectly generated for names like "_SB" when the trailing
-underscore is not used in the original ASL.
-
-Fixed a problem where the reserved name check did not handle
-NamePaths with multiple NameSegs correctly. The first nameseg of
-the NamePath was examined instead of the last NameSeg.
-
-
-----------------------------------------
-
-02 October 2002. Summary of changes for this release.
-
-
-1) ACPI CA Core Subsystem version 20021002:
-
-Fixed a problem where a store/copy of a string to an existing
-string did not always set the string length properly in the
-String
-object.
-
-Fixed a reported problem with the ToString operator where the
-behavior was identical to the ToHexString operator instead of
-just
-simply converting a raw buffer to a string data type.
-
-Fixed a problem where CopyObject and the other "explicit"
-conversion operators were not updating the internal namespace
-node
-type as part of the store operation.
-
-Fixed a memory leak during implicit source operand conversion
-where the original object was not deleted if it was converted to
-a
-new object of a different type.
-
-Enhanced error messages for all problems associated with
-namespace
-lookups. Common procedure generates and prints the lookup name
-as
-well as the formatted status.
-
-Completed implementation of a new design for the Alias support
-within the namespace. The existing design did not handle the
-case
-where a new object was assigned to one of the two names due to
-the
-use of an explicit conversion operator, resulting in the two
-names
-pointing to two different objects. The new design simply points
-the Alias name to the original name node - not to the object.
-This results in a level of indirection that must be handled in
-the
-name resolution mechanism.
-
-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.6K Code, 8.3K Data, 77.9K Total
- Debug Version: 150.0K Code, 61.7K Data, 211.7K Total
- Current Release:
- Non-Debug Version: 70.7K Code, 8.6K Data, 79.3K Total
- Debug Version: 151.7K Code, 62.4K Data, 214.1K Total
-
-
-2) Linux
-
-Initialize thermal driver's timer before it is used. (Knut
-Neumann)
-
-Allow handling negative celsius values. (Kochi Takayoshi)
-
-Fix thermal management and make trip points. R/W (Pavel Machek)
-
-Fix /proc/acpi/sleep. (P. Christeas)
-
-IA64 fixes. (David Mosberger)
-
-Fix reversed logic in blacklist code. (Sergio Monteiro Basto)
-
-Replace ACPI_DEBUG define with ACPI_DEBUG_OUTPUT. (Dominik
-Brodowski)
-
-
-3) iASL Compiler/Disassembler
-
-Clarified some warning/error messages.
-
-
-----------------------------------------
-18 September 2002. Summary of changes for this release.
-
-
-1) ACPI CA Core Subsystem version 20020918:
-
-Fixed a reported problem with reference chaining (via the Index()
-and RefOf() operators) in the ObjectType() and SizeOf()
-operators.
-The definition of these operators includes the dereferencing of
-all chained references to return information on the base object.
-
-Fixed a problem with stores to indexed package elements - the
-existing code would not complete the store if an "implicit
-conversion" was not performed. In other words, if the existing
-object (package element) was to be replaced completely, the code
-didn't handle this case.
-
-Relaxed typechecking on the ASL "Scope" operator to allow the
-target name to refer to an object of type Integer, String, or
-Buffer, in addition to the scoping object types (Device,
-predefined Scopes, Processor, PowerResource, and ThermalZone.)
-This allows existing AML code that has workarounds for a bug in
-Windows to function properly. A warning is issued, however.
-This
-affects both the AML interpreter and the iASL compiler. Below is
-an example of this type of ASL code:
-
- Name(DEB,0x00)
- Scope(DEB)
- {
-
-Fixed some reported problems with 64-bit integer support in the
-local implementation of C library functions (clib.c)
-
-
-2) Linux
-
-Use ACPI fix map region instead of IOAPIC region, since it is
-undefined in non-SMP.
-
-Ensure that the SCI has the proper polarity and trigger, even on
-systems that do not have an interrupt override entry in the MADT.
-
-2.5 big driver reorganization (Pat Mochel)
-
-Use early table mapping code from acpitable.c (Andi Kleen)
-
-New blacklist entries (Andi Kleen)
-
-Blacklist improvements. Split blacklist code out into a separate
-file. Move checking the blacklist to very early. Previously, we
-would use ACPI tables, and then halfway through init, check the
-blacklist -- too late. Now, it's early enough to completely fall-
-back to non-ACPI.
-
-
-3) iASL Compiler/Disassembler version 20020918:
-
-Fixed a problem where the typechecking code didn't know that an
-alias could point to a method. In other words, aliases were not
-being dereferenced during typechecking.
-
-
-----------------------------------------
-29 August 2002. Summary of changes for this release.
-
-1) ACPI CA Core Subsystem Version 20020829:
-
-If the target of a Scope() operator already exists, it must be an
-object type that actually opens a scope -- such as a Device,
-Method, Scope, etc. This is a fatal runtime error. Similar
-error
-check has been added to the iASL compiler also.
-
-Tightened up the namespace load to disallow multiple names in the
-same scope. This previously was allowed if both objects were of
-the same type. (i.e., a lookup was the same as entering a new
-name).
-
-
-2) Linux
-
-Ensure that the ACPI interrupt has the proper trigger and
-polarity.
-
-local_irq_disable is extraneous. (Matthew Wilcox)
-
-Make "acpi=off" actually do what it says, and not use the ACPI
-interpreter *or* the tables.
-
-Added arch-neutral support for parsing SLIT and SRAT tables
-(Kochi
-Takayoshi)
-
-
-3) iASL Compiler/Disassembler Version 20020829:
-
-Implemented namepath optimization for name declarations. For
-example, a declaration like "Method (\_SB_.ABCD)" would get
-optimized to "Method (ABCD)" if the declaration is within the
-\_SB_ scope. This optimization is in addition to the named
-reference path optimization first released in the previous
-version. This would seem to complete all possible optimizations
-for namepaths within the ASL/AML.
-
-If the target of a Scope() operator already exists, it must be an
-object type that actually opens a scope -- such as a Device,
-Method, Scope, etc.
-
-Implemented a check and warning for unreachable code in the same
-block below a Return() statement.
-
-Fixed a problem where the listing file was not generated if the
-compiler aborted if the maximum error count was exceeded (200).
-
-Fixed a problem where the typechecking of method return values
-was
-broken. This includes the check for a return value when the
-method is invoked as a TermArg (a return value is expected.)
-
-Fixed a reported problem where EOF conditions during a quoted
-string or comment caused a fault.
-
-
-----------------------------------------
-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
deleted file mode 100644
index e2d20b2..0000000
--- a/sys/contrib/dev/acpica/acapps.h
+++ /dev/null
@@ -1,243 +0,0 @@
-/******************************************************************************
- *
- * Module Name: acapps - common include for ACPI applications/tools
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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
-
-#define FILE_SUFFIX_DISASSEMBLY "dsl"
-#define ACPI_TABLE_FILE_SUFFIX ".dat"
-
-extern UINT8 *DsdtPtr;
-extern UINT32 AcpiDsdtLength;
-extern UINT8 *AmlStart;
-extern UINT32 AmlLength;
-
-
-extern int AcpiGbl_Optind;
-extern char *AcpiGbl_Optarg;
-
-int
-AcpiGetopt(
- int argc,
- char **argv,
- char *opts);
-
-/*
- * adisasm
- */
-ACPI_STATUS
-AdAmlDisassemble (
- BOOLEAN OutToFile,
- char *Filename,
- char *Prefix,
- char **OutFilename,
- BOOLEAN GetAllTables);
-
-void
-AdPrintStatistics (void);
-
-ACPI_STATUS
-AdFindDsdt(
- UINT8 **DsdtPtr,
- UINT32 *DsdtLength);
-
-void
-AdDumpTables (void);
-
-ACPI_STATUS
-AdGetLocalTables (
- char *Filename,
- BOOLEAN GetAllTables);
-
-ACPI_STATUS
-AdParseTable (
- ACPI_TABLE_HEADER *Table);
-
-ACPI_STATUS
-AdDisplayTables (
- char *Filename,
- ACPI_TABLE_HEADER *Table);
-
-ACPI_STATUS
-AdDisplayStatistics (void);
-
-/*
- * adwalk
- */
-void
-AcpiDmCrossReferenceNamespace (
- ACPI_PARSE_OBJECT *ParseTreeRoot,
- ACPI_NAMESPACE_NODE *NamespaceRoot);
-
-void
-AcpiDmDumpTree (
- ACPI_PARSE_OBJECT *Origin);
-
-void
-AcpiDmFindOrphanMethods (
- ACPI_PARSE_OBJECT *Origin);
-
-void
-AcpiDmFinishNamespaceLoad (
- ACPI_PARSE_OBJECT *ParseTreeRoot,
- ACPI_NAMESPACE_NODE *NamespaceRoot);
-
-void
-AcpiDmConvertResourceIndexes (
- ACPI_PARSE_OBJECT *ParseTreeRoot,
- ACPI_NAMESPACE_NODE *NamespaceRoot);
-
-/*
- * adfile
- */
-ACPI_STATUS
-AdInitialize (
- void);
-
-char *
-FlGenerateFilename (
- char *InputFilename,
- char *Suffix);
-
-ACPI_STATUS
-FlSplitInputPathname (
- char *InputPath,
- char **OutDirectoryPath,
- char **OutFilename);
-
-char *
-FlGenerateFilename (
- char *InputFilename,
- char *Suffix);
-
-char *
-AdGenerateFilename (
- char *Prefix,
- char *TableId);
-
-void
-AdWriteTable (
- ACPI_TABLE_HEADER *Table,
- UINT32 Length,
- char *TableName,
- char *OemTableId);
-
-#endif /* _ACAPPS */
-
diff --git a/sys/contrib/dev/acpica/acconfig.h b/sys/contrib/dev/acpica/acconfig.h
deleted file mode 100644
index c3c15a8..0000000
--- a/sys/contrib/dev/acpica/acconfig.h
+++ /dev/null
@@ -1,296 +0,0 @@
-/******************************************************************************
- *
- * Name: acconfig.h - Global configuration constants
- * $Revision: 1.234 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 _ACCONFIG_H
-#define _ACCONFIG_H
-
-
-/******************************************************************************
- *
- * Configuration options
- *
- *****************************************************************************/
-
-/*
- * 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.
- *
- * ACPI_APPLICATION - Use this switch if the subsystem is going to be run
- * at the application level.
- *
- */
-
-/* Current ACPICA subsystem version in YYYYMMDD format */
-
-#define ACPI_CA_VERSION 0x20070320
-
-/*
- * OS name, used for the _OS object. The _OS object is essentially obsolete,
- * but there is a large base of ASL/AML code in existing machines that check
- * for the string below. The use of this string usually guarantees that
- * the ASL will execute down the most tested code path. Also, there is some
- * code that will not execute the _OSI method unless _OS matches the string
- * below. Therefore, change this string at your own risk.
- */
-#define ACPI_OS_NAME "Microsoft Windows NT"
-
-/* Maximum objects in the various object caches */
-
-#define ACPI_MAX_STATE_CACHE_DEPTH 96 /* State objects */
-#define ACPI_MAX_PARSE_CACHE_DEPTH 96 /* Parse tree objects */
-#define ACPI_MAX_EXTPARSE_CACHE_DEPTH 96 /* Parse tree objects */
-#define ACPI_MAX_OBJECT_CACHE_DEPTH 96 /* Interpreter operand objects */
-#define ACPI_MAX_NAMESPACE_CACHE_DEPTH 96 /* Namespace objects */
-
-/*
- * Should the subsystem abort the loading of an ACPI table if the
- * table checksum is incorrect?
- */
-#define ACPI_CHECKSUM_ABORT FALSE
-
-
-/******************************************************************************
- *
- * Subsystem Constants
- *
- *****************************************************************************/
-
-/* Version of ACPI supported */
-
-#define ACPI_CA_SUPPORT_LEVEL 3
-
-/* Maximum count for a semaphore object */
-
-#define ACPI_MAX_SEMAPHORE_COUNT 256
-
-/* Maximum object reference count (detects object deletion issues) */
-
-#define ACPI_MAX_REFERENCE_COUNT 0x800
-
-/* Size of cached memory mapping for system memory operation region */
-
-#define ACPI_SYSMEM_REGION_WINDOW_SIZE 4096
-
-/* OwnerId tracking. 8 entries allows for 255 OwnerIds */
-
-#define ACPI_NUM_OWNERID_MASKS 8
-
-/* Size of the root table array is increased by this increment */
-
-#define ACPI_ROOT_TABLE_SIZE_INCREMENT 4
-
-
-/******************************************************************************
- *
- * ACPI Specification constants (Do not change unless the specification changes)
- *
- *****************************************************************************/
-
-/* Number of distinct GPE register blocks and register width */
-
-#define ACPI_MAX_GPE_BLOCKS 2
-#define ACPI_GPE_REGISTER_WIDTH 8
-
-/* Method info (in WALK_STATE), containing local variables and argumetns */
-
-#define ACPI_METHOD_NUM_LOCALS 8
-#define ACPI_METHOD_MAX_LOCAL 7
-
-#define ACPI_METHOD_NUM_ARGS 7
-#define ACPI_METHOD_MAX_ARG 6
-
-/* Length of _HID, _UID, _CID, and UUID values */
-
-#define ACPI_DEVICE_ID_LENGTH 0x09
-#define ACPI_MAX_CID_LENGTH 48
-#define ACPI_UUID_LENGTH 16
-
-/*
- * Operand Stack (in WALK_STATE), Must be large enough to contain METHOD_MAX_ARG
- */
-#define ACPI_OBJ_NUM_OPERANDS 8
-#define ACPI_OBJ_MAX_OPERAND 7
-
-/* Number of elements in the Result Stack frame, can be an arbitrary value */
-
-#define ACPI_RESULTS_FRAME_OBJ_NUM 8
-
-/*
- * Maximal number of elements the Result Stack can contain,
- * it may be an arbitray value not exceeding the types of
- * ResultSize and ResultCount (now UINT8).
- */
-#define ACPI_RESULTS_OBJ_NUM_MAX 255
-
-/* Names within the namespace are 4 bytes long */
-
-#define ACPI_NAME_SIZE 4
-#define ACPI_PATH_SEGMENT_LENGTH 5 /* 4 chars for name + 1 char for separator */
-#define ACPI_PATH_SEPARATOR '.'
-
-/* Sizes for ACPI table headers */
-
-#define ACPI_OEM_ID_SIZE 6
-#define ACPI_OEM_TABLE_ID_SIZE 8
-
-/* Constants used in searching for the RSDP in low memory */
-
-#define ACPI_EBDA_PTR_LOCATION 0x0000040E /* Physical Address */
-#define ACPI_EBDA_PTR_LENGTH 2
-#define ACPI_EBDA_WINDOW_SIZE 1024
-#define ACPI_HI_RSDP_WINDOW_BASE 0x000E0000 /* Physical Address */
-#define ACPI_HI_RSDP_WINDOW_SIZE 0x00020000
-#define ACPI_RSDP_SCAN_STEP 16
-
-/* Operation regions */
-
-#define ACPI_NUM_PREDEFINED_REGIONS 8
-#define ACPI_USER_REGION_BEGIN 0x80
-
-/* Maximum SpaceIds for Operation Regions */
-
-#define ACPI_MAX_ADDRESS_SPACE 255
-
-/* Array sizes. Used for range checking also */
-
-#define ACPI_MAX_MATCH_OPCODE 5
-
-/* RSDP checksums */
-
-#define ACPI_RSDP_CHECKSUM_LENGTH 20
-#define ACPI_RSDP_XCHECKSUM_LENGTH 36
-
-/* SMBus bidirectional buffer size */
-
-#define ACPI_SMBUS_BUFFER_SIZE 34
-
-
-/******************************************************************************
- *
- * ACPI AML Debugger
- *
- *****************************************************************************/
-
-#define ACPI_DEBUGGER_MAX_ARGS 8 /* Must be max method args + 1 */
-
-#define ACPI_DEBUGGER_COMMAND_PROMPT '-'
-#define ACPI_DEBUGGER_EXECUTE_PROMPT '%'
-
-
-#endif /* _ACCONFIG_H */
-
diff --git a/sys/contrib/dev/acpica/acdebug.h b/sys/contrib/dev/acpica/acdebug.h
deleted file mode 100644
index cdf566e..0000000
--- a/sys/contrib/dev/acpica/acdebug.h
+++ /dev/null
@@ -1,437 +0,0 @@
-/******************************************************************************
- *
- * Name: acdebug.h - ACPI/AML debugger
- * $Revision: 1.84 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACDEBUG_H__
-#define __ACDEBUG_H__
-
-
-#define ACPI_DEBUG_BUFFER_SIZE 4196
-
-typedef struct CommandInfo
-{
- char *Name; /* Command Name */
- UINT8 MinArgs; /* Minimum arguments required */
-
-} COMMAND_INFO;
-
-
-typedef struct ArgumentInfo
-{
- char *Name; /* Argument Name */
-
-} ARGUMENT_INFO;
-
-
-#define PARAM_LIST(pl) pl
-#define DBTEST_OUTPUT_LEVEL(lvl) if (AcpiGbl_DbOpt_verbose)
-#define VERBOSE_PRINT(fp) DBTEST_OUTPUT_LEVEL(lvl) {\
- AcpiOsPrintf PARAM_LIST(fp);}
-
-#define EX_NO_SINGLE_STEP 1
-#define EX_SINGLE_STEP 2
-
-
-/*
- * dbxface - external debugger interfaces
- */
-ACPI_STATUS
-AcpiDbInitialize (
- void);
-
-void
-AcpiDbTerminate (
- void);
-
-ACPI_STATUS
-AcpiDbSingleStep (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op,
- UINT32 OpType);
-
-
-/*
- * dbcmds - debug commands and output routines
- */
-ACPI_STATUS
-AcpiDbDisassembleMethod (
- char *Name);
-
-void
-AcpiDbDisplayTableInfo (
- char *TableArg);
-
-void
-AcpiDbUnloadAcpiTable (
- char *TableArg,
- char *InstanceArg);
-
-void
-AcpiDbSetMethodBreakpoint (
- char *Location,
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op);
-
-void
-AcpiDbSetMethodCallBreakpoint (
- ACPI_PARSE_OBJECT *Op);
-
-void
-AcpiDbGetBusInfo (
- void);
-
-void
-AcpiDbDisassembleAml (
- char *Statements,
- ACPI_PARSE_OBJECT *Op);
-
-void
-AcpiDbDumpNamespace (
- char *StartArg,
- char *DepthArg);
-
-void
-AcpiDbDumpNamespaceByOwner (
- char *OwnerArg,
- char *DepthArg);
-
-void
-AcpiDbSendNotify (
- char *Name,
- UINT32 Value);
-
-void
-AcpiDbSetMethodData (
- char *TypeArg,
- char *IndexArg,
- char *ValueArg);
-
-ACPI_STATUS
-AcpiDbDisplayObjects (
- char *ObjTypeArg,
- char *DisplayCountArg);
-
-ACPI_STATUS
-AcpiDbFindNameInNamespace (
- char *NameArg);
-
-void
-AcpiDbSetScope (
- char *Name);
-
-ACPI_STATUS
-AcpiDbSleep (
- char *ObjectArg);
-
-void
-AcpiDbFindReferences (
- char *ObjectArg);
-
-void
-AcpiDbDisplayLocks (
- void);
-
-void
-AcpiDbDisplayResources (
- char *ObjectArg);
-
-void
-AcpiDbDisplayGpes (
- void);
-
-void
-AcpiDbCheckIntegrity (
- void);
-
-void
-AcpiDbGenerateGpe (
- char *GpeArg,
- char *BlockArg);
-
-
-/*
- * dbdisply - debug display commands
- */
-void
-AcpiDbDisplayMethodInfo (
- ACPI_PARSE_OBJECT *Op);
-
-void
-AcpiDbDecodeAndDisplayObject (
- char *Target,
- char *OutputType);
-
-void
-AcpiDbDisplayResultObject (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiDbDisplayAllMethods (
- char *DisplayCountArg);
-
-void
-AcpiDbDisplayArguments (
- void);
-
-void
-AcpiDbDisplayLocals (
- void);
-
-void
-AcpiDbDisplayResults (
- void);
-
-void
-AcpiDbDisplayCallingTree (
- void);
-
-void
-AcpiDbDisplayObjectType (
- char *ObjectArg);
-
-void
-AcpiDbDisplayArgumentObject (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_WALK_STATE *WalkState);
-
-
-/*
- * dbexec - debugger control method execution
- */
-void
-AcpiDbExecute (
- char *Name,
- char **Args,
- UINT32 Flags);
-
-void
-AcpiDbCreateExecutionThreads (
- char *NumThreadsArg,
- char *NumLoopsArg,
- char *MethodNameArg);
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-UINT32
-AcpiDbGetCacheInfo (
- ACPI_MEMORY_LIST *Cache);
-#endif
-
-
-/*
- * dbfileio - Debugger file I/O commands
- */
-ACPI_OBJECT_TYPE
-AcpiDbMatchArgument (
- char *UserArgument,
- ARGUMENT_INFO *Arguments);
-
-void
-AcpiDbCloseDebugFile (
- void);
-
-void
-AcpiDbOpenDebugFile (
- char *Name);
-
-ACPI_STATUS
-AcpiDbLoadAcpiTable (
- char *Filename);
-
-ACPI_STATUS
-AcpiDbGetTableFromFile (
- char *Filename,
- ACPI_TABLE_HEADER **Table);
-
-ACPI_STATUS
-AcpiDbReadTableFromFile (
- char *Filename,
- ACPI_TABLE_HEADER **Table);
-
-
-/*
- * dbhistry - debugger HISTORY command
- */
-void
-AcpiDbAddToHistory (
- char *CommandLine);
-
-void
-AcpiDbDisplayHistory (
- void);
-
-char *
-AcpiDbGetFromHistory (
- char *CommandNumArg);
-
-
-/*
- * dbinput - user front-end to the AML debugger
- */
-ACPI_STATUS
-AcpiDbCommandDispatch (
- char *InputBuffer,
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op);
-
-void ACPI_SYSTEM_XFACE
-AcpiDbExecuteThread (
- void *Context);
-
-ACPI_STATUS
-AcpiDbUserCommands (
- char Prompt,
- ACPI_PARSE_OBJECT *Op);
-
-
-/*
- * dbstats - Generation and display of ACPI table statistics
- */
-void
-AcpiDbGenerateStatistics (
- ACPI_PARSE_OBJECT *Root,
- BOOLEAN IsMethod);
-
-ACPI_STATUS
-AcpiDbDisplayStatistics (
- char *TypeArg);
-
-
-/*
- * dbutils - AML debugger utilities
- */
-void
-AcpiDbSetOutputDestination (
- UINT32 Where);
-
-void
-AcpiDbDumpExternalObject (
- ACPI_OBJECT *ObjDesc,
- UINT32 Level);
-
-void
-AcpiDbPrepNamestring (
- char *Name);
-
-ACPI_NAMESPACE_NODE *
-AcpiDbLocalNsLookup (
- char *Name);
-
-void
-AcpiDbUInt32ToHexString (
- UINT32 Value,
- char *Buffer);
-
-#endif /* __ACDEBUG_H__ */
diff --git a/sys/contrib/dev/acpica/acdisasm.h b/sys/contrib/dev/acpica/acdisasm.h
deleted file mode 100644
index 4371de7..0000000
--- a/sys/contrib/dev/acpica/acdisasm.h
+++ /dev/null
@@ -1,680 +0,0 @@
-/******************************************************************************
- *
- * Name: acdisasm.h - AML disassembler
- * $Revision: 1.39 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACDISASM_H__
-#define __ACDISASM_H__
-
-#include <contrib/dev/acpica/amlresrc.h>
-
-
-#define BLOCK_NONE 0
-#define BLOCK_PAREN 1
-#define BLOCK_BRACE 2
-#define BLOCK_COMMA_LIST 4
-#define ACPI_DEFAULT_RESNAME *(UINT32 *) "__RD"
-
-typedef struct acpi_external_list
-{
- char *Path;
- char *InternalPath;
- struct acpi_external_list *Next;
- UINT32 Value;
- UINT16 Length;
- UINT8 Type;
-
-} ACPI_EXTERNAL_LIST;
-
-extern ACPI_EXTERNAL_LIST *AcpiGbl_ExternalList;
-
-typedef const struct acpi_dmtable_info
-{
- UINT8 Opcode;
- UINT8 Offset;
- char *Name;
-
-} ACPI_DMTABLE_INFO;
-
-/*
- * Values for Opcode above.
- * Note: 0-7 must not change, used as a flag shift value
- */
-#define ACPI_DMT_FLAG0 0
-#define ACPI_DMT_FLAG1 1
-#define ACPI_DMT_FLAG2 2
-#define ACPI_DMT_FLAG3 3
-#define ACPI_DMT_FLAG4 4
-#define ACPI_DMT_FLAG5 5
-#define ACPI_DMT_FLAG6 6
-#define ACPI_DMT_FLAG7 7
-#define ACPI_DMT_FLAGS0 8
-#define ACPI_DMT_FLAGS2 9
-#define ACPI_DMT_UINT8 10
-#define ACPI_DMT_UINT16 11
-#define ACPI_DMT_UINT24 12
-#define ACPI_DMT_UINT32 13
-#define ACPI_DMT_UINT56 14
-#define ACPI_DMT_UINT64 15
-#define ACPI_DMT_STRING 16
-#define ACPI_DMT_NAME4 17
-#define ACPI_DMT_NAME6 18
-#define ACPI_DMT_NAME8 19
-#define ACPI_DMT_CHKSUM 20
-#define ACPI_DMT_SPACEID 21
-#define ACPI_DMT_GAS 22
-#define ACPI_DMT_DMAR 23
-#define ACPI_DMT_MADT 24
-#define ACPI_DMT_SRAT 25
-#define ACPI_DMT_EXIT 26
-#define ACPI_DMT_SIG 27
-
-typedef
-void (*ACPI_TABLE_HANDLER) (
- ACPI_TABLE_HEADER *Table);
-
-typedef struct acpi_dmtable_data
-{
- char *Signature;
- ACPI_DMTABLE_INFO *TableInfo;
- ACPI_TABLE_HANDLER TableHandler;
- char *Name;
-
-} ACPI_DMTABLE_DATA;
-
-
-typedef struct acpi_op_walk_info
-{
- UINT32 Level;
- UINT32 LastLevel;
- UINT32 Count;
- UINT32 BitOffset;
- UINT32 Flags;
- ACPI_WALK_STATE *WalkState;
-
-} ACPI_OP_WALK_INFO;
-
-typedef
-ACPI_STATUS (*ASL_WALK_CALLBACK) (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-typedef struct acpi_resource_tag
-{
- UINT32 BitIndex;
- char *Tag;
-
-} ACPI_RESOURCE_TAG;
-
-/* Strings used for decoding flags to ASL keywords */
-
-extern const char *AcpiGbl_WordDecode[];
-extern const char *AcpiGbl_IrqDecode[];
-extern const char *AcpiGbl_LockRule[];
-extern const char *AcpiGbl_AccessTypes[];
-extern const char *AcpiGbl_UpdateRules[];
-extern const char *AcpiGbl_MatchOps[];
-
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf0[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1a[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2a[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf3[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbgp[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarHdr[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarScope[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar0[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar1[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoEcdt[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoFacs[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt2[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoGas[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoHeader[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoHpet[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt0[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt1[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt2[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt3[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt4[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt5[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt6[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt7[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt8[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoSbst[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlit[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoSpcr[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoSpmi[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat0[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat1[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpa[];
-extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdrt[];
-
-
-/*
- * dmtable
- */
-void
-AcpiDmDumpDataTable (
- ACPI_TABLE_HEADER *Table);
-
-void
-AcpiDmDumpTable (
- UINT32 TableLength,
- UINT32 TableOffset,
- void *Table,
- UINT32 SubTableLength,
- ACPI_DMTABLE_INFO *Info);
-
-void
-AcpiDmLineHeader (
- UINT32 Offset,
- UINT32 ByteLength,
- char *Name);
-
-void
-AcpiDmLineHeader2 (
- UINT32 Offset,
- UINT32 ByteLength,
- char *Name,
- UINT32 Value);
-
-
-/*
- * dmtbdump
- */
-void
-AcpiDmDumpAsf (
- ACPI_TABLE_HEADER *Table);
-
-void
-AcpiDmDumpCpep (
- ACPI_TABLE_HEADER *Table);
-
-void
-AcpiDmDumpDmar (
- ACPI_TABLE_HEADER *Table);
-
-void
-AcpiDmDumpFadt (
- ACPI_TABLE_HEADER *Table);
-
-void
-AcpiDmDumpSrat (
- ACPI_TABLE_HEADER *Table);
-
-void
-AcpiDmDumpMcfg (
- ACPI_TABLE_HEADER *Table);
-
-void
-AcpiDmDumpMadt (
- ACPI_TABLE_HEADER *Table);
-
-UINT32
-AcpiDmDumpRsdp (
- ACPI_TABLE_HEADER *Table);
-
-void
-AcpiDmDumpRsdt (
- ACPI_TABLE_HEADER *Table);
-
-void
-AcpiDmDumpSlit (
- ACPI_TABLE_HEADER *Table);
-
-void
-AcpiDmDumpXsdt (
- ACPI_TABLE_HEADER *Table);
-
-
-/*
- * dmwalk
- */
-void
-AcpiDmDisassemble (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Origin,
- UINT32 NumOpcodes);
-
-void
-AcpiDmWalkParseTree (
- ACPI_PARSE_OBJECT *Op,
- ASL_WALK_CALLBACK DescendingCallback,
- ASL_WALK_CALLBACK AscendingCallback,
- void *Context);
-
-
-/*
- * dmopcode
- */
-void
-AcpiDmDisassembleOneOp (
- ACPI_WALK_STATE *WalkState,
- ACPI_OP_WALK_INFO *Info,
- ACPI_PARSE_OBJECT *Op);
-
-void
-AcpiDmDecodeInternalObject (
- ACPI_OPERAND_OBJECT *ObjDesc);
-
-UINT32
-AcpiDmListType (
- ACPI_PARSE_OBJECT *Op);
-
-void
-AcpiDmMethodFlags (
- ACPI_PARSE_OBJECT *Op);
-
-void
-AcpiDmFieldFlags (
- ACPI_PARSE_OBJECT *Op);
-
-void
-AcpiDmAddressSpace (
- UINT8 SpaceId);
-
-void
-AcpiDmRegionFlags (
- ACPI_PARSE_OBJECT *Op);
-
-void
-AcpiDmMatchOp (
- ACPI_PARSE_OBJECT *Op);
-
-BOOLEAN
-AcpiDmCommaIfListMember (
- ACPI_PARSE_OBJECT *Op);
-
-void
-AcpiDmCommaIfFieldMember (
- ACPI_PARSE_OBJECT *Op);
-
-
-/*
- * dmnames
- */
-UINT32
-AcpiDmDumpName (
- char *Name);
-
-ACPI_STATUS
-AcpiPsDisplayObjectPathname (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op);
-
-void
-AcpiDmNamestring (
- char *Name);
-
-
-/*
- * dmobject
- */
-void
-AcpiDmDisplayInternalObject (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_WALK_STATE *WalkState);
-
-void
-AcpiDmDisplayArguments (
- ACPI_WALK_STATE *WalkState);
-
-void
-AcpiDmDisplayLocals (
- ACPI_WALK_STATE *WalkState);
-
-void
-AcpiDmDumpMethodInfo (
- ACPI_STATUS Status,
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op);
-
-
-/*
- * dmbuffer
- */
-void
-AcpiDmDisasmByteList (
- UINT32 Level,
- UINT8 *ByteData,
- UINT32 ByteCount);
-
-void
-AcpiDmByteList (
- ACPI_OP_WALK_INFO *Info,
- ACPI_PARSE_OBJECT *Op);
-
-void
-AcpiDmIsEisaId (
- ACPI_PARSE_OBJECT *Op);
-
-void
-AcpiDmEisaId (
- UINT32 EncodedId);
-
-BOOLEAN
-AcpiDmIsUnicodeBuffer (
- ACPI_PARSE_OBJECT *Op);
-
-BOOLEAN
-AcpiDmIsStringBuffer (
- ACPI_PARSE_OBJECT *Op);
-
-
-/*
- * dmresrc
- */
-void
-AcpiDmDumpInteger8 (
- UINT8 Value,
- char *Name);
-
-void
-AcpiDmDumpInteger16 (
- UINT16 Value,
- char *Name);
-
-void
-AcpiDmDumpInteger32 (
- UINT32 Value,
- char *Name);
-
-void
-AcpiDmDumpInteger64 (
- UINT64 Value,
- char *Name);
-
-void
-AcpiDmResourceTemplate (
- ACPI_OP_WALK_INFO *Info,
- ACPI_PARSE_OBJECT *Op,
- UINT8 *ByteData,
- UINT32 ByteCount);
-
-ACPI_STATUS
-AcpiDmIsResourceTemplate (
- ACPI_PARSE_OBJECT *Op);
-
-void
-AcpiDmIndent (
- UINT32 Level);
-
-void
-AcpiDmBitList (
- UINT16 Mask);
-
-void
-AcpiDmDecodeAttribute (
- UINT8 Attribute);
-
-void
-AcpiDmDescriptorName (
- void);
-
-
-/*
- * dmresrcl
- */
-void
-AcpiDmWordDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level);
-
-void
-AcpiDmDwordDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level);
-
-void
-AcpiDmExtendedDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level);
-
-void
-AcpiDmQwordDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level);
-
-void
-AcpiDmMemory24Descriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level);
-
-void
-AcpiDmMemory32Descriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level);
-
-void
-AcpiDmFixedMemory32Descriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level);
-
-void
-AcpiDmGenericRegisterDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level);
-
-void
-AcpiDmInterruptDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level);
-
-void
-AcpiDmVendorLargeDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level);
-
-void
-AcpiDmVendorCommon (
- char *Name,
- UINT8 *ByteData,
- UINT32 Length,
- UINT32 Level);
-
-
-/*
- * dmresrcs
- */
-void
-AcpiDmIrqDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level);
-
-void
-AcpiDmDmaDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level);
-
-void
-AcpiDmIoDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level);
-
-void
-AcpiDmFixedIoDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level);
-
-void
-AcpiDmStartDependentDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level);
-
-void
-AcpiDmEndDependentDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level);
-
-void
-AcpiDmVendorSmallDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level);
-
-
-/*
- * dmutils
- */
-void
-AcpiDmAddToExternalList (
- char *Path,
- UINT8 Type,
- UINT32 Value);
-
-/*
- * dmrestag
- */
-void
-AcpiDmFindResources (
- ACPI_PARSE_OBJECT *Root);
-
-void
-AcpiDmCheckResourceReference (
- ACPI_PARSE_OBJECT *Op,
- ACPI_WALK_STATE *WalkState);
-
-#endif /* __ACDISASM_H__ */
diff --git a/sys/contrib/dev/acpica/acdispat.h b/sys/contrib/dev/acpica/acdispat.h
deleted file mode 100644
index 056acd9..0000000
--- a/sys/contrib/dev/acpica/acdispat.h
+++ /dev/null
@@ -1,514 +0,0 @@
-/******************************************************************************
- *
- * Name: acdispat.h - dispatcher (parser to interpreter interface)
- * $Revision: 1.76 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 _ACDISPAT_H_
-#define _ACDISPAT_H_
-
-
-#define NAMEOF_LOCAL_NTE "__L0"
-#define NAMEOF_ARG_NTE "__A0"
-
-
-/*
- * dsopcode - support for late evaluation
- */
-ACPI_STATUS
-AcpiDsGetBufferFieldArguments (
- ACPI_OPERAND_OBJECT *ObjDesc);
-
-ACPI_STATUS
-AcpiDsGetRegionArguments (
- ACPI_OPERAND_OBJECT *RgnDesc);
-
-ACPI_STATUS
-AcpiDsGetBufferArguments (
- ACPI_OPERAND_OBJECT *ObjDesc);
-
-ACPI_STATUS
-AcpiDsGetPackageArguments (
- ACPI_OPERAND_OBJECT *ObjDesc);
-
-ACPI_STATUS
-AcpiDsEvalBufferFieldOperands (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op);
-
-ACPI_STATUS
-AcpiDsEvalRegionOperands (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op);
-
-ACPI_STATUS
-AcpiDsEvalDataObjectOperands (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op,
- ACPI_OPERAND_OBJECT *ObjDesc);
-
-ACPI_STATUS
-AcpiDsInitializeRegion (
- ACPI_HANDLE ObjHandle);
-
-
-/*
- * dsctrl - Parser/Interpreter interface, control stack routines
- */
-ACPI_STATUS
-AcpiDsExecBeginControlOp (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op);
-
-ACPI_STATUS
-AcpiDsExecEndControlOp (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op);
-
-
-/*
- * dsexec - Parser/Interpreter interface, method execution callbacks
- */
-ACPI_STATUS
-AcpiDsGetPredicateValue (
- ACPI_WALK_STATE *WalkState,
- ACPI_OPERAND_OBJECT *ResultObj);
-
-ACPI_STATUS
-AcpiDsExecBeginOp (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT **OutOp);
-
-ACPI_STATUS
-AcpiDsExecEndOp (
- ACPI_WALK_STATE *State);
-
-
-/*
- * dsfield - Parser/Interpreter interface for AML fields
- */
-ACPI_STATUS
-AcpiDsCreateField (
- ACPI_PARSE_OBJECT *Op,
- ACPI_NAMESPACE_NODE *RegionNode,
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiDsCreateBankField (
- ACPI_PARSE_OBJECT *Op,
- ACPI_NAMESPACE_NODE *RegionNode,
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiDsCreateIndexField (
- ACPI_PARSE_OBJECT *Op,
- ACPI_NAMESPACE_NODE *RegionNode,
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiDsCreateBufferField (
- ACPI_PARSE_OBJECT *Op,
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiDsInitFieldObjects (
- ACPI_PARSE_OBJECT *Op,
- ACPI_WALK_STATE *WalkState);
-
-
-/*
- * dsload - Parser/Interpreter interface, namespace load callbacks
- */
-ACPI_STATUS
-AcpiDsLoad1BeginOp (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT **OutOp);
-
-ACPI_STATUS
-AcpiDsLoad1EndOp (
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiDsLoad2BeginOp (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT **OutOp);
-
-ACPI_STATUS
-AcpiDsLoad2EndOp (
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiDsInitCallbacks (
- ACPI_WALK_STATE *WalkState,
- UINT32 PassNumber);
-
-
-/*
- * dsmthdat - method data (locals/args)
- */
-ACPI_STATUS
-AcpiDsStoreObjectToLocal (
- UINT16 Opcode,
- UINT32 Index,
- ACPI_OPERAND_OBJECT *SrcDesc,
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiDsMethodDataGetEntry (
- UINT16 Opcode,
- UINT32 Index,
- ACPI_WALK_STATE *WalkState,
- ACPI_OPERAND_OBJECT ***Node);
-
-void
-AcpiDsMethodDataDeleteAll (
- ACPI_WALK_STATE *WalkState);
-
-BOOLEAN
-AcpiDsIsMethodValue (
- ACPI_OPERAND_OBJECT *ObjDesc);
-
-ACPI_STATUS
-AcpiDsMethodDataGetValue (
- UINT16 Opcode,
- UINT32 Index,
- ACPI_WALK_STATE *WalkState,
- ACPI_OPERAND_OBJECT **DestDesc);
-
-ACPI_STATUS
-AcpiDsMethodDataInitArgs (
- ACPI_OPERAND_OBJECT **Params,
- UINT32 MaxParamCount,
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiDsMethodDataGetNode (
- UINT16 Opcode,
- UINT32 Index,
- ACPI_WALK_STATE *WalkState,
- ACPI_NAMESPACE_NODE **Node);
-
-void
-AcpiDsMethodDataInit (
- ACPI_WALK_STATE *WalkState);
-
-
-/*
- * dsmethod - Parser/Interpreter interface - control method parsing
- */
-ACPI_STATUS
-AcpiDsParseMethod (
- ACPI_NAMESPACE_NODE *Node);
-
-ACPI_STATUS
-AcpiDsCallControlMethod (
- ACPI_THREAD_STATE *Thread,
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op);
-
-ACPI_STATUS
-AcpiDsRestartControlMethod (
- ACPI_WALK_STATE *WalkState,
- ACPI_OPERAND_OBJECT *ReturnDesc);
-
-void
-AcpiDsTerminateControlMethod (
- ACPI_OPERAND_OBJECT *MethodDesc,
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiDsBeginMethodExecution (
- ACPI_NAMESPACE_NODE *MethodNode,
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiDsMethodError (
- ACPI_STATUS Status,
- ACPI_WALK_STATE *WalkState);
-
-/*
- * dsinit
- */
-ACPI_STATUS
-AcpiDsInitializeObjects (
- ACPI_NATIVE_UINT TableIndex,
- ACPI_NAMESPACE_NODE *StartNode);
-
-
-/*
- * dsobject - Parser/Interpreter interface - object initialization and conversion
- */
-ACPI_STATUS
-AcpiDsBuildInternalBufferObj (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op,
- UINT32 BufferLength,
- ACPI_OPERAND_OBJECT **ObjDescPtr);
-
-ACPI_STATUS
-AcpiDsBuildInternalPackageObj (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *op,
- UINT32 PackageLength,
- ACPI_OPERAND_OBJECT **ObjDesc);
-
-ACPI_STATUS
-AcpiDsInitObjectFromOp (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op,
- UINT16 Opcode,
- ACPI_OPERAND_OBJECT **ObjDesc);
-
-ACPI_STATUS
-AcpiDsCreateNode (
- ACPI_WALK_STATE *WalkState,
- ACPI_NAMESPACE_NODE *Node,
- ACPI_PARSE_OBJECT *Op);
-
-
-/*
- * dsutils - Parser/Interpreter interface utility routines
- */
-void
-AcpiDsClearImplicitReturn (
- ACPI_WALK_STATE *WalkState);
-
-BOOLEAN
-AcpiDsDoImplicitReturn (
- ACPI_OPERAND_OBJECT *ReturnDesc,
- ACPI_WALK_STATE *WalkState,
- BOOLEAN AddReference);
-
-BOOLEAN
-AcpiDsIsResultUsed (
- ACPI_PARSE_OBJECT *Op,
- ACPI_WALK_STATE *WalkState);
-
-void
-AcpiDsDeleteResultIfNotUsed (
- ACPI_PARSE_OBJECT *Op,
- ACPI_OPERAND_OBJECT *ResultObj,
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiDsCreateOperand (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Arg,
- UINT32 ArgsRemaining);
-
-ACPI_STATUS
-AcpiDsCreateOperands (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *FirstArg);
-
-ACPI_STATUS
-AcpiDsResolveOperands (
- ACPI_WALK_STATE *WalkState);
-
-void
-AcpiDsClearOperands (
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiDsEvaluateNamePath (
- ACPI_WALK_STATE *WalkState);
-
-
-/*
- * dswscope - Scope Stack manipulation
- */
-ACPI_STATUS
-AcpiDsScopeStackPush (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_OBJECT_TYPE Type,
- ACPI_WALK_STATE *WalkState);
-
-
-ACPI_STATUS
-AcpiDsScopeStackPop (
- ACPI_WALK_STATE *WalkState);
-
-void
-AcpiDsScopeStackClear (
- ACPI_WALK_STATE *WalkState);
-
-
-/*
- * dswstate - parser WALK_STATE management routines
- */
-ACPI_STATUS
-AcpiDsObjStackPush (
- void *Object,
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiDsObjStackPop (
- UINT32 PopCount,
- ACPI_WALK_STATE *WalkState);
-
-ACPI_WALK_STATE *
-AcpiDsCreateWalkState (
- ACPI_OWNER_ID OwnerId,
- ACPI_PARSE_OBJECT *Origin,
- ACPI_OPERAND_OBJECT *MthDesc,
- ACPI_THREAD_STATE *Thread);
-
-ACPI_STATUS
-AcpiDsInitAmlWalk (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op,
- ACPI_NAMESPACE_NODE *MethodNode,
- UINT8 *AmlStart,
- UINT32 AmlLength,
- ACPI_EVALUATE_INFO *Info,
- UINT8 PassNumber);
-
-void
-AcpiDsObjStackPopAndDelete (
- UINT32 PopCount,
- ACPI_WALK_STATE *WalkState);
-
-void
-AcpiDsDeleteWalkState (
- ACPI_WALK_STATE *WalkState);
-
-ACPI_WALK_STATE *
-AcpiDsPopWalkState (
- ACPI_THREAD_STATE *Thread);
-
-void
-AcpiDsPushWalkState (
- ACPI_WALK_STATE *WalkState,
- ACPI_THREAD_STATE *Thread);
-
-ACPI_STATUS
-AcpiDsResultStackClear (
- ACPI_WALK_STATE *WalkState);
-
-ACPI_WALK_STATE *
-AcpiDsGetCurrentWalkState (
- ACPI_THREAD_STATE *Thread);
-
-ACPI_STATUS
-AcpiDsResultPop (
- ACPI_OPERAND_OBJECT **Object,
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiDsResultPush (
- ACPI_OPERAND_OBJECT *Object,
- ACPI_WALK_STATE *WalkState);
-
-#endif /* _ACDISPAT_H_ */
diff --git a/sys/contrib/dev/acpica/acefi.h b/sys/contrib/dev/acpica/acefi.h
deleted file mode 100644
index 3916ffa..0000000
--- a/sys/contrib/dev/acpica/acefi.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/******************************************************************************
- *
- * Name: acefi.h - OS specific defines, etc.
- * $Revision: 1.18 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACEFI_H__
-#define __ACEFI_H__
-
-#include <efi.h>
-#include <efistdarg.h>
-#include <efilib.h>
-
-
-/* _int64 works for both IA32 and IA64 */
-
-#define COMPILER_DEPENDENT_INT64 __int64
-#define COMPILER_DEPENDENT_UINT64 unsigned __int64
-
-/*
- * Calling conventions:
- *
- * ACPI_SYSTEM_XFACE - Interfaces to host OS (handlers, threads)
- * ACPI_EXTERNAL_XFACE - External ACPI interfaces
- * ACPI_INTERNAL_XFACE - Internal ACPI interfaces
- * ACPI_INTERNAL_VAR_XFACE - Internal variable-parameter list interfaces
- */
-#define ACPI_SYSTEM_XFACE
-#define ACPI_EXTERNAL_XFACE
-#define ACPI_INTERNAL_XFACE
-#define ACPI_INTERNAL_VAR_XFACE
-
-/* warn C4142: redefinition of type */
-
-#pragma warning(disable:4142)
-
-
-#endif /* __ACEFI_H__ */
diff --git a/sys/contrib/dev/acpica/acenv.h b/sys/contrib/dev/acpica/acenv.h
deleted file mode 100644
index 7ae1042..0000000
--- a/sys/contrib/dev/acpica/acenv.h
+++ /dev/null
@@ -1,444 +0,0 @@
-/******************************************************************************
- *
- * Name: acenv.h - Generation environment specific items
- * $Revision: 1.131 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACENV_H__
-#define __ACENV_H__
-
-
-/*
- * Configuration for ACPI tools and utilities
- */
-
-#ifdef ACPI_LIBRARY
-/*
- * Note: The non-debug version of the AcpiLibrary does not contain any
- * debug support, for minimimal size. The debug version uses ACPI_FULL_DEBUG
- */
-#define ACPI_USE_LOCAL_CACHE
-#endif
-
-#ifdef ACPI_ASL_COMPILER
-#define ACPI_DEBUG_OUTPUT
-#define ACPI_APPLICATION
-#define ACPI_DISASSEMBLER
-#define ACPI_CONSTANT_EVAL_ONLY
-#define ACPI_LARGE_NAMESPACE_NODE
-#define ACPI_DATA_TABLE_DISASSEMBLY
-#endif
-
-#ifdef ACPI_EXEC_APP
-#undef DEBUGGER_THREADING
-#define DEBUGGER_THREADING DEBUGGER_SINGLE_THREADED
-#define ACPI_FULL_DEBUG
-#define ACPI_APPLICATION
-#define ACPI_DEBUGGER
-#define ACPI_MUTEX_DEBUG
-#define ACPI_DBG_TRACK_ALLOCATIONS
-#endif
-
-#ifdef ACPI_DASM_APP
-#ifndef MSDOS
-#define ACPI_DEBUG_OUTPUT
-#endif
-#define ACPI_APPLICATION
-#define ACPI_DISASSEMBLER
-#define ACPI_NO_METHOD_EXECUTION
-#define ACPI_LARGE_NAMESPACE_NODE
-#define ACPI_DATA_TABLE_DISASSEMBLY
-#endif
-
-#ifdef ACPI_APPLICATION
-#define ACPI_USE_SYSTEM_CLIBRARY
-#define ACPI_USE_LOCAL_CACHE
-#endif
-
-#ifdef ACPI_FULL_DEBUG
-#define ACPI_DEBUGGER
-#define ACPI_DEBUG_OUTPUT
-#define ACPI_DISASSEMBLER
-#endif
-
-
-/*
- * Environment configuration. The purpose of this file is to interface to the
- * local generation environment.
- *
- * 1) ACPI_USE_SYSTEM_CLIBRARY - Define this if linking to an actual C library.
- * Otherwise, local versions of string/memory functions will be used.
- * 2) ACPI_USE_STANDARD_HEADERS - Define this if linking to a C library and
- * the standard header files may be used.
- *
- * The ACPI subsystem only uses low level C library functions that do not call
- * operating system services and may therefore be inlined in the code.
- *
- * It may be necessary to tailor these include files to the target
- * generation environment.
- *
- *
- * Functions and constants used from each header:
- *
- * string.h: memcpy
- * memset
- * strcat
- * strcmp
- * strcpy
- * strlen
- * strncmp
- * strncat
- * strncpy
- *
- * stdlib.h: strtoul
- *
- * stdarg.h: va_list
- * va_arg
- * va_start
- * va_end
- *
- */
-
-/*! [Begin] no source code translation */
-
-#if defined(__linux__)
-#include "aclinux.h"
-
-#elif defined(_AED_EFI)
-#include "acefi.h"
-
-#elif defined(WIN32)
-#include "acwin.h"
-
-#elif defined(WIN64)
-#include "acwin64.h"
-
-#elif defined(MSDOS) /* Must appear after WIN32 and WIN64 check */
-#include "acdos16.h"
-
-#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
-#include <contrib/dev/acpica/acfreebsd.h>
-
-#elif defined(__NetBSD__)
-#include "acnetbsd.h"
-
-#elif defined(MODESTO)
-#include "acmodesto.h"
-
-#elif defined(NETWARE)
-#include "acnetware.h"
-
-#elif defined(__sun)
-#include "acsolaris.h"
-
-#else
-
-/* All other environments */
-
-#define ACPI_USE_STANDARD_HEADERS
-
-#define COMPILER_DEPENDENT_INT64 long long
-#define COMPILER_DEPENDENT_UINT64 unsigned long long
-
-#endif
-
-/*! [End] no source code translation !*/
-
-
-/*
- * Debugger threading model
- * Use single threaded if the entire subsystem is contained in an application
- * Use multiple threaded when the subsystem is running in the kernel.
- *
- * By default the model is single threaded if ACPI_APPLICATION is set,
- * multi-threaded if ACPI_APPLICATION is not set.
- */
-#define DEBUGGER_SINGLE_THREADED 0
-#define DEBUGGER_MULTI_THREADED 1
-
-#ifndef DEBUGGER_THREADING
-#ifdef ACPI_APPLICATION
-#define DEBUGGER_THREADING DEBUGGER_SINGLE_THREADED
-
-#else
-#define DEBUGGER_THREADING DEBUGGER_MULTI_THREADED
-#endif
-#endif /* !DEBUGGER_THREADING */
-
-
-/******************************************************************************
- *
- * C library configuration
- *
- *****************************************************************************/
-
-#define ACPI_IS_ASCII(c) ((c) < 0x80)
-
-#ifdef ACPI_USE_SYSTEM_CLIBRARY
-/*
- * Use the standard C library headers.
- * We want to keep these to a minimum.
- */
-#ifdef ACPI_USE_STANDARD_HEADERS
-/*
- * Use the standard headers from the standard locations
- */
-#include <stdarg.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-#endif /* ACPI_USE_STANDARD_HEADERS */
-
-/*
- * We will be linking to the standard Clib functions
- */
-#define ACPI_STRSTR(s1,s2) strstr((s1), (s2))
-#define ACPI_STRCHR(s1,c) strchr((s1), (c))
-#define ACPI_STRLEN(s) (ACPI_SIZE) strlen((s))
-#define ACPI_STRCPY(d,s) (void) strcpy((d), (s))
-#define ACPI_STRNCPY(d,s,n) (void) strncpy((d), (s), (ACPI_SIZE)(n))
-#define ACPI_STRNCMP(d,s,n) strncmp((d), (s), (ACPI_SIZE)(n))
-#define ACPI_STRCMP(d,s) strcmp((d), (s))
-#define ACPI_STRCAT(d,s) (void) strcat((d), (s))
-#define ACPI_STRNCAT(d,s,n) strncat((d), (s), (ACPI_SIZE)(n))
-#define ACPI_STRTOUL(d,s,n) strtoul((d), (s), (ACPI_SIZE)(n))
-#define ACPI_MEMCMP(s1,s2,n) memcmp((const char *)(s1), (const char *)(s2), (ACPI_SIZE)(n))
-#define ACPI_MEMCPY(d,s,n) (void) memcpy((d), (s), (ACPI_SIZE)(n))
-#define ACPI_MEMSET(d,s,n) (void) memset((d), (s), (ACPI_SIZE)(n))
-
-#define ACPI_TOUPPER(i) toupper((int) (i))
-#define ACPI_TOLOWER(i) tolower((int) (i))
-#define ACPI_IS_XDIGIT(i) isxdigit((int) (i))
-#define ACPI_IS_DIGIT(i) isdigit((int) (i))
-#define ACPI_IS_SPACE(i) isspace((int) (i))
-#define ACPI_IS_UPPER(i) isupper((int) (i))
-#define ACPI_IS_PRINT(i) isprint((int) (i))
-#define ACPI_IS_ALPHA(i) isalpha((int) (i))
-
-#else
-
-/******************************************************************************
- *
- * Not using native C library, use local implementations
- *
- *****************************************************************************/
-
- /*
- * Use local definitions of C library macros and functions
- * NOTE: The function implementations may not be as efficient
- * as an inline or assembly code implementation provided by a
- * native C library.
- */
-
-#ifndef va_arg
-
-#ifndef _VALIST
-#define _VALIST
-typedef char *va_list;
-#endif /* _VALIST */
-
-/*
- * Storage alignment properties
- */
-#define _AUPBND (sizeof (ACPI_NATIVE_INT) - 1)
-#define _ADNBND (sizeof (ACPI_NATIVE_INT) - 1)
-
-/*
- * Variable argument list macro definitions
- */
-#define _Bnd(X, bnd) (((sizeof (X)) + (bnd)) & (~(bnd)))
-#define va_arg(ap, T) (*(T *)(((ap) += (_Bnd (T, _AUPBND))) - (_Bnd (T,_ADNBND))))
-#define va_end(ap) (void) 0
-#define va_start(ap, A) (void) ((ap) = (((char *) &(A)) + (_Bnd (A,_AUPBND))))
-
-#endif /* va_arg */
-
-
-#define ACPI_STRSTR(s1,s2) AcpiUtStrstr ((s1), (s2))
-#define ACPI_STRCHR(s1,c) AcpiUtStrchr ((s1), (c))
-#define ACPI_STRLEN(s) (ACPI_SIZE) AcpiUtStrlen ((s))
-#define ACPI_STRCPY(d,s) (void) AcpiUtStrcpy ((d), (s))
-#define ACPI_STRNCPY(d,s,n) (void) AcpiUtStrncpy ((d), (s), (ACPI_SIZE)(n))
-#define ACPI_STRNCMP(d,s,n) AcpiUtStrncmp ((d), (s), (ACPI_SIZE)(n))
-#define ACPI_STRCMP(d,s) AcpiUtStrcmp ((d), (s))
-#define ACPI_STRCAT(d,s) (void) AcpiUtStrcat ((d), (s))
-#define ACPI_STRNCAT(d,s,n) AcpiUtStrncat ((d), (s), (ACPI_SIZE)(n))
-#define ACPI_STRTOUL(d,s,n) AcpiUtStrtoul ((d), (s), (ACPI_SIZE)(n))
-#define ACPI_MEMCMP(s1,s2,n) AcpiUtMemcmp((const char *)(s1), (const char *)(s2), (ACPI_SIZE)(n))
-#define ACPI_MEMCPY(d,s,n) (void) AcpiUtMemcpy ((d), (s), (ACPI_SIZE)(n))
-#define ACPI_MEMSET(d,v,n) (void) AcpiUtMemset ((d), (v), (ACPI_SIZE)(n))
-#define ACPI_TOUPPER AcpiUtToUpper
-#define ACPI_TOLOWER AcpiUtToLower
-
-#endif /* ACPI_USE_SYSTEM_CLIBRARY */
-
-
-/******************************************************************************
- *
- * Assembly code macros
- *
- *****************************************************************************/
-
-/*
- * Handle platform- and compiler-specific assembly language differences.
- * These should already have been defined by the platform includes above.
- *
- * Notes:
- * 1) Interrupt 3 is used to break into a debugger
- * 2) Interrupts are turned off during ACPI register setup
- */
-
-/* Unrecognized compiler, use defaults */
-
-#ifndef ACPI_ASM_MACROS
-
-/*
- * Calling conventions:
- *
- * ACPI_SYSTEM_XFACE - Interfaces to host OS (handlers, threads)
- * ACPI_EXTERNAL_XFACE - External ACPI interfaces
- * ACPI_INTERNAL_XFACE - Internal ACPI interfaces
- * ACPI_INTERNAL_VAR_XFACE - Internal variable-parameter list interfaces
- */
-#define ACPI_SYSTEM_XFACE
-#define ACPI_EXTERNAL_XFACE
-#define ACPI_INTERNAL_XFACE
-#define ACPI_INTERNAL_VAR_XFACE
-
-#define ACPI_ASM_MACROS
-#define BREAKPOINT3
-#define ACPI_DISABLE_IRQS()
-#define ACPI_ENABLE_IRQS()
-#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq)
-#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Acq)
-
-#endif /* ACPI_ASM_MACROS */
-
-
-#ifdef ACPI_APPLICATION
-
-/* Don't want software interrupts within a ring3 application */
-
-#undef BREAKPOINT3
-#define BREAKPOINT3
-#endif
-
-
-/******************************************************************************
- *
- * Compiler-specific information is contained in the compiler-specific
- * headers.
- *
- *****************************************************************************/
-#endif /* __ACENV_H__ */
diff --git a/sys/contrib/dev/acpica/acevents.h b/sys/contrib/dev/acpica/acevents.h
deleted file mode 100644
index 8f74cb7..0000000
--- a/sys/contrib/dev/acpica/acevents.h
+++ /dev/null
@@ -1,374 +0,0 @@
-/******************************************************************************
- *
- * Name: acevents.h - Event subcomponent prototypes and defines
- * $Revision: 1.107 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACEVENTS_H__
-#define __ACEVENTS_H__
-
-
-/*
- * evevent
- */
-ACPI_STATUS
-AcpiEvInitializeEvents (
- void);
-
-ACPI_STATUS
-AcpiEvInstallXruptHandlers (
- void);
-
-ACPI_STATUS
-AcpiEvInstallFadtGpes (
- void);
-
-UINT32
-AcpiEvFixedEventDetect (
- void);
-
-
-/*
- * evmisc
- */
-BOOLEAN
-AcpiEvIsNotifyObject (
- ACPI_NAMESPACE_NODE *Node);
-
-ACPI_STATUS
-AcpiEvAcquireGlobalLock(
- UINT16 Timeout);
-
-ACPI_STATUS
-AcpiEvReleaseGlobalLock(
- void);
-
-ACPI_STATUS
-AcpiEvInitGlobalLockHandler (
- void);
-
-UINT32
-AcpiEvGetGpeNumberIndex (
- UINT32 GpeNumber);
-
-ACPI_STATUS
-AcpiEvQueueNotifyRequest (
- ACPI_NAMESPACE_NODE *Node,
- UINT32 NotifyValue);
-
-
-/*
- * evgpe - GPE handling and dispatch
- */
-ACPI_STATUS
-AcpiEvUpdateGpeEnableMasks (
- ACPI_GPE_EVENT_INFO *GpeEventInfo,
- UINT8 Type);
-
-ACPI_STATUS
-AcpiEvEnableGpe (
- ACPI_GPE_EVENT_INFO *GpeEventInfo,
- BOOLEAN WriteToHardware);
-
-ACPI_STATUS
-AcpiEvDisableGpe (
- ACPI_GPE_EVENT_INFO *GpeEventInfo);
-
-ACPI_GPE_EVENT_INFO *
-AcpiEvGetGpeEventInfo (
- ACPI_HANDLE GpeDevice,
- UINT32 GpeNumber);
-
-
-/*
- * evgpeblk
- */
-BOOLEAN
-AcpiEvValidGpeEvent (
- ACPI_GPE_EVENT_INFO *GpeEventInfo);
-
-ACPI_STATUS
-AcpiEvWalkGpeList (
- ACPI_GPE_CALLBACK GpeWalkCallback);
-
-ACPI_STATUS
-AcpiEvDeleteGpeHandlers (
- ACPI_GPE_XRUPT_INFO *GpeXruptInfo,
- ACPI_GPE_BLOCK_INFO *GpeBlock);
-
-ACPI_STATUS
-AcpiEvCreateGpeBlock (
- ACPI_NAMESPACE_NODE *GpeDevice,
- ACPI_GENERIC_ADDRESS *GpeBlockAddress,
- UINT32 RegisterCount,
- UINT8 GpeBlockBaseNumber,
- UINT32 InterruptNumber,
- ACPI_GPE_BLOCK_INFO **ReturnGpeBlock);
-
-ACPI_STATUS
-AcpiEvInitializeGpeBlock (
- ACPI_NAMESPACE_NODE *GpeDevice,
- ACPI_GPE_BLOCK_INFO *GpeBlock);
-
-ACPI_STATUS
-AcpiEvDeleteGpeBlock (
- ACPI_GPE_BLOCK_INFO *GpeBlock);
-
-UINT32
-AcpiEvGpeDispatch (
- ACPI_GPE_EVENT_INFO *GpeEventInfo,
- UINT32 GpeNumber);
-
-UINT32
-AcpiEvGpeDetect (
- ACPI_GPE_XRUPT_INFO *GpeXruptList);
-
-ACPI_STATUS
-AcpiEvSetGpeType (
- ACPI_GPE_EVENT_INFO *GpeEventInfo,
- UINT8 Type);
-
-ACPI_STATUS
-AcpiEvCheckForWakeOnlyGpe (
- ACPI_GPE_EVENT_INFO *GpeEventInfo);
-
-ACPI_STATUS
-AcpiEvGpeInitialize (
- void);
-
-
-/*
- * evregion - Address Space handling
- */
-ACPI_STATUS
-AcpiEvInstallRegionHandlers (
- void);
-
-ACPI_STATUS
-AcpiEvInitializeOpRegions (
- void);
-
-ACPI_STATUS
-AcpiEvAddressSpaceDispatch (
- ACPI_OPERAND_OBJECT *RegionObj,
- UINT32 Function,
- ACPI_PHYSICAL_ADDRESS Address,
- UINT32 BitWidth,
- ACPI_INTEGER *Value);
-
-ACPI_STATUS
-AcpiEvAttachRegion (
- ACPI_OPERAND_OBJECT *HandlerObj,
- ACPI_OPERAND_OBJECT *RegionObj,
- BOOLEAN AcpiNsIsLocked);
-
-void
-AcpiEvDetachRegion (
- ACPI_OPERAND_OBJECT *RegionObj,
- BOOLEAN AcpiNsIsLocked);
-
-ACPI_STATUS
-AcpiEvInstallSpaceHandler (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_ADR_SPACE_TYPE SpaceId,
- ACPI_ADR_SPACE_HANDLER Handler,
- ACPI_ADR_SPACE_SETUP Setup,
- void *Context);
-
-ACPI_STATUS
-AcpiEvExecuteRegMethods (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_ADR_SPACE_TYPE SpaceId);
-
-ACPI_STATUS
-AcpiEvExecuteRegMethod (
- ACPI_OPERAND_OBJECT *RegionObj,
- UINT32 Function);
-
-
-/*
- * evregini - Region initialization and setup
- */
-ACPI_STATUS
-AcpiEvSystemMemoryRegionSetup (
- ACPI_HANDLE Handle,
- UINT32 Function,
- void *HandlerContext,
- void **RegionContext);
-
-ACPI_STATUS
-AcpiEvIoSpaceRegionSetup (
- ACPI_HANDLE Handle,
- UINT32 Function,
- void *HandlerContext,
- void **RegionContext);
-
-ACPI_STATUS
-AcpiEvPciConfigRegionSetup (
- ACPI_HANDLE Handle,
- UINT32 Function,
- void *HandlerContext,
- void **RegionContext);
-
-ACPI_STATUS
-AcpiEvCmosRegionSetup (
- ACPI_HANDLE Handle,
- UINT32 Function,
- void *HandlerContext,
- void **RegionContext);
-
-ACPI_STATUS
-AcpiEvPciBarRegionSetup (
- ACPI_HANDLE Handle,
- UINT32 Function,
- void *HandlerContext,
- void **RegionContext);
-
-ACPI_STATUS
-AcpiEvDefaultRegionSetup (
- ACPI_HANDLE Handle,
- UINT32 Function,
- void *HandlerContext,
- void **RegionContext);
-
-ACPI_STATUS
-AcpiEvInitializeRegion (
- ACPI_OPERAND_OBJECT *RegionObj,
- BOOLEAN AcpiNsLocked);
-
-
-/*
- * evsci - SCI (System Control Interrupt) handling/dispatch
- */
-UINT32 ACPI_SYSTEM_XFACE
-AcpiEvGpeXruptHandler (
- void *Context);
-
-UINT32
-AcpiEvInstallSciHandler (
- void);
-
-ACPI_STATUS
-AcpiEvRemoveSciHandler (
- void);
-
-UINT32
-AcpiEvInitializeSCI (
- UINT32 ProgramSCI);
-
-void
-AcpiEvTerminate (
- void);
-
-
-#endif /* __ACEVENTS_H__ */
diff --git a/sys/contrib/dev/acpica/acexcep.h b/sys/contrib/dev/acpica/acexcep.h
deleted file mode 100644
index ccc1537..0000000
--- a/sys/contrib/dev/acpica/acexcep.h
+++ /dev/null
@@ -1,390 +0,0 @@
-/******************************************************************************
- *
- * Name: acexcep.h - Exception codes returned by the ACPI subsystem
- * $Revision: 1.79 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACEXCEP_H__
-#define __ACEXCEP_H__
-
-
-/*
- * Exceptions returned by external ACPI interfaces
- */
-#define AE_CODE_ENVIRONMENTAL 0x0000
-#define AE_CODE_PROGRAMMER 0x1000
-#define AE_CODE_ACPI_TABLES 0x2000
-#define AE_CODE_AML 0x3000
-#define AE_CODE_CONTROL 0x4000
-#define AE_CODE_MASK 0xF000
-
-
-#define ACPI_SUCCESS(a) (!(a))
-#define ACPI_FAILURE(a) (a)
-
-
-#define AE_OK (ACPI_STATUS) 0x0000
-
-/*
- * Environmental exceptions
- */
-#define AE_ERROR (ACPI_STATUS) (0x0001 | AE_CODE_ENVIRONMENTAL)
-#define AE_NO_ACPI_TABLES (ACPI_STATUS) (0x0002 | AE_CODE_ENVIRONMENTAL)
-#define AE_NO_NAMESPACE (ACPI_STATUS) (0x0003 | AE_CODE_ENVIRONMENTAL)
-#define AE_NO_MEMORY (ACPI_STATUS) (0x0004 | AE_CODE_ENVIRONMENTAL)
-#define AE_NOT_FOUND (ACPI_STATUS) (0x0005 | AE_CODE_ENVIRONMENTAL)
-#define AE_NOT_EXIST (ACPI_STATUS) (0x0006 | AE_CODE_ENVIRONMENTAL)
-#define AE_ALREADY_EXISTS (ACPI_STATUS) (0x0007 | AE_CODE_ENVIRONMENTAL)
-#define AE_TYPE (ACPI_STATUS) (0x0008 | AE_CODE_ENVIRONMENTAL)
-#define AE_NULL_OBJECT (ACPI_STATUS) (0x0009 | AE_CODE_ENVIRONMENTAL)
-#define AE_NULL_ENTRY (ACPI_STATUS) (0x000A | AE_CODE_ENVIRONMENTAL)
-#define AE_BUFFER_OVERFLOW (ACPI_STATUS) (0x000B | AE_CODE_ENVIRONMENTAL)
-#define AE_STACK_OVERFLOW (ACPI_STATUS) (0x000C | AE_CODE_ENVIRONMENTAL)
-#define AE_STACK_UNDERFLOW (ACPI_STATUS) (0x000D | AE_CODE_ENVIRONMENTAL)
-#define AE_NOT_IMPLEMENTED (ACPI_STATUS) (0x000E | AE_CODE_ENVIRONMENTAL)
-#define AE_VERSION_MISMATCH (ACPI_STATUS) (0x000F | AE_CODE_ENVIRONMENTAL)
-#define AE_SUPPORT (ACPI_STATUS) (0x0010 | AE_CODE_ENVIRONMENTAL)
-#define AE_SHARE (ACPI_STATUS) (0x0011 | AE_CODE_ENVIRONMENTAL)
-#define AE_LIMIT (ACPI_STATUS) (0x0012 | AE_CODE_ENVIRONMENTAL)
-#define AE_TIME (ACPI_STATUS) (0x0013 | AE_CODE_ENVIRONMENTAL)
-#define AE_UNKNOWN_STATUS (ACPI_STATUS) (0x0014 | AE_CODE_ENVIRONMENTAL)
-#define AE_ACQUIRE_DEADLOCK (ACPI_STATUS) (0x0015 | AE_CODE_ENVIRONMENTAL)
-#define AE_RELEASE_DEADLOCK (ACPI_STATUS) (0x0016 | AE_CODE_ENVIRONMENTAL)
-#define AE_NOT_ACQUIRED (ACPI_STATUS) (0x0017 | AE_CODE_ENVIRONMENTAL)
-#define AE_ALREADY_ACQUIRED (ACPI_STATUS) (0x0018 | AE_CODE_ENVIRONMENTAL)
-#define AE_NO_HARDWARE_RESPONSE (ACPI_STATUS) (0x0019 | AE_CODE_ENVIRONMENTAL)
-#define AE_NO_GLOBAL_LOCK (ACPI_STATUS) (0x001A | AE_CODE_ENVIRONMENTAL)
-#define AE_LOGICAL_ADDRESS (ACPI_STATUS) (0x001B | AE_CODE_ENVIRONMENTAL)
-#define AE_ABORT_METHOD (ACPI_STATUS) (0x001C | AE_CODE_ENVIRONMENTAL)
-#define AE_SAME_HANDLER (ACPI_STATUS) (0x001D | AE_CODE_ENVIRONMENTAL)
-#define AE_WAKE_ONLY_GPE (ACPI_STATUS) (0x001E | AE_CODE_ENVIRONMENTAL)
-#define AE_OWNER_ID_LIMIT (ACPI_STATUS) (0x001F | AE_CODE_ENVIRONMENTAL)
-
-#define AE_CODE_ENV_MAX 0x001F
-
-
-/*
- * Programmer exceptions
- */
-#define AE_BAD_PARAMETER (ACPI_STATUS) (0x0001 | AE_CODE_PROGRAMMER)
-#define AE_BAD_CHARACTER (ACPI_STATUS) (0x0002 | AE_CODE_PROGRAMMER)
-#define AE_BAD_PATHNAME (ACPI_STATUS) (0x0003 | AE_CODE_PROGRAMMER)
-#define AE_BAD_DATA (ACPI_STATUS) (0x0004 | AE_CODE_PROGRAMMER)
-#define AE_BAD_ADDRESS (ACPI_STATUS) (0x0005 | AE_CODE_PROGRAMMER)
-#define AE_ALIGNMENT (ACPI_STATUS) (0x0006 | AE_CODE_PROGRAMMER)
-#define AE_BAD_HEX_CONSTANT (ACPI_STATUS) (0x0007 | AE_CODE_PROGRAMMER)
-#define AE_BAD_OCTAL_CONSTANT (ACPI_STATUS) (0x0008 | AE_CODE_PROGRAMMER)
-#define AE_BAD_DECIMAL_CONSTANT (ACPI_STATUS) (0x0009 | AE_CODE_PROGRAMMER)
-
-#define AE_CODE_PGM_MAX 0x0009
-
-
-/*
- * Acpi table exceptions
- */
-#define AE_BAD_SIGNATURE (ACPI_STATUS) (0x0001 | AE_CODE_ACPI_TABLES)
-#define AE_BAD_HEADER (ACPI_STATUS) (0x0002 | AE_CODE_ACPI_TABLES)
-#define AE_BAD_CHECKSUM (ACPI_STATUS) (0x0003 | AE_CODE_ACPI_TABLES)
-#define AE_BAD_VALUE (ACPI_STATUS) (0x0004 | AE_CODE_ACPI_TABLES)
-#define AE_TABLE_NOT_SUPPORTED (ACPI_STATUS) (0x0005 | AE_CODE_ACPI_TABLES)
-#define AE_INVALID_TABLE_LENGTH (ACPI_STATUS) (0x0006 | AE_CODE_ACPI_TABLES)
-
-#define AE_CODE_TBL_MAX 0x0006
-
-
-/*
- * AML exceptions. These are caused by problems with
- * the actual AML byte stream
- */
-#define AE_AML_ERROR (ACPI_STATUS) (0x0001 | AE_CODE_AML)
-#define AE_AML_PARSE (ACPI_STATUS) (0x0002 | AE_CODE_AML)
-#define AE_AML_BAD_OPCODE (ACPI_STATUS) (0x0003 | AE_CODE_AML)
-#define AE_AML_NO_OPERAND (ACPI_STATUS) (0x0004 | AE_CODE_AML)
-#define AE_AML_OPERAND_TYPE (ACPI_STATUS) (0x0005 | AE_CODE_AML)
-#define AE_AML_OPERAND_VALUE (ACPI_STATUS) (0x0006 | AE_CODE_AML)
-#define AE_AML_UNINITIALIZED_LOCAL (ACPI_STATUS) (0x0007 | AE_CODE_AML)
-#define AE_AML_UNINITIALIZED_ARG (ACPI_STATUS) (0x0008 | AE_CODE_AML)
-#define AE_AML_UNINITIALIZED_ELEMENT (ACPI_STATUS) (0x0009 | AE_CODE_AML)
-#define AE_AML_NUMERIC_OVERFLOW (ACPI_STATUS) (0x000A | AE_CODE_AML)
-#define AE_AML_REGION_LIMIT (ACPI_STATUS) (0x000B | AE_CODE_AML)
-#define AE_AML_BUFFER_LIMIT (ACPI_STATUS) (0x000C | AE_CODE_AML)
-#define AE_AML_PACKAGE_LIMIT (ACPI_STATUS) (0x000D | AE_CODE_AML)
-#define AE_AML_DIVIDE_BY_ZERO (ACPI_STATUS) (0x000E | AE_CODE_AML)
-#define AE_AML_BAD_NAME (ACPI_STATUS) (0x000F | AE_CODE_AML)
-#define AE_AML_NAME_NOT_FOUND (ACPI_STATUS) (0x0010 | AE_CODE_AML)
-#define AE_AML_INTERNAL (ACPI_STATUS) (0x0011 | AE_CODE_AML)
-#define AE_AML_INVALID_SPACE_ID (ACPI_STATUS) (0x0012 | AE_CODE_AML)
-#define AE_AML_STRING_LIMIT (ACPI_STATUS) (0x0013 | AE_CODE_AML)
-#define AE_AML_NO_RETURN_VALUE (ACPI_STATUS) (0x0014 | AE_CODE_AML)
-#define AE_AML_METHOD_LIMIT (ACPI_STATUS) (0x0015 | AE_CODE_AML)
-#define AE_AML_NOT_OWNER (ACPI_STATUS) (0x0016 | AE_CODE_AML)
-#define AE_AML_MUTEX_ORDER (ACPI_STATUS) (0x0017 | AE_CODE_AML)
-#define AE_AML_MUTEX_NOT_ACQUIRED (ACPI_STATUS) (0x0018 | AE_CODE_AML)
-#define AE_AML_INVALID_RESOURCE_TYPE (ACPI_STATUS) (0x0019 | AE_CODE_AML)
-#define AE_AML_INVALID_INDEX (ACPI_STATUS) (0x001A | AE_CODE_AML)
-#define AE_AML_REGISTER_LIMIT (ACPI_STATUS) (0x001B | AE_CODE_AML)
-#define AE_AML_NO_WHILE (ACPI_STATUS) (0x001C | AE_CODE_AML)
-#define AE_AML_ALIGNMENT (ACPI_STATUS) (0x001D | AE_CODE_AML)
-#define AE_AML_NO_RESOURCE_END_TAG (ACPI_STATUS) (0x001E | AE_CODE_AML)
-#define AE_AML_BAD_RESOURCE_VALUE (ACPI_STATUS) (0x001F | AE_CODE_AML)
-#define AE_AML_CIRCULAR_REFERENCE (ACPI_STATUS) (0x0020 | AE_CODE_AML)
-#define AE_AML_BAD_RESOURCE_LENGTH (ACPI_STATUS) (0x0021 | AE_CODE_AML)
-#define AE_AML_ILLEGAL_ADDRESS (ACPI_STATUS) (0x0022 | AE_CODE_AML)
-
-#define AE_CODE_AML_MAX 0x0022
-
-
-/*
- * Internal exceptions used for control
- */
-#define AE_CTRL_RETURN_VALUE (ACPI_STATUS) (0x0001 | AE_CODE_CONTROL)
-#define AE_CTRL_PENDING (ACPI_STATUS) (0x0002 | AE_CODE_CONTROL)
-#define AE_CTRL_TERMINATE (ACPI_STATUS) (0x0003 | AE_CODE_CONTROL)
-#define AE_CTRL_TRUE (ACPI_STATUS) (0x0004 | AE_CODE_CONTROL)
-#define AE_CTRL_FALSE (ACPI_STATUS) (0x0005 | AE_CODE_CONTROL)
-#define AE_CTRL_DEPTH (ACPI_STATUS) (0x0006 | AE_CODE_CONTROL)
-#define AE_CTRL_END (ACPI_STATUS) (0x0007 | AE_CODE_CONTROL)
-#define AE_CTRL_TRANSFER (ACPI_STATUS) (0x0008 | AE_CODE_CONTROL)
-#define AE_CTRL_BREAK (ACPI_STATUS) (0x0009 | AE_CODE_CONTROL)
-#define AE_CTRL_CONTINUE (ACPI_STATUS) (0x000A | AE_CODE_CONTROL)
-#define AE_CTRL_SKIP (ACPI_STATUS) (0x000B | AE_CODE_CONTROL)
-#define AE_CTRL_PARSE_CONTINUE (ACPI_STATUS) (0x000C | AE_CODE_CONTROL)
-#define AE_CTRL_PARSE_PENDING (ACPI_STATUS) (0x000D | AE_CODE_CONTROL)
-
-#define AE_CODE_CTRL_MAX 0x000D
-
-
-#ifdef DEFINE_ACPI_GLOBALS
-
-
-/*
- * String versions of the exception codes above
- * These strings must match the corresponding defines exactly
- */
-char const *AcpiGbl_ExceptionNames_Env[] =
-{
- "AE_OK",
- "AE_ERROR",
- "AE_NO_ACPI_TABLES",
- "AE_NO_NAMESPACE",
- "AE_NO_MEMORY",
- "AE_NOT_FOUND",
- "AE_NOT_EXIST",
- "AE_ALREADY_EXISTS",
- "AE_TYPE",
- "AE_NULL_OBJECT",
- "AE_NULL_ENTRY",
- "AE_BUFFER_OVERFLOW",
- "AE_STACK_OVERFLOW",
- "AE_STACK_UNDERFLOW",
- "AE_NOT_IMPLEMENTED",
- "AE_VERSION_MISMATCH",
- "AE_SUPPORT",
- "AE_SHARE",
- "AE_LIMIT",
- "AE_TIME",
- "AE_UNKNOWN_STATUS",
- "AE_ACQUIRE_DEADLOCK",
- "AE_RELEASE_DEADLOCK",
- "AE_NOT_ACQUIRED",
- "AE_ALREADY_ACQUIRED",
- "AE_NO_HARDWARE_RESPONSE",
- "AE_NO_GLOBAL_LOCK",
- "AE_LOGICAL_ADDRESS",
- "AE_ABORT_METHOD",
- "AE_SAME_HANDLER",
- "AE_WAKE_ONLY_GPE",
- "AE_OWNER_ID_LIMIT"
-};
-
-char const *AcpiGbl_ExceptionNames_Pgm[] =
-{
- "AE_BAD_PARAMETER",
- "AE_BAD_CHARACTER",
- "AE_BAD_PATHNAME",
- "AE_BAD_DATA",
- "AE_BAD_ADDRESS",
- "AE_ALIGNMENT",
- "AE_BAD_HEX_CONSTANT",
- "AE_BAD_OCTAL_CONSTANT",
- "AE_BAD_DECIMAL_CONSTANT"
-};
-
-char const *AcpiGbl_ExceptionNames_Tbl[] =
-{
- "AE_BAD_SIGNATURE",
- "AE_BAD_HEADER",
- "AE_BAD_CHECKSUM",
- "AE_BAD_VALUE",
- "AE_TABLE_NOT_SUPPORTED",
- "AE_INVALID_TABLE_LENGTH"
-};
-
-char const *AcpiGbl_ExceptionNames_Aml[] =
-{
- "AE_AML_ERROR",
- "AE_AML_PARSE",
- "AE_AML_BAD_OPCODE",
- "AE_AML_NO_OPERAND",
- "AE_AML_OPERAND_TYPE",
- "AE_AML_OPERAND_VALUE",
- "AE_AML_UNINITIALIZED_LOCAL",
- "AE_AML_UNINITIALIZED_ARG",
- "AE_AML_UNINITIALIZED_ELEMENT",
- "AE_AML_NUMERIC_OVERFLOW",
- "AE_AML_REGION_LIMIT",
- "AE_AML_BUFFER_LIMIT",
- "AE_AML_PACKAGE_LIMIT",
- "AE_AML_DIVIDE_BY_ZERO",
- "AE_AML_BAD_NAME",
- "AE_AML_NAME_NOT_FOUND",
- "AE_AML_INTERNAL",
- "AE_AML_INVALID_SPACE_ID",
- "AE_AML_STRING_LIMIT",
- "AE_AML_NO_RETURN_VALUE",
- "AE_AML_METHOD_LIMIT",
- "AE_AML_NOT_OWNER",
- "AE_AML_MUTEX_ORDER",
- "AE_AML_MUTEX_NOT_ACQUIRED",
- "AE_AML_INVALID_RESOURCE_TYPE",
- "AE_AML_INVALID_INDEX",
- "AE_AML_REGISTER_LIMIT",
- "AE_AML_NO_WHILE",
- "AE_AML_ALIGNMENT",
- "AE_AML_NO_RESOURCE_END_TAG",
- "AE_AML_BAD_RESOURCE_VALUE",
- "AE_AML_CIRCULAR_REFERENCE",
- "AE_AML_BAD_RESOURCE_LENGTH",
- "AE_AML_ILLEGAL_ADDRESS"
-};
-
-char const *AcpiGbl_ExceptionNames_Ctrl[] =
-{
- "AE_CTRL_RETURN_VALUE",
- "AE_CTRL_PENDING",
- "AE_CTRL_TERMINATE",
- "AE_CTRL_TRUE",
- "AE_CTRL_FALSE",
- "AE_CTRL_DEPTH",
- "AE_CTRL_END",
- "AE_CTRL_TRANSFER",
- "AE_CTRL_BREAK",
- "AE_CTRL_CONTINUE",
- "AE_CTRL_SKIP",
- "AE_CTRL_PARSE_CONTINUE",
- "AE_CTRL_PARSE_PENDING"
-};
-
-#endif /* ACPI GLOBALS */
-
-#endif /* __ACEXCEP_H__ */
diff --git a/sys/contrib/dev/acpica/acfreebsd.h b/sys/contrib/dev/acpica/acfreebsd.h
deleted file mode 100644
index bc22ba2..0000000
--- a/sys/contrib/dev/acpica/acfreebsd.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/******************************************************************************
- *
- * Name: acfreebsd.h - OS specific defines, etc.
- * $Revision: 1.25 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACFREEBSD_H__
-#define __ACFREEBSD_H__
-
-
-/* FreeBSD uses GCC */
-
-#include <contrib/dev/acpica/acgcc.h>
-#include <sys/types.h>
-#include <machine/acpica_machdep.h>
-
-#define ACPI_THREAD_ID pid_t
-#define ACPI_UINTPTR_T uintptr_t
-#define ACPI_USE_LOCAL_CACHE
-#define __cdecl
-
-#ifdef _KERNEL
-#include "opt_acpi.h"
-#endif
-
-#ifdef ACPI_DEBUG
-#define ACPI_DEBUG_OUTPUT /* for backward compatibility */
-#define ACPI_DISASSEMBLER
-#endif
-
-#ifdef _KERNEL
-#include <sys/ctype.h>
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/libkern.h>
-#include <machine/stdarg.h>
-
-#ifdef DEBUGGER_THREADING
-#undef DEBUGGER_THREADING
-#endif /* DEBUGGER_THREADING */
-
-#define DEBUGGER_THREADING 0 /* integrated with DDB */
-
-#ifdef ACPI_DEBUG_OUTPUT
-#include "opt_ddb.h"
-#ifdef DDB
-#define ACPI_DEBUGGER
-#endif /* DDB */
-#endif /* ACPI_DEBUG_OUTPUT */
-
-#else /* _KERNEL */
-
-/* Not building kernel code, so use libc */
-#define ACPI_USE_STANDARD_HEADERS
-#define ACPI_FLUSH_CPU_CACHE()
-
-#if __STDC_HOSTED__
-#include <ctype.h>
-#endif
-
-#define __cli()
-#define __sti()
-
-#endif /* _KERNEL */
-
-/* Always use FreeBSD code over our local versions */
-#define ACPI_USE_SYSTEM_CLIBRARY
-
-#if defined(_KERNEL) && (__FreeBSD_version < 700020)
-/* Or strstr (used in debugging mode, also move to libkern) */
-static __inline char *
-strstr (char *s, char *find)
-{
- char c, sc;
- size_t len;
-
- if ((c = *find++) != 0) {
- len = strlen (find);
- do {
- do {
- if ((sc = *s++) == 0)
- return (NULL);
- } while (sc != c);
- } while (strncmp (s, find, len) != 0);
- s--;
- }
- return ((char *) s);
-}
-#endif /* _KERNEL */
-
-#endif /* __ACFREEBSD_H__ */
diff --git a/sys/contrib/dev/acpica/acgcc.h b/sys/contrib/dev/acpica/acgcc.h
deleted file mode 100644
index 28576b1..0000000
--- a/sys/contrib/dev/acpica/acgcc.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/******************************************************************************
- *
- * Name: acgcc.h - GCC specific defines, etc.
- * $Revision: 1.32 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACGCC_H__
-#define __ACGCC_H__
-
-/* Function name is used for debug output. Non-ANSI, compiler-dependent */
-
-#define ACPI_GET_FUNCTION_NAME __FUNCTION__
-
-/*
- * This macro is used to tag functions as "printf-like" because
- * some compilers (like GCC) can catch printf format string problems.
- */
-#define ACPI_PRINTF_LIKE(c) __attribute__ ((__format__ (__printf__, c, c+1)))
-
-/*
- * Some compilers complain about unused variables. Sometimes we don't want to
- * use all the variables (for example, _AcpiModuleName). This allows us
- * to to tell the compiler warning in a per-variable manner that a variable
- * is unused.
- */
-#define ACPI_UNUSED_VAR __attribute__ ((unused))
-
-
-#endif /* __ACGCC_H__ */
diff --git a/sys/contrib/dev/acpica/acglobal.h b/sys/contrib/dev/acpica/acglobal.h
deleted file mode 100644
index 1e13733..0000000
--- a/sys/contrib/dev/acpica/acglobal.h
+++ /dev/null
@@ -1,472 +0,0 @@
-/******************************************************************************
- *
- * Name: acglobal.h - Declarations for global variables
- * $Revision: 1.194 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACGLOBAL_H__
-#define __ACGLOBAL_H__
-
-
-/*
- * Ensure that the globals are actually defined and initialized only once.
- *
- * The use of these macros allows a single list of globals (here) in order
- * to simplify maintenance of the code.
- */
-#ifdef DEFINE_ACPI_GLOBALS
-#define ACPI_EXTERN
-#define ACPI_INIT_GLOBAL(a,b) a=b
-#else
-#define ACPI_EXTERN extern
-#define ACPI_INIT_GLOBAL(a,b) a
-#endif
-
-
-/*****************************************************************************
- *
- * Runtime configuration (static defaults that can be overriden at runtime)
- *
- ****************************************************************************/
-
-/*
- * Enable "slack" in the AML interpreter? Default is FALSE, and the
- * interpreter strictly follows the ACPI specification. Setting to TRUE
- * allows the interpreter to ignore certain errors and/or bad AML constructs.
- *
- * Currently, these features are enabled by this flag:
- *
- * 1) Allow "implicit return" of last value in a control method
- * 2) Allow access beyond the end of an operation region
- * 3) Allow access to uninitialized locals/args (auto-init to integer 0)
- * 4) Allow ANY object type to be a source operand for the Store() operator
- * 5) Allow unresolved references (invalid target name) in package objects
- * 6) Enable warning messages for behavior that is not ACPI spec compliant
- */
-ACPI_EXTERN UINT8 ACPI_INIT_GLOBAL (AcpiGbl_EnableInterpreterSlack, FALSE);
-
-/*
- * Automatically serialize ALL control methods? Default is FALSE, meaning
- * to use the Serialized/NotSerialized method flags on a per method basis.
- * Only change this if the ASL code is poorly written and cannot handle
- * reentrancy even though methods are marked "NotSerialized".
- */
-ACPI_EXTERN UINT8 ACPI_INIT_GLOBAL (AcpiGbl_AllMethodsSerialized, FALSE);
-
-/*
- * Create the predefined _OSI method in the namespace? Default is TRUE
- * because ACPI CA is fully compatible with other ACPI implementations.
- * Changing this will revert ACPI CA (and machine ASL) to pre-OSI behavior.
- */
-ACPI_EXTERN UINT8 ACPI_INIT_GLOBAL (AcpiGbl_CreateOsiMethod, TRUE);
-
-/*
- * Disable wakeup GPEs during runtime? Default is TRUE because WAKE and
- * RUNTIME GPEs should never be shared, and WAKE GPEs should typically only
- * be enabled just before going to sleep.
- */
-ACPI_EXTERN UINT8 ACPI_INIT_GLOBAL (AcpiGbl_LeaveWakeGpesDisabled, TRUE);
-
-
-/*****************************************************************************
- *
- * ACPI Table globals
- *
- ****************************************************************************/
-
-/*
- * AcpiGbl_RootTableList is the master list of ACPI tables found in the
- * RSDT/XSDT.
- *
- * AcpiGbl_FADT is a local copy of the FADT, converted to a common format.
- */
-ACPI_EXTERN ACPI_INTERNAL_RSDT AcpiGbl_RootTableList;
-ACPI_EXTERN ACPI_TABLE_FADT AcpiGbl_FADT;
-
-/* These addresses are calculated from FADT address values */
-
-ACPI_EXTERN ACPI_GENERIC_ADDRESS AcpiGbl_XPm1aEnable;
-ACPI_EXTERN ACPI_GENERIC_ADDRESS AcpiGbl_XPm1bEnable;
-
-/*
- * Handle both ACPI 1.0 and ACPI 2.0 Integer widths. The integer width is
- * determined by the revision of the DSDT: If the DSDT revision is less than
- * 2, use only the lower 32 bits of the internal 64-bit Integer.
- */
-ACPI_EXTERN UINT8 AcpiGbl_IntegerBitWidth;
-ACPI_EXTERN UINT8 AcpiGbl_IntegerByteWidth;
-ACPI_EXTERN UINT8 AcpiGbl_IntegerNybbleWidth;
-
-
-/*****************************************************************************
- *
- * Mutual exlusion within ACPICA subsystem
- *
- ****************************************************************************/
-
-/*
- * Predefined mutex objects. This array contains the
- * actual OS mutex handles, indexed by the local ACPI_MUTEX_HANDLEs.
- * (The table maps local handles to the real OS handles)
- */
-ACPI_EXTERN ACPI_MUTEX_INFO AcpiGbl_MutexInfo[ACPI_NUM_MUTEX];
-
-/*
- * Global lock mutex is an actual AML mutex object
- * Global lock semaphore works in conjunction with the HW global lock
- */
-ACPI_EXTERN ACPI_OPERAND_OBJECT *AcpiGbl_GlobalLockMutex;
-ACPI_EXTERN ACPI_SEMAPHORE AcpiGbl_GlobalLockSemaphore;
-ACPI_EXTERN UINT16 AcpiGbl_GlobalLockHandle;
-ACPI_EXTERN BOOLEAN AcpiGbl_GlobalLockAcquired;
-ACPI_EXTERN BOOLEAN AcpiGbl_GlobalLockPresent;
-
-/*
- * Spinlocks are used for interfaces that can be possibly called at
- * interrupt level
- */
-ACPI_EXTERN ACPI_SPINLOCK AcpiGbl_GpeLock; /* For GPE data structs and registers */
-ACPI_EXTERN ACPI_SPINLOCK AcpiGbl_HardwareLock; /* For ACPI H/W except GPE registers */
-
-
-/*****************************************************************************
- *
- * Miscellaneous globals
- *
- ****************************************************************************/
-
-/* Object caches */
-
-ACPI_EXTERN ACPI_CACHE_T *AcpiGbl_NamespaceCache;
-ACPI_EXTERN ACPI_CACHE_T *AcpiGbl_StateCache;
-ACPI_EXTERN ACPI_CACHE_T *AcpiGbl_PsNodeCache;
-ACPI_EXTERN ACPI_CACHE_T *AcpiGbl_PsNodeExtCache;
-ACPI_EXTERN ACPI_CACHE_T *AcpiGbl_OperandCache;
-
-/* Global handlers */
-
-ACPI_EXTERN ACPI_OBJECT_NOTIFY_HANDLER AcpiGbl_DeviceNotify;
-ACPI_EXTERN ACPI_OBJECT_NOTIFY_HANDLER AcpiGbl_SystemNotify;
-ACPI_EXTERN ACPI_EXCEPTION_HANDLER AcpiGbl_ExceptionHandler;
-ACPI_EXTERN ACPI_INIT_HANDLER AcpiGbl_InitHandler;
-ACPI_EXTERN ACPI_WALK_STATE *AcpiGbl_BreakpointWalk;
-
-/* Owner ID support */
-
-ACPI_EXTERN UINT32 AcpiGbl_OwnerIdMask[ACPI_NUM_OWNERID_MASKS];
-ACPI_EXTERN UINT8 AcpiGbl_LastOwnerIdIndex;
-ACPI_EXTERN UINT8 AcpiGbl_NextOwnerIdOffset;
-
-/* Misc */
-
-ACPI_EXTERN UINT32 AcpiGbl_OriginalMode;
-ACPI_EXTERN UINT32 AcpiGbl_RsdpOriginalLocation;
-ACPI_EXTERN UINT32 AcpiGbl_NsLookupCount;
-ACPI_EXTERN UINT32 AcpiGbl_PsFindCount;
-ACPI_EXTERN UINT16 AcpiGbl_Pm1EnableRegisterSave;
-ACPI_EXTERN UINT8 AcpiGbl_DebuggerConfiguration;
-ACPI_EXTERN BOOLEAN AcpiGbl_StepToNextCall;
-ACPI_EXTERN BOOLEAN AcpiGbl_AcpiHardwarePresent;
-ACPI_EXTERN BOOLEAN AcpiGbl_EventsInitialized;
-ACPI_EXTERN BOOLEAN AcpiGbl_SystemAwakeAndRunning;
-
-
-#ifndef DEFINE_ACPI_GLOBALS
-
-/* Exception codes */
-
-extern char const *AcpiGbl_ExceptionNames_Env[];
-extern char const *AcpiGbl_ExceptionNames_Pgm[];
-extern char const *AcpiGbl_ExceptionNames_Tbl[];
-extern char const *AcpiGbl_ExceptionNames_Aml[];
-extern char const *AcpiGbl_ExceptionNames_Ctrl[];
-
-/* Other miscellaneous */
-
-extern BOOLEAN AcpiGbl_Shutdown;
-extern UINT32 AcpiGbl_StartupFlags;
-extern const char *AcpiGbl_SleepStateNames[ACPI_S_STATE_COUNT];
-extern const char *AcpiGbl_HighestDstateNames[4];
-extern const ACPI_OPCODE_INFO AcpiGbl_AmlOpInfo[AML_NUM_OPCODES];
-extern const char *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS];
-#endif
-
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-
-/* Lists for tracking memory allocations */
-
-ACPI_EXTERN ACPI_MEMORY_LIST *AcpiGbl_GlobalList;
-ACPI_EXTERN ACPI_MEMORY_LIST *AcpiGbl_NsNodeList;
-ACPI_EXTERN BOOLEAN AcpiGbl_DisplayFinalMemStats;
-#endif
-
-
-/*****************************************************************************
- *
- * Namespace globals
- *
- ****************************************************************************/
-
-#define NUM_NS_TYPES ACPI_TYPE_INVALID+1
-
-#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;
-ACPI_EXTERN ACPI_NAMESPACE_NODE *AcpiGbl_FadtGpeDevice;
-
-extern const UINT8 AcpiGbl_NsProperties[NUM_NS_TYPES];
-extern const ACPI_PREDEFINED_NAMES AcpiGbl_PreDefinedNames [NUM_PREDEFINED_NAMES];
-
-#ifdef ACPI_DEBUG_OUTPUT
-ACPI_EXTERN UINT32 AcpiGbl_CurrentNodeCount;
-ACPI_EXTERN UINT32 AcpiGbl_CurrentNodeSize;
-ACPI_EXTERN UINT32 AcpiGbl_MaxConcurrentNodeCount;
-ACPI_EXTERN ACPI_SIZE AcpiGbl_EntryStackPointer;
-ACPI_EXTERN ACPI_SIZE AcpiGbl_LowestStackPointer;
-ACPI_EXTERN UINT32 AcpiGbl_DeepestNesting;
-#endif
-
-
-/*****************************************************************************
- *
- * Interpreter globals
- *
- ****************************************************************************/
-
-
-ACPI_EXTERN ACPI_THREAD_STATE *AcpiGbl_CurrentWalkList;
-
-/* Control method single step flag */
-
-ACPI_EXTERN UINT8 AcpiGbl_CmSingleStep;
-
-
-/*****************************************************************************
- *
- * Hardware globals
- *
- ****************************************************************************/
-
-extern ACPI_BIT_REGISTER_INFO AcpiGbl_BitRegisterInfo[ACPI_NUM_BITREG];
-ACPI_EXTERN UINT8 AcpiGbl_SleepTypeA;
-ACPI_EXTERN UINT8 AcpiGbl_SleepTypeB;
-
-
-/*****************************************************************************
- *
- * Event and GPE globals
- *
- ****************************************************************************/
-
-extern ACPI_FIXED_EVENT_INFO AcpiGbl_FixedEventInfo[ACPI_NUM_FIXED_EVENTS];
-ACPI_EXTERN ACPI_FIXED_EVENT_HANDLER AcpiGbl_FixedEventHandlers[ACPI_NUM_FIXED_EVENTS];
-ACPI_EXTERN ACPI_GPE_XRUPT_INFO *AcpiGbl_GpeXruptListHead;
-ACPI_EXTERN ACPI_GPE_BLOCK_INFO *AcpiGbl_GpeFadtBlocks[ACPI_MAX_GPE_BLOCKS];
-
-
-/*****************************************************************************
- *
- * Debug support
- *
- ****************************************************************************/
-
-/* Runtime configuration of debug print levels */
-
-extern UINT32 AcpiDbgLevel;
-extern UINT32 AcpiDbgLayer;
-
-/* Procedure nesting level for debug output */
-
-extern UINT32 AcpiGbl_NestingLevel;
-
-/* Event counters */
-
-ACPI_EXTERN UINT32 AcpiGpeCount;
-
-/* Support for dynamic control method tracing mechanism */
-
-ACPI_EXTERN UINT32 AcpiGbl_OriginalDbgLevel;
-ACPI_EXTERN UINT32 AcpiGbl_OriginalDbgLayer;
-ACPI_EXTERN ACPI_NAME AcpiGbl_TraceMethodName;
-ACPI_EXTERN UINT32 AcpiGbl_TraceDbgLevel;
-ACPI_EXTERN UINT32 AcpiGbl_TraceDbgLayer;
-ACPI_EXTERN UINT32 AcpiGbl_TraceFlags;
-
-
-/*****************************************************************************
- *
- * Debugger globals
- *
- ****************************************************************************/
-
-ACPI_EXTERN UINT8 AcpiGbl_DbOutputFlags;
-
-#ifdef ACPI_DISASSEMBLER
-
-ACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_disasm;
-ACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_verbose;
-#endif
-
-
-#ifdef ACPI_DEBUGGER
-
-extern BOOLEAN AcpiGbl_MethodExecuting;
-extern BOOLEAN AcpiGbl_AbortMethod;
-extern BOOLEAN AcpiGbl_DbTerminateThreads;
-
-ACPI_EXTERN int optind;
-ACPI_EXTERN char *optarg;
-
-ACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_tables;
-ACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_stats;
-ACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_ini_methods;
-
-
-ACPI_EXTERN char *AcpiGbl_DbArgs[ACPI_DEBUGGER_MAX_ARGS];
-ACPI_EXTERN char AcpiGbl_DbLineBuf[80];
-ACPI_EXTERN char AcpiGbl_DbParsedBuf[80];
-ACPI_EXTERN char AcpiGbl_DbScopeBuf[40];
-ACPI_EXTERN char AcpiGbl_DbDebugFilename[40];
-ACPI_EXTERN BOOLEAN AcpiGbl_DbOutputToFile;
-ACPI_EXTERN char *AcpiGbl_DbBuffer;
-ACPI_EXTERN char *AcpiGbl_DbFilename;
-ACPI_EXTERN UINT32 AcpiGbl_DbDebugLevel;
-ACPI_EXTERN UINT32 AcpiGbl_DbConsoleDebugLevel;
-ACPI_EXTERN ACPI_TABLE_HEADER *AcpiGbl_DbTablePtr;
-ACPI_EXTERN ACPI_NAMESPACE_NODE *AcpiGbl_DbScopeNode;
-
-/*
- * Statistic globals
- */
-ACPI_EXTERN UINT16 AcpiGbl_ObjTypeCount[ACPI_TYPE_NS_NODE_MAX+1];
-ACPI_EXTERN UINT16 AcpiGbl_NodeTypeCount[ACPI_TYPE_NS_NODE_MAX+1];
-ACPI_EXTERN UINT16 AcpiGbl_ObjTypeCountMisc;
-ACPI_EXTERN UINT16 AcpiGbl_NodeTypeCountMisc;
-ACPI_EXTERN UINT32 AcpiGbl_NumNodes;
-ACPI_EXTERN UINT32 AcpiGbl_NumObjects;
-
-
-ACPI_EXTERN UINT32 AcpiGbl_SizeOfParseTree;
-ACPI_EXTERN UINT32 AcpiGbl_SizeOfMethodTrees;
-ACPI_EXTERN UINT32 AcpiGbl_SizeOfNodeEntries;
-ACPI_EXTERN UINT32 AcpiGbl_SizeOfAcpiObjects;
-
-#endif /* ACPI_DEBUGGER */
-
-#endif /* __ACGLOBAL_H__ */
diff --git a/sys/contrib/dev/acpica/achware.h b/sys/contrib/dev/acpica/achware.h
deleted file mode 100644
index e132ec6..0000000
--- a/sys/contrib/dev/acpica/achware.h
+++ /dev/null
@@ -1,247 +0,0 @@
-/******************************************************************************
- *
- * Name: achware.h -- hardware specific interfaces
- * $Revision: 1.83 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACHWARE_H__
-#define __ACHWARE_H__
-
-
-/* PM Timer ticks per second (HZ) */
-
-#define PM_TIMER_FREQUENCY 3579545
-
-/* Values for the _SST reserved method */
-
-#define ACPI_SST_INDICATOR_OFF 0
-#define ACPI_SST_WORKING 1
-#define ACPI_SST_WAKING 2
-#define ACPI_SST_SLEEPING 3
-#define ACPI_SST_SLEEP_CONTEXT 4
-
-
-/* Prototypes */
-
-
-/*
- * hwacpi - high level functions
- */
-ACPI_STATUS
-AcpiHwSetMode (
- UINT32 Mode);
-
-UINT32
-AcpiHwGetMode (
- void);
-
-
-/*
- * hwregs - ACPI Register I/O
- */
-ACPI_BIT_REGISTER_INFO *
-AcpiHwGetBitRegisterInfo (
- UINT32 RegisterId);
-
-ACPI_STATUS
-AcpiHwRegisterRead (
- BOOLEAN UseLock,
- UINT32 RegisterId,
- UINT32 *ReturnValue);
-
-ACPI_STATUS
-AcpiHwRegisterWrite (
- BOOLEAN UseLock,
- UINT32 RegisterId,
- UINT32 Value);
-
-ACPI_STATUS
-AcpiHwLowLevelRead (
- UINT32 Width,
- UINT32 *Value,
- ACPI_GENERIC_ADDRESS *Reg);
-
-ACPI_STATUS
-AcpiHwLowLevelWrite (
- UINT32 Width,
- UINT32 Value,
- ACPI_GENERIC_ADDRESS *Reg);
-
-ACPI_STATUS
-AcpiHwClearAcpiStatus (
- void);
-
-
-/*
- * hwgpe - GPE support
- */
-ACPI_STATUS
-AcpiHwWriteGpeEnableReg (
- ACPI_GPE_EVENT_INFO *GpeEventInfo);
-
-ACPI_STATUS
-AcpiHwDisableGpeBlock (
- ACPI_GPE_XRUPT_INFO *GpeXruptInfo,
- ACPI_GPE_BLOCK_INFO *GpeBlock);
-
-ACPI_STATUS
-AcpiHwClearGpe (
- ACPI_GPE_EVENT_INFO *GpeEventInfo);
-
-ACPI_STATUS
-AcpiHwClearGpeBlock (
- ACPI_GPE_XRUPT_INFO *GpeXruptInfo,
- ACPI_GPE_BLOCK_INFO *GpeBlock);
-
-ACPI_STATUS
-AcpiHwGetGpeStatus (
- ACPI_GPE_EVENT_INFO *GpeEventInfo,
- ACPI_EVENT_STATUS *EventStatus);
-
-ACPI_STATUS
-AcpiHwDisableAllGpes (
- void);
-
-ACPI_STATUS
-AcpiHwEnableAllRuntimeGpes (
- void);
-
-ACPI_STATUS
-AcpiHwEnableAllWakeupGpes (
- void);
-
-ACPI_STATUS
-AcpiHwEnableRuntimeGpeBlock (
- ACPI_GPE_XRUPT_INFO *GpeXruptInfo,
- ACPI_GPE_BLOCK_INFO *GpeBlock);
-
-
-/*
- * hwtimer - ACPI Timer prototypes
- */
-ACPI_STATUS
-AcpiGetTimerResolution (
- UINT32 *Resolution);
-
-ACPI_STATUS
-AcpiGetTimer (
- UINT32 *Ticks);
-
-ACPI_STATUS
-AcpiGetTimerDuration (
- UINT32 StartTicks,
- UINT32 EndTicks,
- UINT32 *TimeElapsed);
-
-
-#endif /* __ACHWARE_H__ */
diff --git a/sys/contrib/dev/acpica/acinterp.h b/sys/contrib/dev/acpica/acinterp.h
deleted file mode 100644
index 367266c..0000000
--- a/sys/contrib/dev/acpica/acinterp.h
+++ /dev/null
@@ -1,793 +0,0 @@
-/******************************************************************************
- *
- * Name: acinterp.h - Interpreter subcomponent prototypes and defines
- * $Revision: 1.171 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACINTERP_H__
-#define __ACINTERP_H__
-
-
-#define ACPI_WALK_OPERANDS (&(WalkState->Operands [WalkState->NumOperands -1]))
-
-/* Macros for tables used for debug output */
-
-#define ACPI_EXD_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_OPERAND_OBJECT,f)
-#define ACPI_EXD_NSOFFSET(f) (UINT8) ACPI_OFFSET (ACPI_NAMESPACE_NODE,f)
-#define ACPI_EXD_TABLE_SIZE(name) (sizeof(name) / sizeof (ACPI_EXDUMP_INFO))
-
-/*
- * If possible, pack the following structures to byte alignment, since we
- * don't care about performance for debug output. Two cases where we cannot
- * pack the structures:
- *
- * 1) Hardware does not support misaligned memory transfers
- * 2) Compiler does not support pointers within packed structures
- */
-#if (!defined(ACPI_MISALIGNMENT_NOT_SUPPORTED) && !defined(ACPI_PACKED_POINTERS_NOT_SUPPORTED))
-#pragma pack(1)
-#endif
-
-typedef const struct acpi_exdump_info
-{
- UINT8 Opcode;
- UINT8 Offset;
- char *Name;
-
-} ACPI_EXDUMP_INFO;
-
-/* Values for the Opcode field above */
-
-#define ACPI_EXD_INIT 0
-#define ACPI_EXD_TYPE 1
-#define ACPI_EXD_UINT8 2
-#define ACPI_EXD_UINT16 3
-#define ACPI_EXD_UINT32 4
-#define ACPI_EXD_UINT64 5
-#define ACPI_EXD_LITERAL 6
-#define ACPI_EXD_POINTER 7
-#define ACPI_EXD_ADDRESS 8
-#define ACPI_EXD_STRING 9
-#define ACPI_EXD_BUFFER 10
-#define ACPI_EXD_PACKAGE 11
-#define ACPI_EXD_FIELD 12
-#define ACPI_EXD_REFERENCE 13
-
-/* restore default alignment */
-
-#pragma pack()
-
-
-/*
- * exconvrt - object conversion
- */
-ACPI_STATUS
-AcpiExConvertToInteger (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_OPERAND_OBJECT **ResultDesc,
- UINT32 Flags);
-
-ACPI_STATUS
-AcpiExConvertToBuffer (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_OPERAND_OBJECT **ResultDesc);
-
-ACPI_STATUS
-AcpiExConvertToString (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_OPERAND_OBJECT **ResultDesc,
- UINT32 Type);
-
-/* Types for ->String conversion */
-
-#define ACPI_EXPLICIT_BYTE_COPY 0x00000000
-#define ACPI_EXPLICIT_CONVERT_HEX 0x00000001
-#define ACPI_IMPLICIT_CONVERT_HEX 0x00000002
-#define ACPI_EXPLICIT_CONVERT_DECIMAL 0x00000003
-
-ACPI_STATUS
-AcpiExConvertToTargetType (
- ACPI_OBJECT_TYPE DestinationType,
- ACPI_OPERAND_OBJECT *SourceDesc,
- ACPI_OPERAND_OBJECT **ResultDesc,
- ACPI_WALK_STATE *WalkState);
-
-
-/*
- * exfield - ACPI AML (p-code) execution - field manipulation
- */
-ACPI_STATUS
-AcpiExCommonBufferSetup (
- ACPI_OPERAND_OBJECT *ObjDesc,
- UINT32 BufferLength,
- UINT32 *DatumCount);
-
-ACPI_STATUS
-AcpiExWriteWithUpdateRule (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_INTEGER Mask,
- ACPI_INTEGER FieldValue,
- UINT32 FieldDatumByteOffset);
-
-void
-AcpiExGetBufferDatum(
- ACPI_INTEGER *Datum,
- void *Buffer,
- UINT32 BufferLength,
- UINT32 ByteGranularity,
- UINT32 BufferOffset);
-
-void
-AcpiExSetBufferDatum (
- ACPI_INTEGER MergedDatum,
- void *Buffer,
- UINT32 BufferLength,
- UINT32 ByteGranularity,
- UINT32 BufferOffset);
-
-ACPI_STATUS
-AcpiExReadDataFromField (
- ACPI_WALK_STATE *WalkState,
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_OPERAND_OBJECT **RetBufferDesc);
-
-ACPI_STATUS
-AcpiExWriteDataToField (
- ACPI_OPERAND_OBJECT *SourceDesc,
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_OPERAND_OBJECT **ResultDesc);
-
-
-/*
- * exfldio - low level field I/O
- */
-ACPI_STATUS
-AcpiExExtractFromField (
- ACPI_OPERAND_OBJECT *ObjDesc,
- void *Buffer,
- UINT32 BufferLength);
-
-ACPI_STATUS
-AcpiExInsertIntoField (
- ACPI_OPERAND_OBJECT *ObjDesc,
- void *Buffer,
- UINT32 BufferLength);
-
-ACPI_STATUS
-AcpiExAccessRegion (
- ACPI_OPERAND_OBJECT *ObjDesc,
- UINT32 FieldDatumByteOffset,
- ACPI_INTEGER *Value,
- UINT32 ReadWrite);
-
-
-/*
- * exmisc - misc support routines
- */
-ACPI_STATUS
-AcpiExGetObjectReference (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_OPERAND_OBJECT **ReturnDesc,
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiExConcatTemplate (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_OPERAND_OBJECT *ObjDesc2,
- ACPI_OPERAND_OBJECT **ActualReturnDesc,
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiExDoConcatenate (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_OPERAND_OBJECT *ObjDesc2,
- ACPI_OPERAND_OBJECT **ActualReturnDesc,
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiExDoLogicalNumericOp (
- UINT16 Opcode,
- ACPI_INTEGER Integer0,
- ACPI_INTEGER Integer1,
- BOOLEAN *LogicalResult);
-
-ACPI_STATUS
-AcpiExDoLogicalOp (
- UINT16 Opcode,
- ACPI_OPERAND_OBJECT *Operand0,
- ACPI_OPERAND_OBJECT *Operand1,
- BOOLEAN *LogicalResult);
-
-ACPI_INTEGER
-AcpiExDoMathOp (
- UINT16 Opcode,
- ACPI_INTEGER Operand0,
- ACPI_INTEGER Operand1);
-
-ACPI_STATUS
-AcpiExCreateMutex (
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiExCreateProcessor (
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiExCreatePowerResource (
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiExCreateRegion (
- UINT8 *AmlStart,
- UINT32 AmlLength,
- UINT8 RegionSpace,
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiExCreateTableRegion (
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiExCreateEvent (
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiExCreateAlias (
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiExCreateMethod (
- UINT8 *AmlStart,
- UINT32 AmlLength,
- ACPI_WALK_STATE *WalkState);
-
-
-/*
- * exconfig - dynamic table load/unload
- */
-ACPI_STATUS
-AcpiExLoadOp (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_OPERAND_OBJECT *Target,
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiExLoadTableOp (
- ACPI_WALK_STATE *WalkState,
- ACPI_OPERAND_OBJECT **ReturnDesc);
-
-ACPI_STATUS
-AcpiExUnloadTable (
- ACPI_OPERAND_OBJECT *DdbHandle);
-
-
-/*
- * exmutex - mutex support
- */
-ACPI_STATUS
-AcpiExAcquireMutex (
- ACPI_OPERAND_OBJECT *TimeDesc,
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiExAcquireMutexObject (
- UINT16 Timeout,
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_THREAD_ID ThreadId);
-
-ACPI_STATUS
-AcpiExReleaseMutex (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiExReleaseMutexObject (
- ACPI_OPERAND_OBJECT *ObjDesc);
-
-void
-AcpiExReleaseAllMutexes (
- ACPI_THREAD_STATE *Thread);
-
-void
-AcpiExUnlinkMutex (
- ACPI_OPERAND_OBJECT *ObjDesc);
-
-
-/*
- * exprep - ACPI AML execution - prep utilities
- */
-ACPI_STATUS
-AcpiExPrepCommonFieldObject (
- ACPI_OPERAND_OBJECT *ObjDesc,
- UINT8 FieldFlags,
- UINT8 FieldAttribute,
- UINT32 FieldBitPosition,
- UINT32 FieldBitLength);
-
-ACPI_STATUS
-AcpiExPrepFieldValue (
- ACPI_CREATE_FIELD_INFO *Info);
-
-
-/*
- * exsystem - Interface to OS services
- */
-ACPI_STATUS
-AcpiExSystemDoNotifyOp (
- ACPI_OPERAND_OBJECT *Value,
- ACPI_OPERAND_OBJECT *ObjDesc);
-
-ACPI_STATUS
-AcpiExSystemDoSuspend(
- ACPI_INTEGER Time);
-
-ACPI_STATUS
-AcpiExSystemDoStall (
- UINT32 Time);
-
-ACPI_STATUS
-AcpiExSystemSignalEvent(
- ACPI_OPERAND_OBJECT *ObjDesc);
-
-ACPI_STATUS
-AcpiExSystemWaitEvent(
- ACPI_OPERAND_OBJECT *Time,
- ACPI_OPERAND_OBJECT *ObjDesc);
-
-ACPI_STATUS
-AcpiExSystemResetEvent(
- ACPI_OPERAND_OBJECT *ObjDesc);
-
-ACPI_STATUS
-AcpiExSystemWaitSemaphore (
- ACPI_SEMAPHORE Semaphore,
- UINT16 Timeout);
-
-ACPI_STATUS
-AcpiExSystemWaitMutex (
- ACPI_MUTEX Mutex,
- UINT16 Timeout);
-
-/*
- * exoparg1 - ACPI AML execution, 1 operand
- */
-ACPI_STATUS
-AcpiExOpcode_0A_0T_1R (
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiExOpcode_1A_0T_0R (
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiExOpcode_1A_0T_1R (
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiExOpcode_1A_1T_1R (
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiExOpcode_1A_1T_0R (
- ACPI_WALK_STATE *WalkState);
-
-/*
- * exoparg2 - ACPI AML execution, 2 operands
- */
-ACPI_STATUS
-AcpiExOpcode_2A_0T_0R (
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiExOpcode_2A_0T_1R (
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiExOpcode_2A_1T_1R (
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiExOpcode_2A_2T_1R (
- ACPI_WALK_STATE *WalkState);
-
-
-/*
- * exoparg3 - ACPI AML execution, 3 operands
- */
-ACPI_STATUS
-AcpiExOpcode_3A_0T_0R (
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiExOpcode_3A_1T_1R (
- ACPI_WALK_STATE *WalkState);
-
-
-/*
- * exoparg6 - ACPI AML execution, 6 operands
- */
-ACPI_STATUS
-AcpiExOpcode_6A_0T_1R (
- ACPI_WALK_STATE *WalkState);
-
-
-/*
- * exresolv - Object resolution and get value functions
- */
-ACPI_STATUS
-AcpiExResolveToValue (
- ACPI_OPERAND_OBJECT **StackPtr,
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiExResolveMultiple (
- ACPI_WALK_STATE *WalkState,
- ACPI_OPERAND_OBJECT *Operand,
- ACPI_OBJECT_TYPE *ReturnType,
- ACPI_OPERAND_OBJECT **ReturnDesc);
-
-
-/*
- * exresnte - resolve namespace node
- */
-ACPI_STATUS
-AcpiExResolveNodeToValue (
- ACPI_NAMESPACE_NODE **StackPtr,
- ACPI_WALK_STATE *WalkState);
-
-
-/*
- * exresop - resolve operand to value
- */
-ACPI_STATUS
-AcpiExResolveOperands (
- UINT16 Opcode,
- ACPI_OPERAND_OBJECT **StackPtr,
- ACPI_WALK_STATE *WalkState);
-
-
-/*
- * exdump - Interpreter debug output routines
- */
-void
-AcpiExDumpOperand (
- ACPI_OPERAND_OBJECT *ObjDesc,
- UINT32 Depth);
-
-void
-AcpiExDumpOperands (
- ACPI_OPERAND_OBJECT **Operands,
- ACPI_INTERPRETER_MODE InterpreterMode,
- char *Ident,
- UINT32 NumLevels,
- char *Note,
- char *ModuleName,
- UINT32 LineNumber);
-
-void
-AcpiExDumpObjectDescriptor (
- ACPI_OPERAND_OBJECT *Object,
- UINT32 Flags);
-
-void
-AcpiExDumpNamespaceNode (
- ACPI_NAMESPACE_NODE *Node,
- UINT32 Flags);
-
-
-/*
- * exnames - AML namestring support
- */
-ACPI_STATUS
-AcpiExGetNameString (
- ACPI_OBJECT_TYPE DataType,
- UINT8 *InAmlAddress,
- char **OutNameString,
- UINT32 *OutNameLength);
-
-
-/*
- * exstore - Object store support
- */
-ACPI_STATUS
-AcpiExStore (
- ACPI_OPERAND_OBJECT *ValDesc,
- ACPI_OPERAND_OBJECT *DestDesc,
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiExStoreObjectToNode (
- ACPI_OPERAND_OBJECT *SourceDesc,
- ACPI_NAMESPACE_NODE *Node,
- ACPI_WALK_STATE *WalkState,
- UINT8 ImplicitConversion);
-
-#define ACPI_IMPLICIT_CONVERSION TRUE
-#define ACPI_NO_IMPLICIT_CONVERSION FALSE
-
-
-/*
- * exstoren - resolve/store object
- */
-ACPI_STATUS
-AcpiExResolveObject (
- ACPI_OPERAND_OBJECT **SourceDescPtr,
- ACPI_OBJECT_TYPE TargetType,
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiExStoreObjectToObject (
- ACPI_OPERAND_OBJECT *SourceDesc,
- ACPI_OPERAND_OBJECT *DestDesc,
- ACPI_OPERAND_OBJECT **NewDesc,
- ACPI_WALK_STATE *WalkState);
-
-
-/*
- * exstorob - store object - buffer/string
- */
-ACPI_STATUS
-AcpiExStoreBufferToBuffer (
- ACPI_OPERAND_OBJECT *SourceDesc,
- ACPI_OPERAND_OBJECT *TargetDesc);
-
-ACPI_STATUS
-AcpiExStoreStringToString (
- ACPI_OPERAND_OBJECT *SourceDesc,
- ACPI_OPERAND_OBJECT *TargetDesc);
-
-
-/*
- * excopy - object copy
- */
-ACPI_STATUS
-AcpiExCopyIntegerToIndexField (
- ACPI_OPERAND_OBJECT *SourceDesc,
- ACPI_OPERAND_OBJECT *TargetDesc);
-
-ACPI_STATUS
-AcpiExCopyIntegerToBankField (
- ACPI_OPERAND_OBJECT *SourceDesc,
- ACPI_OPERAND_OBJECT *TargetDesc);
-
-ACPI_STATUS
-AcpiExCopyDataToNamedField (
- ACPI_OPERAND_OBJECT *SourceDesc,
- ACPI_NAMESPACE_NODE *Node);
-
-ACPI_STATUS
-AcpiExCopyIntegerToBufferField (
- ACPI_OPERAND_OBJECT *SourceDesc,
- ACPI_OPERAND_OBJECT *TargetDesc);
-
-
-/*
- * exutils - interpreter/scanner utilities
- */
-void
-AcpiExEnterInterpreter (
- void);
-
-void
-AcpiExExitInterpreter (
- void);
-
-void
-AcpiExReacquireInterpreter (
- void);
-
-void
-AcpiExRelinquishInterpreter (
- void);
-
-void
-AcpiExTruncateFor32bitTable (
- ACPI_OPERAND_OBJECT *ObjDesc);
-
-void
-AcpiExAcquireGlobalLock (
- UINT32 Rule);
-
-void
-AcpiExReleaseGlobalLock (
- UINT32 Rule);
-
-void
-AcpiExEisaIdToString (
- UINT32 NumericId,
- char *OutString);
-
-void
-AcpiExUnsignedIntegerToString (
- ACPI_INTEGER Value,
- char *OutString);
-
-
-/*
- * exregion - default OpRegion handlers
- */
-ACPI_STATUS
-AcpiExSystemMemorySpaceHandler (
- UINT32 Function,
- ACPI_PHYSICAL_ADDRESS Address,
- UINT32 BitWidth,
- ACPI_INTEGER *Value,
- void *HandlerContext,
- void *RegionContext);
-
-ACPI_STATUS
-AcpiExSystemIoSpaceHandler (
- UINT32 Function,
- ACPI_PHYSICAL_ADDRESS Address,
- UINT32 BitWidth,
- ACPI_INTEGER *Value,
- void *HandlerContext,
- void *RegionContext);
-
-ACPI_STATUS
-AcpiExPciConfigSpaceHandler (
- UINT32 Function,
- ACPI_PHYSICAL_ADDRESS Address,
- UINT32 BitWidth,
- ACPI_INTEGER *Value,
- void *HandlerContext,
- void *RegionContext);
-
-ACPI_STATUS
-AcpiExCmosSpaceHandler (
- UINT32 Function,
- ACPI_PHYSICAL_ADDRESS Address,
- UINT32 BitWidth,
- ACPI_INTEGER *Value,
- void *HandlerContext,
- void *RegionContext);
-
-ACPI_STATUS
-AcpiExPciBarSpaceHandler (
- UINT32 Function,
- ACPI_PHYSICAL_ADDRESS Address,
- UINT32 BitWidth,
- ACPI_INTEGER *Value,
- void *HandlerContext,
- void *RegionContext);
-
-ACPI_STATUS
-AcpiExEmbeddedControllerSpaceHandler (
- UINT32 Function,
- ACPI_PHYSICAL_ADDRESS Address,
- UINT32 BitWidth,
- ACPI_INTEGER *Value,
- void *HandlerContext,
- void *RegionContext);
-
-ACPI_STATUS
-AcpiExSmBusSpaceHandler (
- UINT32 Function,
- ACPI_PHYSICAL_ADDRESS Address,
- UINT32 BitWidth,
- ACPI_INTEGER *Value,
- void *HandlerContext,
- void *RegionContext);
-
-
-ACPI_STATUS
-AcpiExDataTableSpaceHandler (
- UINT32 Function,
- ACPI_PHYSICAL_ADDRESS Address,
- UINT32 BitWidth,
- ACPI_INTEGER *Value,
- void *HandlerContext,
- void *RegionContext);
-
-#endif /* __INTERP_H__ */
diff --git a/sys/contrib/dev/acpica/aclocal.h b/sys/contrib/dev/acpica/aclocal.h
deleted file mode 100644
index ba1145e..0000000
--- a/sys/contrib/dev/acpica/aclocal.h
+++ /dev/null
@@ -1,1202 +0,0 @@
-/******************************************************************************
- *
- * Name: aclocal.h - Internal data types used across the ACPI subsystem
- * $Revision: 1.247 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACLOCAL_H__
-#define __ACLOCAL_H__
-
-/* acpisrc:StructDefs -- for acpisrc conversion */
-
-#define ACPI_WAIT_FOREVER 0xFFFF /* UINT16, as per ACPI spec */
-#define ACPI_DO_NOT_WAIT 0
-#define ACPI_SERIALIZED 0xFF
-
-typedef UINT32 ACPI_MUTEX_HANDLE;
-#define ACPI_GLOBAL_LOCK (ACPI_SEMAPHORE) (-1)
-
-/* Total number of aml opcodes defined */
-
-#define AML_NUM_OPCODES 0x7F
-
-
-/* Forward declarations */
-
-struct acpi_walk_state;
-struct acpi_obj_mutex;
-union acpi_parse_object;
-
-
-/*****************************************************************************
- *
- * Mutex typedefs and structs
- *
- ****************************************************************************/
-
-
-/*
- * Predefined handles for the mutex objects used within the subsystem
- * All mutex objects are automatically created by AcpiUtMutexInitialize.
- *
- * The acquire/release ordering protocol is implied via this list. Mutexes
- * with a lower value must be acquired before mutexes with a higher value.
- *
- * NOTE: any changes here must be reflected in the AcpiGbl_MutexNames
- * table below also!
- */
-#define ACPI_MTX_INTERPRETER 0 /* AML Interpreter, main lock */
-#define ACPI_MTX_NAMESPACE 1 /* ACPI Namespace */
-#define ACPI_MTX_TABLES 2 /* Data for ACPI tables */
-#define ACPI_MTX_EVENTS 3 /* Data for ACPI events */
-#define ACPI_MTX_CACHES 4 /* Internal caches, general purposes */
-#define ACPI_MTX_MEMORY 5 /* Debug memory tracking lists */
-#define ACPI_MTX_DEBUG_CMD_COMPLETE 6 /* AML debugger */
-#define ACPI_MTX_DEBUG_CMD_READY 7 /* AML debugger */
-
-#define ACPI_MAX_MUTEX 7
-#define ACPI_NUM_MUTEX ACPI_MAX_MUTEX+1
-
-#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
-#ifdef DEFINE_ACPI_GLOBALS
-
-/* Debug names for the mutexes above */
-
-static char *AcpiGbl_MutexNames[ACPI_NUM_MUTEX] =
-{
- "ACPI_MTX_Interpreter",
- "ACPI_MTX_Tables",
- "ACPI_MTX_Namespace",
- "ACPI_MTX_Events",
- "ACPI_MTX_Caches",
- "ACPI_MTX_Memory",
- "ACPI_MTX_CommandComplete",
- "ACPI_MTX_CommandReady"
-};
-
-#endif
-#endif
-
-
-/*
- * Predefined handles for spinlocks used within the subsystem.
- * These spinlocks are created by AcpiUtMutexInitialize
- */
-#define ACPI_LOCK_GPES 0
-#define ACPI_LOCK_HARDWARE 1
-
-#define ACPI_MAX_LOCK 1
-#define ACPI_NUM_LOCK ACPI_MAX_LOCK+1
-
-
-/* Owner IDs are used to track namespace nodes for selective deletion */
-
-typedef UINT8 ACPI_OWNER_ID;
-#define ACPI_OWNER_ID_MAX 0xFF
-
-/* This Thread ID means that the mutex is not in use (unlocked) */
-
-#define ACPI_MUTEX_NOT_ACQUIRED (UINT32) -1
-
-/* Table for the global mutexes */
-
-typedef struct acpi_mutex_info
-{
- ACPI_MUTEX Mutex;
- UINT32 UseCount;
- ACPI_THREAD_ID ThreadId;
-
-} ACPI_MUTEX_INFO;
-
-
-/* Lock flag parameter for various interfaces */
-
-#define ACPI_MTX_DO_NOT_LOCK 0
-#define ACPI_MTX_LOCK 1
-
-
-/* Field access granularities */
-
-#define ACPI_FIELD_BYTE_GRANULARITY 1
-#define ACPI_FIELD_WORD_GRANULARITY 2
-#define ACPI_FIELD_DWORD_GRANULARITY 4
-#define ACPI_FIELD_QWORD_GRANULARITY 8
-
-
-#define ACPI_ENTRY_NOT_FOUND NULL
-
-
-/*****************************************************************************
- *
- * Namespace typedefs and structs
- *
- ****************************************************************************/
-
-/* Operational modes of the AML interpreter/scanner */
-
-typedef enum
-{
- ACPI_IMODE_LOAD_PASS1 = 0x01,
- ACPI_IMODE_LOAD_PASS2 = 0x02,
- ACPI_IMODE_EXECUTE = 0x03
-
-} ACPI_INTERPRETER_MODE;
-
-typedef union acpi_name_union
-{
- UINT32 Integer;
- char Ascii[4];
-
-} ACPI_NAME_UNION;
-
-
-/*
- * The Namespace Node describes a named object that appears in the AML.
- * DescriptorType is used to differentiate between internal descriptors.
- *
- * The node is optimized for both 32-bit and 64-bit platforms:
- * 20 bytes for the 32-bit case, 32 bytes for the 64-bit case.
- *
- * Note: The DescriptorType and Type fields must appear in the identical
- * position in both the ACPI_NAMESPACE_NODE and ACPI_OPERAND_OBJECT
- * structures.
- */
-typedef struct acpi_namespace_node
-{
- union acpi_operand_object *Object; /* Interpreter object */
- UINT8 DescriptorType; /* Differentiate object descriptor types */
- UINT8 Type; /* ACPI Type associated with this name */
- UINT8 Flags; /* Miscellaneous flags */
- ACPI_OWNER_ID OwnerId; /* Node creator */
- ACPI_NAME_UNION Name; /* ACPI Name, always 4 chars per ACPI spec */
- struct acpi_namespace_node *Child; /* First child */
- struct acpi_namespace_node *Peer; /* Peer. Parent if ANOBJ_END_OF_PEER_LIST set */
-
- /*
- * The following fields are used by the ASL compiler and disassembler only
- */
-#ifdef ACPI_LARGE_NAMESPACE_NODE
- union acpi_parse_object *Op;
- UINT32 Value;
- UINT32 Length;
-#endif
-
-} ACPI_NAMESPACE_NODE;
-
-
-/* Namespace Node flags */
-
-#define ANOBJ_END_OF_PEER_LIST 0x01 /* End-of-list, Peer field points to parent */
-#define ANOBJ_TEMPORARY 0x02 /* Node is create by a method and is temporary */
-#define ANOBJ_METHOD_ARG 0x04 /* Node is a method argument */
-#define ANOBJ_METHOD_LOCAL 0x08 /* Node is a method local */
-#define ANOBJ_SUBTREE_HAS_INI 0x10 /* Used to optimize device initialization */
-
-#define ANOBJ_IS_EXTERNAL 0x08 /* iASL only: This object created via External() */
-#define ANOBJ_METHOD_NO_RETVAL 0x10 /* iASL only: Method has no return value */
-#define ANOBJ_METHOD_SOME_NO_RETVAL 0x20 /* iASL only: Method has at least one return value */
-#define ANOBJ_IS_BIT_OFFSET 0x40 /* iASL only: Reference is a bit offset */
-#define ANOBJ_IS_REFERENCED 0x80 /* iASL only: Object was referenced */
-
-/*
- * ACPI Table Descriptor. One per ACPI table
- */
-typedef struct acpi_table_desc
-{
- ACPI_PHYSICAL_ADDRESS Address;
- ACPI_TABLE_HEADER *Pointer;
- UINT32 Length; /* Length fixed at 32 bits */
- ACPI_NAME_UNION Signature;
- ACPI_OWNER_ID OwnerId;
- UINT8 Flags;
-
-} ACPI_TABLE_DESC;
-
-/* Flags for above */
-
-#define ACPI_TABLE_ORIGIN_UNKNOWN (0)
-#define ACPI_TABLE_ORIGIN_MAPPED (1)
-#define ACPI_TABLE_ORIGIN_ALLOCATED (2)
-#define ACPI_TABLE_ORIGIN_MASK (3)
-#define ACPI_TABLE_IS_LOADED (4)
-
-/* One internal RSDT for table management */
-
-typedef struct acpi_internal_rsdt
-{
- ACPI_TABLE_DESC *Tables;
- UINT32 Count;
- UINT32 Size;
- UINT8 Flags;
-
-} ACPI_INTERNAL_RSDT;
-
-/* Flags for above */
-
-#define ACPI_ROOT_ORIGIN_UNKNOWN (0) /* ~ORIGIN_ALLOCATED */
-#define ACPI_ROOT_ORIGIN_ALLOCATED (1)
-#define ACPI_ROOT_ALLOW_RESIZE (2)
-
-
-/* Predefined (fixed) table indexes */
-
-#define ACPI_TABLE_INDEX_DSDT (0)
-#define ACPI_TABLE_INDEX_FACS (1)
-
-
-typedef struct acpi_find_context
-{
- char *SearchFor;
- ACPI_HANDLE *List;
- UINT32 *Count;
-
-} ACPI_FIND_CONTEXT;
-
-
-typedef struct acpi_ns_search_data
-{
- ACPI_NAMESPACE_NODE *Node;
-
-} ACPI_NS_SEARCH_DATA;
-
-
-/*
- * Predefined Namespace items
- */
-typedef struct acpi_predefined_names
-{
- char *Name;
- UINT8 Type;
- char *Val;
-
-} ACPI_PREDEFINED_NAMES;
-
-
-/* Object types used during package copies */
-
-#define ACPI_COPY_TYPE_SIMPLE 0
-#define ACPI_COPY_TYPE_PACKAGE 1
-
-
-/* Info structure used to convert external<->internal namestrings */
-
-typedef struct acpi_namestring_info
-{
- char *ExternalName;
- char *NextExternalChar;
- char *InternalName;
- UINT32 Length;
- UINT32 NumSegments;
- UINT32 NumCarats;
- BOOLEAN FullyQualified;
-
-} ACPI_NAMESTRING_INFO;
-
-
-/* Field creation info */
-
-typedef struct acpi_create_field_info
-{
- ACPI_NAMESPACE_NODE *RegionNode;
- ACPI_NAMESPACE_NODE *FieldNode;
- ACPI_NAMESPACE_NODE *RegisterNode;
- ACPI_NAMESPACE_NODE *DataRegisterNode;
- UINT32 BankValue;
- UINT32 FieldBitPosition;
- UINT32 FieldBitLength;
- UINT8 FieldFlags;
- UINT8 Attribute;
- UINT8 FieldType;
-
-} ACPI_CREATE_FIELD_INFO;
-
-
-typedef
-ACPI_STATUS (*ACPI_INTERNAL_METHOD) (
- struct acpi_walk_state *WalkState);
-
-
-/*
- * Bitmapped ACPI types. Used internally only
- */
-#define ACPI_BTYPE_ANY 0x00000000
-#define ACPI_BTYPE_INTEGER 0x00000001
-#define ACPI_BTYPE_STRING 0x00000002
-#define ACPI_BTYPE_BUFFER 0x00000004
-#define ACPI_BTYPE_PACKAGE 0x00000008
-#define ACPI_BTYPE_FIELD_UNIT 0x00000010
-#define ACPI_BTYPE_DEVICE 0x00000020
-#define ACPI_BTYPE_EVENT 0x00000040
-#define ACPI_BTYPE_METHOD 0x00000080
-#define ACPI_BTYPE_MUTEX 0x00000100
-#define ACPI_BTYPE_REGION 0x00000200
-#define ACPI_BTYPE_POWER 0x00000400
-#define ACPI_BTYPE_PROCESSOR 0x00000800
-#define ACPI_BTYPE_THERMAL 0x00001000
-#define ACPI_BTYPE_BUFFER_FIELD 0x00002000
-#define ACPI_BTYPE_DDB_HANDLE 0x00004000
-#define ACPI_BTYPE_DEBUG_OBJECT 0x00008000
-#define ACPI_BTYPE_REFERENCE 0x00010000
-#define ACPI_BTYPE_RESOURCE 0x00020000
-
-#define ACPI_BTYPE_COMPUTE_DATA (ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING | ACPI_BTYPE_BUFFER)
-
-#define ACPI_BTYPE_DATA (ACPI_BTYPE_COMPUTE_DATA | ACPI_BTYPE_PACKAGE)
-#define ACPI_BTYPE_DATA_REFERENCE (ACPI_BTYPE_DATA | ACPI_BTYPE_REFERENCE | ACPI_BTYPE_DDB_HANDLE)
-#define ACPI_BTYPE_DEVICE_OBJECTS (ACPI_BTYPE_DEVICE | ACPI_BTYPE_THERMAL | ACPI_BTYPE_PROCESSOR)
-#define ACPI_BTYPE_OBJECTS_AND_REFS 0x0001FFFF /* ARG or LOCAL */
-#define ACPI_BTYPE_ALL_OBJECTS 0x0000FFFF
-
-
-/*****************************************************************************
- *
- * Event typedefs and structs
- *
- ****************************************************************************/
-
-/* Dispatch info for each GPE -- either a method or handler, cannot be both */
-
-typedef struct acpi_handler_info
-{
- ACPI_EVENT_HANDLER Address; /* Address of handler, if any */
- void *Context; /* Context to be passed to handler */
- ACPI_NAMESPACE_NODE *MethodNode; /* Method node for this GPE level (saved) */
-
-} ACPI_HANDLER_INFO;
-
-typedef union acpi_gpe_dispatch_info
-{
- ACPI_NAMESPACE_NODE *MethodNode; /* Method node for this GPE level */
- struct acpi_handler_info *Handler;
-
-} ACPI_GPE_DISPATCH_INFO;
-
-/*
- * Information about a GPE, one per each GPE in an array.
- * NOTE: Important to keep this struct as small as possible.
- */
-typedef struct acpi_gpe_event_info
-{
- union acpi_gpe_dispatch_info Dispatch; /* Either Method or Handler */
- struct acpi_gpe_register_info *RegisterInfo; /* Backpointer to register info */
- UINT8 Flags; /* Misc info about this GPE */
- UINT8 GpeNumber; /* This GPE */
-
-} ACPI_GPE_EVENT_INFO;
-
-/* Information about a GPE register pair, one per each status/enable pair in an array */
-
-typedef struct acpi_gpe_register_info
-{
- ACPI_GENERIC_ADDRESS StatusAddress; /* Address of status reg */
- ACPI_GENERIC_ADDRESS EnableAddress; /* Address of enable reg */
- UINT8 EnableForWake; /* GPEs to keep enabled when sleeping */
- UINT8 EnableForRun; /* GPEs to keep enabled when running */
- UINT8 BaseGpeNumber; /* Base GPE number for this register */
-
-} ACPI_GPE_REGISTER_INFO;
-
-/*
- * Information about a GPE register block, one per each installed block --
- * GPE0, GPE1, and one per each installed GPE Block Device.
- */
-typedef struct acpi_gpe_block_info
-{
- ACPI_NAMESPACE_NODE *Node;
- struct acpi_gpe_block_info *Previous;
- struct acpi_gpe_block_info *Next;
- struct acpi_gpe_xrupt_info *XruptBlock; /* Backpointer to interrupt block */
- ACPI_GPE_REGISTER_INFO *RegisterInfo; /* One per GPE register pair */
- ACPI_GPE_EVENT_INFO *EventInfo; /* One for each GPE */
- ACPI_GENERIC_ADDRESS BlockAddress; /* Base address of the block */
- UINT32 RegisterCount; /* Number of register pairs in block */
- UINT8 BlockBaseNumber;/* Base GPE number for this block */
-
-} ACPI_GPE_BLOCK_INFO;
-
-/* Information about GPE interrupt handlers, one per each interrupt level used for GPEs */
-
-typedef struct acpi_gpe_xrupt_info
-{
- struct acpi_gpe_xrupt_info *Previous;
- struct acpi_gpe_xrupt_info *Next;
- ACPI_GPE_BLOCK_INFO *GpeBlockListHead; /* List of GPE blocks for this xrupt */
- UINT32 InterruptNumber; /* System interrupt number */
-
-} ACPI_GPE_XRUPT_INFO;
-
-
-typedef struct acpi_gpe_walk_info
-{
- ACPI_NAMESPACE_NODE *GpeDevice;
- ACPI_GPE_BLOCK_INFO *GpeBlock;
-
-} ACPI_GPE_WALK_INFO;
-
-
-typedef ACPI_STATUS (*ACPI_GPE_CALLBACK) (
- ACPI_GPE_XRUPT_INFO *GpeXruptInfo,
- ACPI_GPE_BLOCK_INFO *GpeBlock);
-
-
-/* Information about each particular fixed event */
-
-typedef struct acpi_fixed_event_handler
-{
- ACPI_EVENT_HANDLER Handler; /* Address of handler. */
- void *Context; /* Context to be passed to handler */
-
-} ACPI_FIXED_EVENT_HANDLER;
-
-typedef struct acpi_fixed_event_info
-{
- UINT8 StatusRegisterId;
- UINT8 EnableRegisterId;
- UINT16 StatusBitMask;
- UINT16 EnableBitMask;
-
-} ACPI_FIXED_EVENT_INFO;
-
-/* Information used during field processing */
-
-typedef struct acpi_field_info
-{
- UINT8 SkipField;
- UINT8 FieldFlag;
- UINT32 PkgLength;
-
-} ACPI_FIELD_INFO;
-
-
-/*****************************************************************************
- *
- * Generic "state" object for stacks
- *
- ****************************************************************************/
-
-#define ACPI_CONTROL_NORMAL 0xC0
-#define ACPI_CONTROL_CONDITIONAL_EXECUTING 0xC1
-#define ACPI_CONTROL_PREDICATE_EXECUTING 0xC2
-#define ACPI_CONTROL_PREDICATE_FALSE 0xC3
-#define ACPI_CONTROL_PREDICATE_TRUE 0xC4
-
-
-#define ACPI_STATE_COMMON \
- void *Next; \
- UINT8 DescriptorType; /* To differentiate various internal objs */\
- UINT8 Flags; \
- UINT16 Value; \
- UINT16 State;
-
- /* There are 2 bytes available here until the next natural alignment boundary */
-
-typedef struct acpi_common_state
-{
- ACPI_STATE_COMMON
-} ACPI_COMMON_STATE;
-
-
-/*
- * Update state - used to traverse complex objects such as packages
- */
-typedef struct acpi_update_state
-{
- ACPI_STATE_COMMON
- union acpi_operand_object *Object;
-
-} ACPI_UPDATE_STATE;
-
-
-/*
- * Pkg state - used to traverse nested package structures
- */
-typedef struct acpi_pkg_state
-{
- ACPI_STATE_COMMON
- UINT16 Index;
- union acpi_operand_object *SourceObject;
- union acpi_operand_object *DestObject;
- struct acpi_walk_state *WalkState;
- void *ThisTargetObj;
- UINT32 NumPackages;
-
-} ACPI_PKG_STATE;
-
-
-/*
- * Control state - one per if/else and while constructs.
- * Allows nesting of these constructs
- */
-typedef struct acpi_control_state
-{
- ACPI_STATE_COMMON
- UINT16 Opcode;
- union acpi_parse_object *PredicateOp;
- UINT8 *AmlPredicateStart; /* Start of if/while predicate */
- UINT8 *PackageEnd; /* End of if/while block */
-
-} ACPI_CONTROL_STATE;
-
-
-/*
- * Scope state - current scope during namespace lookups
- */
-typedef struct acpi_scope_state
-{
- ACPI_STATE_COMMON
- ACPI_NAMESPACE_NODE *Node;
-
-} ACPI_SCOPE_STATE;
-
-
-typedef struct acpi_pscope_state
-{
- ACPI_STATE_COMMON
- UINT32 ArgCount; /* Number of fixed arguments */
- union acpi_parse_object *Op; /* Current op being parsed */
- UINT8 *ArgEnd; /* Current argument end */
- UINT8 *PkgEnd; /* Current package end */
- UINT32 ArgList; /* Next argument to parse */
-
-} ACPI_PSCOPE_STATE;
-
-
-/*
- * Thread state - one per thread across multiple walk states. Multiple walk
- * states are created when there are nested control methods executing.
- */
-typedef struct acpi_thread_state
-{
- ACPI_STATE_COMMON
- UINT8 CurrentSyncLevel; /* Mutex Sync (nested acquire) level */
- struct acpi_walk_state *WalkStateList; /* Head of list of WalkStates for this thread */
- union acpi_operand_object *AcquiredMutexList; /* List of all currently acquired mutexes */
- ACPI_THREAD_ID ThreadId; /* Running thread ID */
-
-} ACPI_THREAD_STATE;
-
-
-/*
- * Result values - used to accumulate the results of nested
- * AML arguments
- */
-typedef struct acpi_result_values
-{
- ACPI_STATE_COMMON
- union acpi_operand_object *ObjDesc [ACPI_RESULTS_FRAME_OBJ_NUM];
-
-} ACPI_RESULT_VALUES;
-
-
-typedef
-ACPI_STATUS (*ACPI_PARSE_DOWNWARDS) (
- struct acpi_walk_state *WalkState,
- union acpi_parse_object **OutOp);
-
-typedef
-ACPI_STATUS (*ACPI_PARSE_UPWARDS) (
- struct acpi_walk_state *WalkState);
-
-
-/*
- * Notify info - used to pass info to the deferred notify
- * handler/dispatcher.
- */
-typedef struct acpi_notify_info
-{
- ACPI_STATE_COMMON
- ACPI_NAMESPACE_NODE *Node;
- union acpi_operand_object *HandlerObj;
-
-} ACPI_NOTIFY_INFO;
-
-
-/* Generic state is union of structs above */
-
-typedef union acpi_generic_state
-{
- ACPI_COMMON_STATE Common;
- ACPI_CONTROL_STATE Control;
- ACPI_UPDATE_STATE Update;
- ACPI_SCOPE_STATE Scope;
- ACPI_PSCOPE_STATE ParseScope;
- ACPI_PKG_STATE Pkg;
- ACPI_THREAD_STATE Thread;
- ACPI_RESULT_VALUES Results;
- ACPI_NOTIFY_INFO Notify;
-
-} ACPI_GENERIC_STATE;
-
-
-/*****************************************************************************
- *
- * Interpreter typedefs and structs
- *
- ****************************************************************************/
-
-typedef
-ACPI_STATUS (*ACPI_EXECUTE_OP) (
- struct acpi_walk_state *WalkState);
-
-
-/*****************************************************************************
- *
- * Parser typedefs and structs
- *
- ****************************************************************************/
-
-/*
- * AML opcode, name, and argument layout
- */
-typedef struct acpi_opcode_info
-{
-#if defined(ACPI_DISASSEMBLER) || defined(ACPI_DEBUG_OUTPUT)
- char *Name; /* Opcode name (disassembler/debug only) */
-#endif
- UINT32 ParseArgs; /* Grammar/Parse time arguments */
- UINT32 RuntimeArgs; /* Interpret time arguments */
- UINT16 Flags; /* Misc flags */
- UINT8 ObjectType; /* Corresponding internal object type */
- UINT8 Class; /* Opcode class */
- UINT8 Type; /* Opcode type */
-
-} ACPI_OPCODE_INFO;
-
-typedef union acpi_parse_value
-{
- ACPI_INTEGER Integer; /* Integer constant (Up to 64 bits) */
- UINT64_STRUCT Integer64; /* Structure overlay for 2 32-bit Dwords */
- UINT32 Size; /* bytelist or field size */
- char *String; /* NULL terminated string */
- UINT8 *Buffer; /* buffer or string */
- char *Name; /* NULL terminated string */
- union acpi_parse_object *Arg; /* arguments and contained ops */
-
-} ACPI_PARSE_VALUE;
-
-#define ACPI_PARSE_COMMON \
- union acpi_parse_object *Parent; /* Parent op */\
- UINT8 DescriptorType; /* To differentiate various internal objs */\
- UINT8 Flags; /* Type of Op */\
- UINT16 AmlOpcode; /* AML opcode */\
- UINT32 AmlOffset; /* Offset of declaration in AML */\
- union acpi_parse_object *Next; /* Next op */\
- ACPI_NAMESPACE_NODE *Node; /* For use by interpreter */\
- ACPI_PARSE_VALUE Value; /* Value or args associated with the opcode */\
- UINT8 ArgListLength; /* Number of elements in the arg list */\
- ACPI_DISASM_ONLY_MEMBERS (\
- UINT8 DisasmFlags; /* Used during AML disassembly */\
- UINT8 DisasmOpcode; /* Subtype used for disassembly */\
- char AmlOpName[16]) /* Op name (debug only) */
-
-
-#define ACPI_DASM_BUFFER 0x00
-#define ACPI_DASM_RESOURCE 0x01
-#define ACPI_DASM_STRING 0x02
-#define ACPI_DASM_UNICODE 0x03
-#define ACPI_DASM_EISAID 0x04
-#define ACPI_DASM_MATCHOP 0x05
-#define ACPI_DASM_LNOT_PREFIX 0x06
-#define ACPI_DASM_LNOT_SUFFIX 0x07
-#define ACPI_DASM_IGNORE 0x08
-
-/*
- * Generic operation (for example: If, While, Store)
- */
-typedef struct acpi_parse_obj_common
-{
- ACPI_PARSE_COMMON
-} ACPI_PARSE_OBJ_COMMON;
-
-
-/*
- * Extended Op for named ops (Scope, Method, etc.), deferred ops (Methods and OpRegions),
- * and bytelists.
- */
-typedef struct acpi_parse_obj_named
-{
- ACPI_PARSE_COMMON
- UINT8 *Path;
- UINT8 *Data; /* AML body or bytelist data */
- UINT32 Length; /* AML length */
- UINT32 Name; /* 4-byte name or zero if no name */
-
-} ACPI_PARSE_OBJ_NAMED;
-
-
-/* This version is used by the iASL compiler only */
-
-#define ACPI_MAX_PARSEOP_NAME 20
-
-typedef struct acpi_parse_obj_asl
-{
- ACPI_PARSE_COMMON
- union acpi_parse_object *Child;
- union acpi_parse_object *ParentMethod;
- char *Filename;
- char *ExternalName;
- char *Namepath;
- char NameSeg[4];
- UINT32 ExtraValue;
- UINT32 Column;
- UINT32 LineNumber;
- UINT32 LogicalLineNumber;
- UINT32 LogicalByteOffset;
- UINT32 EndLine;
- UINT32 EndLogicalLine;
- UINT32 AcpiBtype;
- UINT32 AmlLength;
- UINT32 AmlSubtreeLength;
- UINT32 FinalAmlLength;
- UINT32 FinalAmlOffset;
- UINT32 CompileFlags;
- UINT16 ParseOpcode;
- UINT8 AmlOpcodeLength;
- UINT8 AmlPkgLenBytes;
- UINT8 Extra;
- char ParseOpName[ACPI_MAX_PARSEOP_NAME];
-
-} ACPI_PARSE_OBJ_ASL;
-
-typedef union acpi_parse_object
-{
- ACPI_PARSE_OBJ_COMMON Common;
- ACPI_PARSE_OBJ_NAMED Named;
- ACPI_PARSE_OBJ_ASL Asl;
-
-} ACPI_PARSE_OBJECT;
-
-
-/*
- * Parse state - one state per parser invocation and each control
- * method.
- */
-typedef struct acpi_parse_state
-{
- UINT8 *AmlStart; /* First AML byte */
- UINT8 *Aml; /* Next AML byte */
- UINT8 *AmlEnd; /* (last + 1) AML byte */
- UINT8 *PkgStart; /* Current package begin */
- UINT8 *PkgEnd; /* Current package end */
- union acpi_parse_object *StartOp; /* Root of parse tree */
- struct acpi_namespace_node *StartNode;
- union acpi_generic_state *Scope; /* Current scope */
- union acpi_parse_object *StartScope;
- UINT32 AmlSize;
-
-} ACPI_PARSE_STATE;
-
-
-/* Parse object flags */
-
-#define ACPI_PARSEOP_GENERIC 0x01
-#define ACPI_PARSEOP_NAMED 0x02
-#define ACPI_PARSEOP_DEFERRED 0x04
-#define ACPI_PARSEOP_BYTELIST 0x08
-#define ACPI_PARSEOP_IN_STACK 0x10
-#define ACPI_PARSEOP_TARGET 0x20
-#define ACPI_PARSEOP_IN_CACHE 0x80
-
-/* Parse object DisasmFlags */
-
-#define ACPI_PARSEOP_IGNORE 0x01
-#define ACPI_PARSEOP_PARAMLIST 0x02
-#define ACPI_PARSEOP_EMPTY_TERMLIST 0x04
-#define ACPI_PARSEOP_SPECIAL 0x10
-
-
-/*****************************************************************************
- *
- * Hardware (ACPI registers) and PNP
- *
- ****************************************************************************/
-
-#define PCI_ROOT_HID_STRING "PNP0A03"
-#define PCI_EXPRESS_ROOT_HID_STRING "PNP0A08"
-
-typedef struct acpi_bit_register_info
-{
- UINT8 ParentRegister;
- UINT8 BitPosition;
- UINT16 AccessBitMask;
-
-} ACPI_BIT_REGISTER_INFO;
-
-
-/*
- * Some ACPI registers have bits that must be ignored -- meaning that they
- * must be preserved.
- */
-#define ACPI_PM1_STATUS_PRESERVED_BITS 0x0800 /* Bit 11 */
-#define ACPI_PM1_CONTROL_PRESERVED_BITS 0x0201 /* Bit 9, Bit 0 (SCI_EN) */
-
-
-/*
- * Register IDs
- * These are the full ACPI registers
- */
-#define ACPI_REGISTER_PM1_STATUS 0x01
-#define ACPI_REGISTER_PM1_ENABLE 0x02
-#define ACPI_REGISTER_PM1_CONTROL 0x03
-#define ACPI_REGISTER_PM1A_CONTROL 0x04
-#define ACPI_REGISTER_PM1B_CONTROL 0x05
-#define ACPI_REGISTER_PM2_CONTROL 0x06
-#define ACPI_REGISTER_PM_TIMER 0x07
-#define ACPI_REGISTER_PROCESSOR_BLOCK 0x08
-#define ACPI_REGISTER_SMI_COMMAND_BLOCK 0x09
-
-
-/* Masks used to access the BitRegisters */
-
-#define ACPI_BITMASK_TIMER_STATUS 0x0001
-#define ACPI_BITMASK_BUS_MASTER_STATUS 0x0010
-#define ACPI_BITMASK_GLOBAL_LOCK_STATUS 0x0020
-#define ACPI_BITMASK_POWER_BUTTON_STATUS 0x0100
-#define ACPI_BITMASK_SLEEP_BUTTON_STATUS 0x0200
-#define ACPI_BITMASK_RT_CLOCK_STATUS 0x0400
-#define ACPI_BITMASK_PCIEXP_WAKE_STATUS 0x4000 /* ACPI 3.0 */
-#define ACPI_BITMASK_WAKE_STATUS 0x8000
-
-#define ACPI_BITMASK_ALL_FIXED_STATUS (\
- ACPI_BITMASK_TIMER_STATUS | \
- ACPI_BITMASK_BUS_MASTER_STATUS | \
- ACPI_BITMASK_GLOBAL_LOCK_STATUS | \
- ACPI_BITMASK_POWER_BUTTON_STATUS | \
- ACPI_BITMASK_SLEEP_BUTTON_STATUS | \
- ACPI_BITMASK_RT_CLOCK_STATUS | \
- ACPI_BITMASK_WAKE_STATUS)
-
-#define ACPI_BITMASK_TIMER_ENABLE 0x0001
-#define ACPI_BITMASK_GLOBAL_LOCK_ENABLE 0x0020
-#define ACPI_BITMASK_POWER_BUTTON_ENABLE 0x0100
-#define ACPI_BITMASK_SLEEP_BUTTON_ENABLE 0x0200
-#define ACPI_BITMASK_RT_CLOCK_ENABLE 0x0400
-#define ACPI_BITMASK_PCIEXP_WAKE_DISABLE 0x4000 /* ACPI 3.0 */
-
-#define ACPI_BITMASK_SCI_ENABLE 0x0001
-#define ACPI_BITMASK_BUS_MASTER_RLD 0x0002
-#define ACPI_BITMASK_GLOBAL_LOCK_RELEASE 0x0004
-#define ACPI_BITMASK_SLEEP_TYPE_X 0x1C00
-#define ACPI_BITMASK_SLEEP_ENABLE 0x2000
-
-#define ACPI_BITMASK_ARB_DISABLE 0x0001
-
-
-/* Raw bit position of each BitRegister */
-
-#define ACPI_BITPOSITION_TIMER_STATUS 0x00
-#define ACPI_BITPOSITION_BUS_MASTER_STATUS 0x04
-#define ACPI_BITPOSITION_GLOBAL_LOCK_STATUS 0x05
-#define ACPI_BITPOSITION_POWER_BUTTON_STATUS 0x08
-#define ACPI_BITPOSITION_SLEEP_BUTTON_STATUS 0x09
-#define ACPI_BITPOSITION_RT_CLOCK_STATUS 0x0A
-#define ACPI_BITPOSITION_PCIEXP_WAKE_STATUS 0x0E /* ACPI 3.0 */
-#define ACPI_BITPOSITION_WAKE_STATUS 0x0F
-
-#define ACPI_BITPOSITION_TIMER_ENABLE 0x00
-#define ACPI_BITPOSITION_GLOBAL_LOCK_ENABLE 0x05
-#define ACPI_BITPOSITION_POWER_BUTTON_ENABLE 0x08
-#define ACPI_BITPOSITION_SLEEP_BUTTON_ENABLE 0x09
-#define ACPI_BITPOSITION_RT_CLOCK_ENABLE 0x0A
-#define ACPI_BITPOSITION_PCIEXP_WAKE_DISABLE 0x0E /* ACPI 3.0 */
-
-#define ACPI_BITPOSITION_SCI_ENABLE 0x00
-#define ACPI_BITPOSITION_BUS_MASTER_RLD 0x01
-#define ACPI_BITPOSITION_GLOBAL_LOCK_RELEASE 0x02
-#define ACPI_BITPOSITION_SLEEP_TYPE_X 0x0A
-#define ACPI_BITPOSITION_SLEEP_ENABLE 0x0D
-
-#define ACPI_BITPOSITION_ARB_DISABLE 0x00
-
-
-/*****************************************************************************
- *
- * Resource descriptors
- *
- ****************************************************************************/
-
-/* ResourceType values */
-
-#define ACPI_ADDRESS_TYPE_MEMORY_RANGE 0
-#define ACPI_ADDRESS_TYPE_IO_RANGE 1
-#define ACPI_ADDRESS_TYPE_BUS_NUMBER_RANGE 2
-
-/* Resource descriptor types and masks */
-
-#define ACPI_RESOURCE_NAME_LARGE 0x80
-#define ACPI_RESOURCE_NAME_SMALL 0x00
-
-#define ACPI_RESOURCE_NAME_SMALL_MASK 0x78 /* Bits 6:3 contain the type */
-#define ACPI_RESOURCE_NAME_SMALL_LENGTH_MASK 0x07 /* Bits 2:0 contain the length */
-#define ACPI_RESOURCE_NAME_LARGE_MASK 0x7F /* Bits 6:0 contain the type */
-
-
-/*
- * Small resource descriptor "names" as defined by the ACPI specification.
- * Note: Bits 2:0 are used for the descriptor length
- */
-#define ACPI_RESOURCE_NAME_IRQ 0x20
-#define ACPI_RESOURCE_NAME_DMA 0x28
-#define ACPI_RESOURCE_NAME_START_DEPENDENT 0x30
-#define ACPI_RESOURCE_NAME_END_DEPENDENT 0x38
-#define ACPI_RESOURCE_NAME_IO 0x40
-#define ACPI_RESOURCE_NAME_FIXED_IO 0x48
-#define ACPI_RESOURCE_NAME_RESERVED_S1 0x50
-#define ACPI_RESOURCE_NAME_RESERVED_S2 0x58
-#define ACPI_RESOURCE_NAME_RESERVED_S3 0x60
-#define ACPI_RESOURCE_NAME_RESERVED_S4 0x68
-#define ACPI_RESOURCE_NAME_VENDOR_SMALL 0x70
-#define ACPI_RESOURCE_NAME_END_TAG 0x78
-
-/*
- * Large resource descriptor "names" as defined by the ACPI specification.
- * Note: includes the Large Descriptor bit in bit[7]
- */
-#define ACPI_RESOURCE_NAME_MEMORY24 0x81
-#define ACPI_RESOURCE_NAME_GENERIC_REGISTER 0x82
-#define ACPI_RESOURCE_NAME_RESERVED_L1 0x83
-#define ACPI_RESOURCE_NAME_VENDOR_LARGE 0x84
-#define ACPI_RESOURCE_NAME_MEMORY32 0x85
-#define ACPI_RESOURCE_NAME_FIXED_MEMORY32 0x86
-#define ACPI_RESOURCE_NAME_ADDRESS32 0x87
-#define ACPI_RESOURCE_NAME_ADDRESS16 0x88
-#define ACPI_RESOURCE_NAME_EXTENDED_IRQ 0x89
-#define ACPI_RESOURCE_NAME_ADDRESS64 0x8A
-#define ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64 0x8B
-#define ACPI_RESOURCE_NAME_LARGE_MAX 0x8B
-
-
-/*****************************************************************************
- *
- * Miscellaneous
- *
- ****************************************************************************/
-
-#define ACPI_ASCII_ZERO 0x30
-
-
-/*****************************************************************************
- *
- * Debugger
- *
- ****************************************************************************/
-
-typedef struct acpi_db_method_info
-{
- ACPI_HANDLE MainThreadGate;
- ACPI_HANDLE ThreadCompleteGate;
- UINT32 *Threads;
- UINT32 NumThreads;
- UINT32 NumCreated;
- UINT32 NumCompleted;
-
- char *Name;
- UINT32 Flags;
- UINT32 NumLoops;
- char Pathname[128];
- char **Args;
-
- /*
- * Arguments to be passed to method for the command
- * Threads -
- * the Number of threads, ID of current thread and
- * Index of current thread inside all them created.
- */
- char InitArgs;
- char *Arguments[4];
- char NumThreadsStr[11];
- char IdOfThreadStr[11];
- char IndexOfThreadStr[11];
-
-} ACPI_DB_METHOD_INFO;
-
-typedef struct acpi_integrity_info
-{
- UINT32 Nodes;
- UINT32 Objects;
-
-} ACPI_INTEGRITY_INFO;
-
-
-#define ACPI_DB_REDIRECTABLE_OUTPUT 0x01
-#define ACPI_DB_CONSOLE_OUTPUT 0x02
-#define ACPI_DB_DUPLICATE_OUTPUT 0x03
-
-
-/*****************************************************************************
- *
- * Debug
- *
- ****************************************************************************/
-
-/* Entry for a memory allocation (debug only) */
-
-#define ACPI_MEM_MALLOC 0
-#define ACPI_MEM_CALLOC 1
-#define ACPI_MAX_MODULE_NAME 16
-
-#define ACPI_COMMON_DEBUG_MEM_HEADER \
- struct acpi_debug_mem_block *Previous; \
- struct acpi_debug_mem_block *Next; \
- UINT32 Size; \
- UINT32 Component; \
- UINT32 Line; \
- char Module[ACPI_MAX_MODULE_NAME]; \
- UINT8 AllocType;
-
-typedef struct acpi_debug_mem_header
-{
- ACPI_COMMON_DEBUG_MEM_HEADER
-
-} ACPI_DEBUG_MEM_HEADER;
-
-typedef struct acpi_debug_mem_block
-{
- ACPI_COMMON_DEBUG_MEM_HEADER
- UINT64 UserSpace;
-
-} ACPI_DEBUG_MEM_BLOCK;
-
-
-#define ACPI_MEM_LIST_GLOBAL 0
-#define ACPI_MEM_LIST_NSNODE 1
-#define ACPI_MEM_LIST_MAX 1
-#define ACPI_NUM_MEM_LISTS 2
-
-
-typedef struct acpi_memory_list
-{
- char *ListName;
- void *ListHead;
- UINT16 ObjectSize;
- UINT16 MaxDepth;
- UINT16 CurrentDepth;
- UINT16 LinkOffset;
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-
- /* Statistics for debug memory tracking only */
-
- UINT32 TotalAllocated;
- UINT32 TotalFreed;
- UINT32 MaxOccupied;
- UINT32 TotalSize;
- UINT32 CurrentTotalSize;
- UINT32 Requests;
- UINT32 Hits;
-#endif
-
-} ACPI_MEMORY_LIST;
-
-
-#endif /* __ACLOCAL_H__ */
diff --git a/sys/contrib/dev/acpica/acmacros.h b/sys/contrib/dev/acpica/acmacros.h
deleted file mode 100644
index 6583ba6..0000000
--- a/sys/contrib/dev/acpica/acmacros.h
+++ /dev/null
@@ -1,754 +0,0 @@
-/******************************************************************************
- *
- * Name: acmacros.h - C macros for the entire subsystem.
- * $Revision: 1.195 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACMACROS_H__
-#define __ACMACROS_H__
-
-
-/*
- * Data manipulation macros
- */
-#define ACPI_LOWORD(l) ((UINT16)(UINT32)(l))
-#define ACPI_HIWORD(l) ((UINT16)((((UINT32)(l)) >> 16) & 0xFFFF))
-#define ACPI_LOBYTE(l) ((UINT8)(UINT16)(l))
-#define ACPI_HIBYTE(l) ((UINT8)((((UINT16)(l)) >> 8) & 0xFF))
-
-#define ACPI_SET_BIT(target,bit) ((target) |= (bit))
-#define ACPI_CLEAR_BIT(target,bit) ((target) &= ~(bit))
-#define ACPI_MIN(a,b) (((a)<(b))?(a):(b))
-#define ACPI_MAX(a,b) (((a)>(b))?(a):(b))
-
-/* Size calculation */
-
-#define ACPI_ARRAY_LENGTH(x) (sizeof(x) / sizeof((x)[0]))
-
-
-/*
- * Full 64-bit integer must be available on both 32-bit and 64-bit platforms
- */
-#define ACPI_LODWORD(l) ((UINT32)(UINT64)(l))
-#define ACPI_HIDWORD(l) ((UINT32)(((*(UINT64_STRUCT *)(void *)(&l))).Hi))
-
-
-/*
- * printf() format helpers
- */
-
-/* Split 64-bit integer into two 32-bit values. Use with %8.8X%8.8X */
-
-#define ACPI_FORMAT_UINT64(i) ACPI_HIDWORD(i),ACPI_LODWORD(i)
-
-/*
- * Extract data using a pointer. Any more than a byte and we
- * get into potential aligment issues -- see the STORE macros below.
- * Use with care.
- */
-#define ACPI_GET8(ptr) *ACPI_CAST_PTR (UINT8, ptr)
-#define ACPI_GET16(ptr) *ACPI_CAST_PTR (UINT16, ptr)
-#define ACPI_GET32(ptr) *ACPI_CAST_PTR (UINT32, ptr)
-#define ACPI_GET64(ptr) *ACPI_CAST_PTR (UINT64, ptr)
-#define ACPI_SET8(ptr) *ACPI_CAST_PTR (UINT8, ptr)
-#define ACPI_SET16(ptr) *ACPI_CAST_PTR (UINT16, ptr)
-#define ACPI_SET32(ptr) *ACPI_CAST_PTR (UINT32, ptr)
-#define ACPI_SET64(ptr) *ACPI_CAST_PTR (UINT64, ptr)
-
-/*
- * Pointer manipulation
- */
-#define ACPI_CAST_PTR(t, p) ((t *) (ACPI_UINTPTR_T) (p))
-#define ACPI_CAST_INDIRECT_PTR(t, p) ((t **) (ACPI_UINTPTR_T) (p))
-#define ACPI_ADD_PTR(t,a,b) ACPI_CAST_PTR (t, (ACPI_CAST_PTR (UINT8,(a)) + (ACPI_NATIVE_UINT)(b)))
-#define ACPI_PTR_DIFF(a,b) (ACPI_NATIVE_UINT) (ACPI_CAST_PTR (UINT8,(a)) - ACPI_CAST_PTR (UINT8,(b)))
-
-/* Pointer/Integer type conversions */
-
-#define ACPI_TO_POINTER(i) ACPI_ADD_PTR (void,(void *) NULL,(ACPI_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_PHYSADDR_TO_PTR(i) ACPI_TO_POINTER(i)
-#define ACPI_PTR_TO_PHYSADDR(i) ACPI_TO_INTEGER(i)
-
-#ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED
-#define ACPI_COMPARE_NAME(a,b) (*ACPI_CAST_PTR (UINT32,(a)) == *ACPI_CAST_PTR (UINT32,(b)))
-#else
-#define ACPI_COMPARE_NAME(a,b) (!ACPI_STRNCMP (ACPI_CAST_PTR (char,(a)), ACPI_CAST_PTR (char,(b)), ACPI_NAME_SIZE))
-#endif
-
-/*
- * Macros for moving data around to/from buffers that are possibly unaligned.
- * If the hardware supports the transfer of unaligned data, just do the store.
- * Otherwise, we have to move one byte at a time.
- */
-#ifdef ACPI_BIG_ENDIAN
-/*
- * Macros for big-endian machines
- */
-
-/* This macro sets a buffer index, starting from the end of the buffer */
-
-#define ACPI_BUFFER_INDEX(BufLen,BufOffset,ByteGran) ((BufLen) - (((BufOffset)+1) * (ByteGran)))
-
-/* These macros reverse the bytes during the move, converting little-endian to big endian */
-
- /* Big Endian <== Little Endian */
- /* Hi...Lo Lo...Hi */
-/* 16-bit source, 16/32/64 destination */
-
-#define ACPI_MOVE_16_TO_16(d,s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[1];\
- (( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[0];}
-
-#define ACPI_MOVE_16_TO_32(d,s) {(*(UINT32 *)(void *)(d))=0;\
- ((UINT8 *)(void *)(d))[2] = ((UINT8 *)(void *)(s))[1];\
- ((UINT8 *)(void *)(d))[3] = ((UINT8 *)(void *)(s))[0];}
-
-#define ACPI_MOVE_16_TO_64(d,s) {(*(UINT64 *)(void *)(d))=0;\
- ((UINT8 *)(void *)(d))[6] = ((UINT8 *)(void *)(s))[1];\
- ((UINT8 *)(void *)(d))[7] = ((UINT8 *)(void *)(s))[0];}
-
-/* 32-bit source, 16/32/64 destination */
-
-#define ACPI_MOVE_32_TO_16(d,s) ACPI_MOVE_16_TO_16(d,s) /* Truncate to 16 */
-
-#define ACPI_MOVE_32_TO_32(d,s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[3];\
- (( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[2];\
- (( UINT8 *)(void *)(d))[2] = ((UINT8 *)(void *)(s))[1];\
- (( UINT8 *)(void *)(d))[3] = ((UINT8 *)(void *)(s))[0];}
-
-#define ACPI_MOVE_32_TO_64(d,s) {(*(UINT64 *)(void *)(d))=0;\
- ((UINT8 *)(void *)(d))[4] = ((UINT8 *)(void *)(s))[3];\
- ((UINT8 *)(void *)(d))[5] = ((UINT8 *)(void *)(s))[2];\
- ((UINT8 *)(void *)(d))[6] = ((UINT8 *)(void *)(s))[1];\
- ((UINT8 *)(void *)(d))[7] = ((UINT8 *)(void *)(s))[0];}
-
-/* 64-bit source, 16/32/64 destination */
-
-#define ACPI_MOVE_64_TO_16(d,s) ACPI_MOVE_16_TO_16(d,s) /* Truncate to 16 */
-
-#define ACPI_MOVE_64_TO_32(d,s) ACPI_MOVE_32_TO_32(d,s) /* Truncate to 32 */
-
-#define ACPI_MOVE_64_TO_64(d,s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[7];\
- (( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[6];\
- (( UINT8 *)(void *)(d))[2] = ((UINT8 *)(void *)(s))[5];\
- (( UINT8 *)(void *)(d))[3] = ((UINT8 *)(void *)(s))[4];\
- (( UINT8 *)(void *)(d))[4] = ((UINT8 *)(void *)(s))[3];\
- (( UINT8 *)(void *)(d))[5] = ((UINT8 *)(void *)(s))[2];\
- (( UINT8 *)(void *)(d))[6] = ((UINT8 *)(void *)(s))[1];\
- (( UINT8 *)(void *)(d))[7] = ((UINT8 *)(void *)(s))[0];}
-#else
-/*
- * Macros for little-endian machines
- */
-
-/* This macro sets a buffer index, starting from the beginning of the buffer */
-
-#define ACPI_BUFFER_INDEX(BufLen,BufOffset,ByteGran) (BufOffset)
-
-#ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED
-
-/* The hardware supports unaligned transfers, just do the little-endian move */
-
-/* 16-bit source, 16/32/64 destination */
-
-#define ACPI_MOVE_16_TO_16(d,s) *(UINT16 *)(void *)(d) = *(UINT16 *)(void *)(s)
-#define ACPI_MOVE_16_TO_32(d,s) *(UINT32 *)(void *)(d) = *(UINT16 *)(void *)(s)
-#define ACPI_MOVE_16_TO_64(d,s) *(UINT64 *)(void *)(d) = *(UINT16 *)(void *)(s)
-
-/* 32-bit source, 16/32/64 destination */
-
-#define ACPI_MOVE_32_TO_16(d,s) ACPI_MOVE_16_TO_16(d,s) /* Truncate to 16 */
-#define ACPI_MOVE_32_TO_32(d,s) *(UINT32 *)(void *)(d) = *(UINT32 *)(void *)(s)
-#define ACPI_MOVE_32_TO_64(d,s) *(UINT64 *)(void *)(d) = *(UINT32 *)(void *)(s)
-
-/* 64-bit source, 16/32/64 destination */
-
-#define ACPI_MOVE_64_TO_16(d,s) ACPI_MOVE_16_TO_16(d,s) /* Truncate to 16 */
-#define ACPI_MOVE_64_TO_32(d,s) ACPI_MOVE_32_TO_32(d,s) /* Truncate to 32 */
-#define ACPI_MOVE_64_TO_64(d,s) *(UINT64 *)(void *)(d) = *(UINT64 *)(void *)(s)
-
-#else
-/*
- * The hardware does not support unaligned transfers. We must move the
- * data one byte at a time. These macros work whether the source or
- * the destination (or both) is/are unaligned. (Little-endian move)
- */
-
-/* 16-bit source, 16/32/64 destination */
-
-#define ACPI_MOVE_16_TO_16(d,s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[0];\
- (( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[1];}
-
-#define ACPI_MOVE_16_TO_32(d,s) {(*(UINT32 *)(void *)(d)) = 0; ACPI_MOVE_16_TO_16(d,s);}
-#define ACPI_MOVE_16_TO_64(d,s) {(*(UINT64 *)(void *)(d)) = 0; ACPI_MOVE_16_TO_16(d,s);}
-
-/* 32-bit source, 16/32/64 destination */
-
-#define ACPI_MOVE_32_TO_16(d,s) ACPI_MOVE_16_TO_16(d,s) /* Truncate to 16 */
-
-#define ACPI_MOVE_32_TO_32(d,s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[0];\
- (( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[1];\
- (( UINT8 *)(void *)(d))[2] = ((UINT8 *)(void *)(s))[2];\
- (( UINT8 *)(void *)(d))[3] = ((UINT8 *)(void *)(s))[3];}
-
-#define ACPI_MOVE_32_TO_64(d,s) {(*(UINT64 *)(void *)(d)) = 0; ACPI_MOVE_32_TO_32(d,s);}
-
-/* 64-bit source, 16/32/64 destination */
-
-#define ACPI_MOVE_64_TO_16(d,s) ACPI_MOVE_16_TO_16(d,s) /* Truncate to 16 */
-#define ACPI_MOVE_64_TO_32(d,s) ACPI_MOVE_32_TO_32(d,s) /* Truncate to 32 */
-#define ACPI_MOVE_64_TO_64(d,s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[0];\
- (( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[1];\
- (( UINT8 *)(void *)(d))[2] = ((UINT8 *)(void *)(s))[2];\
- (( UINT8 *)(void *)(d))[3] = ((UINT8 *)(void *)(s))[3];\
- (( UINT8 *)(void *)(d))[4] = ((UINT8 *)(void *)(s))[4];\
- (( UINT8 *)(void *)(d))[5] = ((UINT8 *)(void *)(s))[5];\
- (( UINT8 *)(void *)(d))[6] = ((UINT8 *)(void *)(s))[6];\
- (( UINT8 *)(void *)(d))[7] = ((UINT8 *)(void *)(s))[7];}
-#endif
-#endif
-
-/* Macros based on machine integer width */
-
-#if ACPI_MACHINE_WIDTH == 32
-#define ACPI_MOVE_SIZE_TO_16(d,s) ACPI_MOVE_32_TO_16(d,s)
-
-#elif ACPI_MACHINE_WIDTH == 64
-#define ACPI_MOVE_SIZE_TO_16(d,s) ACPI_MOVE_64_TO_16(d,s)
-
-#else
-#error unknown ACPI_MACHINE_WIDTH
-#endif
-
-
-/*
- * Fast power-of-two math macros for non-optimized compilers
- */
-#define _ACPI_DIV(value,PowerOf2) ((UINT32) ((value) >> (PowerOf2)))
-#define _ACPI_MUL(value,PowerOf2) ((UINT32) ((value) << (PowerOf2)))
-#define _ACPI_MOD(value,Divisor) ((UINT32) ((value) & ((Divisor) -1)))
-
-#define ACPI_DIV_2(a) _ACPI_DIV(a,1)
-#define ACPI_MUL_2(a) _ACPI_MUL(a,1)
-#define ACPI_MOD_2(a) _ACPI_MOD(a,2)
-
-#define ACPI_DIV_4(a) _ACPI_DIV(a,2)
-#define ACPI_MUL_4(a) _ACPI_MUL(a,2)
-#define ACPI_MOD_4(a) _ACPI_MOD(a,4)
-
-#define ACPI_DIV_8(a) _ACPI_DIV(a,3)
-#define ACPI_MUL_8(a) _ACPI_MUL(a,3)
-#define ACPI_MOD_8(a) _ACPI_MOD(a,8)
-
-#define ACPI_DIV_16(a) _ACPI_DIV(a,4)
-#define ACPI_MUL_16(a) _ACPI_MUL(a,4)
-#define ACPI_MOD_16(a) _ACPI_MOD(a,16)
-
-#define ACPI_DIV_32(a) _ACPI_DIV(a,5)
-#define ACPI_MUL_32(a) _ACPI_MUL(a,5)
-#define ACPI_MOD_32(a) _ACPI_MOD(a,32)
-
-/*
- * Rounding macros (Power of two boundaries only)
- */
-#define ACPI_ROUND_DOWN(value,boundary) (((ACPI_NATIVE_UINT)(value)) & \
- (~(((ACPI_NATIVE_UINT) boundary)-1)))
-
-#define ACPI_ROUND_UP(value,boundary) ((((ACPI_NATIVE_UINT)(value)) + \
- (((ACPI_NATIVE_UINT) boundary)-1)) & \
- (~(((ACPI_NATIVE_UINT) boundary)-1)))
-
-/* Note: sizeof(ACPI_NATIVE_UINT) evaluates to either 2, 4, or 8 */
-
-#define ACPI_ROUND_DOWN_TO_32BIT(a) ACPI_ROUND_DOWN(a,4)
-#define ACPI_ROUND_DOWN_TO_64BIT(a) ACPI_ROUND_DOWN(a,8)
-#define ACPI_ROUND_DOWN_TO_NATIVE_WORD(a) ACPI_ROUND_DOWN(a,sizeof(ACPI_NATIVE_UINT))
-
-#define ACPI_ROUND_UP_TO_32BIT(a) ACPI_ROUND_UP(a,4)
-#define ACPI_ROUND_UP_TO_64BIT(a) ACPI_ROUND_UP(a,8)
-#define ACPI_ROUND_UP_TO_NATIVE_WORD(a) ACPI_ROUND_UP(a,sizeof(ACPI_NATIVE_UINT))
-
-#define ACPI_ROUND_BITS_UP_TO_BYTES(a) ACPI_DIV_8((a) + 7)
-#define ACPI_ROUND_BITS_DOWN_TO_BYTES(a) ACPI_DIV_8((a))
-
-#define ACPI_ROUND_UP_TO_1K(a) (((a) + 1023) >> 10)
-
-/* Generic (non-power-of-two) rounding */
-
-#define ACPI_ROUND_UP_TO(value,boundary) (((value) + ((boundary)-1)) / (boundary))
-
-#define ACPI_IS_MISALIGNED(value) (((ACPI_NATIVE_UINT)value) & (sizeof(ACPI_NATIVE_UINT)-1))
-
-/*
- * Bitmask creation
- * Bit positions start at zero.
- * MASK_BITS_ABOVE creates a mask starting AT the position and above
- * MASK_BITS_BELOW creates a mask starting one bit BELOW the position
- */
-#define ACPI_MASK_BITS_ABOVE(position) (~((ACPI_INTEGER_MAX) << ((UINT32) (position))))
-#define ACPI_MASK_BITS_BELOW(position) ((ACPI_INTEGER_MAX) << ((UINT32) (position)))
-
-#define ACPI_IS_OCTAL_DIGIT(d) (((char)(d) >= '0') && ((char)(d) <= '7'))
-
-
-/* Bitfields within ACPI registers */
-
-#define ACPI_REGISTER_PREPARE_BITS(Val, Pos, Mask) ((Val << Pos) & Mask)
-#define ACPI_REGISTER_INSERT_VALUE(Reg, Pos, Mask, Val) Reg = (Reg & (~(Mask))) | ACPI_REGISTER_PREPARE_BITS(Val, Pos, Mask)
-
-#define ACPI_INSERT_BITS(Target, Mask, Source) Target = ((Target & (~(Mask))) | (Source & Mask))
-
-/* Generate a UUID */
-
-#define ACPI_INIT_UUID(a,b,c,d0,d1,d2,d3,d4,d5,d6,d7) \
- (a) & 0xFF, ((a) >> 8) & 0xFF, ((a) >> 16) & 0xFF, ((a) >> 24) & 0xFF, \
- (b) & 0xFF, ((b) >> 8) & 0xFF, \
- (c) & 0xFF, ((c) >> 8) & 0xFF, \
- (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7)
-
-/*
- * An ACPI_NAMESPACE_NODE * can appear in some contexts,
- * where a pointer to an ACPI_OPERAND_OBJECT can also
- * appear. This macro is used to distinguish them.
- *
- * The "Descriptor" field is the first field in both structures.
- */
-#define ACPI_GET_DESCRIPTOR_TYPE(d) (((ACPI_DESCRIPTOR *)(void *)(d))->Common.DescriptorType)
-#define ACPI_SET_DESCRIPTOR_TYPE(d,t) (((ACPI_DESCRIPTOR *)(void *)(d))->Common.DescriptorType = t)
-
-
-/* Macro to test the object type */
-
-#define ACPI_GET_OBJECT_TYPE(d) (((ACPI_OPERAND_OBJECT *)(void *)(d))->Common.Type)
-
-/* Macro to check the table flags for SINGLE or MULTIPLE tables are allowed */
-
-#define ACPI_IS_SINGLE_TABLE(x) (((x) & 0x01) == ACPI_TABLE_SINGLE ? 1 : 0)
-
-/*
- * Macros for the master AML opcode table
- */
-#if defined(ACPI_DISASSEMBLER) || defined (ACPI_DEBUG_OUTPUT)
-#define ACPI_OP(Name,PArgs,IArgs,ObjType,Class,Type,Flags) {Name,(UINT32)(PArgs),(UINT32)(IArgs),(UINT32)(Flags),ObjType,Class,Type}
-#else
-#define ACPI_OP(Name,PArgs,IArgs,ObjType,Class,Type,Flags) {(UINT32)(PArgs),(UINT32)(IArgs),(UINT32)(Flags),ObjType,Class,Type}
-#endif
-
-#ifdef ACPI_DISASSEMBLER
-#define ACPI_DISASM_ONLY_MEMBERS(a) a;
-#else
-#define ACPI_DISASM_ONLY_MEMBERS(a)
-#endif
-
-#define ARG_TYPE_WIDTH 5
-#define ARG_1(x) ((UINT32)(x))
-#define ARG_2(x) ((UINT32)(x) << (1 * ARG_TYPE_WIDTH))
-#define ARG_3(x) ((UINT32)(x) << (2 * ARG_TYPE_WIDTH))
-#define ARG_4(x) ((UINT32)(x) << (3 * ARG_TYPE_WIDTH))
-#define ARG_5(x) ((UINT32)(x) << (4 * ARG_TYPE_WIDTH))
-#define ARG_6(x) ((UINT32)(x) << (5 * ARG_TYPE_WIDTH))
-
-#define ARGI_LIST1(a) (ARG_1(a))
-#define ARGI_LIST2(a,b) (ARG_1(b)|ARG_2(a))
-#define ARGI_LIST3(a,b,c) (ARG_1(c)|ARG_2(b)|ARG_3(a))
-#define ARGI_LIST4(a,b,c,d) (ARG_1(d)|ARG_2(c)|ARG_3(b)|ARG_4(a))
-#define ARGI_LIST5(a,b,c,d,e) (ARG_1(e)|ARG_2(d)|ARG_3(c)|ARG_4(b)|ARG_5(a))
-#define ARGI_LIST6(a,b,c,d,e,f) (ARG_1(f)|ARG_2(e)|ARG_3(d)|ARG_4(c)|ARG_5(b)|ARG_6(a))
-
-#define ARGP_LIST1(a) (ARG_1(a))
-#define ARGP_LIST2(a,b) (ARG_1(a)|ARG_2(b))
-#define ARGP_LIST3(a,b,c) (ARG_1(a)|ARG_2(b)|ARG_3(c))
-#define ARGP_LIST4(a,b,c,d) (ARG_1(a)|ARG_2(b)|ARG_3(c)|ARG_4(d))
-#define ARGP_LIST5(a,b,c,d,e) (ARG_1(a)|ARG_2(b)|ARG_3(c)|ARG_4(d)|ARG_5(e))
-#define ARGP_LIST6(a,b,c,d,e,f) (ARG_1(a)|ARG_2(b)|ARG_3(c)|ARG_4(d)|ARG_5(e)|ARG_6(f))
-
-#define GET_CURRENT_ARG_TYPE(List) (List & ((UINT32) 0x1F))
-#define INCREMENT_ARG_LIST(List) (List >>= ((UINT32) ARG_TYPE_WIDTH))
-
-
-#if defined (ACPI_DEBUG_OUTPUT) || !defined (ACPI_NO_ERROR_MESSAGES)
-/*
- * Module name is include in both debug and non-debug versions primarily for
- * error messages. The __FILE__ macro is not very useful for this, because it
- * often includes the entire pathname to the module
- */
-#define ACPI_MODULE_NAME(Name) static char ACPI_UNUSED_VAR *_AcpiModuleName = Name;
-#else
-#define ACPI_MODULE_NAME(Name)
-#endif
-
-/*
- * Ascii error messages can be configured out
- */
-#ifndef ACPI_NO_ERROR_MESSAGES
-#define AE_INFO _AcpiModuleName, __LINE__
-
-/*
- * Error reporting. Callers module and line number are inserted by AE_INFO,
- * the plist contains a set of parens to allow variable-length lists.
- * These macros are used for both the debug and non-debug versions of the code.
- */
-#define ACPI_INFO(plist) AcpiUtInfo plist
-#define ACPI_WARNING(plist) AcpiUtWarning plist
-#define ACPI_EXCEPTION(plist) AcpiUtException plist
-#define ACPI_ERROR(plist) AcpiUtError plist
-#define ACPI_ERROR_NAMESPACE(s,e) AcpiNsReportError (AE_INFO, s, e);
-#define ACPI_ERROR_METHOD(s,n,p,e) AcpiNsReportMethodError (AE_INFO, s, n, p, e);
-
-#else
-
-/* No error messages */
-
-#define ACPI_INFO(plist)
-#define ACPI_WARNING(plist)
-#define ACPI_EXCEPTION(plist)
-#define ACPI_ERROR(plist)
-#define ACPI_ERROR_NAMESPACE(s,e)
-#define ACPI_ERROR_METHOD(s,n,p,e)
-#endif
-
-/*
- * Debug macros that are conditionally compiled
- */
-#ifdef ACPI_DEBUG_OUTPUT
-
-/*
- * Common parameters used for debug output functions:
- * line number, function name, module(file) name, component ID
- */
-#define ACPI_DEBUG_PARAMETERS __LINE__, ACPI_GET_FUNCTION_NAME, _AcpiModuleName, _COMPONENT
-
-/*
- * Function entry tracing
- */
-
-/*
- * If ACPI_GET_FUNCTION_NAME was not defined in the compiler-dependent header,
- * define it now. This is the case where there the compiler does not support
- * a __FUNCTION__ macro or equivalent. We save the function name on the
- * local stack.
- */
-#ifndef ACPI_GET_FUNCTION_NAME
-#define ACPI_GET_FUNCTION_NAME _AcpiFunctionName
-/*
- * The Name parameter should be the procedure name as a quoted string.
- * This is declared as a local string ("MyFunctionName") so that it can
- * be also used by the function exit macros below.
- * Note: (const char) is used to be compatible with the debug interfaces
- * and macros such as __FUNCTION__.
- */
-#define ACPI_FUNCTION_NAME(Name) const char *_AcpiFunctionName = #Name;
-
-#else
-/* Compiler supports __FUNCTION__ (or equivalent) -- Ignore this macro */
-
-#define ACPI_FUNCTION_NAME(Name)
-#endif
-
-#define ACPI_FUNCTION_TRACE(a) ACPI_FUNCTION_NAME(a) \
- AcpiUtTrace(ACPI_DEBUG_PARAMETERS)
-#define ACPI_FUNCTION_TRACE_PTR(a,b) ACPI_FUNCTION_NAME(a) \
- AcpiUtTracePtr(ACPI_DEBUG_PARAMETERS,(void *)b)
-#define ACPI_FUNCTION_TRACE_U32(a,b) ACPI_FUNCTION_NAME(a) \
- AcpiUtTraceU32(ACPI_DEBUG_PARAMETERS,(UINT32)b)
-#define ACPI_FUNCTION_TRACE_STR(a,b) ACPI_FUNCTION_NAME(a) \
- AcpiUtTraceStr(ACPI_DEBUG_PARAMETERS,(char *)b)
-
-#define ACPI_FUNCTION_ENTRY() AcpiUtTrackStackPtr()
-
-/*
- * Function exit tracing.
- * WARNING: These macros include a return statement. This is usually considered
- * bad form, but having a separate exit macro is very ugly and difficult to maintain.
- * One of the FUNCTION_TRACE macros above must be used in conjunction with these macros
- * so that "_AcpiFunctionName" is defined.
- *
- * Note: the DO_WHILE0 macro is used to prevent some compilers from complaining
- * about these constructs.
- */
-#ifdef ACPI_USE_DO_WHILE_0
-#define ACPI_DO_WHILE0(a) do a while(0)
-#else
-#define ACPI_DO_WHILE0(a) a
-#endif
-
-#define return_VOID ACPI_DO_WHILE0 ({ \
- AcpiUtExit (ACPI_DEBUG_PARAMETERS); \
- return;})
-/*
- * There are two versions of most of the return macros. The default version is
- * safer, since it avoids side-effects by guaranteeing that the argument will
- * not be evaluated twice.
- *
- * A less-safe version of the macros is provided for optional use if the
- * compiler uses excessive CPU stack (for example, this may happen in the
- * debug case if code optimzation is disabled.)
- */
-#ifndef ACPI_SIMPLE_RETURN_MACROS
-
-#define return_ACPI_STATUS(s) ACPI_DO_WHILE0 ({ \
- register ACPI_STATUS _s = (s); \
- AcpiUtStatusExit (ACPI_DEBUG_PARAMETERS, _s); \
- return (_s); })
-#define return_PTR(s) ACPI_DO_WHILE0 ({ \
- register void *_s = (void *) (s); \
- AcpiUtPtrExit (ACPI_DEBUG_PARAMETERS, (UINT8 *) _s); \
- return (_s); })
-#define return_VALUE(s) ACPI_DO_WHILE0 ({ \
- register ACPI_INTEGER _s = (s); \
- AcpiUtValueExit (ACPI_DEBUG_PARAMETERS, _s); \
- return (_s); })
-#define return_UINT8(s) ACPI_DO_WHILE0 ({ \
- register UINT8 _s = (UINT8) (s); \
- AcpiUtValueExit (ACPI_DEBUG_PARAMETERS, (ACPI_INTEGER) _s); \
- return (_s); })
-#define return_UINT32(s) ACPI_DO_WHILE0 ({ \
- register UINT32 _s = (UINT32) (s); \
- AcpiUtValueExit (ACPI_DEBUG_PARAMETERS, (ACPI_INTEGER) _s); \
- return (_s); })
-#else /* Use original less-safe macros */
-
-#define return_ACPI_STATUS(s) ACPI_DO_WHILE0 ({ \
- AcpiUtStatusExit (ACPI_DEBUG_PARAMETERS, (s)); \
- return((s)); })
-#define return_PTR(s) ACPI_DO_WHILE0 ({ \
- AcpiUtPtrExit (ACPI_DEBUG_PARAMETERS, (UINT8 *) (s)); \
- return((s)); })
-#define return_VALUE(s) ACPI_DO_WHILE0 ({ \
- AcpiUtValueExit (ACPI_DEBUG_PARAMETERS, (ACPI_INTEGER) (s)); \
- return((s)); })
-#define return_UINT8(s) return_VALUE(s)
-#define return_UINT32(s) return_VALUE(s)
-
-#endif /* ACPI_SIMPLE_RETURN_MACROS */
-
-
-/* Conditional execution */
-
-#define ACPI_DEBUG_EXEC(a) a
-#define ACPI_NORMAL_EXEC(a)
-
-#define ACPI_DEBUG_DEFINE(a) a;
-#define ACPI_DEBUG_ONLY_MEMBERS(a) a;
-#define _VERBOSE_STRUCTURES
-
-
-/* Stack and buffer dumping */
-
-#define ACPI_DUMP_STACK_ENTRY(a) AcpiExDumpOperand((a),0)
-#define ACPI_DUMP_OPERANDS(a,b,c,d,e) AcpiExDumpOperands(a,b,c,d,e,_AcpiModuleName,__LINE__)
-
-
-#define ACPI_DUMP_ENTRY(a,b) AcpiNsDumpEntry (a,b)
-#define ACPI_DUMP_PATHNAME(a,b,c,d) AcpiNsDumpPathname(a,b,c,d)
-#define ACPI_DUMP_RESOURCE_LIST(a) AcpiRsDumpResourceList(a)
-#define ACPI_DUMP_BUFFER(a,b) AcpiUtDumpBuffer((UINT8 *)a,b,DB_BYTE_DISPLAY,_COMPONENT)
-
-/*
- * Master debug print macros
- * Print iff:
- * 1) Debug print for the current component is enabled
- * 2) Debug error level or trace level for the print statement is enabled
- */
-#define ACPI_DEBUG_PRINT(plist) AcpiUtDebugPrint plist
-#define ACPI_DEBUG_PRINT_RAW(plist) AcpiUtDebugPrintRaw plist
-
-
-#else
-/*
- * This is the non-debug case -- make everything go away,
- * leaving no executable debug code!
- */
-#define ACPI_DEBUG_EXEC(a)
-#define ACPI_NORMAL_EXEC(a) a;
-
-#define ACPI_DEBUG_DEFINE(a)
-#define ACPI_DEBUG_ONLY_MEMBERS(a)
-#define ACPI_FUNCTION_NAME(a)
-#define ACPI_FUNCTION_TRACE(a)
-#define ACPI_FUNCTION_TRACE_PTR(a,b)
-#define ACPI_FUNCTION_TRACE_U32(a,b)
-#define ACPI_FUNCTION_TRACE_STR(a,b)
-#define ACPI_FUNCTION_EXIT
-#define ACPI_FUNCTION_STATUS_EXIT(s)
-#define ACPI_FUNCTION_VALUE_EXIT(s)
-#define ACPI_FUNCTION_ENTRY()
-#define ACPI_DUMP_STACK_ENTRY(a)
-#define ACPI_DUMP_OPERANDS(a,b,c,d,e)
-#define ACPI_DUMP_ENTRY(a,b)
-#define ACPI_DUMP_TABLES(a,b)
-#define ACPI_DUMP_PATHNAME(a,b,c,d)
-#define ACPI_DUMP_RESOURCE_LIST(a)
-#define ACPI_DUMP_BUFFER(a,b)
-#define ACPI_DEBUG_PRINT(pl)
-#define ACPI_DEBUG_PRINT_RAW(pl)
-
-#define return_VOID return
-#define return_ACPI_STATUS(s) return(s)
-#define return_VALUE(s) return(s)
-#define return_UINT8(s) return(s)
-#define return_UINT32(s) return(s)
-#define return_PTR(s) return(s)
-
-#endif
-
-/*
- * 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_OUTPUT) is on, or not.
- */
-#ifdef ACPI_DEBUGGER
-#define ACPI_DEBUGGER_EXEC(a) a
-#else
-#define ACPI_DEBUGGER_EXEC(a)
-#endif
-
-
-#ifdef ACPI_DEBUG_OUTPUT
-/*
- * 1) Set name to blanks
- * 2) Copy the object name
- */
-#define ACPI_ADD_OBJECT_NAME(a,b) ACPI_MEMSET (a->Common.Name, ' ', sizeof (a->Common.Name));\
- ACPI_STRNCPY (a->Common.Name, AcpiGbl_NsTypeNames[b], sizeof (a->Common.Name))
-#else
-
-#define ACPI_ADD_OBJECT_NAME(a,b)
-#endif
-
-
-/*
- * Memory allocation tracking (DEBUG ONLY)
- */
-#ifndef ACPI_DBG_TRACK_ALLOCATIONS
-
-/* Memory allocation */
-
-#define ACPI_ALLOCATE(a) AcpiUtAllocate((ACPI_SIZE)(a),_COMPONENT,_AcpiModuleName,__LINE__)
-#define ACPI_ALLOCATE_ZEROED(a) AcpiUtAllocateZeroed((ACPI_SIZE)(a), _COMPONENT,_AcpiModuleName,__LINE__)
-#define ACPI_FREE(a) AcpiOsFree(a)
-#define ACPI_MEM_TRACKING(a)
-
-#else
-
-/* Memory allocation */
-
-#define ACPI_ALLOCATE(a) AcpiUtAllocateAndTrack((ACPI_SIZE)(a),_COMPONENT,_AcpiModuleName,__LINE__)
-#define ACPI_ALLOCATE_ZEROED(a) AcpiUtAllocateZeroedAndTrack((ACPI_SIZE)(a), _COMPONENT,_AcpiModuleName,__LINE__)
-#define ACPI_FREE(a) AcpiUtFreeAndTrack(a,_COMPONENT,_AcpiModuleName,__LINE__)
-#define ACPI_MEM_TRACKING(a) a
-
-#endif /* ACPI_DBG_TRACK_ALLOCATIONS */
-
-#endif /* ACMACROS_H */
diff --git a/sys/contrib/dev/acpica/acnames.h b/sys/contrib/dev/acpica/acnames.h
deleted file mode 100644
index 344a7cb..0000000
--- a/sys/contrib/dev/acpica/acnames.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/******************************************************************************
- *
- * Name: acnames.h - Global names and strings
- * $Revision: 1.7 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACNAMES_H__
-#define __ACNAMES_H__
-
-/* Method names - these methods can appear anywhere in the namespace */
-
-#define METHOD_NAME__HID "_HID"
-#define METHOD_NAME__CID "_CID"
-#define METHOD_NAME__UID "_UID"
-#define METHOD_NAME__ADR "_ADR"
-#define METHOD_NAME__INI "_INI"
-#define METHOD_NAME__STA "_STA"
-#define METHOD_NAME__REG "_REG"
-#define METHOD_NAME__SEG "_SEG"
-#define METHOD_NAME__BBN "_BBN"
-#define METHOD_NAME__PRT "_PRT"
-#define METHOD_NAME__CRS "_CRS"
-#define METHOD_NAME__PRS "_PRS"
-#define METHOD_NAME__PRW "_PRW"
-#define METHOD_NAME__SRS "_SRS"
-
-/* Method names - these methods must appear at the namespace root */
-
-#define METHOD_NAME__BFS "\\_BFS"
-#define METHOD_NAME__GTS "\\_GTS"
-#define METHOD_NAME__PTS "\\_PTS"
-#define METHOD_NAME__SST "\\_SI._SST"
-#define METHOD_NAME__WAK "\\_WAK"
-
-/* Definitions of the predefined namespace names */
-
-#define ACPI_UNKNOWN_NAME (UINT32) 0x3F3F3F3F /* Unknown name is "????" */
-#define ACPI_ROOT_NAME (UINT32) 0x5F5F5F5C /* Root name is "\___" */
-
-#define ACPI_PREFIX_MIXED (UINT32) 0x69706341 /* "Acpi" */
-#define ACPI_PREFIX_LOWER (UINT32) 0x69706361 /* "acpi" */
-
-#define ACPI_NS_ROOT_PATH "\\"
-#define ACPI_NS_SYSTEM_BUS "_SB_"
-
-#endif /* __ACNAMES_H__ */
-
-
diff --git a/sys/contrib/dev/acpica/acnamesp.h b/sys/contrib/dev/acpica/acnamesp.h
deleted file mode 100644
index 8d07fb3..0000000
--- a/sys/contrib/dev/acpica/acnamesp.h
+++ /dev/null
@@ -1,493 +0,0 @@
-/******************************************************************************
- *
- * Name: acnamesp.h - Namespace subcomponent prototypes and defines
- * $Revision: 1.152 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACNAMESP_H__
-#define __ACNAMESP_H__
-
-
-/* To search the entire name space, pass this as SearchBase */
-
-#define ACPI_NS_ALL ((ACPI_HANDLE)0)
-
-/*
- * Elements of AcpiNsProperties are bit significant
- * and should be one-to-one with values of ACPI_OBJECT_TYPE
- */
-#define ACPI_NS_NORMAL 0
-#define ACPI_NS_NEWSCOPE 1 /* a definition of this type opens a name scope */
-#define ACPI_NS_LOCAL 2 /* suppress search of enclosing scopes */
-
-/* Flags for AcpiNsLookup, AcpiNsSearchAndEnter */
-
-#define ACPI_NS_NO_UPSEARCH 0
-#define ACPI_NS_SEARCH_PARENT 0x01
-#define ACPI_NS_DONT_OPEN_SCOPE 0x02
-#define ACPI_NS_NO_PEER_SEARCH 0x04
-#define ACPI_NS_ERROR_IF_FOUND 0x08
-#define ACPI_NS_PREFIX_IS_SCOPE 0x10
-#define ACPI_NS_EXTERNAL 0x20
-#define ACPI_NS_TEMPORARY 0x40
-
-/* Flags for AcpiNsWalkNamespace */
-
-#define ACPI_NS_WALK_NO_UNLOCK 0
-#define ACPI_NS_WALK_UNLOCK 0x01
-#define ACPI_NS_WALK_TEMP_NODES 0x02
-
-
-/*
- * nsinit - Namespace initialization
- */
-ACPI_STATUS
-AcpiNsInitializeObjects (
- void);
-
-ACPI_STATUS
-AcpiNsInitializeDevices (
- void);
-
-
-/*
- * nsload - Namespace loading
- */
-ACPI_STATUS
-AcpiNsLoadNamespace (
- void);
-
-ACPI_STATUS
-AcpiNsLoadTable (
- ACPI_NATIVE_UINT TableIndex,
- ACPI_NAMESPACE_NODE *Node);
-
-
-/*
- * nswalk - walk the namespace
- */
-ACPI_STATUS
-AcpiNsWalkNamespace (
- ACPI_OBJECT_TYPE Type,
- ACPI_HANDLE StartObject,
- UINT32 MaxDepth,
- UINT32 Flags,
- ACPI_WALK_CALLBACK UserFunction,
- void *Context,
- void **ReturnValue);
-
-ACPI_NAMESPACE_NODE *
-AcpiNsGetNextNode (
- ACPI_OBJECT_TYPE Type,
- ACPI_NAMESPACE_NODE *Parent,
- ACPI_NAMESPACE_NODE *Child);
-
-
-/*
- * nsparse - table parsing
- */
-ACPI_STATUS
-AcpiNsParseTable (
- ACPI_NATIVE_UINT TableIndex,
- ACPI_NAMESPACE_NODE *StartNode);
-
-ACPI_STATUS
-AcpiNsOneCompleteParse (
- ACPI_NATIVE_UINT PassNumber,
- ACPI_NATIVE_UINT TableIndex);
-
-
-/*
- * nsaccess - Top-level namespace access
- */
-ACPI_STATUS
-AcpiNsRootInitialize (
- void);
-
-ACPI_STATUS
-AcpiNsLookup (
- ACPI_GENERIC_STATE *ScopeInfo,
- char *Name,
- ACPI_OBJECT_TYPE Type,
- ACPI_INTERPRETER_MODE InterpreterMode,
- UINT32 Flags,
- ACPI_WALK_STATE *WalkState,
- ACPI_NAMESPACE_NODE **RetNode);
-
-
-/*
- * nsalloc - Named object allocation/deallocation
- */
-ACPI_NAMESPACE_NODE *
-AcpiNsCreateNode (
- UINT32 Name);
-
-void
-AcpiNsDeleteNode (
- ACPI_NAMESPACE_NODE *Node);
-
-void
-AcpiNsDeleteNamespaceSubtree (
- ACPI_NAMESPACE_NODE *ParentHandle);
-
-void
-AcpiNsDeleteNamespaceByOwner (
- ACPI_OWNER_ID OwnerId);
-
-void
-AcpiNsDetachObject (
- ACPI_NAMESPACE_NODE *Node);
-
-void
-AcpiNsDeleteChildren (
- ACPI_NAMESPACE_NODE *Parent);
-
-int
-AcpiNsCompareNames (
- char *Name1,
- char *Name2);
-
-
-/*
- * nsdump - Namespace dump/print utilities
- */
-void
-AcpiNsDumpTables (
- ACPI_HANDLE SearchBase,
- UINT32 MaxDepth);
-
-void
-AcpiNsDumpEntry (
- ACPI_HANDLE Handle,
- UINT32 DebugLevel);
-
-void
-AcpiNsDumpPathname (
- ACPI_HANDLE Handle,
- char *Msg,
- UINT32 Level,
- UINT32 Component);
-
-void
-AcpiNsPrintPathname (
- UINT32 NumSegments,
- char *Pathname);
-
-ACPI_STATUS
-AcpiNsDumpOneObject (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *Context,
- void **ReturnValue);
-
-void
-AcpiNsDumpObjects (
- ACPI_OBJECT_TYPE Type,
- UINT8 DisplayType,
- UINT32 MaxDepth,
- ACPI_OWNER_ID OwnerId,
- ACPI_HANDLE StartHandle);
-
-
-/*
- * nseval - Namespace evaluation functions
- */
-ACPI_STATUS
-AcpiNsEvaluate (
- ACPI_EVALUATE_INFO *Info);
-
-
-/*
- * nsnames - Name and Scope manipulation
- */
-UINT32
-AcpiNsOpensScope (
- ACPI_OBJECT_TYPE Type);
-
-void
-AcpiNsBuildExternalPath (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_SIZE Size,
- char *NameBuffer);
-
-char *
-AcpiNsGetExternalPathname (
- ACPI_NAMESPACE_NODE *Node);
-
-char *
-AcpiNsNameOfCurrentScope (
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiNsHandleToPathname (
- ACPI_HANDLE TargetHandle,
- ACPI_BUFFER *Buffer);
-
-BOOLEAN
-AcpiNsPatternMatch (
- ACPI_NAMESPACE_NODE *ObjNode,
- char *SearchFor);
-
-ACPI_STATUS
-AcpiNsGetNode (
- ACPI_NAMESPACE_NODE *PrefixNode,
- char *ExternalPathname,
- UINT32 Flags,
- ACPI_NAMESPACE_NODE **OutNode);
-
-ACPI_SIZE
-AcpiNsGetPathnameLength (
- ACPI_NAMESPACE_NODE *Node);
-
-
-/*
- * nsobject - Object management for namespace nodes
- */
-ACPI_STATUS
-AcpiNsAttachObject (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_OPERAND_OBJECT *Object,
- ACPI_OBJECT_TYPE Type);
-
-ACPI_OPERAND_OBJECT *
-AcpiNsGetAttachedObject (
- ACPI_NAMESPACE_NODE *Node);
-
-ACPI_OPERAND_OBJECT *
-AcpiNsGetSecondaryObject (
- ACPI_OPERAND_OBJECT *ObjDesc);
-
-ACPI_STATUS
-AcpiNsAttachData (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_OBJECT_HANDLER Handler,
- void *Data);
-
-ACPI_STATUS
-AcpiNsDetachData (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_OBJECT_HANDLER Handler);
-
-ACPI_STATUS
-AcpiNsGetAttachedData (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_OBJECT_HANDLER Handler,
- void **Data);
-
-
-/*
- * nssearch - Namespace searching and entry
- */
-ACPI_STATUS
-AcpiNsSearchAndEnter (
- UINT32 EntryName,
- ACPI_WALK_STATE *WalkState,
- ACPI_NAMESPACE_NODE *Node,
- ACPI_INTERPRETER_MODE InterpreterMode,
- ACPI_OBJECT_TYPE Type,
- UINT32 Flags,
- ACPI_NAMESPACE_NODE **RetNode);
-
-ACPI_STATUS
-AcpiNsSearchOneScope (
- UINT32 EntryName,
- ACPI_NAMESPACE_NODE *Node,
- ACPI_OBJECT_TYPE Type,
- ACPI_NAMESPACE_NODE **RetNode);
-
-void
-AcpiNsInstallNode (
- ACPI_WALK_STATE *WalkState,
- ACPI_NAMESPACE_NODE *ParentNode,
- ACPI_NAMESPACE_NODE *Node,
- ACPI_OBJECT_TYPE Type);
-
-
-/*
- * nsutils - Utility functions
- */
-BOOLEAN
-AcpiNsValidRootPrefix (
- char Prefix);
-
-ACPI_OBJECT_TYPE
-AcpiNsGetType (
- ACPI_NAMESPACE_NODE *Node);
-
-UINT32
-AcpiNsLocal (
- ACPI_OBJECT_TYPE Type);
-
-void
-AcpiNsReportError (
- char *ModuleName,
- UINT32 LineNumber,
- char *InternalName,
- ACPI_STATUS LookupStatus);
-
-void
-AcpiNsReportMethodError (
- char *ModuleName,
- UINT32 LineNumber,
- char *Message,
- ACPI_NAMESPACE_NODE *Node,
- char *Path,
- ACPI_STATUS LookupStatus);
-
-void
-AcpiNsPrintNodePathname (
- ACPI_NAMESPACE_NODE *Node,
- char *Msg);
-
-ACPI_STATUS
-AcpiNsBuildInternalName (
- ACPI_NAMESTRING_INFO *Info);
-
-void
-AcpiNsGetInternalNameLength (
- ACPI_NAMESTRING_INFO *Info);
-
-ACPI_STATUS
-AcpiNsInternalizeName (
- char *DottedName,
- char **ConvertedName);
-
-ACPI_STATUS
-AcpiNsExternalizeName (
- UINT32 InternalNameLength,
- char *InternalName,
- UINT32 *ConvertedNameLength,
- char **ConvertedName);
-
-ACPI_NAMESPACE_NODE *
-AcpiNsMapHandleToNode (
- ACPI_HANDLE Handle);
-
-ACPI_HANDLE
-AcpiNsConvertEntryToHandle(
- ACPI_NAMESPACE_NODE *Node);
-
-void
-AcpiNsTerminate (
- void);
-
-ACPI_NAMESPACE_NODE *
-AcpiNsGetParentNode (
- ACPI_NAMESPACE_NODE *Node);
-
-
-ACPI_NAMESPACE_NODE *
-AcpiNsGetNextValidNode (
- ACPI_NAMESPACE_NODE *Node);
-
-#endif /* __ACNAMESP_H__ */
diff --git a/sys/contrib/dev/acpica/acobject.h b/sys/contrib/dev/acpica/acobject.h
deleted file mode 100644
index a9d27eb..0000000
--- a/sys/contrib/dev/acpica/acobject.h
+++ /dev/null
@@ -1,619 +0,0 @@
-
-/******************************************************************************
- *
- * Name: acobject.h - Definition of ACPI_OPERAND_OBJECT (Internal object only)
- * $Revision: 1.143 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 _ACOBJECT_H
-#define _ACOBJECT_H
-
-/* acpisrc:StructDefs -- for acpisrc conversion */
-
-
-/*
- * The ACPI_OPERAND_OBJECT is used to pass AML operands from the dispatcher
- * to the interpreter, and to keep track of the various handlers such as
- * address space handlers and notify handlers. The object is a constant
- * size in order to allow it to be cached and reused.
- *
- * Note: The object is optimized to be aligned and will not work if it is
- * byte-packed.
- */
-#if ACPI_MACHINE_WIDTH == 64
-#pragma pack(8)
-#else
-#pragma pack(4)
-#endif
-
-/*******************************************************************************
- *
- * Common Descriptors
- *
- ******************************************************************************/
-
-/*
- * Common area for all objects.
- *
- * DescriptorType is used to differentiate between internal descriptors, and
- * must be in the same place across all descriptors
- *
- * Note: The DescriptorType and Type fields must appear in the identical
- * position in both the ACPI_NAMESPACE_NODE and ACPI_OPERAND_OBJECT
- * structures.
- */
-#define ACPI_OBJECT_COMMON_HEADER \
- union acpi_operand_object *NextObject; /* Objects linked to parent NS node */\
- UINT8 DescriptorType; /* To differentiate various internal objs */\
- UINT8 Type; /* ACPI_OBJECT_TYPE */\
- UINT16 ReferenceCount; /* For object deletion management */\
- UINT8 Flags;
- /*
- * Note: There are 3 bytes available here before the
- * next natural alignment boundary (for both 32/64 cases)
- */
-
-/* Values for Flag byte above */
-
-#define AOPOBJ_AML_CONSTANT 0x01
-#define AOPOBJ_STATIC_POINTER 0x02
-#define AOPOBJ_DATA_VALID 0x04
-#define AOPOBJ_OBJECT_INITIALIZED 0x08
-#define AOPOBJ_SETUP_COMPLETE 0x10
-#define AOPOBJ_SINGLE_DATUM 0x20
-#define AOPOBJ_INVALID 0x40 /* Used if host OS won't allow an OpRegion address */
-
-
-/******************************************************************************
- *
- * Basic data types
- *
- *****************************************************************************/
-
-typedef struct acpi_object_common
-{
- ACPI_OBJECT_COMMON_HEADER
-
-} ACPI_OBJECT_COMMON;
-
-
-typedef struct acpi_object_integer
-{
- ACPI_OBJECT_COMMON_HEADER
- UINT8 Fill[3]; /* Prevent warning on some compilers */
- ACPI_INTEGER Value;
-
-} ACPI_OBJECT_INTEGER;
-
-
-/*
- * Note: The String and Buffer object must be identical through the Pointer
- * and length elements. There is code that depends on this.
- *
- * Fields common to both Strings and Buffers
- */
-#define ACPI_COMMON_BUFFER_INFO(_Type) \
- _Type *Pointer; \
- UINT32 Length;
-
-
-typedef struct acpi_object_string /* Null terminated, ASCII characters only */
-{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_COMMON_BUFFER_INFO (char) /* String in AML stream or allocated string */
-
-} ACPI_OBJECT_STRING;
-
-
-typedef struct acpi_object_buffer
-{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_COMMON_BUFFER_INFO (UINT8) /* Buffer in AML stream or allocated buffer */
- UINT32 AmlLength;
- UINT8 *AmlStart;
- ACPI_NAMESPACE_NODE *Node; /* Link back to parent node */
-
-} ACPI_OBJECT_BUFFER;
-
-
-typedef struct acpi_object_package
-{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_NAMESPACE_NODE *Node; /* Link back to parent node */
- union acpi_operand_object **Elements; /* Array of pointers to AcpiObjects */
- UINT8 *AmlStart;
- UINT32 AmlLength;
- UINT32 Count; /* # of elements in package */
-
-} ACPI_OBJECT_PACKAGE;
-
-
-/******************************************************************************
- *
- * Complex data types
- *
- *****************************************************************************/
-
-typedef struct acpi_object_event
-{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_SEMAPHORE OsSemaphore; /* Actual OS synchronization object */
-
-} ACPI_OBJECT_EVENT;
-
-
-typedef struct acpi_object_mutex
-{
- ACPI_OBJECT_COMMON_HEADER
- UINT8 SyncLevel; /* 0-15, specified in Mutex() call */
- UINT16 AcquisitionDepth; /* Allow multiple Acquires, same thread */
- ACPI_MUTEX OsMutex; /* Actual OS synchronization object */
- ACPI_THREAD_ID ThreadId; /* Current owner of the mutex */
- struct acpi_thread_state *OwnerThread; /* Current owner of the mutex */
- union acpi_operand_object *Prev; /* Link for list of acquired mutexes */
- union acpi_operand_object *Next; /* Link for list of acquired mutexes */
- ACPI_NAMESPACE_NODE *Node; /* Containing namespace node */
- UINT8 OriginalSyncLevel; /* Owner's original sync level (0-15) */
-
-} ACPI_OBJECT_MUTEX;
-
-
-typedef struct acpi_object_region
-{
- ACPI_OBJECT_COMMON_HEADER
- UINT8 SpaceId;
- ACPI_NAMESPACE_NODE *Node; /* Containing namespace node */
- union acpi_operand_object *Handler; /* Handler for region access */
- union acpi_operand_object *Next;
- ACPI_PHYSICAL_ADDRESS Address;
- UINT32 Length;
-
-} ACPI_OBJECT_REGION;
-
-
-typedef struct acpi_object_method
-{
- ACPI_OBJECT_COMMON_HEADER
- UINT8 MethodFlags;
- UINT8 ParamCount;
- UINT8 SyncLevel;
- union acpi_operand_object *Mutex;
- UINT8 *AmlStart;
- ACPI_INTERNAL_METHOD Implementation;
- UINT32 AmlLength;
- UINT8 ThreadCount;
- ACPI_OWNER_ID OwnerId;
-
-} ACPI_OBJECT_METHOD;
-
-
-/******************************************************************************
- *
- * Objects that can be notified. All share a common NotifyInfo area.
- *
- *****************************************************************************/
-
-/*
- * Common fields for objects that support ASL notifications
- */
-#define ACPI_COMMON_NOTIFY_INFO \
- union acpi_operand_object *SystemNotify; /* Handler for system notifies */\
- union acpi_operand_object *DeviceNotify; /* Handler for driver notifies */\
- union acpi_operand_object *Handler; /* Handler for Address space */
-
-
-typedef struct acpi_object_notify_common /* COMMON NOTIFY for POWER, PROCESSOR, DEVICE, and THERMAL */
-{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_COMMON_NOTIFY_INFO
-
-} ACPI_OBJECT_NOTIFY_COMMON;
-
-
-typedef struct acpi_object_device
-{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_COMMON_NOTIFY_INFO
- ACPI_GPE_BLOCK_INFO *GpeBlock;
-
-} ACPI_OBJECT_DEVICE;
-
-
-typedef struct acpi_object_power_resource
-{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_COMMON_NOTIFY_INFO
- UINT32 SystemLevel;
- UINT32 ResourceOrder;
-
-} ACPI_OBJECT_POWER_RESOURCE;
-
-
-typedef struct acpi_object_processor
-{
- ACPI_OBJECT_COMMON_HEADER
-
- /* The next two fields take advantage of the 3-byte space before NOTIFY_INFO */
-
- UINT8 ProcId;
- UINT8 Length;
- ACPI_COMMON_NOTIFY_INFO
- ACPI_IO_ADDRESS Address;
-
-} ACPI_OBJECT_PROCESSOR;
-
-
-typedef struct acpi_object_thermal_zone
-{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_COMMON_NOTIFY_INFO
-
-} ACPI_OBJECT_THERMAL_ZONE;
-
-
-/******************************************************************************
- *
- * Fields. All share a common header/info field.
- *
- *****************************************************************************/
-
-/*
- * Common bitfield for the field objects
- * "Field Datum" -- a datum from the actual field object
- * "Buffer Datum" -- a datum from a user buffer, read from or to be written to the field
- */
-#define ACPI_COMMON_FIELD_INFO \
- UINT8 FieldFlags; /* Access, update, and lock bits */\
- UINT8 Attribute; /* From AccessAs keyword */\
- UINT8 AccessByteWidth; /* Read/Write size in bytes */\
- ACPI_NAMESPACE_NODE *Node; /* Link back to parent node */\
- UINT32 BitLength; /* Length of field in bits */\
- UINT32 BaseByteOffset; /* Byte offset within containing object */\
- UINT32 Value; /* Value to store into the Bank or Index register */\
- UINT8 StartFieldBitOffset;/* Bit offset within first field datum (0-63) */\
- UINT8 AccessBitWidth; /* Read/Write size in bits (8-64) */
-
-
-typedef struct acpi_object_field_common /* COMMON FIELD (for BUFFER, REGION, BANK, and INDEX fields) */
-{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_COMMON_FIELD_INFO
- union acpi_operand_object *RegionObj; /* Parent Operation Region object (REGION/BANK fields only) */
-
-} ACPI_OBJECT_FIELD_COMMON;
-
-
-typedef struct acpi_object_region_field
-{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_COMMON_FIELD_INFO
- union acpi_operand_object *RegionObj; /* Containing OpRegion object */
-
-} ACPI_OBJECT_REGION_FIELD;
-
-
-typedef struct acpi_object_bank_field
-{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_COMMON_FIELD_INFO
- union acpi_operand_object *RegionObj; /* Containing OpRegion object */
- union acpi_operand_object *BankObj; /* BankSelect Register object */
-
-} ACPI_OBJECT_BANK_FIELD;
-
-
-typedef struct acpi_object_index_field
-{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_COMMON_FIELD_INFO
-
- /*
- * No "RegionObj" pointer needed since the Index and Data registers
- * are each field definitions unto themselves.
- */
- union acpi_operand_object *IndexObj; /* Index register */
- union acpi_operand_object *DataObj; /* Data register */
-
-} ACPI_OBJECT_INDEX_FIELD;
-
-
-/* The BufferField is different in that it is part of a Buffer, not an OpRegion */
-
-typedef struct acpi_object_buffer_field
-{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_COMMON_FIELD_INFO
- union acpi_operand_object *BufferObj; /* Containing Buffer object */
-
-} ACPI_OBJECT_BUFFER_FIELD;
-
-
-/******************************************************************************
- *
- * Objects for handlers
- *
- *****************************************************************************/
-
-typedef struct acpi_object_notify_handler
-{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_NAMESPACE_NODE *Node; /* Parent device */
- ACPI_NOTIFY_HANDLER Handler;
- void *Context;
-
-} ACPI_OBJECT_NOTIFY_HANDLER;
-
-
-typedef struct acpi_object_addr_handler
-{
- ACPI_OBJECT_COMMON_HEADER
- UINT8 SpaceId;
- UINT8 HandlerFlags;
- ACPI_ADR_SPACE_HANDLER Handler;
- ACPI_NAMESPACE_NODE *Node; /* Parent device */
- void *Context;
- ACPI_ADR_SPACE_SETUP Setup;
- union acpi_operand_object *RegionList; /* regions using this handler */
- union acpi_operand_object *Next;
-
-} ACPI_OBJECT_ADDR_HANDLER;
-
-/* Flags for address handler (HandlerFlags) */
-
-#define ACPI_ADDR_HANDLER_DEFAULT_INSTALLED 0x01
-
-
-/******************************************************************************
- *
- * Special internal objects
- *
- *****************************************************************************/
-
-/*
- * The Reference object type is used for these opcodes:
- * Arg[0-6], Local[0-7], IndexOp, NameOp, ZeroOp, OneOp, OnesOp, DebugOp
- */
-typedef struct acpi_object_reference
-{
- ACPI_OBJECT_COMMON_HEADER
- UINT8 TargetType; /* Used for IndexOp */
- UINT16 Opcode;
- void *Object; /* NameOp=>HANDLE to obj, IndexOp=>ACPI_OPERAND_OBJECT */
- ACPI_NAMESPACE_NODE *Node;
- union acpi_operand_object **Where;
- UINT32 Offset; /* Used for ArgOp, LocalOp, and IndexOp */
-
-} ACPI_OBJECT_REFERENCE;
-
-
-/*
- * Extra object is used as additional storage for types that
- * have AML code in their declarations (TermArgs) that must be
- * evaluated at run time.
- *
- * Currently: Region and FieldUnit types
- */
-typedef struct acpi_object_extra
-{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_NAMESPACE_NODE *Method_REG; /* _REG method for this region (if any) */
- void *RegionContext; /* Region-specific data */
- UINT8 *AmlStart;
- UINT32 AmlLength;
-
-} ACPI_OBJECT_EXTRA;
-
-
-/* Additional data that can be attached to namespace nodes */
-
-typedef struct acpi_object_data
-{
- ACPI_OBJECT_COMMON_HEADER
- ACPI_OBJECT_HANDLER Handler;
- void *Pointer;
-
-} ACPI_OBJECT_DATA;
-
-
-/* Structure used when objects are cached for reuse */
-
-typedef struct acpi_object_cache_list
-{
- ACPI_OBJECT_COMMON_HEADER
- union acpi_operand_object *Next; /* Link for object cache and internal lists*/
-
-} ACPI_OBJECT_CACHE_LIST;
-
-
-/******************************************************************************
- *
- * ACPI_OPERAND_OBJECT Descriptor - a giant union of all of the above
- *
- *****************************************************************************/
-
-typedef union acpi_operand_object
-{
- ACPI_OBJECT_COMMON Common;
- ACPI_OBJECT_INTEGER Integer;
- ACPI_OBJECT_STRING String;
- ACPI_OBJECT_BUFFER Buffer;
- ACPI_OBJECT_PACKAGE Package;
- ACPI_OBJECT_EVENT Event;
- ACPI_OBJECT_METHOD Method;
- ACPI_OBJECT_MUTEX Mutex;
- ACPI_OBJECT_REGION Region;
- ACPI_OBJECT_NOTIFY_COMMON CommonNotify;
- ACPI_OBJECT_DEVICE Device;
- ACPI_OBJECT_POWER_RESOURCE PowerResource;
- ACPI_OBJECT_PROCESSOR Processor;
- ACPI_OBJECT_THERMAL_ZONE ThermalZone;
- ACPI_OBJECT_FIELD_COMMON CommonField;
- ACPI_OBJECT_REGION_FIELD Field;
- ACPI_OBJECT_BUFFER_FIELD BufferField;
- ACPI_OBJECT_BANK_FIELD BankField;
- ACPI_OBJECT_INDEX_FIELD IndexField;
- ACPI_OBJECT_NOTIFY_HANDLER Notify;
- ACPI_OBJECT_ADDR_HANDLER AddressSpace;
- ACPI_OBJECT_REFERENCE Reference;
- ACPI_OBJECT_EXTRA Extra;
- ACPI_OBJECT_DATA Data;
- ACPI_OBJECT_CACHE_LIST Cache;
-
-} ACPI_OPERAND_OBJECT;
-
-
-/******************************************************************************
- *
- * ACPI_DESCRIPTOR - objects that share a common descriptor identifier
- *
- *****************************************************************************/
-
-/* Object descriptor types */
-
-#define ACPI_DESC_TYPE_CACHED 0x01 /* Used only when object is cached */
-#define ACPI_DESC_TYPE_STATE 0x02
-#define ACPI_DESC_TYPE_STATE_UPDATE 0x03
-#define ACPI_DESC_TYPE_STATE_PACKAGE 0x04
-#define ACPI_DESC_TYPE_STATE_CONTROL 0x05
-#define ACPI_DESC_TYPE_STATE_RPSCOPE 0x06
-#define ACPI_DESC_TYPE_STATE_PSCOPE 0x07
-#define ACPI_DESC_TYPE_STATE_WSCOPE 0x08
-#define ACPI_DESC_TYPE_STATE_RESULT 0x09
-#define ACPI_DESC_TYPE_STATE_NOTIFY 0x0A
-#define ACPI_DESC_TYPE_STATE_THREAD 0x0B
-#define ACPI_DESC_TYPE_WALK 0x0C
-#define ACPI_DESC_TYPE_PARSER 0x0D
-#define ACPI_DESC_TYPE_OPERAND 0x0E
-#define ACPI_DESC_TYPE_NAMED 0x0F
-#define ACPI_DESC_TYPE_MAX 0x0F
-
-
-typedef struct acpi_common_descriptor
-{
- void *CommonPointer;
- UINT8 DescriptorType; /* To differentiate various internal objs */
-
-} ACPI_COMMON_DESCRIPTOR;
-
-typedef union acpi_descriptor
-{
- ACPI_COMMON_DESCRIPTOR Common;
- ACPI_OPERAND_OBJECT Object;
- ACPI_NAMESPACE_NODE Node;
- ACPI_PARSE_OBJECT Op;
-
-} ACPI_DESCRIPTOR;
-
-#pragma pack()
-
-#endif /* _ACOBJECT_H */
diff --git a/sys/contrib/dev/acpica/acopcode.h b/sys/contrib/dev/acpica/acopcode.h
deleted file mode 100644
index 557fa57..0000000
--- a/sys/contrib/dev/acpica/acopcode.h
+++ /dev/null
@@ -1,398 +0,0 @@
-/******************************************************************************
- *
- * Name: acopcode.h - AML opcode information for the AML parser and interpreter
- * $Revision: 1.7 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACOPCODE_H__
-#define __ACOPCODE_H__
-
-#define MAX_EXTENDED_OPCODE 0x88
-#define NUM_EXTENDED_OPCODE (MAX_EXTENDED_OPCODE + 1)
-#define MAX_INTERNAL_OPCODE
-#define NUM_INTERNAL_OPCODE (MAX_INTERNAL_OPCODE + 1)
-
-/* Used for non-assigned opcodes */
-
-#define _UNK 0x6B
-
-/*
- * Reserved ASCII characters. Do not use any of these for
- * internal opcodes, since they are used to differentiate
- * name strings from AML opcodes
- */
-#define _ASC 0x6C
-#define _NAM 0x6C
-#define _PFX 0x6D
-
-
-/*
- * All AML opcodes and the parse-time arguments for each. Used by the AML
- * parser Each list is compressed into a 32-bit number and stored in the
- * master opcode table (in psopcode.c).
- */
-#define ARGP_ACCESSFIELD_OP ARGP_LIST1 (ARGP_NAMESTRING)
-#define ARGP_ACQUIRE_OP ARGP_LIST2 (ARGP_SUPERNAME, ARGP_WORDDATA)
-#define ARGP_ADD_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_ALIAS_OP ARGP_LIST2 (ARGP_NAMESTRING, ARGP_NAME)
-#define ARGP_ARG0 ARG_NONE
-#define ARGP_ARG1 ARG_NONE
-#define ARGP_ARG2 ARG_NONE
-#define ARGP_ARG3 ARG_NONE
-#define ARGP_ARG4 ARG_NONE
-#define ARGP_ARG5 ARG_NONE
-#define ARGP_ARG6 ARG_NONE
-#define ARGP_BANK_FIELD_OP ARGP_LIST6 (ARGP_PKGLENGTH, ARGP_NAMESTRING, ARGP_NAMESTRING,ARGP_TERMARG, ARGP_BYTEDATA, ARGP_FIELDLIST)
-#define ARGP_BIT_AND_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_BIT_NAND_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_BIT_NOR_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_BIT_NOT_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_BIT_OR_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_BIT_XOR_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_BREAK_OP ARG_NONE
-#define ARGP_BREAK_POINT_OP ARG_NONE
-#define ARGP_BUFFER_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_TERMARG, ARGP_BYTELIST)
-#define ARGP_BYTE_OP ARGP_LIST1 (ARGP_BYTEDATA)
-#define ARGP_BYTELIST_OP ARGP_LIST1 (ARGP_NAMESTRING)
-#define ARGP_CONCAT_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_CONCAT_RES_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_COND_REF_OF_OP ARGP_LIST2 (ARGP_SUPERNAME, ARGP_SUPERNAME)
-#define ARGP_CONTINUE_OP ARG_NONE
-#define ARGP_COPY_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_SIMPLENAME)
-#define ARGP_CREATE_BIT_FIELD_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_NAME)
-#define ARGP_CREATE_BYTE_FIELD_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_NAME)
-#define ARGP_CREATE_DWORD_FIELD_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_NAME)
-#define ARGP_CREATE_FIELD_OP ARGP_LIST4 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TERMARG, ARGP_NAME)
-#define ARGP_CREATE_QWORD_FIELD_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_NAME)
-#define ARGP_CREATE_WORD_FIELD_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_NAME)
-#define ARGP_DATA_REGION_OP ARGP_LIST4 (ARGP_NAME, ARGP_TERMARG, ARGP_TERMARG, ARGP_TERMARG)
-#define ARGP_DEBUG_OP ARG_NONE
-#define ARGP_DECREMENT_OP ARGP_LIST1 (ARGP_SUPERNAME)
-#define ARGP_DEREF_OF_OP ARGP_LIST1 (ARGP_TERMARG)
-#define ARGP_DEVICE_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_NAME, ARGP_OBJLIST)
-#define ARGP_DIVIDE_OP ARGP_LIST4 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET, ARGP_TARGET)
-#define ARGP_DWORD_OP ARGP_LIST1 (ARGP_DWORDDATA)
-#define ARGP_ELSE_OP ARGP_LIST2 (ARGP_PKGLENGTH, ARGP_TERMLIST)
-#define ARGP_EVENT_OP ARGP_LIST1 (ARGP_NAME)
-#define ARGP_FATAL_OP ARGP_LIST3 (ARGP_BYTEDATA, ARGP_DWORDDATA, ARGP_TERMARG)
-#define ARGP_FIELD_OP ARGP_LIST4 (ARGP_PKGLENGTH, ARGP_NAMESTRING, ARGP_BYTEDATA, ARGP_FIELDLIST)
-#define ARGP_FIND_SET_LEFT_BIT_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_FIND_SET_RIGHT_BIT_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_FROM_BCD_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_IF_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_TERMARG, ARGP_TERMLIST)
-#define ARGP_INCREMENT_OP ARGP_LIST1 (ARGP_SUPERNAME)
-#define ARGP_INDEX_FIELD_OP ARGP_LIST5 (ARGP_PKGLENGTH, ARGP_NAMESTRING, ARGP_NAMESTRING,ARGP_BYTEDATA, ARGP_FIELDLIST)
-#define ARGP_INDEX_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_LAND_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TERMARG)
-#define ARGP_LEQUAL_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TERMARG)
-#define ARGP_LGREATER_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TERMARG)
-#define ARGP_LGREATEREQUAL_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TERMARG)
-#define ARGP_LLESS_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TERMARG)
-#define ARGP_LLESSEQUAL_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TERMARG)
-#define ARGP_LNOT_OP ARGP_LIST1 (ARGP_TERMARG)
-#define ARGP_LNOTEQUAL_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TERMARG)
-#define ARGP_LOAD_OP ARGP_LIST2 (ARGP_NAMESTRING, ARGP_SUPERNAME)
-#define ARGP_LOAD_TABLE_OP ARGP_LIST6 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TERMARG, ARGP_TERMARG, ARGP_TERMARG, ARGP_TERMARG)
-#define ARGP_LOCAL0 ARG_NONE
-#define ARGP_LOCAL1 ARG_NONE
-#define ARGP_LOCAL2 ARG_NONE
-#define ARGP_LOCAL3 ARG_NONE
-#define ARGP_LOCAL4 ARG_NONE
-#define ARGP_LOCAL5 ARG_NONE
-#define ARGP_LOCAL6 ARG_NONE
-#define ARGP_LOCAL7 ARG_NONE
-#define ARGP_LOR_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TERMARG)
-#define ARGP_MATCH_OP ARGP_LIST6 (ARGP_TERMARG, ARGP_BYTEDATA, ARGP_TERMARG, ARGP_BYTEDATA, ARGP_TERMARG, ARGP_TERMARG)
-#define ARGP_METHOD_OP ARGP_LIST4 (ARGP_PKGLENGTH, ARGP_NAME, ARGP_BYTEDATA, ARGP_TERMLIST)
-#define ARGP_METHODCALL_OP ARGP_LIST1 (ARGP_NAMESTRING)
-#define ARGP_MID_OP ARGP_LIST4 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_MOD_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_MULTIPLY_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_MUTEX_OP ARGP_LIST2 (ARGP_NAME, ARGP_BYTEDATA)
-#define ARGP_NAME_OP ARGP_LIST2 (ARGP_NAME, ARGP_DATAOBJ)
-#define ARGP_NAMEDFIELD_OP ARGP_LIST1 (ARGP_NAMESTRING)
-#define ARGP_NAMEPATH_OP ARGP_LIST1 (ARGP_NAMESTRING)
-#define ARGP_NOOP_OP ARG_NONE
-#define ARGP_NOTIFY_OP ARGP_LIST2 (ARGP_SUPERNAME, ARGP_TERMARG)
-#define ARGP_ONE_OP ARG_NONE
-#define ARGP_ONES_OP ARG_NONE
-#define ARGP_PACKAGE_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_BYTEDATA, ARGP_DATAOBJLIST)
-#define ARGP_POWER_RES_OP ARGP_LIST5 (ARGP_PKGLENGTH, ARGP_NAME, ARGP_BYTEDATA, ARGP_WORDDATA, ARGP_OBJLIST)
-#define ARGP_PROCESSOR_OP ARGP_LIST6 (ARGP_PKGLENGTH, ARGP_NAME, ARGP_BYTEDATA, ARGP_DWORDDATA, ARGP_BYTEDATA, ARGP_OBJLIST)
-#define ARGP_QWORD_OP ARGP_LIST1 (ARGP_QWORDDATA)
-#define ARGP_REF_OF_OP ARGP_LIST1 (ARGP_SUPERNAME)
-#define ARGP_REGION_OP ARGP_LIST4 (ARGP_NAME, ARGP_BYTEDATA, ARGP_TERMARG, ARGP_TERMARG)
-#define ARGP_RELEASE_OP ARGP_LIST1 (ARGP_SUPERNAME)
-#define ARGP_RESERVEDFIELD_OP ARGP_LIST1 (ARGP_NAMESTRING)
-#define ARGP_RESET_OP ARGP_LIST1 (ARGP_SUPERNAME)
-#define ARGP_RETURN_OP ARGP_LIST1 (ARGP_TERMARG)
-#define ARGP_REVISION_OP ARG_NONE
-#define ARGP_SCOPE_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_NAME, ARGP_TERMLIST)
-#define ARGP_SHIFT_LEFT_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_SHIFT_RIGHT_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_SIGNAL_OP ARGP_LIST1 (ARGP_SUPERNAME)
-#define ARGP_SIZE_OF_OP ARGP_LIST1 (ARGP_SUPERNAME)
-#define ARGP_SLEEP_OP ARGP_LIST1 (ARGP_TERMARG)
-#define ARGP_STALL_OP ARGP_LIST1 (ARGP_TERMARG)
-#define ARGP_STATICSTRING_OP ARGP_LIST1 (ARGP_NAMESTRING)
-#define ARGP_STORE_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_SUPERNAME)
-#define ARGP_STRING_OP ARGP_LIST1 (ARGP_CHARLIST)
-#define ARGP_SUBTRACT_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_THERMAL_ZONE_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_NAME, ARGP_OBJLIST)
-#define ARGP_TIMER_OP ARG_NONE
-#define ARGP_TO_BCD_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_TO_BUFFER_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_TO_DEC_STR_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_TO_HEX_STR_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_TO_INTEGER_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_TO_STRING_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
-#define ARGP_TYPE_OP ARGP_LIST1 (ARGP_SUPERNAME)
-#define ARGP_UNLOAD_OP ARGP_LIST1 (ARGP_SUPERNAME)
-#define ARGP_VAR_PACKAGE_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_TERMARG, ARGP_DATAOBJLIST)
-#define ARGP_WAIT_OP ARGP_LIST2 (ARGP_SUPERNAME, ARGP_TERMARG)
-#define ARGP_WHILE_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_TERMARG, ARGP_TERMLIST)
-#define ARGP_WORD_OP ARGP_LIST1 (ARGP_WORDDATA)
-#define ARGP_ZERO_OP ARG_NONE
-
-
-/*
- * All AML opcodes and the runtime arguments for each. Used by the AML
- * interpreter Each list is compressed into a 32-bit number and stored
- * in the master opcode table (in psopcode.c).
- *
- * (Used by PrepOperands procedure and the ASL Compiler)
- */
-#define ARGI_ACCESSFIELD_OP ARGI_INVALID_OPCODE
-#define ARGI_ACQUIRE_OP ARGI_LIST2 (ARGI_MUTEX, ARGI_INTEGER)
-#define ARGI_ADD_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
-#define ARGI_ALIAS_OP ARGI_INVALID_OPCODE
-#define ARGI_ARG0 ARG_NONE
-#define ARGI_ARG1 ARG_NONE
-#define ARGI_ARG2 ARG_NONE
-#define ARGI_ARG3 ARG_NONE
-#define ARGI_ARG4 ARG_NONE
-#define ARGI_ARG5 ARG_NONE
-#define ARGI_ARG6 ARG_NONE
-#define ARGI_BANK_FIELD_OP ARGI_INVALID_OPCODE
-#define ARGI_BIT_AND_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
-#define ARGI_BIT_NAND_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
-#define ARGI_BIT_NOR_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
-#define ARGI_BIT_NOT_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_TARGETREF)
-#define ARGI_BIT_OR_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
-#define ARGI_BIT_XOR_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
-#define ARGI_BREAK_OP ARG_NONE
-#define ARGI_BREAK_POINT_OP ARG_NONE
-#define ARGI_BUFFER_OP ARGI_LIST1 (ARGI_INTEGER)
-#define ARGI_BYTE_OP ARGI_INVALID_OPCODE
-#define ARGI_BYTELIST_OP ARGI_INVALID_OPCODE
-#define ARGI_CONCAT_OP ARGI_LIST3 (ARGI_COMPUTEDATA,ARGI_COMPUTEDATA, ARGI_TARGETREF)
-#define ARGI_CONCAT_RES_OP ARGI_LIST3 (ARGI_BUFFER, ARGI_BUFFER, ARGI_TARGETREF)
-#define ARGI_COND_REF_OF_OP ARGI_LIST2 (ARGI_OBJECT_REF, ARGI_TARGETREF)
-#define ARGI_CONTINUE_OP ARGI_INVALID_OPCODE
-#define ARGI_COPY_OP ARGI_LIST2 (ARGI_ANYTYPE, ARGI_SIMPLE_TARGET)
-#define ARGI_CREATE_BIT_FIELD_OP ARGI_LIST3 (ARGI_BUFFER, ARGI_INTEGER, ARGI_REFERENCE)
-#define ARGI_CREATE_BYTE_FIELD_OP ARGI_LIST3 (ARGI_BUFFER, ARGI_INTEGER, ARGI_REFERENCE)
-#define ARGI_CREATE_DWORD_FIELD_OP ARGI_LIST3 (ARGI_BUFFER, ARGI_INTEGER, ARGI_REFERENCE)
-#define ARGI_CREATE_FIELD_OP ARGI_LIST4 (ARGI_BUFFER, ARGI_INTEGER, ARGI_INTEGER, ARGI_REFERENCE)
-#define ARGI_CREATE_QWORD_FIELD_OP ARGI_LIST3 (ARGI_BUFFER, ARGI_INTEGER, ARGI_REFERENCE)
-#define ARGI_CREATE_WORD_FIELD_OP ARGI_LIST3 (ARGI_BUFFER, ARGI_INTEGER, ARGI_REFERENCE)
-#define ARGI_DATA_REGION_OP ARGI_LIST3 (ARGI_STRING, ARGI_STRING, ARGI_STRING)
-#define ARGI_DEBUG_OP ARG_NONE
-#define ARGI_DECREMENT_OP ARGI_LIST1 (ARGI_INTEGER_REF)
-#define ARGI_DEREF_OF_OP ARGI_LIST1 (ARGI_REF_OR_STRING)
-#define ARGI_DEVICE_OP ARGI_INVALID_OPCODE
-#define ARGI_DIVIDE_OP ARGI_LIST4 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF, ARGI_TARGETREF)
-#define ARGI_DWORD_OP ARGI_INVALID_OPCODE
-#define ARGI_ELSE_OP ARGI_INVALID_OPCODE
-#define ARGI_EVENT_OP ARGI_INVALID_OPCODE
-#define ARGI_FATAL_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_INTEGER)
-#define ARGI_FIELD_OP ARGI_INVALID_OPCODE
-#define ARGI_FIND_SET_LEFT_BIT_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_TARGETREF)
-#define ARGI_FIND_SET_RIGHT_BIT_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_TARGETREF)
-#define ARGI_FROM_BCD_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_FIXED_TARGET)
-#define ARGI_IF_OP ARGI_INVALID_OPCODE
-#define ARGI_INCREMENT_OP ARGI_LIST1 (ARGI_INTEGER_REF)
-#define ARGI_INDEX_FIELD_OP ARGI_INVALID_OPCODE
-#define ARGI_INDEX_OP ARGI_LIST3 (ARGI_COMPLEXOBJ, ARGI_INTEGER, ARGI_TARGETREF)
-#define ARGI_LAND_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_INTEGER)
-#define ARGI_LEQUAL_OP ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_COMPUTEDATA)
-#define ARGI_LGREATER_OP ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_COMPUTEDATA)
-#define ARGI_LGREATEREQUAL_OP ARGI_INVALID_OPCODE
-#define ARGI_LLESS_OP ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_COMPUTEDATA)
-#define ARGI_LLESSEQUAL_OP ARGI_INVALID_OPCODE
-#define ARGI_LNOT_OP ARGI_LIST1 (ARGI_INTEGER)
-#define ARGI_LNOTEQUAL_OP ARGI_INVALID_OPCODE
-#define ARGI_LOAD_OP ARGI_LIST2 (ARGI_REGION_OR_BUFFER,ARGI_TARGETREF)
-#define ARGI_LOAD_TABLE_OP ARGI_LIST6 (ARGI_STRING, ARGI_STRING, ARGI_STRING, ARGI_STRING, ARGI_STRING, ARGI_ANYTYPE)
-#define ARGI_LOCAL0 ARG_NONE
-#define ARGI_LOCAL1 ARG_NONE
-#define ARGI_LOCAL2 ARG_NONE
-#define ARGI_LOCAL3 ARG_NONE
-#define ARGI_LOCAL4 ARG_NONE
-#define ARGI_LOCAL5 ARG_NONE
-#define ARGI_LOCAL6 ARG_NONE
-#define ARGI_LOCAL7 ARG_NONE
-#define ARGI_LOR_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_INTEGER)
-#define ARGI_MATCH_OP ARGI_LIST6 (ARGI_PACKAGE, ARGI_INTEGER, ARGI_COMPUTEDATA, ARGI_INTEGER,ARGI_COMPUTEDATA,ARGI_INTEGER)
-#define ARGI_METHOD_OP ARGI_INVALID_OPCODE
-#define ARGI_METHODCALL_OP ARGI_INVALID_OPCODE
-#define ARGI_MID_OP ARGI_LIST4 (ARGI_BUFFER_OR_STRING,ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
-#define ARGI_MOD_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
-#define ARGI_MULTIPLY_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
-#define ARGI_MUTEX_OP ARGI_INVALID_OPCODE
-#define ARGI_NAME_OP ARGI_INVALID_OPCODE
-#define ARGI_NAMEDFIELD_OP ARGI_INVALID_OPCODE
-#define ARGI_NAMEPATH_OP ARGI_INVALID_OPCODE
-#define ARGI_NOOP_OP ARG_NONE
-#define ARGI_NOTIFY_OP ARGI_LIST2 (ARGI_DEVICE_REF, ARGI_INTEGER)
-#define ARGI_ONE_OP ARG_NONE
-#define ARGI_ONES_OP ARG_NONE
-#define ARGI_PACKAGE_OP ARGI_LIST1 (ARGI_INTEGER)
-#define ARGI_POWER_RES_OP ARGI_INVALID_OPCODE
-#define ARGI_PROCESSOR_OP ARGI_INVALID_OPCODE
-#define ARGI_QWORD_OP ARGI_INVALID_OPCODE
-#define ARGI_REF_OF_OP ARGI_LIST1 (ARGI_OBJECT_REF)
-#define ARGI_REGION_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_INTEGER)
-#define ARGI_RELEASE_OP ARGI_LIST1 (ARGI_MUTEX)
-#define ARGI_RESERVEDFIELD_OP ARGI_INVALID_OPCODE
-#define ARGI_RESET_OP ARGI_LIST1 (ARGI_EVENT)
-#define ARGI_RETURN_OP ARGI_INVALID_OPCODE
-#define ARGI_REVISION_OP ARG_NONE
-#define ARGI_SCOPE_OP ARGI_INVALID_OPCODE
-#define ARGI_SHIFT_LEFT_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
-#define ARGI_SHIFT_RIGHT_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
-#define ARGI_SIGNAL_OP ARGI_LIST1 (ARGI_EVENT)
-#define ARGI_SIZE_OF_OP ARGI_LIST1 (ARGI_DATAOBJECT)
-#define ARGI_SLEEP_OP ARGI_LIST1 (ARGI_INTEGER)
-#define ARGI_STALL_OP ARGI_LIST1 (ARGI_INTEGER)
-#define ARGI_STATICSTRING_OP ARGI_INVALID_OPCODE
-#define ARGI_STORE_OP ARGI_LIST2 (ARGI_DATAREFOBJ, ARGI_TARGETREF)
-#define ARGI_STRING_OP ARGI_INVALID_OPCODE
-#define ARGI_SUBTRACT_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
-#define ARGI_THERMAL_ZONE_OP ARGI_INVALID_OPCODE
-#define ARGI_TIMER_OP ARG_NONE
-#define ARGI_TO_BCD_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_FIXED_TARGET)
-#define ARGI_TO_BUFFER_OP ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_FIXED_TARGET)
-#define ARGI_TO_DEC_STR_OP ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_FIXED_TARGET)
-#define ARGI_TO_HEX_STR_OP ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_FIXED_TARGET)
-#define ARGI_TO_INTEGER_OP ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_FIXED_TARGET)
-#define ARGI_TO_STRING_OP ARGI_LIST3 (ARGI_BUFFER, ARGI_INTEGER, ARGI_FIXED_TARGET)
-#define ARGI_TYPE_OP ARGI_LIST1 (ARGI_ANYTYPE)
-#define ARGI_UNLOAD_OP ARGI_LIST1 (ARGI_DDBHANDLE)
-#define ARGI_VAR_PACKAGE_OP ARGI_LIST1 (ARGI_INTEGER)
-#define ARGI_WAIT_OP ARGI_LIST2 (ARGI_EVENT, ARGI_INTEGER)
-#define ARGI_WHILE_OP ARGI_INVALID_OPCODE
-#define ARGI_WORD_OP ARGI_INVALID_OPCODE
-#define ARGI_ZERO_OP ARG_NONE
-
-#endif /* __ACOPCODE_H__ */
diff --git a/sys/contrib/dev/acpica/acoutput.h b/sys/contrib/dev/acpica/acoutput.h
deleted file mode 100644
index ebd58c3..0000000
--- a/sys/contrib/dev/acpica/acoutput.h
+++ /dev/null
@@ -1,263 +0,0 @@
-/******************************************************************************
- *
- * Name: acoutput.h -- debug output
- * $Revision: 1.101 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACOUTPUT_H__
-#define __ACOUTPUT_H__
-
-/*
- * Debug levels and component IDs. These are used to control the
- * granularity of the output of the DEBUG_PRINT macro -- on a per-
- * component basis and a per-exception-type basis.
- */
-
-/* Component IDs are used in the global "DebugLayer" */
-
-#define ACPI_UTILITIES 0x00000001
-#define ACPI_HARDWARE 0x00000002
-#define ACPI_EVENTS 0x00000004
-#define ACPI_TABLES 0x00000008
-#define ACPI_NAMESPACE 0x00000010
-#define ACPI_PARSER 0x00000020
-#define ACPI_DISPATCHER 0x00000040
-#define ACPI_EXECUTER 0x00000080
-#define ACPI_RESOURCES 0x00000100
-#define ACPI_CA_DEBUGGER 0x00000200
-#define ACPI_OS_SERVICES 0x00000400
-#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
-
-
-/*
- * Raw debug output levels, do not use these in the DEBUG_PRINT macros
- */
-#define ACPI_LV_ERROR 0x00000001
-#define ACPI_LV_WARN 0x00000002
-#define ACPI_LV_INIT 0x00000004
-#define ACPI_LV_DEBUG_OBJECT 0x00000008
-#define ACPI_LV_INFO 0x00000010
-#define ACPI_LV_ALL_EXCEPTIONS 0x0000001F
-
-/* Trace verbosity level 1 [Standard Trace Level] */
-
-#define ACPI_LV_INIT_NAMES 0x00000020
-#define ACPI_LV_PARSE 0x00000040
-#define ACPI_LV_LOAD 0x00000080
-#define ACPI_LV_DISPATCH 0x00000100
-#define ACPI_LV_EXEC 0x00000200
-#define ACPI_LV_NAMES 0x00000400
-#define ACPI_LV_OPREGION 0x00000800
-#define ACPI_LV_BFIELD 0x00001000
-#define ACPI_LV_TABLES 0x00002000
-#define ACPI_LV_VALUES 0x00004000
-#define ACPI_LV_OBJECTS 0x00008000
-#define ACPI_LV_RESOURCES 0x00010000
-#define ACPI_LV_USER_REQUESTS 0x00020000
-#define ACPI_LV_PACKAGE 0x00040000
-#define ACPI_LV_VERBOSITY1 0x0007FF40 | ACPI_LV_ALL_EXCEPTIONS
-
-/* Trace verbosity level 2 [Function tracing and memory allocation] */
-
-#define ACPI_LV_ALLOCATIONS 0x00100000
-#define ACPI_LV_FUNCTIONS 0x00200000
-#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] */
-
-#define ACPI_LV_MUTEX 0x01000000
-#define ACPI_LV_THREADS 0x02000000
-#define ACPI_LV_IO 0x04000000
-#define ACPI_LV_INTERRUPTS 0x08000000
-#define ACPI_LV_VERBOSITY3 0x0F000000 | ACPI_LV_VERBOSITY2
-
-/* Exceptionally verbose output -- also used in the global "DebugLevel" */
-
-#define ACPI_LV_AML_DISASSEMBLE 0x10000000
-#define ACPI_LV_VERBOSE_INFO 0x20000000
-#define ACPI_LV_FULL_TABLES 0x40000000
-#define ACPI_LV_EVENTS 0x80000000
-
-#define ACPI_LV_VERBOSE 0xF0000000
-
-
-/*
- * Debug level macros that are used in the DEBUG_PRINT macros
- */
-#define ACPI_DEBUG_LEVEL(dl) (UINT32) dl,ACPI_DEBUG_PARAMETERS
-
-/* Exception level -- used in the global "DebugLevel" */
-
-#define ACPI_DB_INIT ACPI_DEBUG_LEVEL (ACPI_LV_INIT)
-#define ACPI_DB_DEBUG_OBJECT ACPI_DEBUG_LEVEL (ACPI_LV_DEBUG_OBJECT)
-#define ACPI_DB_INFO ACPI_DEBUG_LEVEL (ACPI_LV_INFO)
-#define ACPI_DB_ALL_EXCEPTIONS ACPI_DEBUG_LEVEL (ACPI_LV_ALL_EXCEPTIONS)
-
-/*
- * These two levels are essentially obsolete, all instances in the
- * ACPICA core code have been replaced by ACPI_ERROR and ACPI_WARNING
- * (Kept here because some drivers may still use them)
- */
-#define ACPI_DB_ERROR ACPI_DEBUG_LEVEL (ACPI_LV_ERROR)
-#define ACPI_DB_WARN ACPI_DEBUG_LEVEL (ACPI_LV_WARN)
-
-/* Trace level -- also used in the global "DebugLevel" */
-
-#define ACPI_DB_INIT_NAMES ACPI_DEBUG_LEVEL (ACPI_LV_INIT_NAMES)
-#define ACPI_DB_THREADS ACPI_DEBUG_LEVEL (ACPI_LV_THREADS)
-#define ACPI_DB_PARSE ACPI_DEBUG_LEVEL (ACPI_LV_PARSE)
-#define ACPI_DB_DISPATCH ACPI_DEBUG_LEVEL (ACPI_LV_DISPATCH)
-#define ACPI_DB_LOAD ACPI_DEBUG_LEVEL (ACPI_LV_LOAD)
-#define ACPI_DB_EXEC ACPI_DEBUG_LEVEL (ACPI_LV_EXEC)
-#define ACPI_DB_NAMES ACPI_DEBUG_LEVEL (ACPI_LV_NAMES)
-#define ACPI_DB_OPREGION ACPI_DEBUG_LEVEL (ACPI_LV_OPREGION)
-#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)
-#define ACPI_DB_RESOURCES ACPI_DEBUG_LEVEL (ACPI_LV_RESOURCES)
-#define ACPI_DB_IO ACPI_DEBUG_LEVEL (ACPI_LV_IO)
-#define ACPI_DB_INTERRUPTS ACPI_DEBUG_LEVEL (ACPI_LV_INTERRUPTS)
-#define ACPI_DB_USER_REQUESTS ACPI_DEBUG_LEVEL (ACPI_LV_USER_REQUESTS)
-#define ACPI_DB_PACKAGE ACPI_DEBUG_LEVEL (ACPI_LV_PACKAGE)
-#define ACPI_DB_MUTEX ACPI_DEBUG_LEVEL (ACPI_LV_MUTEX)
-
-#define ACPI_DB_ALL ACPI_DEBUG_LEVEL (ACPI_LV_ALL)
-
-
-/* Defaults for DebugLevel, debug and normal */
-
-#define ACPI_DEBUG_DEFAULT (ACPI_LV_INIT | ACPI_LV_WARN | ACPI_LV_ERROR | ACPI_LV_DEBUG_OBJECT)
-#define ACPI_NORMAL_DEFAULT (ACPI_LV_INIT | ACPI_LV_WARN | ACPI_LV_ERROR | ACPI_LV_DEBUG_OBJECT)
-#define ACPI_DEBUG_ALL (ACPI_LV_AML_DISASSEMBLE | ACPI_LV_ALL_EXCEPTIONS | ACPI_LV_ALL)
-
-
-#endif /* __ACOUTPUT_H__ */
diff --git a/sys/contrib/dev/acpica/acparser.h b/sys/contrib/dev/acpica/acparser.h
deleted file mode 100644
index 34b6bd1..0000000
--- a/sys/contrib/dev/acpica/acparser.h
+++ /dev/null
@@ -1,403 +0,0 @@
-/******************************************************************************
- *
- * Module Name: acparser.h - AML Parser subcomponent prototypes and defines
- * $Revision: 1.83 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACPARSER_H__
-#define __ACPARSER_H__
-
-
-#define OP_HAS_RETURN_VALUE 1
-
-/* Variable number of arguments. This field must be 32 bits */
-
-#define ACPI_VAR_ARGS ACPI_UINT32_MAX
-
-
-#define ACPI_PARSE_DELETE_TREE 0x0001
-#define ACPI_PARSE_NO_TREE_DELETE 0x0000
-#define ACPI_PARSE_TREE_MASK 0x0001
-
-#define ACPI_PARSE_LOAD_PASS1 0x0010
-#define ACPI_PARSE_LOAD_PASS2 0x0020
-#define ACPI_PARSE_EXECUTE 0x0030
-#define ACPI_PARSE_MODE_MASK 0x0030
-
-#define ACPI_PARSE_DEFERRED_OP 0x0100
-#define ACPI_PARSE_DISASSEMBLE 0x0200
-
-
-/******************************************************************************
- *
- * Parser interfaces
- *
- *****************************************************************************/
-
-
-/*
- * psxface - Parser external interfaces
- */
-ACPI_STATUS
-AcpiPsExecuteMethod (
- ACPI_EVALUATE_INFO *Info);
-
-
-/*
- * psargs - Parse AML opcode arguments
- */
-UINT8 *
-AcpiPsGetNextPackageEnd (
- ACPI_PARSE_STATE *ParserState);
-
-char *
-AcpiPsGetNextNamestring (
- ACPI_PARSE_STATE *ParserState);
-
-void
-AcpiPsGetNextSimpleArg (
- ACPI_PARSE_STATE *ParserState,
- UINT32 ArgType,
- ACPI_PARSE_OBJECT *Arg);
-
-ACPI_STATUS
-AcpiPsGetNextNamepath (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_STATE *ParserState,
- ACPI_PARSE_OBJECT *Arg,
- BOOLEAN MethodCall);
-
-ACPI_STATUS
-AcpiPsGetNextArg (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_STATE *ParserState,
- UINT32 ArgType,
- ACPI_PARSE_OBJECT **ReturnArg);
-
-
-/*
- * psfind
- */
-ACPI_PARSE_OBJECT *
-AcpiPsFindName (
- ACPI_PARSE_OBJECT *Scope,
- UINT32 Name,
- UINT32 Opcode);
-
-ACPI_PARSE_OBJECT*
-AcpiPsGetParent (
- ACPI_PARSE_OBJECT *Op);
-
-
-/*
- * psopcode - AML Opcode information
- */
-const ACPI_OPCODE_INFO *
-AcpiPsGetOpcodeInfo (
- UINT16 Opcode);
-
-char *
-AcpiPsGetOpcodeName (
- UINT16 Opcode);
-
-UINT8
-AcpiPsGetArgumentCount (
- UINT32 OpType);
-
-
-/*
- * psparse - top level parsing routines
- */
-ACPI_STATUS
-AcpiPsParseAml (
- ACPI_WALK_STATE *WalkState);
-
-UINT32
-AcpiPsGetOpcodeSize (
- UINT32 Opcode);
-
-UINT16
-AcpiPsPeekOpcode (
- ACPI_PARSE_STATE *state);
-
-ACPI_STATUS
-AcpiPsCompleteThisOp (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op);
-
-ACPI_STATUS
-AcpiPsNextParseState (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op,
- ACPI_STATUS CallbackStatus);
-
-
-/*
- * psloop - main parse loop
- */
-ACPI_STATUS
-AcpiPsParseLoop (
- ACPI_WALK_STATE *WalkState);
-
-
-/*
- * psscope - Scope stack management routines
- */
-ACPI_STATUS
-AcpiPsInitScope (
- ACPI_PARSE_STATE *ParserState,
- ACPI_PARSE_OBJECT *Root);
-
-ACPI_PARSE_OBJECT *
-AcpiPsGetParentScope (
- ACPI_PARSE_STATE *state);
-
-BOOLEAN
-AcpiPsHasCompletedScope (
- ACPI_PARSE_STATE *ParserState);
-
-void
-AcpiPsPopScope (
- ACPI_PARSE_STATE *ParserState,
- ACPI_PARSE_OBJECT **Op,
- UINT32 *ArgList,
- UINT32 *ArgCount);
-
-ACPI_STATUS
-AcpiPsPushScope (
- ACPI_PARSE_STATE *ParserState,
- ACPI_PARSE_OBJECT *Op,
- UINT32 RemainingArgs,
- UINT32 ArgCount);
-
-void
-AcpiPsCleanupScope (
- ACPI_PARSE_STATE *state);
-
-
-/*
- * pstree - parse tree manipulation routines
- */
-void
-AcpiPsAppendArg(
- ACPI_PARSE_OBJECT *op,
- ACPI_PARSE_OBJECT *arg);
-
-ACPI_PARSE_OBJECT*
-AcpiPsFind (
- ACPI_PARSE_OBJECT *Scope,
- char *Path,
- UINT16 Opcode,
- UINT32 Create);
-
-ACPI_PARSE_OBJECT *
-AcpiPsGetArg(
- ACPI_PARSE_OBJECT *op,
- UINT32 argn);
-
-ACPI_PARSE_OBJECT *
-AcpiPsGetDepthNext (
- ACPI_PARSE_OBJECT *Origin,
- ACPI_PARSE_OBJECT *Op);
-
-
-/*
- * pswalk - parse tree walk routines
- */
-ACPI_STATUS
-AcpiPsWalkParsedAml (
- ACPI_PARSE_OBJECT *StartOp,
- ACPI_PARSE_OBJECT *EndOp,
- ACPI_OPERAND_OBJECT *MthDesc,
- ACPI_NAMESPACE_NODE *StartNode,
- ACPI_OPERAND_OBJECT **Params,
- ACPI_OPERAND_OBJECT **CallerReturnDesc,
- ACPI_OWNER_ID OwnerId,
- ACPI_PARSE_DOWNWARDS DescendingCallback,
- ACPI_PARSE_UPWARDS AscendingCallback);
-
-ACPI_STATUS
-AcpiPsGetNextWalkOp (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op,
- ACPI_PARSE_UPWARDS AscendingCallback);
-
-ACPI_STATUS
-AcpiPsDeleteCompletedOp (
- ACPI_WALK_STATE *WalkState);
-
-void
-AcpiPsDeleteParseTree (
- ACPI_PARSE_OBJECT *root);
-
-
-/*
- * psutils - parser utilities
- */
-ACPI_PARSE_OBJECT *
-AcpiPsCreateScopeOp (
- void);
-
-void
-AcpiPsInitOp (
- ACPI_PARSE_OBJECT *op,
- UINT16 opcode);
-
-ACPI_PARSE_OBJECT *
-AcpiPsAllocOp (
- UINT16 opcode);
-
-void
-AcpiPsFreeOp (
- ACPI_PARSE_OBJECT *Op);
-
-BOOLEAN
-AcpiPsIsLeadingChar (
- UINT32 c);
-
-BOOLEAN
-AcpiPsIsPrefixChar (
- UINT32 c);
-
-UINT32
-AcpiPsGetName(
- ACPI_PARSE_OBJECT *op);
-
-void
-AcpiPsSetName(
- ACPI_PARSE_OBJECT *op,
- UINT32 name);
-
-
-/*
- * psdump - display parser tree
- */
-UINT32
-AcpiPsSprintPath (
- char *BufferStart,
- UINT32 BufferSize,
- ACPI_PARSE_OBJECT *Op);
-
-UINT32
-AcpiPsSprintOp (
- char *BufferStart,
- UINT32 BufferSize,
- ACPI_PARSE_OBJECT *Op);
-
-void
-AcpiPsShow (
- ACPI_PARSE_OBJECT *op);
-
-
-#endif /* __ACPARSER_H__ */
diff --git a/sys/contrib/dev/acpica/acpi.h b/sys/contrib/dev/acpica/acpi.h
deleted file mode 100644
index b0f7848..0000000
--- a/sys/contrib/dev/acpica/acpi.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/******************************************************************************
- *
- * Name: acpi.h - Master include file, Publics and external data.
- * $Revision: 1.61 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACPI_H__
-#define __ACPI_H__
-
-/*
- * Common includes for all ACPI driver files
- * We put them here because we don't want to duplicate them
- * in the rest of the source code again and again.
- */
-#include <contrib/dev/acpica/acnames.h> /* Global ACPI names and strings */
-#include <contrib/dev/acpica/acconfig.h> /* Configuration constants */
-#include <contrib/dev/acpica/acenv.h> /* Target environment specific items */
-#include <contrib/dev/acpica/actypes.h> /* Fundamental common data types */
-#include <contrib/dev/acpica/acexcep.h> /* ACPI exception codes */
-#include <contrib/dev/acpica/acmacros.h> /* C macros */
-#include <contrib/dev/acpica/actbl.h> /* ACPI table definitions */
-#include <contrib/dev/acpica/aclocal.h> /* Internal data types */
-#include <contrib/dev/acpica/acoutput.h> /* Error output and Debug macros */
-#include <contrib/dev/acpica/acpiosxf.h> /* Interfaces to the ACPI-to-OS layer*/
-#include <contrib/dev/acpica/acpixf.h> /* ACPI core subsystem external interfaces */
-#include <contrib/dev/acpica/acobject.h> /* ACPI internal object */
-#include <contrib/dev/acpica/acstruct.h> /* Common structures */
-#include <contrib/dev/acpica/acglobal.h> /* All global variables */
-#include <contrib/dev/acpica/achware.h> /* Hardware defines and interfaces */
-#include <contrib/dev/acpica/acutils.h> /* Utility interfaces */
-
-
-#endif /* __ACPI_H__ */
diff --git a/sys/contrib/dev/acpica/acpiosxf.h b/sys/contrib/dev/acpica/acpiosxf.h
deleted file mode 100644
index 69997d8..0000000
--- a/sys/contrib/dev/acpica/acpiosxf.h
+++ /dev/null
@@ -1,504 +0,0 @@
-
-/******************************************************************************
- *
- * Name: acpiosxf.h - All interfaces to the OS Services Layer (OSL). These
- * interfaces must be implemented by OSL to interface the
- * ACPI components to the host operating system.
- *
- *****************************************************************************/
-
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 exer
- se 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 __ACPIOSXF_H__
-#define __ACPIOSXF_H__
-
-#include <contrib/dev/acpica/acenv.h>
-#include <contrib/dev/acpica/actypes.h>
-
-
-/* Types for AcpiOsExecute */
-
-typedef enum
-{
- OSL_GLOBAL_LOCK_HANDLER,
- OSL_NOTIFY_HANDLER,
- OSL_GPE_HANDLER,
- OSL_DEBUGGER_THREAD,
- OSL_EC_POLL_HANDLER,
- OSL_EC_BURST_HANDLER
-
-} ACPI_EXECUTE_TYPE;
-
-#define ACPI_NO_UNIT_LIMIT ((UINT32) -1)
-#define ACPI_MUTEX_SEM 1
-
-
-/* Functions for AcpiOsSignal */
-
-#define ACPI_SIGNAL_FATAL 0
-#define ACPI_SIGNAL_BREAKPOINT 1
-
-typedef struct acpi_signal_fatal_info
-{
- UINT32 Type;
- UINT32 Code;
- UINT32 Argument;
-
-} ACPI_SIGNAL_FATAL_INFO;
-
-
-/*
- * OSL Initialization and shutdown primitives
- */
-ACPI_STATUS
-AcpiOsInitialize (
- void);
-
-ACPI_STATUS
-AcpiOsTerminate (
- void);
-
-
-/*
- * ACPI Table interfaces
- */
-ACPI_PHYSICAL_ADDRESS
-AcpiOsGetRootPointer (
- void);
-
-ACPI_STATUS
-AcpiOsPredefinedOverride (
- const ACPI_PREDEFINED_NAMES *InitVal,
- ACPI_STRING *NewVal);
-
-ACPI_STATUS
-AcpiOsTableOverride (
- ACPI_TABLE_HEADER *ExistingTable,
- ACPI_TABLE_HEADER **NewTable);
-
-
-/*
- * Spinlock primitives
- */
-ACPI_STATUS
-AcpiOsCreateLock (
- ACPI_SPINLOCK *OutHandle);
-
-void
-AcpiOsDeleteLock (
- ACPI_SPINLOCK Handle);
-
-ACPI_CPU_FLAGS
-AcpiOsAcquireLock (
- ACPI_SPINLOCK Handle);
-
-void
-AcpiOsReleaseLock (
- ACPI_SPINLOCK Handle,
- ACPI_CPU_FLAGS Flags);
-
-
-/*
- * Semaphore primitives
- */
-ACPI_STATUS
-AcpiOsCreateSemaphore (
- UINT32 MaxUnits,
- UINT32 InitialUnits,
- ACPI_SEMAPHORE *OutHandle);
-
-ACPI_STATUS
-AcpiOsDeleteSemaphore (
- ACPI_SEMAPHORE Handle);
-
-ACPI_STATUS
-AcpiOsWaitSemaphore (
- ACPI_SEMAPHORE Handle,
- UINT32 Units,
- UINT16 Timeout);
-
-ACPI_STATUS
-AcpiOsSignalSemaphore (
- ACPI_SEMAPHORE Handle,
- UINT32 Units);
-
-
-/*
- * Mutex primitives
- */
-ACPI_STATUS
-AcpiOsCreateMutex (
- ACPI_MUTEX *OutHandle);
-
-void
-AcpiOsDeleteMutex (
- ACPI_MUTEX Handle);
-
-ACPI_STATUS
-AcpiOsAcquireMutex (
- ACPI_MUTEX Handle,
- UINT16 Timeout);
-
-void
-AcpiOsReleaseMutex (
- ACPI_MUTEX Handle);
-
-/* Temporary macros for Mutex* interfaces, map to existing semaphore xfaces */
-
-#define AcpiOsCreateMutex(OutHandle) AcpiOsCreateSemaphore (1, 1, OutHandle)
-#define AcpiOsDeleteMutex(Handle) (void) AcpiOsDeleteSemaphore (Handle)
-#define AcpiOsAcquireMutex(Handle,Time) AcpiOsWaitSemaphore (Handle, 1, Time)
-#define AcpiOsReleaseMutex(Handle) (void) AcpiOsSignalSemaphore (Handle, 1)
-
-
-/*
- * Memory allocation and mapping
- */
-void *
-AcpiOsAllocate (
- ACPI_SIZE Size);
-
-void
-AcpiOsFree (
- void * Memory);
-
-void *
-AcpiOsMapMemory (
- ACPI_PHYSICAL_ADDRESS Where,
- ACPI_NATIVE_UINT Length);
-
-void
-AcpiOsUnmapMemory (
- void *LogicalAddress,
- ACPI_SIZE Size);
-
-ACPI_STATUS
-AcpiOsGetPhysicalAddress (
- void *LogicalAddress,
- ACPI_PHYSICAL_ADDRESS *PhysicalAddress);
-
-
-/*
- * Memory/Object Cache
- */
-ACPI_STATUS
-AcpiOsCreateCache (
- char *CacheName,
- UINT16 ObjectSize,
- UINT16 MaxDepth,
- ACPI_CACHE_T **ReturnCache);
-
-ACPI_STATUS
-AcpiOsDeleteCache (
- ACPI_CACHE_T *Cache);
-
-ACPI_STATUS
-AcpiOsPurgeCache (
- ACPI_CACHE_T *Cache);
-
-void *
-AcpiOsAcquireObject (
- ACPI_CACHE_T *Cache);
-
-ACPI_STATUS
-AcpiOsReleaseObject (
- ACPI_CACHE_T *Cache,
- void *Object);
-
-
-/*
- * Interrupt handlers
- */
-ACPI_STATUS
-AcpiOsInstallInterruptHandler (
- UINT32 InterruptNumber,
- ACPI_OSD_HANDLER ServiceRoutine,
- void *Context);
-
-ACPI_STATUS
-AcpiOsRemoveInterruptHandler (
- UINT32 InterruptNumber,
- ACPI_OSD_HANDLER ServiceRoutine);
-
-
-/*
- * Threads and Scheduling
- */
-ACPI_THREAD_ID
-AcpiOsGetThreadId (
- void);
-
-ACPI_STATUS
-AcpiOsExecute (
- ACPI_EXECUTE_TYPE Type,
- ACPI_OSD_EXEC_CALLBACK Function,
- void *Context);
-
-void
-AcpiOsWaitEventsComplete (
- void *Context);
-
-void
-AcpiOsSleep (
- ACPI_INTEGER Milliseconds);
-
-void
-AcpiOsStall (
- UINT32 Microseconds);
-
-
-/*
- * Platform and hardware-independent I/O interfaces
- */
-ACPI_STATUS
-AcpiOsReadPort (
- ACPI_IO_ADDRESS Address,
- UINT32 *Value,
- UINT32 Width);
-
-ACPI_STATUS
-AcpiOsWritePort (
- ACPI_IO_ADDRESS Address,
- UINT32 Value,
- UINT32 Width);
-
-
-/*
- * Platform and hardware-independent physical memory interfaces
- */
-ACPI_STATUS
-AcpiOsReadMemory (
- ACPI_PHYSICAL_ADDRESS Address,
- UINT32 *Value,
- UINT32 Width);
-
-ACPI_STATUS
-AcpiOsWriteMemory (
- ACPI_PHYSICAL_ADDRESS Address,
- UINT32 Value,
- UINT32 Width);
-
-
-/*
- * Platform and hardware-independent PCI configuration space access
- * Note: Can't use "Register" as a parameter, changed to "Reg" --
- * certain compilers complain.
- */
-ACPI_STATUS
-AcpiOsReadPciConfiguration (
- ACPI_PCI_ID *PciId,
- UINT32 Reg,
- void *Value,
- UINT32 Width);
-
-ACPI_STATUS
-AcpiOsWritePciConfiguration (
- ACPI_PCI_ID *PciId,
- UINT32 Reg,
- ACPI_INTEGER Value,
- UINT32 Width);
-
-
-/*
- * Interim function needed for PCI IRQ routing
- */
-void
-AcpiOsDerivePciId(
- ACPI_HANDLE Rhandle,
- ACPI_HANDLE Chandle,
- ACPI_PCI_ID **PciId);
-
-
-/*
- * Miscellaneous
- */
-ACPI_STATUS
-AcpiOsValidateInterface (
- char *Interface);
-
-ACPI_STATUS
-AcpiOsValidateAddress (
- UINT8 SpaceId,
- ACPI_PHYSICAL_ADDRESS Address,
- ACPI_SIZE Length);
-
-BOOLEAN
-AcpiOsReadable (
- void *Pointer,
- ACPI_SIZE Length);
-
-BOOLEAN
-AcpiOsWritable (
- void *Pointer,
- ACPI_SIZE Length);
-
-UINT64
-AcpiOsGetTimer (
- void);
-
-ACPI_STATUS
-AcpiOsSignal (
- UINT32 Function,
- void *Info);
-
-
-/*
- * Debug print routines
- */
-void ACPI_INTERNAL_VAR_XFACE
-AcpiOsPrintf (
- const char *Format,
- ...);
-
-void
-AcpiOsVprintf (
- const char *Format,
- va_list Args);
-
-void
-AcpiOsRedirectOutput (
- void *Destination);
-
-
-/*
- * Debug input
- */
-UINT32
-AcpiOsGetLine (
- char *Buffer);
-
-
-/*
- * Directory manipulation
- */
-void *
-AcpiOsOpenDirectory (
- char *Pathname,
- char *WildcardSpec,
- char RequestedFileType);
-
-/* RequesteFileType values */
-
-#define REQUEST_FILE_ONLY 0
-#define REQUEST_DIR_ONLY 1
-
-
-char *
-AcpiOsGetNextFilename (
- void *DirHandle);
-
-void
-AcpiOsCloseDirectory (
- void *DirHandle);
-
-
-#endif /* __ACPIOSXF_H__ */
diff --git a/sys/contrib/dev/acpica/acpixf.h b/sys/contrib/dev/acpica/acpixf.h
deleted file mode 100644
index f85fd67..0000000
--- a/sys/contrib/dev/acpica/acpixf.h
+++ /dev/null
@@ -1,550 +0,0 @@
-
-/******************************************************************************
- *
- * Name: acpixf.h - External interfaces to the ACPI subsystem
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACXFACE_H__
-#define __ACXFACE_H__
-
-#include <contrib/dev/acpica/actypes.h>
-#include <contrib/dev/acpica/actbl.h>
-
-
-/*
- * Global interfaces
- */
-ACPI_STATUS
-AcpiInitializeTables (
- ACPI_TABLE_DESC *InitialStorage,
- UINT32 InitialTableCount,
- BOOLEAN AllowResize);
-
-ACPI_STATUS
-AcpiInitializeSubsystem (
- void);
-
-ACPI_STATUS
-AcpiEnableSubsystem (
- UINT32 Flags);
-
-ACPI_STATUS
-AcpiInitializeObjects (
- UINT32 Flags);
-
-ACPI_STATUS
-AcpiTerminate (
- void);
-
-ACPI_STATUS
-AcpiSubsystemStatus (
- void);
-
-ACPI_STATUS
-AcpiEnable (
- void);
-
-ACPI_STATUS
-AcpiDisable (
- void);
-
-ACPI_STATUS
-AcpiGetSystemInfo (
- ACPI_BUFFER *RetBuffer);
-
-const char *
-AcpiFormatException (
- ACPI_STATUS Exception);
-
-ACPI_STATUS
-AcpiPurgeCachedObjects (
- void);
-
-ACPI_STATUS
-AcpiInstallInitializationHandler (
- ACPI_INIT_HANDLER Handler,
- UINT32 Function);
-
-/*
- * ACPI Memory managment
- */
-void *
-AcpiAllocate (
- UINT32 Size);
-
-void *
-AcpiCallocate (
- UINT32 Size);
-
-void
-AcpiFree (
- void *Address);
-
-
-/*
- * ACPI table manipulation interfaces
- */
-ACPI_STATUS
-AcpiReallocateRootTable (
- void);
-
-ACPI_STATUS
-AcpiFindRootPointer (
- ACPI_NATIVE_UINT *RsdpAddress);
-
-ACPI_STATUS
-AcpiLoadTables (
- void);
-
-ACPI_STATUS
-AcpiGetTableHeader (
- ACPI_STRING Signature,
- ACPI_NATIVE_UINT Instance,
- ACPI_TABLE_HEADER *OutTableHeader);
-
-ACPI_STATUS
-AcpiGetTable (
- ACPI_STRING Signature,
- ACPI_NATIVE_UINT Instance,
- ACPI_TABLE_HEADER **OutTable);
-
-ACPI_STATUS
-AcpiGetTableByIndex (
- ACPI_NATIVE_UINT TableIndex,
- ACPI_TABLE_HEADER **OutTable);
-
-
-/*
- * Namespace and name interfaces
- */
-ACPI_STATUS
-AcpiWalkNamespace (
- ACPI_OBJECT_TYPE Type,
- ACPI_HANDLE StartObject,
- UINT32 MaxDepth,
- ACPI_WALK_CALLBACK UserFunction,
- void *Context,
- void **ReturnValue);
-
-ACPI_STATUS
-AcpiGetDevices (
- char *HID,
- ACPI_WALK_CALLBACK UserFunction,
- void *Context,
- void **ReturnValue);
-
-ACPI_STATUS
-AcpiGetName (
- ACPI_HANDLE Handle,
- UINT32 NameType,
- ACPI_BUFFER *RetPathPtr);
-
-ACPI_STATUS
-AcpiGetHandle (
- ACPI_HANDLE Parent,
- ACPI_STRING Pathname,
- ACPI_HANDLE *RetHandle);
-
-ACPI_STATUS
-AcpiAttachData (
- ACPI_HANDLE ObjHandle,
- ACPI_OBJECT_HANDLER Handler,
- void *Data);
-
-ACPI_STATUS
-AcpiDetachData (
- ACPI_HANDLE ObjHandle,
- ACPI_OBJECT_HANDLER Handler);
-
-ACPI_STATUS
-AcpiGetData (
- ACPI_HANDLE ObjHandle,
- ACPI_OBJECT_HANDLER Handler,
- void **Data);
-
-ACPI_STATUS
-AcpiDebugTrace (
- char *Name,
- UINT32 DebugLevel,
- UINT32 DebugLayer,
- UINT32 Flags);
-
-
-/*
- * Object manipulation and enumeration
- */
-ACPI_STATUS
-AcpiEvaluateObject (
- ACPI_HANDLE Object,
- ACPI_STRING Pathname,
- ACPI_OBJECT_LIST *ParameterObjects,
- ACPI_BUFFER *ReturnObjectBuffer);
-
-ACPI_STATUS
-AcpiEvaluateObjectTyped (
- ACPI_HANDLE Object,
- ACPI_STRING Pathname,
- ACPI_OBJECT_LIST *ExternalParams,
- ACPI_BUFFER *ReturnBuffer,
- ACPI_OBJECT_TYPE ReturnType);
-
-ACPI_STATUS
-AcpiGetObjectInfo (
- ACPI_HANDLE Handle,
- ACPI_BUFFER *ReturnBuffer);
-
-ACPI_STATUS
-AcpiGetNextObject (
- ACPI_OBJECT_TYPE Type,
- ACPI_HANDLE Parent,
- ACPI_HANDLE Child,
- ACPI_HANDLE *OutHandle);
-
-ACPI_STATUS
-AcpiGetType (
- ACPI_HANDLE Object,
- ACPI_OBJECT_TYPE *OutType);
-
-ACPI_STATUS
-AcpiGetParent (
- ACPI_HANDLE Object,
- ACPI_HANDLE *OutHandle);
-
-
-/*
- * Event handler interfaces
- */
-ACPI_STATUS
-AcpiInstallFixedEventHandler (
- UINT32 AcpiEvent,
- ACPI_EVENT_HANDLER Handler,
- void *Context);
-
-ACPI_STATUS
-AcpiRemoveFixedEventHandler (
- UINT32 AcpiEvent,
- ACPI_EVENT_HANDLER Handler);
-
-ACPI_STATUS
-AcpiInstallNotifyHandler (
- ACPI_HANDLE Device,
- UINT32 HandlerType,
- ACPI_NOTIFY_HANDLER Handler,
- void *Context);
-
-ACPI_STATUS
-AcpiRemoveNotifyHandler (
- ACPI_HANDLE Device,
- UINT32 HandlerType,
- ACPI_NOTIFY_HANDLER Handler);
-
-ACPI_STATUS
-AcpiInstallAddressSpaceHandler (
- ACPI_HANDLE Device,
- ACPI_ADR_SPACE_TYPE SpaceId,
- ACPI_ADR_SPACE_HANDLER Handler,
- ACPI_ADR_SPACE_SETUP Setup,
- void *Context);
-
-ACPI_STATUS
-AcpiRemoveAddressSpaceHandler (
- ACPI_HANDLE Device,
- ACPI_ADR_SPACE_TYPE SpaceId,
- ACPI_ADR_SPACE_HANDLER Handler);
-
-ACPI_STATUS
-AcpiInstallGpeHandler (
- ACPI_HANDLE GpeDevice,
- UINT32 GpeNumber,
- UINT32 Type,
- ACPI_EVENT_HANDLER Address,
- void *Context);
-
-ACPI_STATUS
-AcpiInstallExceptionHandler (
- ACPI_EXCEPTION_HANDLER Handler);
-
-
-/*
- * Event interfaces
- */
-ACPI_STATUS
-AcpiAcquireGlobalLock (
- UINT16 Timeout,
- UINT32 *Handle);
-
-ACPI_STATUS
-AcpiReleaseGlobalLock (
- UINT32 Handle);
-
-ACPI_STATUS
-AcpiRemoveGpeHandler (
- ACPI_HANDLE GpeDevice,
- UINT32 GpeNumber,
- ACPI_EVENT_HANDLER Address);
-
-ACPI_STATUS
-AcpiEnableEvent (
- UINT32 Event,
- UINT32 Flags);
-
-ACPI_STATUS
-AcpiDisableEvent (
- UINT32 Event,
- UINT32 Flags);
-
-ACPI_STATUS
-AcpiClearEvent (
- UINT32 Event);
-
-ACPI_STATUS
-AcpiGetEventStatus (
- UINT32 Event,
- ACPI_EVENT_STATUS *EventStatus);
-
-ACPI_STATUS
-AcpiSetGpeType (
- ACPI_HANDLE GpeDevice,
- UINT32 GpeNumber,
- UINT8 Type);
-
-ACPI_STATUS
-AcpiEnableGpe (
- ACPI_HANDLE GpeDevice,
- UINT32 GpeNumber,
- UINT32 Flags);
-
-ACPI_STATUS
-AcpiDisableGpe (
- ACPI_HANDLE GpeDevice,
- UINT32 GpeNumber,
- UINT32 Flags);
-
-ACPI_STATUS
-AcpiClearGpe (
- ACPI_HANDLE GpeDevice,
- UINT32 GpeNumber,
- UINT32 Flags);
-
-ACPI_STATUS
-AcpiGetGpeStatus (
- ACPI_HANDLE GpeDevice,
- UINT32 GpeNumber,
- UINT32 Flags,
- ACPI_EVENT_STATUS *EventStatus);
-
-ACPI_STATUS
-AcpiInstallGpeBlock (
- ACPI_HANDLE GpeDevice,
- ACPI_GENERIC_ADDRESS *GpeBlockAddress,
- UINT32 RegisterCount,
- UINT32 InterruptNumber);
-
-ACPI_STATUS
-AcpiRemoveGpeBlock (
- ACPI_HANDLE GpeDevice);
-
-
-/*
- * Resource interfaces
- */
-typedef
-ACPI_STATUS (*ACPI_WALK_RESOURCE_CALLBACK) (
- ACPI_RESOURCE *Resource,
- void *Context);
-
-ACPI_STATUS
-AcpiGetVendorResource (
- ACPI_HANDLE DeviceHandle,
- char *Name,
- ACPI_VENDOR_UUID *Uuid,
- ACPI_BUFFER *RetBuffer);
-
-ACPI_STATUS
-AcpiGetCurrentResources(
- ACPI_HANDLE DeviceHandle,
- ACPI_BUFFER *RetBuffer);
-
-ACPI_STATUS
-AcpiGetPossibleResources(
- ACPI_HANDLE DeviceHandle,
- ACPI_BUFFER *RetBuffer);
-
-ACPI_STATUS
-AcpiWalkResources (
- ACPI_HANDLE DeviceHandle,
- char *Name,
- ACPI_WALK_RESOURCE_CALLBACK UserFunction,
- void *Context);
-
-ACPI_STATUS
-AcpiSetCurrentResources (
- ACPI_HANDLE DeviceHandle,
- ACPI_BUFFER *InBuffer);
-
-ACPI_STATUS
-AcpiGetIrqRoutingTable (
- ACPI_HANDLE BusDeviceHandle,
- ACPI_BUFFER *RetBuffer);
-
-ACPI_STATUS
-AcpiResourceToAddress64 (
- ACPI_RESOURCE *Resource,
- ACPI_RESOURCE_ADDRESS64 *Out);
-
-/*
- * Hardware (ACPI device) interfaces
- */
-ACPI_STATUS
-AcpiGetRegister (
- UINT32 RegisterId,
- UINT32 *ReturnValue);
-
-ACPI_STATUS
-AcpiSetRegister (
- UINT32 RegisterId,
- UINT32 Value);
-
-ACPI_STATUS
-AcpiSetFirmwareWakingVector (
- ACPI_PHYSICAL_ADDRESS PhysicalAddress);
-
-ACPI_STATUS
-AcpiGetFirmwareWakingVector (
- ACPI_PHYSICAL_ADDRESS *PhysicalAddress);
-
-ACPI_STATUS
-AcpiGetSleepTypeData (
- UINT8 SleepState,
- UINT8 *Slp_TypA,
- UINT8 *Slp_TypB);
-
-ACPI_STATUS
-AcpiEnterSleepStatePrep (
- UINT8 SleepState);
-
-ACPI_STATUS
-AcpiEnterSleepState (
- UINT8 SleepState);
-
-ACPI_STATUS
-AcpiEnterSleepStateS4bios (
- void);
-
-ACPI_STATUS
-AcpiLeaveSleepState (
- UINT8 SleepState);
-
-
-#endif /* __ACXFACE_H__ */
diff --git a/sys/contrib/dev/acpica/acresrc.h b/sys/contrib/dev/acpica/acresrc.h
deleted file mode 100644
index 345c21e..0000000
--- a/sys/contrib/dev/acpica/acresrc.h
+++ /dev/null
@@ -1,465 +0,0 @@
-/******************************************************************************
- *
- * Name: acresrc.h - Resource Manager function prototypes
- * $Revision: 1.60 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACRESRC_H__
-#define __ACRESRC_H__
-
-/* Need the AML resource descriptor structs */
-
-#include <contrib/dev/acpica/amlresrc.h>
-
-
-/*
- * If possible, pack the following structures to byte alignment, since we
- * don't care about performance for debug output. Two cases where we cannot
- * pack the structures:
- *
- * 1) Hardware does not support misaligned memory transfers
- * 2) Compiler does not support pointers within packed structures
- */
-#if (!defined(ACPI_MISALIGNMENT_NOT_SUPPORTED) && !defined(ACPI_PACKED_POINTERS_NOT_SUPPORTED))
-#pragma pack(1)
-#endif
-
-/*
- * Individual entry for the resource conversion tables
- */
-typedef const struct acpi_rsconvert_info
-{
- UINT8 Opcode;
- UINT8 ResourceOffset;
- UINT8 AmlOffset;
- UINT8 Value;
-
-} ACPI_RSCONVERT_INFO;
-
-/* Resource conversion opcodes */
-
-#define ACPI_RSC_INITGET 0
-#define ACPI_RSC_INITSET 1
-#define ACPI_RSC_FLAGINIT 2
-#define ACPI_RSC_1BITFLAG 3
-#define ACPI_RSC_2BITFLAG 4
-#define ACPI_RSC_COUNT 5
-#define ACPI_RSC_COUNT16 6
-#define ACPI_RSC_LENGTH 7
-#define ACPI_RSC_MOVE8 8
-#define ACPI_RSC_MOVE16 9
-#define ACPI_RSC_MOVE32 10
-#define ACPI_RSC_MOVE64 11
-#define ACPI_RSC_SET8 12
-#define ACPI_RSC_DATA8 13
-#define ACPI_RSC_ADDRESS 14
-#define ACPI_RSC_SOURCE 15
-#define ACPI_RSC_SOURCEX 16
-#define ACPI_RSC_BITMASK 17
-#define ACPI_RSC_BITMASK16 18
-#define ACPI_RSC_EXIT_NE 19
-#define ACPI_RSC_EXIT_LE 20
-
-/* Resource Conversion sub-opcodes */
-
-#define ACPI_RSC_COMPARE_AML_LENGTH 0
-#define ACPI_RSC_COMPARE_VALUE 1
-
-#define ACPI_RSC_TABLE_SIZE(d) (sizeof (d) / sizeof (ACPI_RSCONVERT_INFO))
-
-#define ACPI_RS_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_RESOURCE,f)
-#define AML_OFFSET(f) (UINT8) ACPI_OFFSET (AML_RESOURCE,f)
-
-
-typedef const struct acpi_rsdump_info
-{
- UINT8 Opcode;
- UINT8 Offset;
- char *Name;
- const char **Pointer;
-
-} ACPI_RSDUMP_INFO;
-
-/* Values for the Opcode field above */
-
-#define ACPI_RSD_TITLE 0
-#define ACPI_RSD_LITERAL 1
-#define ACPI_RSD_STRING 2
-#define ACPI_RSD_UINT8 3
-#define ACPI_RSD_UINT16 4
-#define ACPI_RSD_UINT32 5
-#define ACPI_RSD_UINT64 6
-#define ACPI_RSD_1BITFLAG 7
-#define ACPI_RSD_2BITFLAG 8
-#define ACPI_RSD_SHORTLIST 9
-#define ACPI_RSD_LONGLIST 10
-#define ACPI_RSD_DWORDLIST 11
-#define ACPI_RSD_ADDRESS 12
-#define ACPI_RSD_SOURCE 13
-
-/* restore default alignment */
-
-#pragma pack()
-
-
-/* Resource tables indexed by internal resource type */
-
-extern const UINT8 AcpiGbl_AmlResourceSizes[];
-extern ACPI_RSCONVERT_INFO *AcpiGbl_SetResourceDispatch[];
-
-/* Resource tables indexed by raw AML resource descriptor type */
-
-extern const UINT8 AcpiGbl_ResourceStructSizes[];
-extern ACPI_RSCONVERT_INFO *AcpiGbl_GetResourceDispatch[];
-
-
-typedef struct acpi_vendor_walk_info
-{
- ACPI_VENDOR_UUID *Uuid;
- ACPI_BUFFER *Buffer;
- ACPI_STATUS Status;
-
-} ACPI_VENDOR_WALK_INFO;
-
-
-/*
- * rscreate
- */
-ACPI_STATUS
-AcpiRsCreateResourceList (
- ACPI_OPERAND_OBJECT *AmlBuffer,
- ACPI_BUFFER *OutputBuffer);
-
-ACPI_STATUS
-AcpiRsCreateAmlResources (
- ACPI_RESOURCE *LinkedListBuffer,
- ACPI_BUFFER *OutputBuffer);
-
-ACPI_STATUS
-AcpiRsCreatePciRoutingTable (
- ACPI_OPERAND_OBJECT *PackageObject,
- ACPI_BUFFER *OutputBuffer);
-
-
-/*
- * rsutils
- */
-ACPI_STATUS
-AcpiRsGetPrtMethodData (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_BUFFER *RetBuffer);
-
-ACPI_STATUS
-AcpiRsGetCrsMethodData (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_BUFFER *RetBuffer);
-
-ACPI_STATUS
-AcpiRsGetPrsMethodData (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_BUFFER *RetBuffer);
-
-ACPI_STATUS
-AcpiRsGetMethodData (
- ACPI_HANDLE Handle,
- char *Path,
- ACPI_BUFFER *RetBuffer);
-
-ACPI_STATUS
-AcpiRsSetSrsMethodData (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_BUFFER *RetBuffer);
-
-
-/*
- * rscalc
- */
-ACPI_STATUS
-AcpiRsGetListLength (
- UINT8 *AmlBuffer,
- UINT32 AmlBufferLength,
- ACPI_SIZE *SizeNeeded);
-
-ACPI_STATUS
-AcpiRsGetAmlLength (
- ACPI_RESOURCE *LinkedListBuffer,
- ACPI_SIZE *SizeNeeded);
-
-ACPI_STATUS
-AcpiRsGetPciRoutingTableLength (
- ACPI_OPERAND_OBJECT *PackageObject,
- ACPI_SIZE *BufferSizeNeeded);
-
-ACPI_STATUS
-AcpiRsConvertAmlToResources (
- UINT8 *Aml,
- UINT32 Length,
- UINT32 Offset,
- UINT8 ResourceIndex,
- void *Context);
-
-ACPI_STATUS
-AcpiRsConvertResourcesToAml (
- ACPI_RESOURCE *Resource,
- ACPI_SIZE AmlSizeNeeded,
- UINT8 *OutputBuffer);
-
-
-/*
- * rsaddr
- */
-void
-AcpiRsSetAddressCommon (
- AML_RESOURCE *Aml,
- ACPI_RESOURCE *Resource);
-
-BOOLEAN
-AcpiRsGetAddressCommon (
- ACPI_RESOURCE *Resource,
- AML_RESOURCE *Aml);
-
-
-/*
- * rsmisc
- */
-ACPI_STATUS
-AcpiRsConvertAmlToResource (
- ACPI_RESOURCE *Resource,
- AML_RESOURCE *Aml,
- ACPI_RSCONVERT_INFO *Info);
-
-ACPI_STATUS
-AcpiRsConvertResourceToAml (
- ACPI_RESOURCE *Resource,
- AML_RESOURCE *Aml,
- ACPI_RSCONVERT_INFO *Info);
-
-
-/*
- * rsutils
- */
-void
-AcpiRsMoveData (
- void *Destination,
- void *Source,
- UINT16 ItemCount,
- UINT8 MoveType);
-
-UINT8
-AcpiRsDecodeBitmask (
- UINT16 Mask,
- UINT8 *List);
-
-UINT16
-AcpiRsEncodeBitmask (
- UINT8 *List,
- UINT8 Count);
-
-ACPI_RS_LENGTH
-AcpiRsGetResourceSource (
- ACPI_RS_LENGTH ResourceLength,
- ACPI_RS_LENGTH MinimumLength,
- ACPI_RESOURCE_SOURCE *ResourceSource,
- AML_RESOURCE *Aml,
- char *StringPtr);
-
-ACPI_RSDESC_SIZE
-AcpiRsSetResourceSource (
- AML_RESOURCE *Aml,
- ACPI_RS_LENGTH MinimumLength,
- ACPI_RESOURCE_SOURCE *ResourceSource);
-
-void
-AcpiRsSetResourceHeader (
- UINT8 DescriptorType,
- ACPI_RSDESC_SIZE TotalLength,
- AML_RESOURCE *Aml);
-
-void
-AcpiRsSetResourceLength (
- ACPI_RSDESC_SIZE TotalLength,
- AML_RESOURCE *Aml);
-
-
-/*
- * rsdump
- */
-void
-AcpiRsDumpResourceList (
- ACPI_RESOURCE *Resource);
-
-void
-AcpiRsDumpIrqList (
- UINT8 *RouteTable);
-
-
-/*
- * Resource conversion tables
- */
-extern ACPI_RSCONVERT_INFO AcpiRsConvertDma[];
-extern ACPI_RSCONVERT_INFO AcpiRsConvertEndDpf[];
-extern ACPI_RSCONVERT_INFO AcpiRsConvertIo[];
-extern ACPI_RSCONVERT_INFO AcpiRsConvertFixedIo[];
-extern ACPI_RSCONVERT_INFO AcpiRsConvertEndTag[];
-extern ACPI_RSCONVERT_INFO AcpiRsConvertMemory24[];
-extern ACPI_RSCONVERT_INFO AcpiRsConvertGenericReg[];
-extern ACPI_RSCONVERT_INFO AcpiRsConvertMemory32[];
-extern ACPI_RSCONVERT_INFO AcpiRsConvertFixedMemory32[];
-extern ACPI_RSCONVERT_INFO AcpiRsConvertAddress32[];
-extern ACPI_RSCONVERT_INFO AcpiRsConvertAddress16[];
-extern ACPI_RSCONVERT_INFO AcpiRsConvertExtIrq[];
-extern ACPI_RSCONVERT_INFO AcpiRsConvertAddress64[];
-extern ACPI_RSCONVERT_INFO AcpiRsConvertExtAddress64[];
-
-/* These resources require separate get/set tables */
-
-extern ACPI_RSCONVERT_INFO AcpiRsGetIrq[];
-extern ACPI_RSCONVERT_INFO AcpiRsGetStartDpf[];
-extern ACPI_RSCONVERT_INFO AcpiRsGetVendorSmall[];
-extern ACPI_RSCONVERT_INFO AcpiRsGetVendorLarge[];
-
-extern ACPI_RSCONVERT_INFO AcpiRsSetIrq[];
-extern ACPI_RSCONVERT_INFO AcpiRsSetStartDpf[];
-extern ACPI_RSCONVERT_INFO AcpiRsSetVendor[];
-
-
-#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
-/*
- * rsinfo
- */
-extern ACPI_RSDUMP_INFO *AcpiGbl_DumpResourceDispatch[];
-
-/*
- * rsdump
- */
-extern ACPI_RSDUMP_INFO AcpiRsDumpIrq[];
-extern ACPI_RSDUMP_INFO AcpiRsDumpDma[];
-extern ACPI_RSDUMP_INFO AcpiRsDumpStartDpf[];
-extern ACPI_RSDUMP_INFO AcpiRsDumpEndDpf[];
-extern ACPI_RSDUMP_INFO AcpiRsDumpIo[];
-extern ACPI_RSDUMP_INFO AcpiRsDumpFixedIo[];
-extern ACPI_RSDUMP_INFO AcpiRsDumpVendor[];
-extern ACPI_RSDUMP_INFO AcpiRsDumpEndTag[];
-extern ACPI_RSDUMP_INFO AcpiRsDumpMemory24[];
-extern ACPI_RSDUMP_INFO AcpiRsDumpMemory32[];
-extern ACPI_RSDUMP_INFO AcpiRsDumpFixedMemory32[];
-extern ACPI_RSDUMP_INFO AcpiRsDumpAddress16[];
-extern ACPI_RSDUMP_INFO AcpiRsDumpAddress32[];
-extern ACPI_RSDUMP_INFO AcpiRsDumpAddress64[];
-extern ACPI_RSDUMP_INFO AcpiRsDumpExtAddress64[];
-extern ACPI_RSDUMP_INFO AcpiRsDumpExtIrq[];
-extern ACPI_RSDUMP_INFO AcpiRsDumpGenericReg[];
-#endif
-
-#endif /* __ACRESRC_H__ */
diff --git a/sys/contrib/dev/acpica/acstruct.h b/sys/contrib/dev/acpica/acstruct.h
deleted file mode 100644
index 7861e7a..0000000
--- a/sys/contrib/dev/acpica/acstruct.h
+++ /dev/null
@@ -1,333 +0,0 @@
-/******************************************************************************
- *
- * Name: acstruct.h - Internal structs
- * $Revision: 1.47 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACSTRUCT_H__
-#define __ACSTRUCT_H__
-
-/* acpisrc:StructDefs -- for acpisrc conversion */
-
-/*****************************************************************************
- *
- * Tree walking typedefs and structs
- *
- ****************************************************************************/
-
-
-/*
- * Walk state - current state of a parse tree walk. Used for both a leisurely
- * stroll through the tree (for whatever reason), and for control method
- * execution.
- */
-#define ACPI_NEXT_OP_DOWNWARD 1
-#define ACPI_NEXT_OP_UPWARD 2
-
-/*
- * Groups of definitions for WalkType used for different implementations of
- * walkers (never simultaneously) - flags for interpreter:
- */
-#define ACPI_WALK_NON_METHOD 0
-#define ACPI_WALK_METHOD 0x01
-#define ACPI_WALK_METHOD_RESTART 0x02
-
-/* Flags for iASL compiler only */
-
-#define ACPI_WALK_CONST_REQUIRED 0x10
-#define ACPI_WALK_CONST_OPTIONAL 0x20
-
-
-typedef struct acpi_walk_state
-{
- struct acpi_walk_state *Next; /* Next WalkState in list */
- UINT8 DescriptorType; /* To differentiate various internal objs */
- UINT8 WalkType;
- UINT16 Opcode; /* Current AML opcode */
- UINT8 NextOpInfo; /* Info about NextOp */
- UINT8 NumOperands; /* Stack pointer for Operands[] array */
- UINT8 OperandIndex; /* Index into operand stack, to be used by AcpiDsObjStackPush */
- ACPI_OWNER_ID OwnerId; /* Owner of objects created during the walk */
- BOOLEAN LastPredicate; /* Result of last predicate */
- UINT8 CurrentResult;
- UINT8 ReturnUsed;
- UINT8 ScopeDepth;
- UINT8 PassNumber; /* Parse pass during table load */
- UINT8 ResultSize; /* Total elements for the result stack */
- UINT8 ResultCount; /* Current number of occupied elements of result stack */
- UINT32 AmlOffset;
- UINT32 ArgTypes;
- UINT32 MethodBreakpoint; /* For single stepping */
- UINT32 UserBreakpoint; /* User AML breakpoint */
- UINT32 ParseFlags;
-
- ACPI_PARSE_STATE ParserState; /* Current state of parser */
- UINT32 PrevArgTypes;
- UINT32 ArgCount; /* push for fixed or var args */
-
- struct acpi_namespace_node Arguments[ACPI_METHOD_NUM_ARGS]; /* Control method arguments */
- struct acpi_namespace_node LocalVariables[ACPI_METHOD_NUM_LOCALS]; /* Control method locals */
- union acpi_operand_object *Operands[ACPI_OBJ_NUM_OPERANDS + 1]; /* Operands passed to the interpreter (+1 for NULL terminator) */
- union acpi_operand_object **Params;
-
- UINT8 *AmlLastWhile;
- union acpi_operand_object **CallerReturnDesc;
- ACPI_GENERIC_STATE *ControlState; /* List of control states (nested IFs) */
- struct acpi_namespace_node *DeferredNode; /* Used when executing deferred opcodes */
- struct acpi_gpe_event_info *GpeEventInfo; /* Info for GPE (_Lxx/_Exx methods only */
- union acpi_operand_object *ImplicitReturnObj;
- struct acpi_namespace_node *MethodCallNode; /* Called method Node*/
- ACPI_PARSE_OBJECT *MethodCallOp; /* MethodCall Op if running a method */
- union acpi_operand_object *MethodDesc; /* Method descriptor if running a method */
- struct acpi_namespace_node *MethodNode; /* Method node if running a method. */
- ACPI_PARSE_OBJECT *Op; /* Current parser op */
- const ACPI_OPCODE_INFO *OpInfo; /* Info on current opcode */
- ACPI_PARSE_OBJECT *Origin; /* Start of walk [Obsolete] */
- union acpi_operand_object *ResultObj;
- ACPI_GENERIC_STATE *Results; /* Stack of accumulated results */
- union acpi_operand_object *ReturnDesc; /* Return object, if any */
- ACPI_GENERIC_STATE *ScopeInfo; /* Stack of nested scopes */
- ACPI_PARSE_OBJECT *PrevOp; /* Last op that was processed */
- ACPI_PARSE_OBJECT *NextOp; /* next op to be processed */
- ACPI_THREAD_STATE *Thread;
- ACPI_PARSE_DOWNWARDS DescendingCallback;
- ACPI_PARSE_UPWARDS AscendingCallback;
-
-} ACPI_WALK_STATE;
-
-
-/* Info used by AcpiPsInitObjects */
-
-typedef struct acpi_init_walk_info
-{
- UINT16 MethodCount;
- UINT16 DeviceCount;
- UINT16 OpRegionCount;
- UINT16 FieldCount;
- UINT16 BufferCount;
- UINT16 PackageCount;
- UINT16 OpRegionInit;
- UINT16 FieldInit;
- UINT16 BufferInit;
- UINT16 PackageInit;
- UINT16 ObjectCount;
- ACPI_OWNER_ID OwnerId;
- ACPI_NATIVE_UINT TableIndex;
-
-} ACPI_INIT_WALK_INFO;
-
-
-typedef struct acpi_get_devices_info
-{
- ACPI_WALK_CALLBACK UserFunction;
- void *Context;
- char *Hid;
-
-} ACPI_GET_DEVICES_INFO;
-
-
-typedef union acpi_aml_operands
-{
- ACPI_OPERAND_OBJECT *Operands[7];
-
- struct
- {
- ACPI_OBJECT_INTEGER *Type;
- ACPI_OBJECT_INTEGER *Code;
- ACPI_OBJECT_INTEGER *Argument;
-
- } Fatal;
-
- struct
- {
- ACPI_OPERAND_OBJECT *Source;
- ACPI_OBJECT_INTEGER *Index;
- ACPI_OPERAND_OBJECT *Target;
-
- } Index;
-
- struct
- {
- ACPI_OPERAND_OBJECT *Source;
- ACPI_OBJECT_INTEGER *Index;
- ACPI_OBJECT_INTEGER *Length;
- ACPI_OPERAND_OBJECT *Target;
-
- } Mid;
-
-} ACPI_AML_OPERANDS;
-
-
-/*
- * Structure used to pass object evaluation parameters.
- * Purpose is to reduce CPU stack use.
- */
-typedef struct acpi_evaluate_info
-{
- ACPI_NAMESPACE_NODE *PrefixNode;
- char *Pathname;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_OPERAND_OBJECT **Parameters;
- ACPI_NAMESPACE_NODE *ResolvedNode;
- ACPI_OPERAND_OBJECT *ReturnObject;
- UINT8 PassNumber;
- UINT8 ParameterType;
- UINT8 ReturnObjectType;
- UINT8 Flags;
-
-} ACPI_EVALUATE_INFO;
-
-/* Types for ParameterType above */
-
-#define ACPI_PARAM_ARGS 0
-#define ACPI_PARAM_GPE 1
-
-/* Values for Flags above */
-
-#define ACPI_IGNORE_RETURN_VALUE 1
-
-
-/* Info used by AcpiNsInitializeDevices */
-
-typedef struct acpi_device_walk_info
-{
- UINT16 DeviceCount;
- UINT16 Num_STA;
- UINT16 Num_INI;
- ACPI_TABLE_DESC *TableDesc;
- ACPI_EVALUATE_INFO *EvaluateInfo;
-
-} ACPI_DEVICE_WALK_INFO;
-
-
-/* TBD: [Restructure] Merge with struct above */
-
-typedef struct acpi_walk_info
-{
- UINT32 DebugLevel;
- UINT32 Count;
- ACPI_OWNER_ID OwnerId;
- UINT8 DisplayType;
-
-} ACPI_WALK_INFO;
-
-/* Display Types */
-
-#define ACPI_DISPLAY_SUMMARY (UINT8) 0
-#define ACPI_DISPLAY_OBJECTS (UINT8) 1
-#define ACPI_DISPLAY_MASK (UINT8) 1
-
-#define ACPI_DISPLAY_SHORT (UINT8) 2
-
-
-#endif
diff --git a/sys/contrib/dev/acpica/actables.h b/sys/contrib/dev/acpica/actables.h
deleted file mode 100644
index 144b59f..0000000
--- a/sys/contrib/dev/acpica/actables.h
+++ /dev/null
@@ -1,243 +0,0 @@
-/******************************************************************************
- *
- * Name: actables.h - ACPI table management
- * $Revision: 1.64 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACTABLES_H__
-#define __ACTABLES_H__
-
-
-ACPI_STATUS
-AcpiAllocateRootTable (
- UINT32 InitialTableCount);
-
-/*
- * tbfadt - FADT parse/convert/validate
- */
-void
-AcpiTbParseFadt (
- ACPI_NATIVE_UINT TableIndex,
- UINT8 Flags);
-
-void
-AcpiTbCreateLocalFadt (
- ACPI_TABLE_HEADER *Table,
- UINT32 Length);
-
-
-/*
- * tbfind - find ACPI table
- */
-ACPI_STATUS
-AcpiTbFindTable (
- char *Signature,
- char *OemId,
- char *OemTableId,
- ACPI_NATIVE_UINT *TableIndex);
-
-
-/*
- * tbinstal - Table removal and deletion
- */
-ACPI_STATUS
-AcpiTbResizeRootTableList (
- void);
-
-ACPI_STATUS
-AcpiTbVerifyTable (
- ACPI_TABLE_DESC *TableDesc);
-
-ACPI_STATUS
-AcpiTbAddTable (
- ACPI_TABLE_DESC *TableDesc,
- ACPI_NATIVE_UINT *TableIndex);
-
-ACPI_STATUS
-AcpiTbStoreTable (
- ACPI_PHYSICAL_ADDRESS Address,
- ACPI_TABLE_HEADER *Table,
- UINT32 Length,
- UINT8 Flags,
- ACPI_NATIVE_UINT *TableIndex);
-
-void
-AcpiTbDeleteTable (
- ACPI_TABLE_DESC *TableDesc);
-
-void
-AcpiTbTerminate (
- void);
-
-void
-AcpiTbDeleteNamespaceByOwner (
- ACPI_NATIVE_UINT TableIndex);
-
-ACPI_STATUS
-AcpiTbAllocateOwnerId (
- ACPI_NATIVE_UINT TableIndex);
-
-ACPI_STATUS
-AcpiTbReleaseOwnerId (
- ACPI_NATIVE_UINT TableIndex);
-
-ACPI_STATUS
-AcpiTbGetOwnerId (
- ACPI_NATIVE_UINT TableIndex,
- ACPI_OWNER_ID *OwnerId);
-
-BOOLEAN
-AcpiTbIsTableLoaded (
- ACPI_NATIVE_UINT TableIndex);
-
-void
-AcpiTbSetTableLoadedFlag (
- ACPI_NATIVE_UINT TableIndex,
- BOOLEAN IsLoaded);
-
-
-/*
- * tbutils - table manager utilities
- */
-BOOLEAN
-AcpiTbTablesLoaded (
- void);
-
-void
-AcpiTbPrintTableHeader(
- ACPI_PHYSICAL_ADDRESS Address,
- ACPI_TABLE_HEADER *Header);
-
-UINT8
-AcpiTbChecksum (
- UINT8 *Buffer,
- ACPI_NATIVE_UINT Length);
-
-ACPI_STATUS
-AcpiTbVerifyChecksum (
- ACPI_TABLE_HEADER *Table,
- UINT32 Length);
-
-void
-AcpiTbInstallTable (
- ACPI_PHYSICAL_ADDRESS Address,
- UINT8 Flags,
- char *Signature,
- ACPI_NATIVE_UINT TableIndex);
-
-ACPI_STATUS
-AcpiTbParseRootTable (
- ACPI_PHYSICAL_ADDRESS RsdpAddress,
- UINT8 Flags);
-
-#endif /* __ACTABLES_H__ */
diff --git a/sys/contrib/dev/acpica/actbl.h b/sys/contrib/dev/acpica/actbl.h
deleted file mode 100644
index 41859ff..0000000
--- a/sys/contrib/dev/acpica/actbl.h
+++ /dev/null
@@ -1,395 +0,0 @@
-/******************************************************************************
- *
- * Name: actbl.h - Basic ACPI Table Definitions
- * $Revision: 1.84 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACTBL_H__
-#define __ACTBL_H__
-
-/*
- * Values for description table header signatures. Useful because they make
- * it more difficult to inadvertently type in the wrong signature.
- */
-#define ACPI_SIG_DSDT "DSDT" /* Differentiated System Description Table */
-#define ACPI_SIG_FADT "FACP" /* Fixed ACPI Description Table */
-#define ACPI_SIG_FACS "FACS" /* Firmware ACPI Control Structure */
-#define ACPI_SIG_PSDT "PSDT" /* Persistent System Description Table */
-#define ACPI_SIG_RSDP "RSD PTR " /* Root System Description Pointer */
-#define ACPI_SIG_RSDT "RSDT" /* Root System Description Table */
-#define ACPI_SIG_XSDT "XSDT" /* Extended System Description Table */
-#define ACPI_SIG_SSDT "SSDT" /* Secondary System Description Table */
-#define ACPI_RSDP_NAME "RSDP" /* Short name for RSDP, not signature */
-
-
-/*
- * All tables and structures must be byte-packed to match the ACPI
- * specification, since the tables are provided by the system BIOS
- */
-#pragma pack(1)
-
-
-/*
- * These are the ACPI tables that are directly consumed by the subsystem.
- *
- * The RSDP and FACS do not use the common ACPI table header. All other ACPI
- * tables use the header.
- *
- * Note about bitfields: The UINT8 type is used for bitfields in ACPI tables.
- * This is the only type that is even remotely portable. Anything else is not
- * portable, so do not use any other bitfield types.
- */
-
-/*******************************************************************************
- *
- * ACPI Table Header. This common header is used by all tables except the
- * RSDP and FACS. The define is used for direct inclusion of header into
- * other ACPI tables
- *
- ******************************************************************************/
-
-typedef struct acpi_table_header
-{
- char Signature[ACPI_NAME_SIZE]; /* ASCII table signature */
- UINT32 Length; /* Length of table in bytes, including this header */
- UINT8 Revision; /* ACPI Specification minor version # */
- UINT8 Checksum; /* To make sum of entire table == 0 */
- char OemId[ACPI_OEM_ID_SIZE]; /* ASCII OEM identification */
- char OemTableId[ACPI_OEM_TABLE_ID_SIZE]; /* ASCII OEM table identification */
- UINT32 OemRevision; /* OEM revision number */
- char AslCompilerId[ACPI_NAME_SIZE]; /* ASCII ASL compiler vendor ID */
- UINT32 AslCompilerRevision; /* ASL compiler version */
-
-} ACPI_TABLE_HEADER;
-
-
-/*
- * GAS - Generic Address Structure (ACPI 2.0+)
- *
- * Note: Since this structure is used in the ACPI tables, it is byte aligned.
- * If misalignment is not supported, access to the Address field must be
- * performed with care.
- */
-typedef struct acpi_generic_address
-{
- UINT8 SpaceId; /* Address space where struct or register exists */
- UINT8 BitWidth; /* Size in bits of given register */
- UINT8 BitOffset; /* Bit offset within the register */
- UINT8 AccessWidth; /* Minimum Access size (ACPI 3.0) */
- UINT64 Address; /* 64-bit address of struct or register */
-
-} ACPI_GENERIC_ADDRESS;
-
-
-/*******************************************************************************
- *
- * RSDP - Root System Description Pointer (Signature is "RSD PTR ")
- *
- ******************************************************************************/
-
-typedef struct acpi_table_rsdp
-{
- char Signature[8]; /* ACPI signature, contains "RSD PTR " */
- UINT8 Checksum; /* ACPI 1.0 checksum */
- char OemId[ACPI_OEM_ID_SIZE]; /* OEM identification */
- UINT8 Revision; /* Must be (0) for ACPI 1.0 or (2) for ACPI 2.0+ */
- UINT32 RsdtPhysicalAddress; /* 32-bit physical address of the RSDT */
- UINT32 Length; /* Table length in bytes, including header (ACPI 2.0+) */
- UINT64 XsdtPhysicalAddress; /* 64-bit physical address of the XSDT (ACPI 2.0+) */
- UINT8 ExtendedChecksum; /* Checksum of entire table (ACPI 2.0+) */
- UINT8 Reserved[3]; /* Reserved, must be zero */
-
-} ACPI_TABLE_RSDP;
-
-#define ACPI_RSDP_REV0_SIZE 20 /* Size of original ACPI 1.0 RSDP */
-
-
-/*******************************************************************************
- *
- * RSDT/XSDT - Root System Description Tables
- *
- ******************************************************************************/
-
-typedef struct acpi_table_rsdt
-{
- ACPI_TABLE_HEADER Header; /* Common ACPI table header */
- UINT32 TableOffsetEntry[1]; /* Array of pointers to ACPI tables */
-
-} ACPI_TABLE_RSDT;
-
-typedef struct acpi_table_xsdt
-{
- ACPI_TABLE_HEADER Header; /* Common ACPI table header */
- UINT64 TableOffsetEntry[1]; /* Array of pointers to ACPI tables */
-
-} ACPI_TABLE_XSDT;
-
-
-/*******************************************************************************
- *
- * FACS - Firmware ACPI Control Structure (FACS)
- *
- ******************************************************************************/
-
-typedef struct acpi_table_facs
-{
- char Signature[4]; /* ASCII table signature */
- UINT32 Length; /* Length of structure, in bytes */
- UINT32 HardwareSignature; /* Hardware configuration signature */
- UINT32 FirmwareWakingVector; /* 32-bit physical address of the Firmware Waking Vector */
- UINT32 GlobalLock; /* Global Lock for shared hardware resources */
- UINT32 Flags;
- UINT64 XFirmwareWakingVector; /* 64-bit version of the Firmware Waking Vector (ACPI 2.0+) */
- UINT8 Version; /* Version of this table (ACPI 2.0+) */
- UINT8 Reserved[31]; /* Reserved, must be zero */
-
-} ACPI_TABLE_FACS;
-
-/* Flag macros */
-
-#define ACPI_FACS_S4_BIOS_PRESENT (1) /* 00: S4BIOS support is present */
-
-/* Global lock flags */
-
-#define ACPI_GLOCK_PENDING 0x01 /* 00: Pending global lock ownership */
-#define ACPI_GLOCK_OWNED 0x02 /* 01: Global lock is owned */
-
-
-/*******************************************************************************
- *
- * FADT - Fixed ACPI Description Table (Signature "FACP")
- *
- ******************************************************************************/
-
-/* Fields common to all versions of the FADT */
-
-typedef struct acpi_table_fadt
-{
- ACPI_TABLE_HEADER Header; /* Common ACPI table header */
- UINT32 Facs; /* 32-bit physical address of FACS */
- UINT32 Dsdt; /* 32-bit physical address of DSDT */
- UINT8 Model; /* System Interrupt Model (ACPI 1.0) - not used in ACPI 2.0+ */
- UINT8 PreferredProfile; /* Conveys preferred power management profile to OSPM. */
- UINT16 SciInterrupt; /* System vector of SCI interrupt */
- UINT32 SmiCommand; /* 32-bit Port address of SMI command port */
- UINT8 AcpiEnable; /* Value to write to smi_cmd to enable ACPI */
- UINT8 AcpiDisable; /* Value to write to smi_cmd to disable ACPI */
- UINT8 S4BiosRequest; /* Value to write to SMI CMD to enter S4BIOS state */
- UINT8 PstateControl; /* Processor performance state control*/
- UINT32 Pm1aEventBlock; /* 32-bit Port address of Power Mgt 1a Event Reg Blk */
- UINT32 Pm1bEventBlock; /* 32-bit Port address of Power Mgt 1b Event Reg Blk */
- UINT32 Pm1aControlBlock; /* 32-bit Port address of Power Mgt 1a Control Reg Blk */
- UINT32 Pm1bControlBlock; /* 32-bit Port address of Power Mgt 1b Control Reg Blk */
- UINT32 Pm2ControlBlock; /* 32-bit Port address of Power Mgt 2 Control Reg Blk */
- UINT32 PmTimerBlock; /* 32-bit Port address of Power Mgt Timer Ctrl Reg Blk */
- UINT32 Gpe0Block; /* 32-bit Port address of General Purpose Event 0 Reg Blk */
- UINT32 Gpe1Block; /* 32-bit Port address of General Purpose Event 1 Reg Blk */
- UINT8 Pm1EventLength; /* Byte Length of ports at Pm1xEventBlock */
- UINT8 Pm1ControlLength; /* Byte Length of ports at Pm1xControlBlock */
- UINT8 Pm2ControlLength; /* Byte Length of ports at Pm2ControlBlock */
- UINT8 PmTimerLength; /* Byte Length of ports at PmTimerBlock */
- UINT8 Gpe0BlockLength; /* Byte Length of ports at Gpe0Block */
- UINT8 Gpe1BlockLength; /* Byte Length of ports at Gpe1Block */
- UINT8 Gpe1Base; /* Offset in GPE number space where GPE1 events start */
- UINT8 CstControl; /* Support for the _CST object and C States change notification */
- UINT16 C2Latency; /* Worst case HW latency to enter/exit C2 state */
- UINT16 C3Latency; /* Worst case HW latency to enter/exit C3 state */
- UINT16 FlushSize; /* Processor's memory cache line width, in bytes */
- UINT16 FlushStride; /* Number of flush strides that need to be read */
- UINT8 DutyOffset; /* Processor duty cycle index in processor's P_CNT reg*/
- UINT8 DutyWidth; /* Processor duty cycle value bit width in P_CNT register.*/
- UINT8 DayAlarm; /* Index to day-of-month alarm in RTC CMOS RAM */
- UINT8 MonthAlarm; /* Index to month-of-year alarm in RTC CMOS RAM */
- UINT8 Century; /* Index to century in RTC CMOS RAM */
- UINT16 BootFlags; /* IA-PC Boot Architecture Flags. See Table 5-10 for description */
- UINT8 Reserved; /* Reserved, must be zero */
- UINT32 Flags; /* Miscellaneous flag bits (see below for individual flags) */
- ACPI_GENERIC_ADDRESS ResetRegister; /* 64-bit address of the Reset register */
- UINT8 ResetValue; /* Value to write to the ResetRegister port to reset the system */
- UINT8 Reserved4[3]; /* Reserved, must be zero */
- UINT64 XFacs; /* 64-bit physical address of FACS */
- UINT64 XDsdt; /* 64-bit physical address of DSDT */
- ACPI_GENERIC_ADDRESS XPm1aEventBlock; /* 64-bit Extended Power Mgt 1a Event Reg Blk address */
- ACPI_GENERIC_ADDRESS XPm1bEventBlock; /* 64-bit Extended Power Mgt 1b Event Reg Blk address */
- ACPI_GENERIC_ADDRESS XPm1aControlBlock; /* 64-bit Extended Power Mgt 1a Control Reg Blk address */
- ACPI_GENERIC_ADDRESS XPm1bControlBlock; /* 64-bit Extended Power Mgt 1b Control Reg Blk address */
- ACPI_GENERIC_ADDRESS XPm2ControlBlock; /* 64-bit Extended Power Mgt 2 Control Reg Blk address */
- ACPI_GENERIC_ADDRESS XPmTimerBlock; /* 64-bit Extended Power Mgt Timer Ctrl Reg Blk address */
- ACPI_GENERIC_ADDRESS XGpe0Block; /* 64-bit Extended General Purpose Event 0 Reg Blk address */
- ACPI_GENERIC_ADDRESS XGpe1Block; /* 64-bit Extended General Purpose Event 1 Reg Blk address */
-
-} ACPI_TABLE_FADT;
-
-
-/* FADT flags */
-
-#define ACPI_FADT_WBINVD (1) /* 00: The wbinvd instruction works properly */
-#define ACPI_FADT_WBINVD_FLUSH (1<<1) /* 01: The wbinvd flushes but does not invalidate */
-#define ACPI_FADT_C1_SUPPORTED (1<<2) /* 02: All processors support C1 state */
-#define ACPI_FADT_C2_MP_SUPPORTED (1<<3) /* 03: C2 state works on MP system */
-#define ACPI_FADT_POWER_BUTTON (1<<4) /* 04: Power button is handled as a generic feature */
-#define ACPI_FADT_SLEEP_BUTTON (1<<5) /* 05: Sleep button is handled as a generic feature, or not present */
-#define ACPI_FADT_FIXED_RTC (1<<6) /* 06: RTC wakeup stat not in fixed register space */
-#define ACPI_FADT_S4_RTC_WAKE (1<<7) /* 07: RTC wakeup stat not possible from S4 */
-#define ACPI_FADT_32BIT_TIMER (1<<8) /* 08: tmr_val is 32 bits 0=24-bits */
-#define ACPI_FADT_DOCKING_SUPPORTED (1<<9) /* 09: Docking supported */
-#define ACPI_FADT_RESET_REGISTER (1<<10) /* 10: System reset via the FADT RESET_REG supported */
-#define ACPI_FADT_SEALED_CASE (1<<11) /* 11: No internal expansion capabilities and case is sealed */
-#define ACPI_FADT_HEADLESS (1<<12) /* 12: No local video capabilities or local input devices */
-#define ACPI_FADT_SLEEP_TYPE (1<<13) /* 13: Must execute native instruction after writing SLP_TYPx register */
-#define ACPI_FADT_PCI_EXPRESS_WAKE (1<<14) /* 14: System supports PCIEXP_WAKE (STS/EN) bits (ACPI 3.0) */
-#define ACPI_FADT_PLATFORM_CLOCK (1<<15) /* 15: OSPM should use platform-provided timer (ACPI 3.0) */
-#define ACPI_FADT_S4_RTC_VALID (1<<16) /* 16: Contents of RTC_STS valid after S4 wake (ACPI 3.0) */
-#define ACPI_FADT_REMOTE_POWER_ON (1<<17) /* 17: System is compatible with remote power on (ACPI 3.0) */
-#define ACPI_FADT_APIC_CLUSTER (1<<18) /* 18: All local APICs must use cluster model (ACPI 3.0) */
-#define ACPI_FADT_APIC_PHYSICAL (1<<19) /* 19: All local xAPICs must use physical dest mode (ACPI 3.0) */
-
-
-/*
- * FADT Prefered Power Management Profiles
- */
-enum AcpiPreferedPmProfiles
-{
- PM_UNSPECIFIED = 0,
- PM_DESKTOP = 1,
- PM_MOBILE = 2,
- PM_WORKSTATION = 3,
- PM_ENTERPRISE_SERVER = 4,
- PM_SOHO_SERVER = 5,
- PM_APPLIANCE_PC = 6
-};
-
-
-/* FADT Boot Arch Flags */
-
-#define BAF_LEGACY_DEVICES 0x0001
-#define BAF_8042_KEYBOARD_CONTROLLER 0x0002
-
-#define FADT2_REVISION_ID 3
-#define FADT2_MINUS_REVISION_ID 2
-
-
-/* Reset to default packing */
-
-#pragma pack()
-
-/*
- * Get the remaining ACPI tables
- */
-#include <contrib/dev/acpica/actbl1.h>
-
-/* Macros used to generate offsets to specific table fields */
-
-#define ACPI_FADT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_FADT, f)
-
-#endif /* __ACTBL_H__ */
diff --git a/sys/contrib/dev/acpica/actbl1.h b/sys/contrib/dev/acpica/actbl1.h
deleted file mode 100644
index 41e435b..0000000
--- a/sys/contrib/dev/acpica/actbl1.h
+++ /dev/null
@@ -1,917 +0,0 @@
-/******************************************************************************
- *
- * Name: actbl1.h - Additional ACPI table definitions
- * $Revision: 1.47 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACTBL1_H__
-#define __ACTBL1_H__
-
-
-/*******************************************************************************
- *
- * Additional ACPI Tables
- *
- * These tables are not consumed directly by the ACPICA subsystem, but are
- * included here to support device drivers and the AML disassembler.
- *
- ******************************************************************************/
-
-
-/*
- * Values for description table header signatures. Useful because they make
- * it more difficult to inadvertently type in the wrong signature.
- */
-#define ACPI_SIG_ASF "ASF!" /* Alert Standard Format table */
-#define ACPI_SIG_BOOT "BOOT" /* Simple Boot Flag Table */
-#define ACPI_SIG_CPEP "CPEP" /* Corrected Platform Error Polling table */
-#define ACPI_SIG_DBGP "DBGP" /* Debug Port table */
-#define ACPI_SIG_DMAR "DMAR" /* DMA Remapping table */
-#define ACPI_SIG_ECDT "ECDT" /* Embedded Controller Boot Resources Table */
-#define ACPI_SIG_HPET "HPET" /* High Precision Event Timer table */
-#define ACPI_SIG_MADT "APIC" /* Multiple APIC Description Table */
-#define ACPI_SIG_MCFG "MCFG" /* PCI Memory Mapped Configuration table */
-#define ACPI_SIG_SBST "SBST" /* Smart Battery Specification Table */
-#define ACPI_SIG_SLIT "SLIT" /* System Locality Distance Information Table */
-#define ACPI_SIG_SPCR "SPCR" /* Serial Port Console Redirection table */
-#define ACPI_SIG_SPMI "SPMI" /* Server Platform Management Interface table */
-#define ACPI_SIG_SRAT "SRAT" /* System Resource Affinity Table */
-#define ACPI_SIG_TCPA "TCPA" /* Trusted Computing Platform Alliance table */
-#define ACPI_SIG_WDRT "WDRT" /* Watchdog Resource Table */
-
-
-/*
- * All tables must be byte-packed to match the ACPI specification, since
- * the tables are provided by the system BIOS.
- */
-#pragma pack(1)
-
-/*
- * Note about bitfields: The UINT8 type is used for bitfields in ACPI tables.
- * This is the only type that is even remotely portable. Anything else is not
- * portable, so do not use any other bitfield types.
- */
-
-
-/* Common Sub-table header (used in MADT, SRAT, etc.) */
-
-typedef struct acpi_subtable_header
-{
- UINT8 Type;
- UINT8 Length;
-
-} ACPI_SUBTABLE_HEADER;
-
-
-/*******************************************************************************
- *
- * ASF - Alert Standard Format table (Signature "ASF!")
- *
- * Conforms to the Alert Standard Format Specification V2.0, 23 April 2003
- *
- ******************************************************************************/
-
-typedef struct acpi_table_asf
-{
- ACPI_TABLE_HEADER Header; /* Common ACPI table header */
-
-} ACPI_TABLE_ASF;
-
-
-/* ASF subtable header */
-
-typedef struct acpi_asf_header
-{
- UINT8 Type;
- UINT8 Reserved;
- UINT16 Length;
-
-} ACPI_ASF_HEADER;
-
-
-/* Values for Type field above */
-
-enum AcpiAsfType
-{
- ACPI_ASF_TYPE_INFO = 0,
- ACPI_ASF_TYPE_ALERT = 1,
- ACPI_ASF_TYPE_CONTROL = 2,
- ACPI_ASF_TYPE_BOOT = 3,
- ACPI_ASF_TYPE_ADDRESS = 4,
- ACPI_ASF_TYPE_RESERVED = 5
-};
-
-/*
- * ASF subtables
- */
-
-/* 0: ASF Information */
-
-typedef struct acpi_asf_info
-{
- ACPI_ASF_HEADER Header;
- UINT8 MinResetValue;
- UINT8 MinPollInterval;
- UINT16 SystemId;
- UINT32 MfgId;
- UINT8 Flags;
- UINT8 Reserved2[3];
-
-} ACPI_ASF_INFO;
-
-/* 1: ASF Alerts */
-
-typedef struct acpi_asf_alert
-{
- ACPI_ASF_HEADER Header;
- UINT8 AssertMask;
- UINT8 DeassertMask;
- UINT8 Alerts;
- UINT8 DataLength;
-
-} ACPI_ASF_ALERT;
-
-typedef struct acpi_asf_alert_data
-{
- UINT8 Address;
- UINT8 Command;
- UINT8 Mask;
- UINT8 Value;
- UINT8 SensorType;
- UINT8 Type;
- UINT8 Offset;
- UINT8 SourceType;
- UINT8 Severity;
- UINT8 SensorNumber;
- UINT8 Entity;
- UINT8 Instance;
-
-} ACPI_ASF_ALERT_DATA;
-
-/* 2: ASF Remote Control */
-
-typedef struct acpi_asf_remote
-{
- ACPI_ASF_HEADER Header;
- UINT8 Controls;
- UINT8 DataLength;
- UINT16 Reserved2;
-
-} ACPI_ASF_REMOTE;
-
-typedef struct acpi_asf_control_data
-{
- UINT8 Function;
- UINT8 Address;
- UINT8 Command;
- UINT8 Value;
-
-} ACPI_ASF_CONTROL_DATA;
-
-/* 3: ASF RMCP Boot Options */
-
-typedef struct acpi_asf_rmcp
-{
- ACPI_ASF_HEADER Header;
- UINT8 Capabilities[7];
- UINT8 CompletionCode;
- UINT32 EnterpriseId;
- UINT8 Command;
- UINT16 Parameter;
- UINT16 BootOptions;
- UINT16 OemParameters;
-
-} ACPI_ASF_RMCP;
-
-/* 4: ASF Address */
-
-typedef struct acpi_asf_address
-{
- ACPI_ASF_HEADER Header;
- UINT8 EpromAddress;
- UINT8 Devices;
-
-} ACPI_ASF_ADDRESS;
-
-
-/*******************************************************************************
- *
- * BOOT - Simple Boot Flag Table
- *
- ******************************************************************************/
-
-typedef struct acpi_table_boot
-{
- ACPI_TABLE_HEADER Header; /* Common ACPI table header */
- UINT8 CmosIndex; /* Index in CMOS RAM for the boot register */
- UINT8 Reserved[3];
-
-} ACPI_TABLE_BOOT;
-
-
-/*******************************************************************************
- *
- * CPEP - Corrected Platform Error Polling table
- *
- ******************************************************************************/
-
-typedef struct acpi_table_cpep
-{
- ACPI_TABLE_HEADER Header; /* Common ACPI table header */
- UINT64 Reserved;
-
-} ACPI_TABLE_CPEP;
-
-
-/* Subtable */
-
-typedef struct acpi_cpep_polling
-{
- UINT8 Type;
- UINT8 Length;
- UINT8 Id; /* Processor ID */
- UINT8 Eid; /* Processor EID */
- UINT32 Interval; /* Polling interval (msec) */
-
-} ACPI_CPEP_POLLING;
-
-
-/*******************************************************************************
- *
- * DBGP - Debug Port table
- *
- ******************************************************************************/
-
-typedef struct acpi_table_dbgp
-{
- ACPI_TABLE_HEADER Header; /* Common ACPI table header */
- UINT8 Type; /* 0=full 16550, 1=subset of 16550 */
- UINT8 Reserved[3];
- ACPI_GENERIC_ADDRESS DebugPort;
-
-} ACPI_TABLE_DBGP;
-
-
-/*******************************************************************************
- *
- * DMAR - DMA Remapping table
- *
- ******************************************************************************/
-
-typedef struct acpi_table_dmar
-{
- ACPI_TABLE_HEADER Header; /* Common ACPI table header */
- UINT8 Width; /* Host Address Width */
- UINT8 Reserved[11];
-
-} ACPI_TABLE_DMAR;
-
-/* DMAR subtable header */
-
-typedef struct acpi_dmar_header
-{
- UINT16 Type;
- UINT16 Length;
- UINT8 Flags;
- UINT8 Reserved[3];
-
-} ACPI_DMAR_HEADER;
-
-/* Values for subtable type in ACPI_DMAR_HEADER */
-
-enum AcpiDmarType
-{
- ACPI_DMAR_TYPE_HARDWARE_UNIT = 0,
- ACPI_DMAR_TYPE_RESERVED_MEMORY = 1,
- ACPI_DMAR_TYPE_RESERVED = 2 /* 2 and greater are reserved */
-};
-
-typedef struct acpi_dmar_device_scope
-{
- UINT8 EntryType;
- UINT8 Length;
- UINT8 Segment;
- UINT8 Bus;
-
-} ACPI_DMAR_DEVICE_SCOPE;
-
-/* Values for EntryType in ACPI_DMAR_DEVICE_SCOPE */
-
-enum AcpiDmarScopeType
-{
- ACPI_DMAR_SCOPE_TYPE_NOT_USED = 0,
- ACPI_DMAR_SCOPE_TYPE_ENDPOINT = 1,
- ACPI_DMAR_SCOPE_TYPE_BRIDGE = 2,
- ACPI_DMAR_SCOPE_TYPE_RESERVED = 3 /* 3 and greater are reserved */
-};
-
-
-/*
- * DMAR Sub-tables, correspond to Type in ACPI_DMAR_HEADER
- */
-
-/* 0: Hardware Unit Definition */
-
-typedef struct acpi_dmar_hardware_unit
-{
- ACPI_DMAR_HEADER Header;
- UINT64 Address; /* Register Base Address */
-
-} ACPI_DMAR_HARDWARE_UNIT;
-
-/* Flags */
-
-#define ACPI_DMAR_INCLUDE_ALL (1)
-
-/* 1: Reserved Memory Defininition */
-
-typedef struct acpi_dmar_reserved_memory
-{
- ACPI_DMAR_HEADER Header;
- UINT64 Address; /* 4K aligned base address */
- UINT64 EndAddress; /* 4K aligned limit address */
-
-} ACPI_DMAR_RESERVED_MEMORY;
-
-/* Flags */
-
-#define ACPI_DMAR_ALLOW_ALL (1)
-
-
-/*******************************************************************************
- *
- * ECDT - Embedded Controller Boot Resources Table
- *
- ******************************************************************************/
-
-typedef struct acpi_table_ecdt
-{
- ACPI_TABLE_HEADER Header; /* Common ACPI table header */
- ACPI_GENERIC_ADDRESS Control; /* Address of EC command/status register */
- ACPI_GENERIC_ADDRESS Data; /* Address of EC data register */
- UINT32 Uid; /* Unique ID - must be same as the EC _UID method */
- UINT8 Gpe; /* The GPE for the EC */
- UINT8 Id[1]; /* Full namepath of the EC in the ACPI namespace */
-
-} ACPI_TABLE_ECDT;
-
-
-/*******************************************************************************
- *
- * HPET - High Precision Event Timer table
- *
- ******************************************************************************/
-
-typedef struct acpi_table_hpet
-{
- ACPI_TABLE_HEADER Header; /* Common ACPI table header */
- UINT32 Id; /* Hardware ID of event timer block */
- ACPI_GENERIC_ADDRESS Address; /* Address of event timer block */
- UINT8 Sequence; /* HPET sequence number */
- UINT16 MinimumTick; /* Main counter min tick, periodic mode */
- UINT8 Flags;
-
-} ACPI_TABLE_HPET;
-
-/*! Flags */
-
-#define ACPI_HPET_PAGE_PROTECT (1) /* 00: No page protection */
-#define ACPI_HPET_PAGE_PROTECT_4 (1<<1) /* 01: 4KB page protected */
-#define ACPI_HPET_PAGE_PROTECT_64 (1<<2) /* 02: 64KB page protected */
-
-/*! [End] no source code translation !*/
-
-
-/*******************************************************************************
- *
- * MADT - Multiple APIC Description Table
- *
- ******************************************************************************/
-
-typedef struct acpi_table_madt
-{
- ACPI_TABLE_HEADER Header; /* Common ACPI table header */
- UINT32 Address; /* Physical address of local APIC */
- UINT32 Flags;
-
-} ACPI_TABLE_MADT;
-
-/* Flags */
-
-#define ACPI_MADT_PCAT_COMPAT (1) /* 00: System also has dual 8259s */
-
-/* Values for PCATCompat flag */
-
-#define ACPI_MADT_DUAL_PIC 0
-#define ACPI_MADT_MULTIPLE_APIC 1
-
-
-/* Values for subtable type in ACPI_SUBTABLE_HEADER */
-
-enum AcpiMadtType
-{
- ACPI_MADT_TYPE_LOCAL_APIC = 0,
- ACPI_MADT_TYPE_IO_APIC = 1,
- ACPI_MADT_TYPE_INTERRUPT_OVERRIDE = 2,
- ACPI_MADT_TYPE_NMI_SOURCE = 3,
- ACPI_MADT_TYPE_LOCAL_APIC_NMI = 4,
- ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE = 5,
- ACPI_MADT_TYPE_IO_SAPIC = 6,
- ACPI_MADT_TYPE_LOCAL_SAPIC = 7,
- ACPI_MADT_TYPE_INTERRUPT_SOURCE = 8,
- ACPI_MADT_TYPE_RESERVED = 9 /* 9 and greater are reserved */
-};
-
-
-/*
- * MADT Sub-tables, correspond to Type in ACPI_SUBTABLE_HEADER
- */
-
-/* 0: Processor Local APIC */
-
-typedef struct acpi_madt_local_apic
-{
- ACPI_SUBTABLE_HEADER Header;
- UINT8 ProcessorId; /* ACPI processor id */
- UINT8 Id; /* Processor's local APIC id */
- UINT32 LapicFlags;
-
-} ACPI_MADT_LOCAL_APIC;
-
-/* 1: IO APIC */
-
-typedef struct acpi_madt_io_apic
-{
- ACPI_SUBTABLE_HEADER Header;
- UINT8 Id; /* I/O APIC ID */
- UINT8 Reserved; /* Reserved - must be zero */
- UINT32 Address; /* APIC physical address */
- UINT32 GlobalIrqBase; /* Global system interrupt where INTI lines start */
-
-} ACPI_MADT_IO_APIC;
-
-/* 2: Interrupt Override */
-
-typedef struct acpi_madt_interrupt_override
-{
- ACPI_SUBTABLE_HEADER Header;
- UINT8 Bus; /* 0 - ISA */
- UINT8 SourceIrq; /* Interrupt source (IRQ) */
- UINT32 GlobalIrq; /* Global system interrupt */
- UINT16 IntiFlags;
-
-} ACPI_MADT_INTERRUPT_OVERRIDE;
-
-/* 3: NMI Source */
-
-typedef struct acpi_madt_nmi_source
-{
- ACPI_SUBTABLE_HEADER Header;
- UINT16 IntiFlags;
- UINT32 GlobalIrq; /* Global system interrupt */
-
-} ACPI_MADT_NMI_SOURCE;
-
-/* 4: Local APIC NMI */
-
-typedef struct acpi_madt_local_apic_nmi
-{
- ACPI_SUBTABLE_HEADER Header;
- UINT8 ProcessorId; /* ACPI processor id */
- UINT16 IntiFlags;
- UINT8 Lint; /* LINTn to which NMI is connected */
-
-} ACPI_MADT_LOCAL_APIC_NMI;
-
-/* 5: Address Override */
-
-typedef struct acpi_madt_local_apic_override
-{
- ACPI_SUBTABLE_HEADER Header;
- UINT16 Reserved; /* Reserved, must be zero */
- UINT64 Address; /* APIC physical address */
-
-} ACPI_MADT_LOCAL_APIC_OVERRIDE;
-
-/* 6: I/O Sapic */
-
-typedef struct acpi_madt_io_sapic
-{
- ACPI_SUBTABLE_HEADER Header;
- UINT8 Id; /* I/O SAPIC ID */
- UINT8 Reserved; /* Reserved, must be zero */
- UINT32 GlobalIrqBase; /* Global interrupt for SAPIC start */
- UINT64 Address; /* SAPIC physical address */
-
-} ACPI_MADT_IO_SAPIC;
-
-/* 7: Local Sapic */
-
-typedef struct acpi_madt_local_sapic
-{
- ACPI_SUBTABLE_HEADER Header;
- UINT8 ProcessorId; /* ACPI processor id */
- UINT8 Id; /* SAPIC ID */
- UINT8 Eid; /* SAPIC EID */
- UINT8 Reserved[3]; /* Reserved, must be zero */
- UINT32 LapicFlags;
- UINT32 Uid; /* Numeric UID - ACPI 3.0 */
- char UidString[1]; /* String UID - ACPI 3.0 */
-
-} ACPI_MADT_LOCAL_SAPIC;
-
-/* 8: Platform Interrupt Source */
-
-typedef struct acpi_madt_interrupt_source
-{
- ACPI_SUBTABLE_HEADER Header;
- UINT16 IntiFlags;
- UINT8 Type; /* 1=PMI, 2=INIT, 3=corrected */
- UINT8 Id; /* Processor ID */
- UINT8 Eid; /* Processor EID */
- UINT8 IoSapicVector; /* Vector value for PMI interrupts */
- UINT32 GlobalIrq; /* Global system interrupt */
- UINT32 Flags; /* Interrupt Source Flags */
-
-} ACPI_MADT_INTERRUPT_SOURCE;
-
-/* Flags field above */
-
-#define ACPI_MADT_CPEI_OVERRIDE (1)
-
-
-/*
- * Common flags fields for MADT subtables
- */
-
-/* MADT Local APIC flags (LapicFlags) */
-
-#define ACPI_MADT_ENABLED (1) /* 00: Processor is usable if set */
-
-/* MADT MPS INTI flags (IntiFlags) */
-
-#define ACPI_MADT_POLARITY_MASK (3) /* 00-01: Polarity of APIC I/O input signals */
-#define ACPI_MADT_TRIGGER_MASK (3<<2) /* 02-03: Trigger mode of APIC input signals */
-
-/* Values for MPS INTI flags */
-
-#define ACPI_MADT_POLARITY_CONFORMS 0
-#define ACPI_MADT_POLARITY_ACTIVE_HIGH 1
-#define ACPI_MADT_POLARITY_RESERVED 2
-#define ACPI_MADT_POLARITY_ACTIVE_LOW 3
-
-#define ACPI_MADT_TRIGGER_CONFORMS (0)
-#define ACPI_MADT_TRIGGER_EDGE (1<<2)
-#define ACPI_MADT_TRIGGER_RESERVED (2<<2)
-#define ACPI_MADT_TRIGGER_LEVEL (3<<2)
-
-
-/*******************************************************************************
- *
- * MCFG - PCI Memory Mapped Configuration table and sub-table
- *
- ******************************************************************************/
-
-typedef struct acpi_table_mcfg
-{
- ACPI_TABLE_HEADER Header; /* Common ACPI table header */
- UINT8 Reserved[8];
-
-} ACPI_TABLE_MCFG;
-
-
-/* Subtable */
-
-typedef struct acpi_mcfg_allocation
-{
- UINT64 Address; /* Base address, processor-relative */
- UINT16 PciSegment; /* PCI segment group number */
- UINT8 StartBusNumber; /* Starting PCI Bus number */
- UINT8 EndBusNumber; /* Final PCI Bus number */
- UINT32 Reserved;
-
-} ACPI_MCFG_ALLOCATION;
-
-
-/*******************************************************************************
- *
- * SBST - Smart Battery Specification Table
- *
- ******************************************************************************/
-
-typedef struct acpi_table_sbst
-{
- ACPI_TABLE_HEADER Header; /* Common ACPI table header */
- UINT32 WarningLevel;
- UINT32 LowLevel;
- UINT32 CriticalLevel;
-
-} ACPI_TABLE_SBST;
-
-
-/*******************************************************************************
- *
- * SLIT - System Locality Distance Information Table
- *
- ******************************************************************************/
-
-typedef struct acpi_table_slit
-{
- ACPI_TABLE_HEADER Header; /* Common ACPI table header */
- UINT64 LocalityCount;
- UINT8 Entry[1]; /* Real size = localities^2 */
-
-} ACPI_TABLE_SLIT;
-
-
-/*******************************************************************************
- *
- * SPCR - Serial Port Console Redirection table
- *
- ******************************************************************************/
-
-typedef struct acpi_table_spcr
-{
- ACPI_TABLE_HEADER Header; /* Common ACPI table header */
- UINT8 InterfaceType; /* 0=full 16550, 1=subset of 16550 */
- UINT8 Reserved[3];
- ACPI_GENERIC_ADDRESS SerialPort;
- UINT8 InterruptType;
- UINT8 PcInterrupt;
- UINT32 Interrupt;
- UINT8 BaudRate;
- UINT8 Parity;
- UINT8 StopBits;
- UINT8 FlowControl;
- UINT8 TerminalType;
- UINT8 Reserved1;
- UINT16 PciDeviceId;
- UINT16 PciVendorId;
- UINT8 PciBus;
- UINT8 PciDevice;
- UINT8 PciFunction;
- UINT32 PciFlags;
- UINT8 PciSegment;
- UINT32 Reserved2;
-
-} ACPI_TABLE_SPCR;
-
-
-/*******************************************************************************
- *
- * SPMI - Server Platform Management Interface table
- *
- ******************************************************************************/
-
-typedef struct acpi_table_spmi
-{
- ACPI_TABLE_HEADER Header; /* Common ACPI table header */
- UINT8 Reserved;
- UINT8 InterfaceType;
- UINT16 SpecRevision; /* Version of IPMI */
- UINT8 InterruptType;
- UINT8 GpeNumber; /* GPE assigned */
- UINT8 Reserved1;
- UINT8 PciDeviceFlag;
- UINT32 Interrupt;
- ACPI_GENERIC_ADDRESS IpmiRegister;
- UINT8 PciSegment;
- UINT8 PciBus;
- UINT8 PciDevice;
- UINT8 PciFunction;
-
-} ACPI_TABLE_SPMI;
-
-
-/*******************************************************************************
- *
- * SRAT - System Resource Affinity Table
- *
- ******************************************************************************/
-
-typedef struct acpi_table_srat
-{
- ACPI_TABLE_HEADER Header; /* Common ACPI table header */
- UINT32 TableRevision; /* Must be value '1' */
- UINT64 Reserved; /* Reserved, must be zero */
-
-} ACPI_TABLE_SRAT;
-
-/* Values for subtable type in ACPI_SUBTABLE_HEADER */
-
-enum AcpiSratType
-{
- ACPI_SRAT_TYPE_CPU_AFFINITY = 0,
- ACPI_SRAT_TYPE_MEMORY_AFFINITY = 1,
- ACPI_SRAT_TYPE_RESERVED = 2
-};
-
-/* SRAT sub-tables */
-
-typedef struct acpi_srat_cpu_affinity
-{
- ACPI_SUBTABLE_HEADER Header;
- UINT8 ProximityDomainLo;
- UINT8 ApicId;
- UINT32 Flags;
- UINT8 LocalSapicEid;
- UINT8 ProximityDomainHi[3];
- UINT32 Reserved; /* Reserved, must be zero */
-
-} ACPI_SRAT_CPU_AFFINITY;
-
-/* Flags */
-
-#define ACPI_SRAT_CPU_ENABLED (1) /* 00: Use affinity structure */
-
-
-typedef struct acpi_srat_mem_affinity
-{
- ACPI_SUBTABLE_HEADER Header;
- UINT32 ProximityDomain;
- UINT16 Reserved; /* Reserved, must be zero */
- UINT64 BaseAddress;
- UINT64 Length;
- UINT32 MemoryType; /* See acpi_address_range_id */
- UINT32 Flags;
- UINT64 Reserved1; /* Reserved, must be zero */
-
-} ACPI_SRAT_MEM_AFFINITY;
-
-/* Flags */
-
-#define ACPI_SRAT_MEM_ENABLED (1) /* 00: Use affinity structure */
-#define ACPI_SRAT_MEM_HOT_PLUGGABLE (1<<1) /* 01: Memory region is hot pluggable */
-#define ACPI_SRAT_MEM_NON_VOLATILE (1<<2) /* 02: Memory region is non-volatile */
-
-/* Memory types */
-
-enum acpi_address_range_id
-{
- ACPI_ADDRESS_RANGE_MEMORY = 1,
- ACPI_ADDRESS_RANGE_RESERVED = 2,
- ACPI_ADDRESS_RANGE_ACPI = 3,
- ACPI_ADDRESS_RANGE_NVS = 4,
- ACPI_ADDRESS_RANGE_COUNT = 5
-};
-
-
-/*******************************************************************************
- *
- * TCPA - Trusted Computing Platform Alliance table
- *
- ******************************************************************************/
-
-typedef struct acpi_table_tcpa
-{
- ACPI_TABLE_HEADER Header; /* Common ACPI table header */
- UINT16 Reserved;
- UINT32 MaxLogLength; /* Maximum length for the event log area */
- UINT64 LogAddress; /* Address of the event log area */
-
-} ACPI_TABLE_TCPA;
-
-
-/*******************************************************************************
- *
- * WDRT - Watchdog Resource Table
- *
- ******************************************************************************/
-
-typedef struct acpi_table_wdrt
-{
- ACPI_TABLE_HEADER Header; /* Common ACPI table header */
- UINT32 HeaderLength; /* Watchdog Header Length */
- UINT8 PciSegment; /* PCI Segment number */
- UINT8 PciBus; /* PCI Bus number */
- UINT8 PciDevice; /* PCI Device number */
- UINT8 PciFunction; /* PCI Function number */
- UINT32 TimerPeriod; /* Period of one timer count (msec) */
- UINT32 MaxCount; /* Maximum counter value supported */
- UINT32 MinCount; /* Minimum counter value */
- UINT8 Flags;
- UINT8 Reserved[3];
- UINT32 Entries; /* Number of watchdog entries that follow */
-
-} ACPI_TABLE_WDRT;
-
-/* Flags */
-
-#define ACPI_WDRT_TIMER_ENABLED (1) /* 00: Timer enabled */
-
-
-/* Reset to default packing */
-
-#pragma pack()
-
-#endif /* __ACTBL1_H__ */
diff --git a/sys/contrib/dev/acpica/actbl2.h b/sys/contrib/dev/acpica/actbl2.h
deleted file mode 100644
index 97979c6..0000000
--- a/sys/contrib/dev/acpica/actbl2.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/******************************************************************************
- *
- * Name: actbl2.h - ACPI Specification Revision 2.0 Tables
- * $Revision: 1.51 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACTBL2_H__
-#define __ACTBL2_H__
-
-/* Code moved to both actbl.h and actbl1.h */
-
-#endif /* __ACTBL2_H__ */
-
diff --git a/sys/contrib/dev/acpica/actypes.h b/sys/contrib/dev/acpica/actypes.h
deleted file mode 100644
index 9f04da2..0000000
--- a/sys/contrib/dev/acpica/actypes.h
+++ /dev/null
@@ -1,1453 +0,0 @@
-/******************************************************************************
- *
- * Name: actypes.h - Common data types for the entire ACPI subsystem
- * $Revision: 1.316 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ACTYPES_H__
-#define __ACTYPES_H__
-
-/* acpisrc:StructDefs -- for acpisrc conversion */
-
-/*
- * ACPI_MACHINE_WIDTH must be specified in an OS- or compiler-dependent header
- * and must be either 32 or 64. 16-bit ACPICA is no longer supported, as of
- * 12/2006.
- */
-#ifndef ACPI_MACHINE_WIDTH
-#error ACPI_MACHINE_WIDTH not defined
-#endif
-
-/*! [Begin] no source code translation */
-
-/*
- * Data type ranges
- * Note: These macros are designed to be compiler independent as well as
- * working around problems that some 32-bit compilers have with 64-bit
- * constants.
- */
-#define ACPI_UINT8_MAX (UINT8) (~((UINT8) 0)) /* 0xFF */
-#define ACPI_UINT16_MAX (UINT16)(~((UINT16) 0)) /* 0xFFFF */
-#define ACPI_UINT32_MAX (UINT32)(~((UINT32) 0)) /* 0xFFFFFFFF */
-#define ACPI_UINT64_MAX (UINT64)(~((UINT64) 0)) /* 0xFFFFFFFFFFFFFFFF */
-#define ACPI_ASCII_MAX 0x7F
-
-
-/*
- * Architecture-specific ACPICA Subsystem Data Types
- *
- * The goal of these types is to provide source code portability across
- * 16-bit, 32-bit, and 64-bit targets.
- *
- * 1) The following types are of fixed size for all targets (16/32/64):
- *
- * BOOLEAN Logical boolean
- *
- * UINT8 8-bit (1 byte) unsigned value
- * UINT16 16-bit (2 byte) unsigned value
- * UINT32 32-bit (4 byte) unsigned value
- * UINT64 64-bit (8 byte) unsigned value
- *
- * INT16 16-bit (2 byte) signed value
- * INT32 32-bit (4 byte) signed value
- * INT64 64-bit (8 byte) signed value
- *
- * COMPILER_DEPENDENT_UINT64/INT64 - These types are defined in the
- * compiler-dependent header(s) and were introduced because there is no common
- * 64-bit integer type across the various compilation models, as shown in
- * the table below.
- *
- * Datatype LP64 ILP64 LLP64 ILP32 LP32 16bit
- * char 8 8 8 8 8 8
- * short 16 16 16 16 16 16
- * _int32 32
- * int 32 64 32 32 16 16
- * long 64 64 32 32 32 32
- * long long 64 64
- * pointer 64 64 64 32 32 32
- *
- * Note: ILP64 and LP32 are currently not supported.
- *
- *
- * 2) These types represent the native word size of the target mode of the
- * processor, and may be 16-bit, 32-bit, or 64-bit as required. They are
- * usually used for memory allocation, efficient loop counters, and array
- * indexes. The types are similar to the size_t type in the C library and are
- * required because there is no C type that consistently represents the native
- * data width.
- *
- * ACPI_SIZE 16/32/64-bit unsigned value
- * ACPI_NATIVE_UINT 16/32/64-bit unsigned value
- * ACPI_NATIVE_INT 16/32/64-bit signed value
- *
- */
-
-/*******************************************************************************
- *
- * Common types for all compilers, all targets
- *
- ******************************************************************************/
-
-typedef unsigned char BOOLEAN;
-typedef unsigned char UINT8;
-typedef unsigned short UINT16;
-typedef COMPILER_DEPENDENT_UINT64 UINT64;
-typedef COMPILER_DEPENDENT_INT64 INT64;
-
-/*! [End] no source code translation !*/
-
-
-/*******************************************************************************
- *
- * Types specific to 64-bit targets
- *
- ******************************************************************************/
-
-#if ACPI_MACHINE_WIDTH == 64
-
-/*! [Begin] no source code translation (keep the typedefs as-is) */
-
-typedef unsigned int UINT32;
-typedef int INT32;
-
-/*! [End] no source code translation !*/
-
-
-typedef UINT64 ACPI_NATIVE_UINT;
-typedef INT64 ACPI_NATIVE_INT;
-
-typedef UINT64 ACPI_IO_ADDRESS;
-typedef UINT64 ACPI_PHYSICAL_ADDRESS;
-
-#define ACPI_MAX_PTR ACPI_UINT64_MAX
-#define ACPI_SIZE_MAX ACPI_UINT64_MAX
-
-#define ACPI_USE_NATIVE_DIVIDE /* Has native 64-bit integer support */
-
-/*
- * In the case of the Itanium Processor Family (IPF), the hardware does not
- * support misaligned memory transfers. Set the MISALIGNMENT_NOT_SUPPORTED flag
- * to indicate that special precautions must be taken to avoid alignment faults.
- * (IA64 or ia64 is currently used by existing compilers to indicate IPF.)
- *
- * Note: EM64T and other X86-64 processors support misaligned transfers,
- * so there is no need to define this flag.
- */
-#if defined (__IA64__) || defined (__ia64__)
-#define ACPI_MISALIGNMENT_NOT_SUPPORTED
-#endif
-
-
-/*******************************************************************************
- *
- * Types specific to 32-bit targets
- *
- ******************************************************************************/
-
-#elif ACPI_MACHINE_WIDTH == 32
-
-/*! [Begin] no source code translation (keep the typedefs as-is) */
-
-typedef unsigned int UINT32;
-typedef int INT32;
-
-/*! [End] no source code translation !*/
-
-
-typedef UINT32 ACPI_NATIVE_UINT;
-typedef INT32 ACPI_NATIVE_INT;
-
-typedef UINT32 ACPI_IO_ADDRESS;
-typedef UINT32 ACPI_PHYSICAL_ADDRESS;
-
-#define ACPI_MAX_PTR ACPI_UINT32_MAX
-#define ACPI_SIZE_MAX ACPI_UINT32_MAX
-
-#else
-
-/* ACPI_MACHINE_WIDTH must be either 64 or 32 */
-
-#error unknown ACPI_MACHINE_WIDTH
-#endif
-
-
-/* Variable-width type, used instead of clib size_t */
-
-typedef ACPI_NATIVE_UINT ACPI_SIZE;
-
-
-/*******************************************************************************
- *
- * OS-dependent and compiler-dependent types
- *
- * If the defaults below are not appropriate for the host system, they can
- * be defined in the compiler-specific or OS-specific header, and this will
- * take precedence.
- *
- ******************************************************************************/
-
-
-/* Value returned by AcpiOsGetThreadId */
-
-#ifndef ACPI_THREAD_ID
-#define ACPI_THREAD_ID ACPI_NATIVE_UINT
-#endif
-
-/* Object returned from AcpiOsCreateLock */
-
-#ifndef ACPI_SPINLOCK
-#define ACPI_SPINLOCK void *
-#endif
-
-/* Flags for AcpiOsAcquireLock/AcpiOsReleaseLock */
-
-#ifndef ACPI_CPU_FLAGS
-#define ACPI_CPU_FLAGS ACPI_NATIVE_UINT
-#endif
-
-/* Object returned from AcpiOsCreateCache */
-
-#ifndef ACPI_CACHE_T
-#define ACPI_CACHE_T ACPI_MEMORY_LIST
-#endif
-
-/* Use C99 uintptr_t for pointer casting if available, "void *" otherwise */
-
-#ifndef ACPI_UINTPTR_T
-#define ACPI_UINTPTR_T void *
-#endif
-
-/*
- * ACPI_PRINTF_LIKE is used to tag functions as "printf-like" because
- * some compilers can catch printf format string problems
- */
-#ifndef ACPI_PRINTF_LIKE
-#define ACPI_PRINTF_LIKE(c)
-#endif
-
-/*
- * Some compilers complain about unused variables. Sometimes we don't want to
- * use all the variables (for example, _AcpiModuleName). This allows us
- * to to tell the compiler in a per-variable manner that a variable
- * is unused
- */
-#ifndef ACPI_UNUSED_VAR
-#define ACPI_UNUSED_VAR
-#endif
-
-/*
- * All ACPICA functions that are available to the rest of the kernel are
- * tagged with this macro which can be defined as appropriate for the host.
- */
-#ifndef ACPI_EXPORT_SYMBOL
-#define ACPI_EXPORT_SYMBOL(Symbol)
-#endif
-
-
-/*******************************************************************************
- *
- * Independent types
- *
- ******************************************************************************/
-
-/* Logical defines and NULL */
-
-#ifdef FALSE
-#undef FALSE
-#endif
-#define FALSE (1 == 0)
-
-#ifdef TRUE
-#undef TRUE
-#endif
-#define TRUE (1 == 1)
-
-#ifndef NULL
-#define NULL (void *) 0
-#endif
-
-
-/*
- * Mescellaneous types
- */
-typedef UINT32 ACPI_STATUS; /* All ACPI Exceptions */
-typedef UINT32 ACPI_NAME; /* 4-byte ACPI name */
-typedef char * ACPI_STRING; /* Null terminated ASCII string */
-typedef void * ACPI_HANDLE; /* Actually a ptr to a NS Node */
-
-typedef struct uint64_struct
-{
- UINT32 Lo;
- UINT32 Hi;
-
-} UINT64_STRUCT;
-
-typedef union uint64_overlay
-{
- UINT64 Full;
- UINT64_STRUCT Part;
-
-} UINT64_OVERLAY;
-
-typedef struct uint32_struct
-{
- UINT32 Lo;
- UINT32 Hi;
-
-} UINT32_STRUCT;
-
-
-/* Synchronization objects */
-
-#define ACPI_MUTEX void *
-#define ACPI_SEMAPHORE void *
-
-
-/*
- * Acpi integer width. In ACPI version 1, integers are 32 bits. In ACPI
- * version 2, integers are 64 bits. Note that this pertains to the ACPI integer
- * type only, not other integers used in the implementation of the ACPI CA
- * subsystem.
- */
-typedef UINT64 ACPI_INTEGER;
-#define ACPI_INTEGER_MAX ACPI_UINT64_MAX
-#define ACPI_INTEGER_BIT_SIZE 64
-#define ACPI_MAX_DECIMAL_DIGITS 20 /* 2^64 = 18,446,744,073,709,551,616 */
-
-
-#if ACPI_MACHINE_WIDTH == 64
-#define ACPI_USE_NATIVE_DIVIDE /* Use compiler native 64-bit divide */
-#endif
-
-#define ACPI_MAX64_DECIMAL_DIGITS 20
-#define ACPI_MAX32_DECIMAL_DIGITS 10
-#define ACPI_MAX16_DECIMAL_DIGITS 5
-#define ACPI_MAX8_DECIMAL_DIGITS 3
-
-/*
- * Constants with special meanings
- */
-#define ACPI_ROOT_OBJECT ACPI_ADD_PTR (ACPI_HANDLE, NULL, ACPI_MAX_PTR)
-
-
-/*
- * Initialization sequence
- */
-#define ACPI_FULL_INITIALIZATION 0x00
-#define ACPI_NO_ADDRESS_SPACE_INIT 0x01
-#define ACPI_NO_HARDWARE_INIT 0x02
-#define ACPI_NO_EVENT_INIT 0x04
-#define ACPI_NO_HANDLER_INIT 0x08
-#define ACPI_NO_ACPI_ENABLE 0x10
-#define ACPI_NO_DEVICE_INIT 0x20
-#define ACPI_NO_OBJECT_INIT 0x40
-
-/*
- * Initialization state
- */
-#define ACPI_SUBSYSTEM_INITIALIZE 0x01
-#define ACPI_INITIALIZED_OK 0x02
-
-/*
- * Power state values
- */
-#define ACPI_STATE_UNKNOWN (UINT8) 0xFF
-
-#define ACPI_STATE_S0 (UINT8) 0
-#define ACPI_STATE_S1 (UINT8) 1
-#define ACPI_STATE_S2 (UINT8) 2
-#define ACPI_STATE_S3 (UINT8) 3
-#define ACPI_STATE_S4 (UINT8) 4
-#define ACPI_STATE_S5 (UINT8) 5
-#define ACPI_S_STATES_MAX ACPI_STATE_S5
-#define ACPI_S_STATE_COUNT 6
-
-#define ACPI_STATE_D0 (UINT8) 0
-#define ACPI_STATE_D1 (UINT8) 1
-#define ACPI_STATE_D2 (UINT8) 2
-#define ACPI_STATE_D3 (UINT8) 3
-#define ACPI_D_STATES_MAX ACPI_STATE_D3
-#define ACPI_D_STATE_COUNT 4
-
-#define ACPI_STATE_C0 (UINT8) 0
-#define ACPI_STATE_C1 (UINT8) 1
-#define ACPI_STATE_C2 (UINT8) 2
-#define ACPI_STATE_C3 (UINT8) 3
-#define ACPI_C_STATES_MAX ACPI_STATE_C3
-#define ACPI_C_STATE_COUNT 4
-
-/*
- * Sleep type invalid value
- */
-#define ACPI_SLEEP_TYPE_MAX 0x7
-#define ACPI_SLEEP_TYPE_INVALID 0xFF
-
-/*
- * Standard notify values
- */
-#define ACPI_NOTIFY_BUS_CHECK (UINT8) 0
-#define ACPI_NOTIFY_DEVICE_CHECK (UINT8) 1
-#define ACPI_NOTIFY_DEVICE_WAKE (UINT8) 2
-#define ACPI_NOTIFY_EJECT_REQUEST (UINT8) 3
-#define ACPI_NOTIFY_DEVICE_CHECK_LIGHT (UINT8) 4
-#define ACPI_NOTIFY_FREQUENCY_MISMATCH (UINT8) 5
-#define ACPI_NOTIFY_BUS_MODE_MISMATCH (UINT8) 6
-#define ACPI_NOTIFY_POWER_FAULT (UINT8) 7
-
-/*
- * Types associated with ACPI names and objects. The first group of
- * values (up to ACPI_TYPE_EXTERNAL_MAX) correspond to the definition
- * of the ACPI ObjectType() operator (See the ACPI Spec). Therefore,
- * only add to the first group if the spec changes.
- *
- * NOTE: Types must be kept in sync with the global AcpiNsProperties
- * and AcpiNsTypeNames arrays.
- */
-typedef UINT32 ACPI_OBJECT_TYPE;
-
-#define ACPI_TYPE_ANY 0x00
-#define ACPI_TYPE_INTEGER 0x01 /* Byte/Word/Dword/Zero/One/Ones */
-#define ACPI_TYPE_STRING 0x02
-#define ACPI_TYPE_BUFFER 0x03
-#define ACPI_TYPE_PACKAGE 0x04 /* ByteConst, multiple DataTerm/Constant/SuperName */
-#define ACPI_TYPE_FIELD_UNIT 0x05
-#define ACPI_TYPE_DEVICE 0x06 /* Name, multiple Node */
-#define ACPI_TYPE_EVENT 0x07
-#define ACPI_TYPE_METHOD 0x08 /* Name, ByteConst, multiple Code */
-#define ACPI_TYPE_MUTEX 0x09
-#define ACPI_TYPE_REGION 0x0A
-#define ACPI_TYPE_POWER 0x0B /* Name,ByteConst,WordConst,multi Node */
-#define ACPI_TYPE_PROCESSOR 0x0C /* Name,ByteConst,DWordConst,ByteConst,multi NmO */
-#define ACPI_TYPE_THERMAL 0x0D /* Name, multiple Node */
-#define ACPI_TYPE_BUFFER_FIELD 0x0E
-#define ACPI_TYPE_DDB_HANDLE 0x0F
-#define ACPI_TYPE_DEBUG_OBJECT 0x10
-
-#define ACPI_TYPE_EXTERNAL_MAX 0x10
-
-/*
- * These are object types that do not map directly to the ACPI
- * ObjectType() operator. They are used for various internal purposes only.
- * If new predefined ACPI_TYPEs are added (via the ACPI specification), these
- * internal types must move upwards. (There is code that depends on these
- * values being contiguous with the external types above.)
- */
-#define ACPI_TYPE_LOCAL_REGION_FIELD 0x11
-#define ACPI_TYPE_LOCAL_BANK_FIELD 0x12
-#define ACPI_TYPE_LOCAL_INDEX_FIELD 0x13
-#define ACPI_TYPE_LOCAL_REFERENCE 0x14 /* Arg#, Local#, Name, Debug, RefOf, Index */
-#define ACPI_TYPE_LOCAL_ALIAS 0x15
-#define ACPI_TYPE_LOCAL_METHOD_ALIAS 0x16
-#define ACPI_TYPE_LOCAL_NOTIFY 0x17
-#define ACPI_TYPE_LOCAL_ADDRESS_HANDLER 0x18
-#define ACPI_TYPE_LOCAL_RESOURCE 0x19
-#define ACPI_TYPE_LOCAL_RESOURCE_FIELD 0x1A
-#define ACPI_TYPE_LOCAL_SCOPE 0x1B /* 1 Name, multiple ObjectList Nodes */
-
-#define ACPI_TYPE_NS_NODE_MAX 0x1B /* Last typecode used within a NS Node */
-
-/*
- * These are special object types that never appear in
- * a Namespace node, only in an ACPI_OPERAND_OBJECT
- */
-#define ACPI_TYPE_LOCAL_EXTRA 0x1C
-#define ACPI_TYPE_LOCAL_DATA 0x1D
-
-#define ACPI_TYPE_LOCAL_MAX 0x1D
-
-/* All types above here are invalid */
-
-#define ACPI_TYPE_INVALID 0x1E
-#define ACPI_TYPE_NOT_FOUND 0xFF
-
-/*
- * All I/O
- */
-#define ACPI_READ 0
-#define ACPI_WRITE 1
-#define ACPI_IO_MASK 1
-
-/*
- * Event Types: Fixed & General Purpose
- */
-typedef UINT32 ACPI_EVENT_TYPE;
-
-/*
- * Fixed events
- */
-#define ACPI_EVENT_PMTIMER 0
-#define ACPI_EVENT_GLOBAL 1
-#define ACPI_EVENT_POWER_BUTTON 2
-#define ACPI_EVENT_SLEEP_BUTTON 3
-#define ACPI_EVENT_RTC 4
-#define ACPI_EVENT_MAX 4
-#define ACPI_NUM_FIXED_EVENTS ACPI_EVENT_MAX + 1
-
-/*
- * Event Status - Per event
- * -------------
- * The encoding of ACPI_EVENT_STATUS is illustrated below.
- * Note that a set bit (1) indicates the property is TRUE
- * (e.g. if bit 0 is set then the event is enabled).
- * +-------------+-+-+-+
- * | Bits 31:3 |2|1|0|
- * +-------------+-+-+-+
- * | | | |
- * | | | +- Enabled?
- * | | +--- Enabled for wake?
- * | +----- Set?
- * +----------- <Reserved>
- */
-typedef UINT32 ACPI_EVENT_STATUS;
-
-#define ACPI_EVENT_FLAG_DISABLED (ACPI_EVENT_STATUS) 0x00
-#define ACPI_EVENT_FLAG_ENABLED (ACPI_EVENT_STATUS) 0x01
-#define ACPI_EVENT_FLAG_WAKE_ENABLED (ACPI_EVENT_STATUS) 0x02
-#define ACPI_EVENT_FLAG_SET (ACPI_EVENT_STATUS) 0x04
-
-/*
- * General Purpose Events (GPE)
- */
-#define ACPI_GPE_INVALID 0xFF
-#define ACPI_GPE_MAX 0xFF
-#define ACPI_NUM_GPE 256
-
-#define ACPI_GPE_ENABLE 0
-#define ACPI_GPE_DISABLE 1
-
-
-/*
- * GPE info flags - Per GPE
- * +-+-+-+---+---+-+
- * |7|6|5|4:3|2:1|0|
- * +-+-+-+---+---+-+
- * | | | | | |
- * | | | | | +--- Interrupt type: Edge or Level Triggered
- * | | | | +--- Type: Wake-only, Runtime-only, or wake/runtime
- * | | | +--- Type of dispatch -- to method, handler, or none
- * | | +--- Enabled for runtime?
- * | +--- Enabled for wake?
- * +--- Unused
- */
-#define ACPI_GPE_XRUPT_TYPE_MASK (UINT8) 0x01
-#define ACPI_GPE_LEVEL_TRIGGERED (UINT8) 0x01
-#define ACPI_GPE_EDGE_TRIGGERED (UINT8) 0x00
-
-#define ACPI_GPE_TYPE_MASK (UINT8) 0x06
-#define ACPI_GPE_TYPE_WAKE_RUN (UINT8) 0x06
-#define ACPI_GPE_TYPE_WAKE (UINT8) 0x02
-#define ACPI_GPE_TYPE_RUNTIME (UINT8) 0x04 /* Default */
-
-#define ACPI_GPE_DISPATCH_MASK (UINT8) 0x18
-#define ACPI_GPE_DISPATCH_HANDLER (UINT8) 0x08
-#define ACPI_GPE_DISPATCH_METHOD (UINT8) 0x10
-#define ACPI_GPE_DISPATCH_NOT_USED (UINT8) 0x00 /* Default */
-
-#define ACPI_GPE_RUN_ENABLE_MASK (UINT8) 0x20
-#define ACPI_GPE_RUN_ENABLED (UINT8) 0x20
-#define ACPI_GPE_RUN_DISABLED (UINT8) 0x00 /* Default */
-
-#define ACPI_GPE_WAKE_ENABLE_MASK (UINT8) 0x40
-#define ACPI_GPE_WAKE_ENABLED (UINT8) 0x40
-#define ACPI_GPE_WAKE_DISABLED (UINT8) 0x00 /* Default */
-
-#define ACPI_GPE_ENABLE_MASK (UINT8) 0x60 /* Both run/wake */
-
-/*
- * Flags for GPE and Lock interfaces
- */
-#define ACPI_EVENT_WAKE_ENABLE 0x2 /* AcpiGpeEnable */
-#define ACPI_EVENT_WAKE_DISABLE 0x2 /* AcpiGpeDisable */
-
-#define ACPI_NOT_ISR 0x1
-#define ACPI_ISR 0x0
-
-
-/* Notify types */
-
-#define ACPI_SYSTEM_NOTIFY 0x1
-#define ACPI_DEVICE_NOTIFY 0x2
-#define ACPI_ALL_NOTIFY 0x3
-#define ACPI_MAX_NOTIFY_HANDLER_TYPE 0x3
-
-#define ACPI_MAX_SYS_NOTIFY 0x7f
-
-
-/* Address Space (Operation Region) Types */
-
-typedef UINT8 ACPI_ADR_SPACE_TYPE;
-
-#define ACPI_ADR_SPACE_SYSTEM_MEMORY (ACPI_ADR_SPACE_TYPE) 0
-#define ACPI_ADR_SPACE_SYSTEM_IO (ACPI_ADR_SPACE_TYPE) 1
-#define ACPI_ADR_SPACE_PCI_CONFIG (ACPI_ADR_SPACE_TYPE) 2
-#define ACPI_ADR_SPACE_EC (ACPI_ADR_SPACE_TYPE) 3
-#define ACPI_ADR_SPACE_SMBUS (ACPI_ADR_SPACE_TYPE) 4
-#define ACPI_ADR_SPACE_CMOS (ACPI_ADR_SPACE_TYPE) 5
-#define ACPI_ADR_SPACE_PCI_BAR_TARGET (ACPI_ADR_SPACE_TYPE) 6
-#define ACPI_ADR_SPACE_DATA_TABLE (ACPI_ADR_SPACE_TYPE) 7
-#define ACPI_ADR_SPACE_FIXED_HARDWARE (ACPI_ADR_SPACE_TYPE) 127
-
-
-/*
- * BitRegister IDs
- * These are bitfields defined within the full ACPI registers
- */
-#define ACPI_BITREG_TIMER_STATUS 0x00
-#define ACPI_BITREG_BUS_MASTER_STATUS 0x01
-#define ACPI_BITREG_GLOBAL_LOCK_STATUS 0x02
-#define ACPI_BITREG_POWER_BUTTON_STATUS 0x03
-#define ACPI_BITREG_SLEEP_BUTTON_STATUS 0x04
-#define ACPI_BITREG_RT_CLOCK_STATUS 0x05
-#define ACPI_BITREG_WAKE_STATUS 0x06
-#define ACPI_BITREG_PCIEXP_WAKE_STATUS 0x07
-
-#define ACPI_BITREG_TIMER_ENABLE 0x08
-#define ACPI_BITREG_GLOBAL_LOCK_ENABLE 0x09
-#define ACPI_BITREG_POWER_BUTTON_ENABLE 0x0A
-#define ACPI_BITREG_SLEEP_BUTTON_ENABLE 0x0B
-#define ACPI_BITREG_RT_CLOCK_ENABLE 0x0C
-#define ACPI_BITREG_WAKE_ENABLE 0x0D
-#define ACPI_BITREG_PCIEXP_WAKE_DISABLE 0x0E
-
-#define ACPI_BITREG_SCI_ENABLE 0x0F
-#define ACPI_BITREG_BUS_MASTER_RLD 0x10
-#define ACPI_BITREG_GLOBAL_LOCK_RELEASE 0x11
-#define ACPI_BITREG_SLEEP_TYPE_A 0x12
-#define ACPI_BITREG_SLEEP_TYPE_B 0x13
-#define ACPI_BITREG_SLEEP_ENABLE 0x14
-
-#define ACPI_BITREG_ARB_DISABLE 0x15
-
-#define ACPI_BITREG_MAX 0x15
-#define ACPI_NUM_BITREG ACPI_BITREG_MAX + 1
-
-
-/*
- * External ACPI object definition
- */
-typedef union acpi_object
-{
- ACPI_OBJECT_TYPE Type; /* See definition of AcpiNsType for values */
- struct
- {
- ACPI_OBJECT_TYPE Type;
- ACPI_INTEGER Value; /* The actual number */
- } Integer;
-
- struct
- {
- ACPI_OBJECT_TYPE Type;
- UINT32 Length; /* # of bytes in string, excluding trailing null */
- char *Pointer; /* points to the string value */
- } String;
-
- struct
- {
- ACPI_OBJECT_TYPE Type;
- UINT32 Length; /* # of bytes in buffer */
- UINT8 *Pointer; /* points to the buffer */
- } Buffer;
-
- struct
- {
- ACPI_OBJECT_TYPE Type;
- UINT32 Fill1;
- ACPI_HANDLE Handle; /* object reference */
- } Reference;
-
- struct
- {
- ACPI_OBJECT_TYPE Type;
- UINT32 Count; /* # of elements in package */
- union acpi_object *Elements; /* Pointer to an array of ACPI_OBJECTs */
- } Package;
-
- struct
- {
- ACPI_OBJECT_TYPE Type;
- UINT32 ProcId;
- ACPI_IO_ADDRESS PblkAddress;
- UINT32 PblkLength;
- } Processor;
-
- struct
- {
- ACPI_OBJECT_TYPE Type;
- UINT32 SystemLevel;
- UINT32 ResourceOrder;
- } PowerResource;
-
-} ACPI_OBJECT;
-
-
-/*
- * List of objects, used as a parameter list for control method evaluation
- */
-typedef struct acpi_object_list
-{
- UINT32 Count;
- ACPI_OBJECT *Pointer;
-
-} ACPI_OBJECT_LIST;
-
-
-/*
- * Miscellaneous common Data Structures used by the interfaces
- */
-#define ACPI_NO_BUFFER 0
-#define ACPI_ALLOCATE_BUFFER (ACPI_SIZE) (-1)
-#define ACPI_ALLOCATE_LOCAL_BUFFER (ACPI_SIZE) (-2)
-
-typedef struct acpi_buffer
-{
- ACPI_SIZE Length; /* Length in bytes of the buffer */
- void *Pointer; /* pointer to buffer */
-
-} ACPI_BUFFER;
-
-
-/*
- * NameType for AcpiGetName
- */
-#define ACPI_FULL_PATHNAME 0
-#define ACPI_SINGLE_NAME 1
-#define ACPI_NAME_TYPE_MAX 1
-
-
-/*
- * Structure and flags for AcpiGetSystemInfo
- */
-#define ACPI_SYS_MODE_UNKNOWN 0x0000
-#define ACPI_SYS_MODE_ACPI 0x0001
-#define ACPI_SYS_MODE_LEGACY 0x0002
-#define ACPI_SYS_MODES_MASK 0x0003
-
-
-/*
- * System info returned by AcpiGetSystemInfo()
- */
-typedef struct acpi_system_info
-{
- UINT32 AcpiCaVersion;
- UINT32 Flags;
- UINT32 TimerResolution;
- UINT32 Reserved1;
- UINT32 Reserved2;
- UINT32 DebugLevel;
- UINT32 DebugLayer;
-
-} ACPI_SYSTEM_INFO;
-
-
-/*
- * Types specific to the OS service interfaces
- */
-typedef UINT32
-(ACPI_SYSTEM_XFACE *ACPI_OSD_HANDLER) (
- void *Context);
-
-typedef void
-(ACPI_SYSTEM_XFACE *ACPI_OSD_EXEC_CALLBACK) (
- void *Context);
-
-/*
- * Various handlers and callback procedures
- */
-typedef
-UINT32 (*ACPI_EVENT_HANDLER) (
- void *Context);
-
-typedef
-void (*ACPI_NOTIFY_HANDLER) (
- ACPI_HANDLE Device,
- UINT32 Value,
- void *Context);
-
-typedef
-void (*ACPI_OBJECT_HANDLER) (
- ACPI_HANDLE Object,
- UINT32 Function,
- void *Data);
-
-typedef
-ACPI_STATUS (*ACPI_INIT_HANDLER) (
- ACPI_HANDLE Object,
- UINT32 Function);
-
-#define ACPI_INIT_DEVICE_INI 1
-
-typedef
-ACPI_STATUS (*ACPI_EXCEPTION_HANDLER) (
- ACPI_STATUS AmlStatus,
- ACPI_NAME Name,
- UINT16 Opcode,
- UINT32 AmlOffset,
- void *Context);
-
-
-/* Address Spaces (For Operation Regions) */
-
-typedef
-ACPI_STATUS (*ACPI_ADR_SPACE_HANDLER) (
- UINT32 Function,
- ACPI_PHYSICAL_ADDRESS Address,
- UINT32 BitWidth,
- ACPI_INTEGER *Value,
- void *HandlerContext,
- void *RegionContext);
-
-#define ACPI_DEFAULT_HANDLER NULL
-
-
-typedef
-ACPI_STATUS (*ACPI_ADR_SPACE_SETUP) (
- ACPI_HANDLE RegionHandle,
- UINT32 Function,
- void *HandlerContext,
- void **RegionContext);
-
-#define ACPI_REGION_ACTIVATE 0
-#define ACPI_REGION_DEACTIVATE 1
-
-typedef
-ACPI_STATUS (*ACPI_WALK_CALLBACK) (
- ACPI_HANDLE ObjHandle,
- UINT32 NestingLevel,
- void *Context,
- void **ReturnValue);
-
-
-/* Interrupt handler return values */
-
-#define ACPI_INTERRUPT_NOT_HANDLED 0x00
-#define ACPI_INTERRUPT_HANDLED 0x01
-
-
-/* Common string version of device HIDs and UIDs */
-
-typedef struct acpi_device_id
-{
- char Value[ACPI_DEVICE_ID_LENGTH];
-
-} ACPI_DEVICE_ID;
-
-/* Common string version of device CIDs */
-
-typedef struct acpi_compatible_id
-{
- char Value[ACPI_MAX_CID_LENGTH];
-
-} ACPI_COMPATIBLE_ID;
-
-typedef struct acpi_compatible_id_list
-{
- UINT32 Count;
- UINT32 Size;
- ACPI_COMPATIBLE_ID Id[1];
-
-} ACPI_COMPATIBLE_ID_LIST;
-
-
-/* Structure and flags for AcpiGetObjectInfo */
-
-#define ACPI_VALID_STA 0x0001
-#define ACPI_VALID_ADR 0x0002
-#define ACPI_VALID_HID 0x0004
-#define ACPI_VALID_UID 0x0008
-#define ACPI_VALID_CID 0x0010
-#define ACPI_VALID_SXDS 0x0020
-
-/* Flags for _STA method */
-
-#define ACPI_STA_DEVICE_PRESENT 0x01
-#define ACPI_STA_DEVICE_ENABLED 0x02
-#define ACPI_STA_DEVICE_UI 0x04
-#define ACPI_STA_DEVICE_FUNCTIONING 0x08
-#define ACPI_STA_DEVICE_OK 0x08 /* Synonym */
-#define ACPI_STA_BATTERY_PRESENT 0x10
-
-
-#define ACPI_COMMON_OBJ_INFO \
- ACPI_OBJECT_TYPE Type; /* ACPI object type */ \
- ACPI_NAME Name /* ACPI object Name */
-
-
-typedef struct acpi_obj_info_header
-{
- ACPI_COMMON_OBJ_INFO;
-
-} ACPI_OBJ_INFO_HEADER;
-
-
-/* Structure returned from Get Object Info */
-
-typedef struct acpi_device_info
-{
- ACPI_COMMON_OBJ_INFO;
-
- UINT32 Valid; /* Indicates which fields below are valid */
- UINT32 CurrentStatus; /* _STA value */
- ACPI_INTEGER Address; /* _ADR value if any */
- ACPI_DEVICE_ID HardwareId; /* _HID value if any */
- ACPI_DEVICE_ID UniqueId; /* _UID value if any */
- UINT8 HighestDstates[4]; /* _SxD values: 0xFF indicates not valid */
- ACPI_COMPATIBLE_ID_LIST CompatibilityId; /* List of _CIDs if any */
-
-} ACPI_DEVICE_INFO;
-
-
-/* Context structs for address space handlers */
-
-typedef struct acpi_pci_id
-{
- UINT16 Segment;
- UINT16 Bus;
- UINT16 Device;
- UINT16 Function;
-
-} ACPI_PCI_ID;
-
-
-typedef struct acpi_mem_space_context
-{
- UINT32 Length;
- ACPI_PHYSICAL_ADDRESS Address;
- ACPI_PHYSICAL_ADDRESS MappedPhysicalAddress;
- UINT8 *MappedLogicalAddress;
- ACPI_SIZE MappedLength;
-
-} ACPI_MEM_SPACE_CONTEXT;
-
-
-/*
- * Definitions for Resource Attributes
- */
-typedef UINT16 ACPI_RS_LENGTH; /* Resource Length field is fixed at 16 bits */
-typedef UINT32 ACPI_RSDESC_SIZE; /* Max Resource Descriptor size is (Length+3) = (64K-1)+3 */
-
-/*
- * Memory Attributes
- */
-#define ACPI_READ_ONLY_MEMORY (UINT8) 0x00
-#define ACPI_READ_WRITE_MEMORY (UINT8) 0x01
-
-#define ACPI_NON_CACHEABLE_MEMORY (UINT8) 0x00
-#define ACPI_CACHABLE_MEMORY (UINT8) 0x01
-#define ACPI_WRITE_COMBINING_MEMORY (UINT8) 0x02
-#define ACPI_PREFETCHABLE_MEMORY (UINT8) 0x03
-
-/*
- * IO Attributes
- * The ISA IO ranges are: n000-n0FFh, n400-n4FFh, n800-n8FFh, nC00-nCFFh.
- * The non-ISA IO ranges are: n100-n3FFh, n500-n7FFh, n900-nBFFh, nCD0-nFFFh.
- */
-#define ACPI_NON_ISA_ONLY_RANGES (UINT8) 0x01
-#define ACPI_ISA_ONLY_RANGES (UINT8) 0x02
-#define ACPI_ENTIRE_RANGE (ACPI_NON_ISA_ONLY_RANGES | ACPI_ISA_ONLY_RANGES)
-
-/* Type of translation - 1=Sparse, 0=Dense */
-
-#define ACPI_SPARSE_TRANSLATION (UINT8) 0x01
-
-/*
- * IO Port Descriptor Decode
- */
-#define ACPI_DECODE_10 (UINT8) 0x00 /* 10-bit IO address decode */
-#define ACPI_DECODE_16 (UINT8) 0x01 /* 16-bit IO address decode */
-
-/*
- * IRQ Attributes
- */
-#define ACPI_LEVEL_SENSITIVE (UINT8) 0x00
-#define ACPI_EDGE_SENSITIVE (UINT8) 0x01
-
-#define ACPI_ACTIVE_HIGH (UINT8) 0x00
-#define ACPI_ACTIVE_LOW (UINT8) 0x01
-
-#define ACPI_EXCLUSIVE (UINT8) 0x00
-#define ACPI_SHARED (UINT8) 0x01
-
-/*
- * DMA Attributes
- */
-#define ACPI_COMPATIBILITY (UINT8) 0x00
-#define ACPI_TYPE_A (UINT8) 0x01
-#define ACPI_TYPE_B (UINT8) 0x02
-#define ACPI_TYPE_F (UINT8) 0x03
-
-#define ACPI_NOT_BUS_MASTER (UINT8) 0x00
-#define ACPI_BUS_MASTER (UINT8) 0x01
-
-#define ACPI_TRANSFER_8 (UINT8) 0x00
-#define ACPI_TRANSFER_8_16 (UINT8) 0x01
-#define ACPI_TRANSFER_16 (UINT8) 0x02
-
-/*
- * Start Dependent Functions Priority definitions
- */
-#define ACPI_GOOD_CONFIGURATION (UINT8) 0x00
-#define ACPI_ACCEPTABLE_CONFIGURATION (UINT8) 0x01
-#define ACPI_SUB_OPTIMAL_CONFIGURATION (UINT8) 0x02
-
-/*
- * 16, 32 and 64-bit Address Descriptor resource types
- */
-#define ACPI_MEMORY_RANGE (UINT8) 0x00
-#define ACPI_IO_RANGE (UINT8) 0x01
-#define ACPI_BUS_NUMBER_RANGE (UINT8) 0x02
-
-#define ACPI_ADDRESS_NOT_FIXED (UINT8) 0x00
-#define ACPI_ADDRESS_FIXED (UINT8) 0x01
-
-#define ACPI_POS_DECODE (UINT8) 0x00
-#define ACPI_SUB_DECODE (UINT8) 0x01
-
-#define ACPI_PRODUCER (UINT8) 0x00
-#define ACPI_CONSUMER (UINT8) 0x01
-
-
-/*
- * If possible, pack the following structures to byte alignment
- */
-#ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED
-#pragma pack(1)
-#endif
-
-/* UUID data structures for use in vendor-defined resource descriptors */
-
-typedef struct acpi_uuid
-{
- UINT8 Data[ACPI_UUID_LENGTH];
-} ACPI_UUID;
-
-typedef struct acpi_vendor_uuid
-{
- UINT8 Subtype;
- UINT8 Data[ACPI_UUID_LENGTH];
-
-} ACPI_VENDOR_UUID;
-
-/*
- * Structures used to describe device resources
- */
-typedef struct acpi_resource_irq
-{
- UINT8 Triggering;
- UINT8 Polarity;
- UINT8 Sharable;
- UINT8 InterruptCount;
- UINT8 Interrupts[1];
-
-} ACPI_RESOURCE_IRQ;
-
-
-typedef struct ACPI_RESOURCE_DMA
-{
- UINT8 Type;
- UINT8 BusMaster;
- UINT8 Transfer;
- UINT8 ChannelCount;
- UINT8 Channels[1];
-
-} ACPI_RESOURCE_DMA;
-
-
-typedef struct acpi_resource_start_dependent
-{
- UINT8 CompatibilityPriority;
- UINT8 PerformanceRobustness;
-
-} ACPI_RESOURCE_START_DEPENDENT;
-
-
-/*
- * END_DEPENDENT_FUNCTIONS_RESOURCE struct is not
- * needed because it has no fields
- */
-
-
-typedef struct acpi_resource_io
-{
- UINT8 IoDecode;
- UINT8 Alignment;
- UINT8 AddressLength;
- UINT16 Minimum;
- UINT16 Maximum;
-
-} ACPI_RESOURCE_IO;
-
-typedef struct acpi_resource_fixed_io
-{
- UINT16 Address;
- UINT8 AddressLength;
-
-} ACPI_RESOURCE_FIXED_IO;
-
-typedef struct acpi_resource_vendor
-{
- UINT16 ByteLength;
- UINT8 ByteData[1];
-
-} ACPI_RESOURCE_VENDOR;
-
-/* Vendor resource with UUID info (introduced in ACPI 3.0) */
-
-typedef struct acpi_resource_vendor_typed
-{
- UINT16 ByteLength;
- UINT8 UuidSubtype;
- UINT8 Uuid[ACPI_UUID_LENGTH];
- UINT8 ByteData[1];
-
-} ACPI_RESOURCE_VENDOR_TYPED;
-
-typedef struct acpi_resource_end_tag
-{
- UINT8 Checksum;
-
-} ACPI_RESOURCE_END_TAG;
-
-typedef struct acpi_resource_memory24
-{
- UINT8 WriteProtect;
- UINT16 Minimum;
- UINT16 Maximum;
- UINT16 Alignment;
- UINT16 AddressLength;
-
-} ACPI_RESOURCE_MEMORY24;
-
-typedef struct acpi_resource_memory32
-{
- UINT8 WriteProtect;
- UINT32 Minimum;
- UINT32 Maximum;
- UINT32 Alignment;
- UINT32 AddressLength;
-
-} ACPI_RESOURCE_MEMORY32;
-
-typedef struct acpi_resource_fixed_memory32
-{
- UINT8 WriteProtect;
- UINT32 Address;
- UINT32 AddressLength;
-
-} ACPI_RESOURCE_FIXED_MEMORY32;
-
-typedef struct acpi_memory_attribute
-{
- UINT8 WriteProtect;
- UINT8 Caching;
- UINT8 RangeType;
- UINT8 Translation;
-
-} ACPI_MEMORY_ATTRIBUTE;
-
-typedef struct acpi_io_attribute
-{
- UINT8 RangeType;
- UINT8 Translation;
- UINT8 TranslationType;
- UINT8 Reserved1;
-
-} ACPI_IO_ATTRIBUTE;
-
-typedef union acpi_resource_attribute
-{
- ACPI_MEMORY_ATTRIBUTE Mem;
- ACPI_IO_ATTRIBUTE Io;
-
- /* Used for the *WordSpace macros */
-
- UINT8 TypeSpecific;
-
-} ACPI_RESOURCE_ATTRIBUTE;
-
-typedef struct acpi_resource_source
-{
- UINT8 Index;
- UINT16 StringLength;
- char *StringPtr;
-
-} ACPI_RESOURCE_SOURCE;
-
-/* Fields common to all address descriptors, 16/32/64 bit */
-
-#define ACPI_RESOURCE_ADDRESS_COMMON \
- UINT8 ResourceType; \
- UINT8 ProducerConsumer; \
- UINT8 Decode; \
- UINT8 MinAddressFixed; \
- UINT8 MaxAddressFixed; \
- ACPI_RESOURCE_ATTRIBUTE Info;
-
-typedef struct acpi_resource_address
-{
- ACPI_RESOURCE_ADDRESS_COMMON
-
-} ACPI_RESOURCE_ADDRESS;
-
-typedef struct acpi_resource_address16
-{
- ACPI_RESOURCE_ADDRESS_COMMON
- UINT16 Granularity;
- UINT16 Minimum;
- UINT16 Maximum;
- UINT16 TranslationOffset;
- UINT16 AddressLength;
- ACPI_RESOURCE_SOURCE ResourceSource;
-
-} ACPI_RESOURCE_ADDRESS16;
-
-typedef struct acpi_resource_address32
-{
- ACPI_RESOURCE_ADDRESS_COMMON
- UINT32 Granularity;
- UINT32 Minimum;
- UINT32 Maximum;
- UINT32 TranslationOffset;
- UINT32 AddressLength;
- ACPI_RESOURCE_SOURCE ResourceSource;
-
-} ACPI_RESOURCE_ADDRESS32;
-
-typedef struct acpi_resource_address64
-{
- ACPI_RESOURCE_ADDRESS_COMMON
- UINT64 Granularity;
- UINT64 Minimum;
- UINT64 Maximum;
- UINT64 TranslationOffset;
- UINT64 AddressLength;
- ACPI_RESOURCE_SOURCE ResourceSource;
-
-} ACPI_RESOURCE_ADDRESS64;
-
-typedef struct acpi_resource_extended_address64
-{
- ACPI_RESOURCE_ADDRESS_COMMON
- UINT8 RevisionID;
- UINT64 Granularity;
- UINT64 Minimum;
- UINT64 Maximum;
- UINT64 TranslationOffset;
- UINT64 AddressLength;
- UINT64 TypeSpecific;
-
-} ACPI_RESOURCE_EXTENDED_ADDRESS64;
-
-typedef struct acpi_resource_extended_irq
-{
- UINT8 ProducerConsumer;
- UINT8 Triggering;
- UINT8 Polarity;
- UINT8 Sharable;
- UINT8 InterruptCount;
- ACPI_RESOURCE_SOURCE ResourceSource;
- UINT32 Interrupts[1];
-
-} ACPI_RESOURCE_EXTENDED_IRQ;
-
-typedef struct acpi_resource_generic_register
-{
- UINT8 SpaceId;
- UINT8 BitWidth;
- UINT8 BitOffset;
- UINT8 AccessSize;
- UINT64 Address;
-
-} ACPI_RESOURCE_GENERIC_REGISTER;
-
-
-/* ACPI_RESOURCE_TYPEs */
-
-#define ACPI_RESOURCE_TYPE_IRQ 0
-#define ACPI_RESOURCE_TYPE_DMA 1
-#define ACPI_RESOURCE_TYPE_START_DEPENDENT 2
-#define ACPI_RESOURCE_TYPE_END_DEPENDENT 3
-#define ACPI_RESOURCE_TYPE_IO 4
-#define ACPI_RESOURCE_TYPE_FIXED_IO 5
-#define ACPI_RESOURCE_TYPE_VENDOR 6
-#define ACPI_RESOURCE_TYPE_END_TAG 7
-#define ACPI_RESOURCE_TYPE_MEMORY24 8
-#define ACPI_RESOURCE_TYPE_MEMORY32 9
-#define ACPI_RESOURCE_TYPE_FIXED_MEMORY32 10
-#define ACPI_RESOURCE_TYPE_ADDRESS16 11
-#define ACPI_RESOURCE_TYPE_ADDRESS32 12
-#define ACPI_RESOURCE_TYPE_ADDRESS64 13
-#define ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64 14 /* ACPI 3.0 */
-#define ACPI_RESOURCE_TYPE_EXTENDED_IRQ 15
-#define ACPI_RESOURCE_TYPE_GENERIC_REGISTER 16
-#define ACPI_RESOURCE_TYPE_MAX 16
-
-
-typedef union acpi_resource_data
-{
- ACPI_RESOURCE_IRQ Irq;
- ACPI_RESOURCE_DMA Dma;
- ACPI_RESOURCE_START_DEPENDENT StartDpf;
- ACPI_RESOURCE_IO Io;
- ACPI_RESOURCE_FIXED_IO FixedIo;
- ACPI_RESOURCE_VENDOR Vendor;
- ACPI_RESOURCE_VENDOR_TYPED VendorTyped;
- ACPI_RESOURCE_END_TAG EndTag;
- ACPI_RESOURCE_MEMORY24 Memory24;
- ACPI_RESOURCE_MEMORY32 Memory32;
- ACPI_RESOURCE_FIXED_MEMORY32 FixedMemory32;
- ACPI_RESOURCE_ADDRESS16 Address16;
- ACPI_RESOURCE_ADDRESS32 Address32;
- ACPI_RESOURCE_ADDRESS64 Address64;
- ACPI_RESOURCE_EXTENDED_ADDRESS64 ExtAddress64;
- ACPI_RESOURCE_EXTENDED_IRQ ExtendedIrq;
- ACPI_RESOURCE_GENERIC_REGISTER GenericReg;
-
- /* Common fields */
-
- ACPI_RESOURCE_ADDRESS Address; /* Common 16/32/64 address fields */
-
-} ACPI_RESOURCE_DATA;
-
-
-typedef struct acpi_resource
-{
- UINT32 Type;
- UINT32 Length;
- ACPI_RESOURCE_DATA Data;
-
-} ACPI_RESOURCE;
-
-/* restore default alignment */
-
-#pragma pack()
-
-
-#define ACPI_RS_SIZE_MIN 12
-#define ACPI_RS_SIZE_NO_DATA 8 /* Id + Length fields */
-#define ACPI_RS_SIZE(Type) (UINT32) (ACPI_RS_SIZE_NO_DATA + sizeof (Type))
-
-#define ACPI_NEXT_RESOURCE(Res) (ACPI_RESOURCE *)((UINT8 *) Res + Res->Length)
-
-
-typedef struct acpi_pci_routing_table
-{
- UINT32 Length;
- UINT32 Pin;
- ACPI_INTEGER Address; /* here for 64-bit alignment */
- UINT32 SourceIndex;
- char Source[4]; /* pad to 64 bits so sizeof() works in all cases */
-
-} ACPI_PCI_ROUTING_TABLE;
-
-
-#endif /* __ACTYPES_H__ */
diff --git a/sys/contrib/dev/acpica/acutils.h b/sys/contrib/dev/acpica/acutils.h
deleted file mode 100644
index fef6f08..0000000
--- a/sys/contrib/dev/acpica/acutils.h
+++ /dev/null
@@ -1,942 +0,0 @@
-/******************************************************************************
- *
- * Name: acutils.h -- prototypes for the common (subsystem-wide) procedures
- * $Revision: 1.200 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 _ACUTILS_H
-#define _ACUTILS_H
-
-
-extern const UINT8 AcpiGbl_ResourceAmlSizes[];
-
-/* Strings used by the disassembler and debugger resource dump routines */
-
-#if defined(ACPI_DISASSEMBLER) || defined (ACPI_DEBUGGER)
-
-extern const char *AcpiGbl_BmDecode[];
-extern const char *AcpiGbl_ConfigDecode[];
-extern const char *AcpiGbl_ConsumeDecode[];
-extern const char *AcpiGbl_DecDecode[];
-extern const char *AcpiGbl_HeDecode[];
-extern const char *AcpiGbl_IoDecode[];
-extern const char *AcpiGbl_LlDecode[];
-extern const char *AcpiGbl_MaxDecode[];
-extern const char *AcpiGbl_MemDecode[];
-extern const char *AcpiGbl_MinDecode[];
-extern const char *AcpiGbl_MtpDecode[];
-extern const char *AcpiGbl_RngDecode[];
-extern const char *AcpiGbl_RwDecode[];
-extern const char *AcpiGbl_ShrDecode[];
-extern const char *AcpiGbl_SizDecode[];
-extern const char *AcpiGbl_TrsDecode[];
-extern const char *AcpiGbl_TtpDecode[];
-extern const char *AcpiGbl_TypDecode[];
-#endif
-
-/* Types for Resource descriptor entries */
-
-#define ACPI_INVALID_RESOURCE 0
-#define ACPI_FIXED_LENGTH 1
-#define ACPI_VARIABLE_LENGTH 2
-#define ACPI_SMALL_VARIABLE_LENGTH 3
-
-typedef
-ACPI_STATUS (*ACPI_WALK_AML_CALLBACK) (
- UINT8 *Aml,
- UINT32 Length,
- UINT32 Offset,
- UINT8 ResourceIndex,
- void *Context);
-
-typedef
-ACPI_STATUS (*ACPI_PKG_CALLBACK) (
- UINT8 ObjectType,
- ACPI_OPERAND_OBJECT *SourceObject,
- ACPI_GENERIC_STATE *State,
- void *Context);
-
-typedef struct acpi_pkg_info
-{
- UINT8 *FreeSpace;
- ACPI_SIZE Length;
- UINT32 ObjectSpace;
- UINT32 NumPackages;
-
-} ACPI_PKG_INFO;
-
-#define REF_INCREMENT (UINT16) 0
-#define REF_DECREMENT (UINT16) 1
-#define REF_FORCE_DELETE (UINT16) 2
-
-/* AcpiUtDumpBuffer */
-
-#define DB_BYTE_DISPLAY 1
-#define DB_WORD_DISPLAY 2
-#define DB_DWORD_DISPLAY 4
-#define DB_QWORD_DISPLAY 8
-
-
-/*
- * utglobal - Global data structures and procedures
- */
-void
-AcpiUtInitGlobals (
- void);
-
-#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
-
-char *
-AcpiUtGetMutexName (
- UINT32 MutexId);
-
-#endif
-
-char *
-AcpiUtGetTypeName (
- ACPI_OBJECT_TYPE Type);
-
-char *
-AcpiUtGetNodeName (
- void *Object);
-
-char *
-AcpiUtGetDescriptorName (
- void *Object);
-
-char *
-AcpiUtGetObjectTypeName (
- ACPI_OPERAND_OBJECT *ObjDesc);
-
-char *
-AcpiUtGetRegionName (
- UINT8 SpaceId);
-
-char *
-AcpiUtGetEventName (
- UINT32 EventId);
-
-char
-AcpiUtHexToAsciiChar (
- ACPI_INTEGER Integer,
- UINT32 Position);
-
-BOOLEAN
-AcpiUtValidObjectType (
- ACPI_OBJECT_TYPE Type);
-
-
-/*
- * utinit - miscellaneous initialization and shutdown
- */
-ACPI_STATUS
-AcpiUtHardwareInitialize (
- void);
-
-void
-AcpiUtSubsystemShutdown (
- void);
-
-
-/*
- * utclib - Local implementations of C library functions
- */
-#ifndef ACPI_USE_SYSTEM_CLIBRARY
-
-ACPI_SIZE
-AcpiUtStrlen (
- const char *String);
-
-char *
-AcpiUtStrcpy (
- char *DstString,
- const char *SrcString);
-
-char *
-AcpiUtStrncpy (
- char *DstString,
- const char *SrcString,
- ACPI_SIZE Count);
-
-int
-AcpiUtMemcmp (
- const char *Buffer1,
- const char *Buffer2,
- ACPI_SIZE Count);
-
-int
-AcpiUtStrncmp (
- const char *String1,
- const char *String2,
- ACPI_SIZE Count);
-
-int
-AcpiUtStrcmp (
- const char *String1,
- const char *String2);
-
-char *
-AcpiUtStrcat (
- char *DstString,
- const char *SrcString);
-
-char *
-AcpiUtStrncat (
- char *DstString,
- const char *SrcString,
- ACPI_SIZE Count);
-
-UINT32
-AcpiUtStrtoul (
- const char *String,
- char **Terminator,
- UINT32 Base);
-
-char *
-AcpiUtStrstr (
- char *String1,
- char *String2);
-
-void *
-AcpiUtMemcpy (
- void *Dest,
- const void *Src,
- ACPI_SIZE Count);
-
-void *
-AcpiUtMemset (
- void *Dest,
- ACPI_NATIVE_UINT Value,
- ACPI_SIZE Count);
-
-int
-AcpiUtToUpper (
- int c);
-
-int
-AcpiUtToLower (
- int c);
-
-extern const UINT8 _acpi_ctype[];
-
-#define _ACPI_XA 0x00 /* extra alphabetic - not supported */
-#define _ACPI_XS 0x40 /* extra space */
-#define _ACPI_BB 0x00 /* BEL, BS, etc. - not supported */
-#define _ACPI_CN 0x20 /* CR, FF, HT, NL, VT */
-#define _ACPI_DI 0x04 /* '0'-'9' */
-#define _ACPI_LO 0x02 /* 'a'-'z' */
-#define _ACPI_PU 0x10 /* punctuation */
-#define _ACPI_SP 0x08 /* space */
-#define _ACPI_UP 0x01 /* 'A'-'Z' */
-#define _ACPI_XD 0x80 /* '0'-'9', 'A'-'F', 'a'-'f' */
-
-#define ACPI_IS_DIGIT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_DI))
-#define ACPI_IS_SPACE(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_SP))
-#define ACPI_IS_XDIGIT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_XD))
-#define ACPI_IS_UPPER(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_UP))
-#define ACPI_IS_LOWER(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO))
-#define ACPI_IS_PRINT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP | _ACPI_DI | _ACPI_SP | _ACPI_PU))
-#define ACPI_IS_ALPHA(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP))
-
-#endif /* ACPI_USE_SYSTEM_CLIBRARY */
-
-
-/*
- * utcopy - Object construction and conversion interfaces
- */
-ACPI_STATUS
-AcpiUtBuildSimpleObject(
- ACPI_OPERAND_OBJECT *Obj,
- ACPI_OBJECT *UserObj,
- UINT8 *DataSpace,
- UINT32 *BufferSpaceUsed);
-
-ACPI_STATUS
-AcpiUtBuildPackageObject (
- ACPI_OPERAND_OBJECT *Obj,
- UINT8 *Buffer,
- UINT32 *SpaceUsed);
-
-ACPI_STATUS
-AcpiUtCopyIobjectToEobject (
- ACPI_OPERAND_OBJECT *Obj,
- ACPI_BUFFER *RetBuffer);
-
-ACPI_STATUS
-AcpiUtCopyEobjectToIobject (
- ACPI_OBJECT *Obj,
- ACPI_OPERAND_OBJECT **InternalObj);
-
-ACPI_STATUS
-AcpiUtCopyISimpleToIsimple (
- ACPI_OPERAND_OBJECT *SourceObj,
- ACPI_OPERAND_OBJECT *DestObj);
-
-ACPI_STATUS
-AcpiUtCopyIobjectToIobject (
- ACPI_OPERAND_OBJECT *SourceDesc,
- ACPI_OPERAND_OBJECT **DestDesc,
- ACPI_WALK_STATE *WalkState);
-
-
-/*
- * utcreate - Object creation
- */
-ACPI_STATUS
-AcpiUtUpdateObjectReference (
- ACPI_OPERAND_OBJECT *Object,
- UINT16 Action);
-
-
-/*
- * utdebug - Debug interfaces
- */
-void
-AcpiUtInitStackPtrTrace (
- void);
-
-void
-AcpiUtTrackStackPtr (
- void);
-
-void
-AcpiUtTrace (
- UINT32 LineNumber,
- const char *FunctionName,
- char *ModuleName,
- UINT32 ComponentId);
-
-void
-AcpiUtTracePtr (
- UINT32 LineNumber,
- const char *FunctionName,
- char *ModuleName,
- UINT32 ComponentId,
- void *Pointer);
-
-void
-AcpiUtTraceU32 (
- UINT32 LineNumber,
- const char *FunctionName,
- char *ModuleName,
- UINT32 ComponentId,
- UINT32 Integer);
-
-void
-AcpiUtTraceStr (
- UINT32 LineNumber,
- const char *FunctionName,
- char *ModuleName,
- UINT32 ComponentId,
- char *String);
-
-void
-AcpiUtExit (
- UINT32 LineNumber,
- const char *FunctionName,
- char *ModuleName,
- UINT32 ComponentId);
-
-void
-AcpiUtStatusExit (
- UINT32 LineNumber,
- const char *FunctionName,
- char *ModuleName,
- UINT32 ComponentId,
- ACPI_STATUS Status);
-
-void
-AcpiUtValueExit (
- UINT32 LineNumber,
- const char *FunctionName,
- char *ModuleName,
- UINT32 ComponentId,
- ACPI_INTEGER Value);
-
-void
-AcpiUtPtrExit (
- UINT32 LineNumber,
- const char *FunctionName,
- char *ModuleName,
- UINT32 ComponentId,
- UINT8 *Ptr);
-
-void
-AcpiUtDumpBuffer (
- UINT8 *Buffer,
- UINT32 Count,
- UINT32 Display,
- UINT32 componentId);
-
-void
-AcpiUtDumpBuffer2 (
- UINT8 *Buffer,
- UINT32 Count,
- UINT32 Display);
-
-void
-AcpiUtReportError (
- char *ModuleName,
- UINT32 LineNumber);
-
-void
-AcpiUtReportInfo (
- char *ModuleName,
- UINT32 LineNumber);
-
-void
-AcpiUtReportWarning (
- char *ModuleName,
- UINT32 LineNumber);
-
-/* Error and message reporting interfaces */
-
-void ACPI_INTERNAL_VAR_XFACE
-AcpiUtDebugPrint (
- UINT32 RequestedDebugLevel,
- UINT32 LineNumber,
- const char *FunctionName,
- char *ModuleName,
- UINT32 ComponentId,
- char *Format,
- ...) ACPI_PRINTF_LIKE(6);
-
-void ACPI_INTERNAL_VAR_XFACE
-AcpiUtDebugPrintRaw (
- UINT32 RequestedDebugLevel,
- UINT32 LineNumber,
- const char *FunctionName,
- char *ModuleName,
- UINT32 ComponentId,
- char *Format,
- ...) ACPI_PRINTF_LIKE(6);
-
-void ACPI_INTERNAL_VAR_XFACE
-AcpiUtError (
- char *ModuleName,
- UINT32 LineNumber,
- char *Format,
- ...) ACPI_PRINTF_LIKE(3);
-
-void ACPI_INTERNAL_VAR_XFACE
-AcpiUtException (
- char *ModuleName,
- UINT32 LineNumber,
- ACPI_STATUS Status,
- char *Format,
- ...) ACPI_PRINTF_LIKE(4);
-
-void ACPI_INTERNAL_VAR_XFACE
-AcpiUtWarning (
- char *ModuleName,
- UINT32 LineNumber,
- char *Format,
- ...) ACPI_PRINTF_LIKE(3);
-
-void ACPI_INTERNAL_VAR_XFACE
-AcpiUtInfo (
- char *ModuleName,
- UINT32 LineNumber,
- char *Format,
- ...) ACPI_PRINTF_LIKE(3);
-
-
-/*
- * utdelete - Object deletion and reference counts
- */
-void
-AcpiUtAddReference (
- ACPI_OPERAND_OBJECT *Object);
-
-void
-AcpiUtRemoveReference (
- ACPI_OPERAND_OBJECT *Object);
-
-void
-AcpiUtDeleteInternalPackageObject (
- ACPI_OPERAND_OBJECT *Object);
-
-void
-AcpiUtDeleteInternalSimpleObject (
- ACPI_OPERAND_OBJECT *Object);
-
-void
-AcpiUtDeleteInternalObjectList (
- ACPI_OPERAND_OBJECT **ObjList);
-
-
-/*
- * uteval - object evaluation
- */
-ACPI_STATUS
-AcpiUtOsiImplementation (
- ACPI_WALK_STATE *WalkState);
-
-ACPI_STATUS
-AcpiUtEvaluateObject (
- ACPI_NAMESPACE_NODE *PrefixNode,
- char *Path,
- UINT32 ExpectedReturnBtypes,
- ACPI_OPERAND_OBJECT **ReturnDesc);
-
-ACPI_STATUS
-AcpiUtEvaluateNumericObject (
- char *ObjectName,
- ACPI_NAMESPACE_NODE *DeviceNode,
- ACPI_INTEGER *Address);
-
-ACPI_STATUS
-AcpiUtExecute_HID (
- ACPI_NAMESPACE_NODE *DeviceNode,
- ACPI_DEVICE_ID *Hid);
-
-ACPI_STATUS
-AcpiUtExecute_CID (
- ACPI_NAMESPACE_NODE *DeviceNode,
- ACPI_COMPATIBLE_ID_LIST **ReturnCidList);
-
-ACPI_STATUS
-AcpiUtExecute_STA (
- ACPI_NAMESPACE_NODE *DeviceNode,
- UINT32 *StatusFlags);
-
-ACPI_STATUS
-AcpiUtExecute_UID (
- ACPI_NAMESPACE_NODE *DeviceNode,
- ACPI_DEVICE_ID *Uid);
-
-ACPI_STATUS
-AcpiUtExecute_Sxds (
- ACPI_NAMESPACE_NODE *DeviceNode,
- UINT8 *Highest);
-
-
-/*
- * utobject - internal object create/delete/cache routines
- */
-ACPI_OPERAND_OBJECT *
-AcpiUtCreateInternalObjectDbg (
- char *ModuleName,
- UINT32 LineNumber,
- UINT32 ComponentId,
- ACPI_OBJECT_TYPE Type);
-
-void *
-AcpiUtAllocateObjectDescDbg (
- char *ModuleName,
- UINT32 LineNumber,
- UINT32 ComponentId);
-
-#define AcpiUtCreateInternalObject(t) AcpiUtCreateInternalObjectDbg (_AcpiModuleName,__LINE__,_COMPONENT,t)
-#define AcpiUtAllocateObjectDesc() AcpiUtAllocateObjectDescDbg (_AcpiModuleName,__LINE__,_COMPONENT)
-
-void
-AcpiUtDeleteObjectDesc (
- ACPI_OPERAND_OBJECT *Object);
-
-BOOLEAN
-AcpiUtValidInternalObject (
- void *Object);
-
-ACPI_OPERAND_OBJECT *
-AcpiUtCreateBufferObject (
- ACPI_SIZE BufferSize);
-
-ACPI_OPERAND_OBJECT *
-AcpiUtCreateStringObject (
- ACPI_SIZE StringSize);
-
-ACPI_STATUS
-AcpiUtGetObjectSize(
- ACPI_OPERAND_OBJECT *Obj,
- ACPI_SIZE *ObjLength);
-
-
-/*
- * utstate - Generic state creation/cache routines
- */
-void
-AcpiUtPushGenericState (
- ACPI_GENERIC_STATE **ListHead,
- ACPI_GENERIC_STATE *State);
-
-ACPI_GENERIC_STATE *
-AcpiUtPopGenericState (
- ACPI_GENERIC_STATE **ListHead);
-
-
-ACPI_GENERIC_STATE *
-AcpiUtCreateGenericState (
- void);
-
-ACPI_THREAD_STATE *
-AcpiUtCreateThreadState (
- void);
-
-ACPI_GENERIC_STATE *
-AcpiUtCreateUpdateState (
- ACPI_OPERAND_OBJECT *Object,
- UINT16 Action);
-
-ACPI_GENERIC_STATE *
-AcpiUtCreatePkgState (
- void *InternalObject,
- void *ExternalObject,
- UINT16 Index);
-
-ACPI_STATUS
-AcpiUtCreateUpdateStateAndPush (
- ACPI_OPERAND_OBJECT *Object,
- UINT16 Action,
- ACPI_GENERIC_STATE **StateList);
-
-ACPI_STATUS
-AcpiUtCreatePkgStateAndPush (
- void *InternalObject,
- void *ExternalObject,
- UINT16 Index,
- ACPI_GENERIC_STATE **StateList);
-
-ACPI_GENERIC_STATE *
-AcpiUtCreateControlState (
- void);
-
-void
-AcpiUtDeleteGenericState (
- ACPI_GENERIC_STATE *State);
-
-
-/*
- * utmath
- */
-ACPI_STATUS
-AcpiUtDivide (
- ACPI_INTEGER InDividend,
- ACPI_INTEGER InDivisor,
- ACPI_INTEGER *OutQuotient,
- ACPI_INTEGER *OutRemainder);
-
-ACPI_STATUS
-AcpiUtShortDivide (
- ACPI_INTEGER InDividend,
- UINT32 Divisor,
- ACPI_INTEGER *OutQuotient,
- UINT32 *OutRemainder);
-
-/*
- * utmisc
- */
-const char *
-AcpiUtValidateException (
- ACPI_STATUS Status);
-
-BOOLEAN
-AcpiUtIsAmlTable (
- ACPI_TABLE_HEADER *Table);
-
-ACPI_STATUS
-AcpiUtAllocateOwnerId (
- ACPI_OWNER_ID *OwnerId);
-
-void
-AcpiUtReleaseOwnerId (
- ACPI_OWNER_ID *OwnerId);
-
-ACPI_STATUS
-AcpiUtWalkPackageTree (
- ACPI_OPERAND_OBJECT *SourceObject,
- void *TargetObject,
- ACPI_PKG_CALLBACK WalkCallback,
- void *Context);
-
-void
-AcpiUtStrupr (
- char *SrcString);
-
-void
-AcpiUtPrintString (
- char *String,
- UINT8 MaxLength);
-
-BOOLEAN
-AcpiUtValidAcpiName (
- UINT32 Name);
-
-ACPI_NAME
-AcpiUtRepairName (
- char *Name);
-
-BOOLEAN
-AcpiUtValidAcpiChar (
- char Character,
- ACPI_NATIVE_UINT Position);
-
-ACPI_STATUS
-AcpiUtStrtoul64 (
- char *String,
- UINT32 Base,
- ACPI_INTEGER *RetInteger);
-
-/* Values for Base above (16=Hex, 10=Decimal) */
-
-#define ACPI_ANY_BASE 0
-
-UINT32
-AcpiUtDwordByteSwap (
- UINT32 Value);
-
-void
-AcpiUtSetIntegerWidth (
- UINT8 Revision);
-
-#ifdef ACPI_DEBUG_OUTPUT
-void
-AcpiUtDisplayInitPathname (
- UINT8 Type,
- ACPI_NAMESPACE_NODE *ObjHandle,
- char *Path);
-#endif
-
-
-/*
- * utresrc
- */
-ACPI_STATUS
-AcpiUtWalkAmlResources (
- UINT8 *Aml,
- ACPI_SIZE AmlLength,
- ACPI_WALK_AML_CALLBACK UserFunction,
- void *Context);
-
-ACPI_STATUS
-AcpiUtValidateResource (
- void *Aml,
- UINT8 *ReturnIndex);
-
-UINT32
-AcpiUtGetDescriptorLength (
- void *Aml);
-
-UINT16
-AcpiUtGetResourceLength (
- void *Aml);
-
-UINT8
-AcpiUtGetResourceHeaderLength (
- void *Aml);
-
-UINT8
-AcpiUtGetResourceType (
- void *Aml);
-
-ACPI_STATUS
-AcpiUtGetResourceEndTag (
- ACPI_OPERAND_OBJECT *ObjDesc,
- UINT8 **EndTag);
-
-
-/*
- * utmutex - mutex support
- */
-ACPI_STATUS
-AcpiUtMutexInitialize (
- void);
-
-void
-AcpiUtMutexTerminate (
- void);
-
-ACPI_STATUS
-AcpiUtAcquireMutex (
- ACPI_MUTEX_HANDLE MutexId);
-
-ACPI_STATUS
-AcpiUtReleaseMutex (
- ACPI_MUTEX_HANDLE MutexId);
-
-
-/*
- * utalloc - memory allocation and object caching
- */
-ACPI_STATUS
-AcpiUtCreateCaches (
- void);
-
-ACPI_STATUS
-AcpiUtDeleteCaches (
- void);
-
-ACPI_STATUS
-AcpiUtValidateBuffer (
- ACPI_BUFFER *Buffer);
-
-ACPI_STATUS
-AcpiUtInitializeBuffer (
- ACPI_BUFFER *Buffer,
- ACPI_SIZE RequiredLength);
-
-void *
-AcpiUtAllocate (
- ACPI_SIZE Size,
- UINT32 Component,
- char *Module,
- UINT32 Line);
-
-void *
-AcpiUtAllocateZeroed (
- ACPI_SIZE Size,
- UINT32 Component,
- char *Module,
- UINT32 Line);
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-void *
-AcpiUtAllocateAndTrack (
- ACPI_SIZE Size,
- UINT32 Component,
- char *Module,
- UINT32 Line);
-
-void *
-AcpiUtAllocateZeroedAndTrack (
- ACPI_SIZE Size,
- UINT32 Component,
- char *Module,
- UINT32 Line);
-
-void
-AcpiUtFreeAndTrack (
- void *Address,
- UINT32 Component,
- char *Module,
- UINT32 Line);
-
-void
-AcpiUtDumpAllocationInfo (
- void);
-
-void
-AcpiUtDumpAllocations (
- UINT32 Component,
- char *Module);
-
-ACPI_STATUS
-AcpiUtCreateList (
- char *ListName,
- UINT16 ObjectSize,
- ACPI_MEMORY_LIST **ReturnCache);
-
-
-#endif
-
-#endif /* _ACUTILS_H */
diff --git a/sys/contrib/dev/acpica/aecommon.h b/sys/contrib/dev/acpica/aecommon.h
deleted file mode 100644
index 0dd1e5f..0000000
--- a/sys/contrib/dev/acpica/aecommon.h
+++ /dev/null
@@ -1,243 +0,0 @@
-/******************************************************************************
- *
- * Module Name: aecommon - common include for the AcpiExec utility
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 _AECOMMON
-#define _AECOMMON
-
-#ifdef _MSC_VER /* disable some level-4 warnings */
-#pragma warning(disable:4100) /* warning C4100: unreferenced formal parameter */
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <signal.h>
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acdebug.h>
-#include <contrib/dev/acpica/actables.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/acapps.h>
-
-extern FILE *AcpiGbl_DebugFile;
-extern BOOLEAN AcpiGbl_IgnoreErrors;
-
-/*
- * Debug Regions
- */
-typedef struct Region
-{
- ACPI_PHYSICAL_ADDRESS Address;
- UINT32 Length;
- void *Buffer;
- void *NextRegion;
- UINT8 SpaceId;
-
-} REGION;
-
-typedef struct DebugRegions
-{
- UINT32 NumberOfRegions;
- REGION *RegionList;
-
-} DEBUG_REGIONS;
-
-
-/*
- * Pointer overlay for 16-bit code
- */
-typedef union ptr_ovl
-{
- void *ptr;
- UINT32 dword;
- struct
- {
- UINT16 offset;
- UINT16 base;
- } ovl;
-
-} PTR_OVL;
-
-
-#define GET_SEGMENT(ptr) ((UINT16)(_segment)(ptr))
-#define GET_OFFSET(ptr) ((UINT16)(UINT32) (ptr))
-#define GET_PHYSICAL_ADDRESS(ptr) (((((UINT32)GET_SEGMENT(ptr)) << 4)) + GET_OFFSET(ptr))
-#define PTR_OVL_BUILD_PTR(p,b,o) {p.ovl.base=b;p.ovl.offset=o;}
-
-
-#define TEST_OUTPUT_LEVEL(lvl) if ((lvl) & OutputLevel)
-
-#define OSD_PRINT(lvl,fp) TEST_OUTPUT_LEVEL(lvl) {\
- AcpiOsPrintf PARAM_LIST(fp);}
-
-void __cdecl
-AeCtrlCHandler (
- int Sig);
-
-ACPI_STATUS
-AeBuildLocalTables (
- ACPI_TABLE_HEADER *UserTable);
-
-ACPI_STATUS
-AeInstallTables (
- void);
-
-void
-AeDumpNamespace (
- void);
-
-void
-AeDumpObject (
- char *MethodName,
- ACPI_BUFFER *ReturnObj);
-
-void
-AeDumpBuffer (
- UINT32 Address);
-
-void
-AeExecute (
- char *Name);
-
-void
-AeSetScope (
- char *Name);
-
-void
-AeCloseDebugFile (
- void);
-
-void
-AeOpenDebugFile (
- char *Name);
-
-ACPI_STATUS
-AeDisplayAllMethods (
- UINT32 DisplayCount);
-
-ACPI_STATUS
-AeInstallHandlers (
- void);
-
-void
-AeMiscellaneousTests (
- void);
-
-
-#endif /* _AECOMMON */
-
diff --git a/sys/contrib/dev/acpica/amlcode.h b/sys/contrib/dev/acpica/amlcode.h
deleted file mode 100644
index 6376b57..0000000
--- a/sys/contrib/dev/acpica/amlcode.h
+++ /dev/null
@@ -1,595 +0,0 @@
-/******************************************************************************
- *
- * Name: amlcode.h - Definitions for AML, as included in "definition blocks"
- * Declarations and definitions contained herein are derived
- * directly from the ACPI specification.
- * $Revision: 1.86 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __AMLCODE_H__
-#define __AMLCODE_H__
-
-/* primary opcodes */
-
-#define AML_NULL_CHAR (UINT16) 0x00
-
-#define AML_ZERO_OP (UINT16) 0x00
-#define AML_ONE_OP (UINT16) 0x01
-#define AML_UNASSIGNED (UINT16) 0x02
-#define AML_ALIAS_OP (UINT16) 0x06
-#define AML_NAME_OP (UINT16) 0x08
-#define AML_BYTE_OP (UINT16) 0x0a
-#define AML_WORD_OP (UINT16) 0x0b
-#define AML_DWORD_OP (UINT16) 0x0c
-#define AML_STRING_OP (UINT16) 0x0d
-#define AML_QWORD_OP (UINT16) 0x0e /* ACPI 2.0 */
-#define AML_SCOPE_OP (UINT16) 0x10
-#define AML_BUFFER_OP (UINT16) 0x11
-#define AML_PACKAGE_OP (UINT16) 0x12
-#define AML_VAR_PACKAGE_OP (UINT16) 0x13 /* ACPI 2.0 */
-#define AML_METHOD_OP (UINT16) 0x14
-#define AML_DUAL_NAME_PREFIX (UINT16) 0x2e
-#define AML_MULTI_NAME_PREFIX_OP (UINT16) 0x2f
-#define AML_NAME_CHAR_SUBSEQ (UINT16) 0x30
-#define AML_NAME_CHAR_FIRST (UINT16) 0x41
-#define AML_EXTENDED_OP_PREFIX (UINT16) 0x5b
-#define AML_ROOT_PREFIX (UINT16) 0x5c
-#define AML_PARENT_PREFIX (UINT16) 0x5e
-#define AML_LOCAL_OP (UINT16) 0x60
-#define AML_LOCAL0 (UINT16) 0x60
-#define AML_LOCAL1 (UINT16) 0x61
-#define AML_LOCAL2 (UINT16) 0x62
-#define AML_LOCAL3 (UINT16) 0x63
-#define AML_LOCAL4 (UINT16) 0x64
-#define AML_LOCAL5 (UINT16) 0x65
-#define AML_LOCAL6 (UINT16) 0x66
-#define AML_LOCAL7 (UINT16) 0x67
-#define AML_ARG_OP (UINT16) 0x68
-#define AML_ARG0 (UINT16) 0x68
-#define AML_ARG1 (UINT16) 0x69
-#define AML_ARG2 (UINT16) 0x6a
-#define AML_ARG3 (UINT16) 0x6b
-#define AML_ARG4 (UINT16) 0x6c
-#define AML_ARG5 (UINT16) 0x6d
-#define AML_ARG6 (UINT16) 0x6e
-#define AML_STORE_OP (UINT16) 0x70
-#define AML_REF_OF_OP (UINT16) 0x71
-#define AML_ADD_OP (UINT16) 0x72
-#define AML_CONCAT_OP (UINT16) 0x73
-#define AML_SUBTRACT_OP (UINT16) 0x74
-#define AML_INCREMENT_OP (UINT16) 0x75
-#define AML_DECREMENT_OP (UINT16) 0x76
-#define AML_MULTIPLY_OP (UINT16) 0x77
-#define AML_DIVIDE_OP (UINT16) 0x78
-#define AML_SHIFT_LEFT_OP (UINT16) 0x79
-#define AML_SHIFT_RIGHT_OP (UINT16) 0x7a
-#define AML_BIT_AND_OP (UINT16) 0x7b
-#define AML_BIT_NAND_OP (UINT16) 0x7c
-#define AML_BIT_OR_OP (UINT16) 0x7d
-#define AML_BIT_NOR_OP (UINT16) 0x7e
-#define AML_BIT_XOR_OP (UINT16) 0x7f
-#define AML_BIT_NOT_OP (UINT16) 0x80
-#define AML_FIND_SET_LEFT_BIT_OP (UINT16) 0x81
-#define AML_FIND_SET_RIGHT_BIT_OP (UINT16) 0x82
-#define AML_DEREF_OF_OP (UINT16) 0x83
-#define AML_CONCAT_RES_OP (UINT16) 0x84 /* ACPI 2.0 */
-#define AML_MOD_OP (UINT16) 0x85 /* ACPI 2.0 */
-#define AML_NOTIFY_OP (UINT16) 0x86
-#define AML_SIZE_OF_OP (UINT16) 0x87
-#define AML_INDEX_OP (UINT16) 0x88
-#define AML_MATCH_OP (UINT16) 0x89
-#define AML_CREATE_DWORD_FIELD_OP (UINT16) 0x8a
-#define AML_CREATE_WORD_FIELD_OP (UINT16) 0x8b
-#define AML_CREATE_BYTE_FIELD_OP (UINT16) 0x8c
-#define AML_CREATE_BIT_FIELD_OP (UINT16) 0x8d
-#define AML_TYPE_OP (UINT16) 0x8e
-#define AML_CREATE_QWORD_FIELD_OP (UINT16) 0x8f /* ACPI 2.0 */
-#define AML_LAND_OP (UINT16) 0x90
-#define AML_LOR_OP (UINT16) 0x91
-#define AML_LNOT_OP (UINT16) 0x92
-#define AML_LEQUAL_OP (UINT16) 0x93
-#define AML_LGREATER_OP (UINT16) 0x94
-#define AML_LLESS_OP (UINT16) 0x95
-#define AML_TO_BUFFER_OP (UINT16) 0x96 /* ACPI 2.0 */
-#define AML_TO_DECSTRING_OP (UINT16) 0x97 /* ACPI 2.0 */
-#define AML_TO_HEXSTRING_OP (UINT16) 0x98 /* ACPI 2.0 */
-#define AML_TO_INTEGER_OP (UINT16) 0x99 /* ACPI 2.0 */
-#define AML_TO_STRING_OP (UINT16) 0x9c /* ACPI 2.0 */
-#define AML_COPY_OP (UINT16) 0x9d /* ACPI 2.0 */
-#define AML_MID_OP (UINT16) 0x9e /* ACPI 2.0 */
-#define AML_CONTINUE_OP (UINT16) 0x9f /* ACPI 2.0 */
-#define AML_IF_OP (UINT16) 0xa0
-#define AML_ELSE_OP (UINT16) 0xa1
-#define AML_WHILE_OP (UINT16) 0xa2
-#define AML_NOOP_OP (UINT16) 0xa3
-#define AML_RETURN_OP (UINT16) 0xa4
-#define AML_BREAK_OP (UINT16) 0xa5
-#define AML_BREAK_POINT_OP (UINT16) 0xcc
-#define AML_ONES_OP (UINT16) 0xff
-
-/* prefixed opcodes */
-
-#define AML_EXTENDED_OPCODE (UINT16) 0x5b00 /* prefix for 2-byte opcodes */
-
-#define AML_MUTEX_OP (UINT16) 0x5b01
-#define AML_EVENT_OP (UINT16) 0x5b02
-#define AML_SHIFT_RIGHT_BIT_OP (UINT16) 0x5b10
-#define AML_SHIFT_LEFT_BIT_OP (UINT16) 0x5b11
-#define AML_COND_REF_OF_OP (UINT16) 0x5b12
-#define AML_CREATE_FIELD_OP (UINT16) 0x5b13
-#define AML_LOAD_TABLE_OP (UINT16) 0x5b1f /* ACPI 2.0 */
-#define AML_LOAD_OP (UINT16) 0x5b20
-#define AML_STALL_OP (UINT16) 0x5b21
-#define AML_SLEEP_OP (UINT16) 0x5b22
-#define AML_ACQUIRE_OP (UINT16) 0x5b23
-#define AML_SIGNAL_OP (UINT16) 0x5b24
-#define AML_WAIT_OP (UINT16) 0x5b25
-#define AML_RESET_OP (UINT16) 0x5b26
-#define AML_RELEASE_OP (UINT16) 0x5b27
-#define AML_FROM_BCD_OP (UINT16) 0x5b28
-#define AML_TO_BCD_OP (UINT16) 0x5b29
-#define AML_UNLOAD_OP (UINT16) 0x5b2a
-#define AML_REVISION_OP (UINT16) 0x5b30
-#define AML_DEBUG_OP (UINT16) 0x5b31
-#define AML_FATAL_OP (UINT16) 0x5b32
-#define AML_TIMER_OP (UINT16) 0x5b33 /* ACPI 3.0 */
-#define AML_REGION_OP (UINT16) 0x5b80
-#define AML_FIELD_OP (UINT16) 0x5b81
-#define AML_DEVICE_OP (UINT16) 0x5b82
-#define AML_PROCESSOR_OP (UINT16) 0x5b83
-#define AML_POWER_RES_OP (UINT16) 0x5b84
-#define AML_THERMAL_ZONE_OP (UINT16) 0x5b85
-#define AML_INDEX_FIELD_OP (UINT16) 0x5b86
-#define AML_BANK_FIELD_OP (UINT16) 0x5b87
-#define AML_DATA_REGION_OP (UINT16) 0x5b88 /* ACPI 2.0 */
-
-
-/*
- * Combination opcodes (actually two one-byte opcodes)
- * Used by the disassembler and iASL compiler
- */
-#define AML_LGREATEREQUAL_OP (UINT16) 0x9295
-#define AML_LLESSEQUAL_OP (UINT16) 0x9294
-#define AML_LNOTEQUAL_OP (UINT16) 0x9293
-
-
-/*
- * Internal opcodes
- * Use only "Unknown" AML opcodes, don't attempt to use
- * any valid ACPI ASCII values (A-Z, 0-9, '-')
- */
-#define AML_INT_NAMEPATH_OP (UINT16) 0x002d
-#define AML_INT_NAMEDFIELD_OP (UINT16) 0x0030
-#define AML_INT_RESERVEDFIELD_OP (UINT16) 0x0031
-#define AML_INT_ACCESSFIELD_OP (UINT16) 0x0032
-#define AML_INT_BYTELIST_OP (UINT16) 0x0033
-#define AML_INT_STATICSTRING_OP (UINT16) 0x0034
-#define AML_INT_METHODCALL_OP (UINT16) 0x0035
-#define AML_INT_RETURN_VALUE_OP (UINT16) 0x0036
-#define AML_INT_EVAL_SUBTREE_OP (UINT16) 0x0037
-
-
-#define ARG_NONE 0x0
-
-/*
- * Argument types for the AML Parser
- * Each field in the ArgTypes UINT32 is 5 bits, allowing for a maximum of 6 arguments.
- * There can be up to 31 unique argument types
- * Zero is reserved as end-of-list indicator
- */
-#define ARGP_BYTEDATA 0x01
-#define ARGP_BYTELIST 0x02
-#define ARGP_CHARLIST 0x03
-#define ARGP_DATAOBJ 0x04
-#define ARGP_DATAOBJLIST 0x05
-#define ARGP_DWORDDATA 0x06
-#define ARGP_FIELDLIST 0x07
-#define ARGP_NAME 0x08
-#define ARGP_NAMESTRING 0x09
-#define ARGP_OBJLIST 0x0A
-#define ARGP_PKGLENGTH 0x0B
-#define ARGP_SUPERNAME 0x0C
-#define ARGP_TARGET 0x0D
-#define ARGP_TERMARG 0x0E
-#define ARGP_TERMLIST 0x0F
-#define ARGP_WORDDATA 0x10
-#define ARGP_QWORDDATA 0x11
-#define ARGP_SIMPLENAME 0x12
-
-/*
- * Resolved argument types for the AML Interpreter
- * Each field in the ArgTypes UINT32 is 5 bits, allowing for a maximum of 6 arguments.
- * There can be up to 31 unique argument types (0 is end-of-arg-list indicator)
- *
- * Note1: These values are completely independent from the ACPI_TYPEs
- * i.e., ARGI_INTEGER != ACPI_TYPE_INTEGER
- *
- * Note2: If and when 5 bits becomes insufficient, it would probably be best
- * to convert to a 6-byte array of argument types, allowing 8 bits per argument.
- */
-
-/* Single, simple types */
-
-#define ARGI_ANYTYPE 0x01 /* Don't care */
-#define ARGI_PACKAGE 0x02
-#define ARGI_EVENT 0x03
-#define ARGI_MUTEX 0x04
-#define ARGI_DDBHANDLE 0x05
-
-/* Interchangeable types (via implicit conversion) */
-
-#define ARGI_INTEGER 0x06
-#define ARGI_STRING 0x07
-#define ARGI_BUFFER 0x08
-#define ARGI_BUFFER_OR_STRING 0x09 /* Used by MID op only */
-#define ARGI_COMPUTEDATA 0x0A /* Buffer, String, or Integer */
-
-/* Reference objects */
-
-#define ARGI_INTEGER_REF 0x0B
-#define ARGI_OBJECT_REF 0x0C
-#define ARGI_DEVICE_REF 0x0D
-#define ARGI_REFERENCE 0x0E
-#define ARGI_TARGETREF 0x0F /* Target, subject to implicit conversion */
-#define ARGI_FIXED_TARGET 0x10 /* Target, no implicit conversion */
-#define ARGI_SIMPLE_TARGET 0x11 /* Name, Local, Arg -- no implicit conversion */
-
-/* Multiple/complex types */
-
-#define ARGI_DATAOBJECT 0x12 /* Buffer, String, package or reference to a Node - Used only by SizeOf operator*/
-#define ARGI_COMPLEXOBJ 0x13 /* Buffer, String, or package (Used by INDEX op only) */
-#define ARGI_REF_OR_STRING 0x14 /* Reference or String (Used by DEREFOF op only) */
-#define ARGI_REGION_OR_BUFFER 0x15 /* Used by LOAD op only */
-#define ARGI_DATAREFOBJ 0x16
-
-/* Note: types above can expand to 0x1F maximum */
-
-#define ARGI_INVALID_OPCODE 0xFFFFFFFF
-
-
-/*
- * hash offsets
- */
-#define AML_EXTOP_HASH_OFFSET 22
-#define AML_LNOT_HASH_OFFSET 19
-
-
-/*
- * opcode groups and types
- */
-#define OPGRP_NAMED 0x01
-#define OPGRP_FIELD 0x02
-#define OPGRP_BYTELIST 0x04
-
-
-/*
- * Opcode information
- */
-
-/* Opcode flags */
-
-#define AML_LOGICAL 0x0001
-#define AML_LOGICAL_NUMERIC 0x0002
-#define AML_MATH 0x0004
-#define AML_CREATE 0x0008
-#define AML_FIELD 0x0010
-#define AML_DEFER 0x0020
-#define AML_NAMED 0x0040
-#define AML_NSNODE 0x0080
-#define AML_NSOPCODE 0x0100
-#define AML_NSOBJECT 0x0200
-#define AML_HAS_RETVAL 0x0400
-#define AML_HAS_TARGET 0x0800
-#define AML_HAS_ARGS 0x1000
-#define AML_CONSTANT 0x2000
-#define AML_NO_OPERAND_RESOLVE 0x4000
-
-/* Convenient flag groupings */
-
-#define AML_FLAGS_EXEC_0A_0T_1R AML_HAS_RETVAL
-#define AML_FLAGS_EXEC_1A_0T_0R AML_HAS_ARGS /* Monadic1 */
-#define AML_FLAGS_EXEC_1A_0T_1R AML_HAS_ARGS | AML_HAS_RETVAL /* Monadic2 */
-#define AML_FLAGS_EXEC_1A_1T_0R AML_HAS_ARGS | AML_HAS_TARGET
-#define AML_FLAGS_EXEC_1A_1T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL /* Monadic2R */
-#define AML_FLAGS_EXEC_2A_0T_0R AML_HAS_ARGS /* Dyadic1 */
-#define AML_FLAGS_EXEC_2A_0T_1R AML_HAS_ARGS | AML_HAS_RETVAL /* Dyadic2 */
-#define AML_FLAGS_EXEC_2A_1T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL /* Dyadic2R */
-#define AML_FLAGS_EXEC_2A_2T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL
-#define AML_FLAGS_EXEC_3A_0T_0R AML_HAS_ARGS
-#define AML_FLAGS_EXEC_3A_1T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL
-#define AML_FLAGS_EXEC_6A_0T_1R AML_HAS_ARGS | AML_HAS_RETVAL
-
-
-/*
- * The opcode Type is used in a dispatch table, do not change
- * without updating the table.
- */
-#define AML_TYPE_EXEC_0A_0T_1R 0x00
-#define AML_TYPE_EXEC_1A_0T_0R 0x01 /* Monadic1 */
-#define AML_TYPE_EXEC_1A_0T_1R 0x02 /* Monadic2 */
-#define AML_TYPE_EXEC_1A_1T_0R 0x03
-#define AML_TYPE_EXEC_1A_1T_1R 0x04 /* Monadic2R */
-#define AML_TYPE_EXEC_2A_0T_0R 0x05 /* Dyadic1 */
-#define AML_TYPE_EXEC_2A_0T_1R 0x06 /* Dyadic2 */
-#define AML_TYPE_EXEC_2A_1T_1R 0x07 /* Dyadic2R */
-#define AML_TYPE_EXEC_2A_2T_1R 0x08
-#define AML_TYPE_EXEC_3A_0T_0R 0x09
-#define AML_TYPE_EXEC_3A_1T_1R 0x0A
-#define AML_TYPE_EXEC_6A_0T_1R 0x0B
-/* End of types used in dispatch table */
-
-#define AML_TYPE_LITERAL 0x0B
-#define AML_TYPE_CONSTANT 0x0C
-#define AML_TYPE_METHOD_ARGUMENT 0x0D
-#define AML_TYPE_LOCAL_VARIABLE 0x0E
-#define AML_TYPE_DATA_TERM 0x0F
-
-/* Generic for an op that returns a value */
-
-#define AML_TYPE_METHOD_CALL 0x10
-
-/* Misc */
-
-#define AML_TYPE_CREATE_FIELD 0x11
-#define AML_TYPE_CREATE_OBJECT 0x12
-#define AML_TYPE_CONTROL 0x13
-#define AML_TYPE_NAMED_NO_OBJ 0x14
-#define AML_TYPE_NAMED_FIELD 0x15
-#define AML_TYPE_NAMED_SIMPLE 0x16
-#define AML_TYPE_NAMED_COMPLEX 0x17
-#define AML_TYPE_RETURN 0x18
-
-#define AML_TYPE_UNDEFINED 0x19
-#define AML_TYPE_BOGUS 0x1A
-
-/* AML Package Length encodings */
-
-#define ACPI_AML_PACKAGE_TYPE1 0x40
-#define ACPI_AML_PACKAGE_TYPE2 0x4000
-#define ACPI_AML_PACKAGE_TYPE3 0x400000
-#define ACPI_AML_PACKAGE_TYPE4 0x40000000
-
-/*
- * Opcode classes
- */
-#define AML_CLASS_EXECUTE 0x00
-#define AML_CLASS_CREATE 0x01
-#define AML_CLASS_ARGUMENT 0x02
-#define AML_CLASS_NAMED_OBJECT 0x03
-#define AML_CLASS_CONTROL 0x04
-#define AML_CLASS_ASCII 0x05
-#define AML_CLASS_PREFIX 0x06
-#define AML_CLASS_INTERNAL 0x07
-#define AML_CLASS_RETURN_VALUE 0x08
-#define AML_CLASS_METHOD_CALL 0x09
-#define AML_CLASS_UNKNOWN 0x0A
-
-
-/* Predefined Operation Region SpaceIDs */
-
-typedef enum
-{
- REGION_MEMORY = 0,
- REGION_IO,
- REGION_PCI_CONFIG,
- REGION_EC,
- REGION_SMBUS,
- REGION_CMOS,
- REGION_PCI_BAR,
- REGION_DATA_TABLE, /* Internal use only */
- REGION_FIXED_HW = 0x7F
-
-} AML_REGION_TYPES;
-
-
-/* Comparison operation codes for MatchOp operator */
-
-typedef enum
-{
- MATCH_MTR = 0,
- MATCH_MEQ = 1,
- MATCH_MLE = 2,
- MATCH_MLT = 3,
- MATCH_MGE = 4,
- MATCH_MGT = 5
-
-} AML_MATCH_OPERATOR;
-
-#define MAX_MATCH_OPERATOR 5
-
-
-/*
- * FieldFlags
- *
- * This byte is extracted from the AML and includes three separate
- * pieces of information about the field:
- * 1) The field access type
- * 2) The field update rule
- * 3) The lock rule for the field
- *
- * Bits 00 - 03 : AccessType (AnyAcc, ByteAcc, etc.)
- * 04 : LockRule (1 == Lock)
- * 05 - 06 : UpdateRule
- */
-#define AML_FIELD_ACCESS_TYPE_MASK 0x0F
-#define AML_FIELD_LOCK_RULE_MASK 0x10
-#define AML_FIELD_UPDATE_RULE_MASK 0x60
-
-
-/* 1) Field Access Types */
-
-typedef enum
-{
- AML_FIELD_ACCESS_ANY = 0x00,
- AML_FIELD_ACCESS_BYTE = 0x01,
- AML_FIELD_ACCESS_WORD = 0x02,
- AML_FIELD_ACCESS_DWORD = 0x03,
- AML_FIELD_ACCESS_QWORD = 0x04, /* ACPI 2.0 */
- AML_FIELD_ACCESS_BUFFER = 0x05 /* ACPI 2.0 */
-
-} AML_ACCESS_TYPE;
-
-
-/* 2) Field Lock Rules */
-
-typedef enum
-{
- AML_FIELD_LOCK_NEVER = 0x00,
- AML_FIELD_LOCK_ALWAYS = 0x10
-
-} AML_LOCK_RULE;
-
-
-/* 3) Field Update Rules */
-
-typedef enum
-{
- AML_FIELD_UPDATE_PRESERVE = 0x00,
- AML_FIELD_UPDATE_WRITE_AS_ONES = 0x20,
- AML_FIELD_UPDATE_WRITE_AS_ZEROS = 0x40
-
-} AML_UPDATE_RULE;
-
-
-/*
- * Field Access Attributes.
- * This byte is extracted from the AML via the
- * AccessAs keyword
- */
-typedef enum
-{
- AML_FIELD_ATTRIB_SMB_QUICK = 0x02,
- AML_FIELD_ATTRIB_SMB_SEND_RCV = 0x04,
- AML_FIELD_ATTRIB_SMB_BYTE = 0x06,
- AML_FIELD_ATTRIB_SMB_WORD = 0x08,
- AML_FIELD_ATTRIB_SMB_BLOCK = 0x0A,
- AML_FIELD_ATTRIB_SMB_WORD_CALL = 0x0C,
- AML_FIELD_ATTRIB_SMB_BLOCK_CALL = 0x0D
-
-} AML_ACCESS_ATTRIBUTE;
-
-
-/* Bit fields in MethodFlags byte */
-
-#define AML_METHOD_ARG_COUNT 0x07
-#define AML_METHOD_SERIALIZED 0x08
-#define AML_METHOD_SYNCH_LEVEL 0xF0
-
-/* METHOD_FLAGS_ARG_COUNT is not used internally, define additional flags */
-
-#define AML_METHOD_INTERNAL_ONLY 0x01
-#define AML_METHOD_RESERVED1 0x02
-#define AML_METHOD_RESERVED2 0x04
-
-
-#endif /* __AMLCODE_H__ */
diff --git a/sys/contrib/dev/acpica/amlresrc.h b/sys/contrib/dev/acpica/amlresrc.h
deleted file mode 100644
index e5b19fa..0000000
--- a/sys/contrib/dev/acpica/amlresrc.h
+++ /dev/null
@@ -1,486 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: amlresrc.h - AML resource descriptors
- * $Revision: 1.40 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-/* acpisrc:StructDefs -- for acpisrc conversion */
-
-#ifndef __AMLRESRC_H
-#define __AMLRESRC_H
-
-
-/*
- * Resource descriptor tags, as defined in the ACPI specification.
- * Used to symbolically reference fields within a descriptor.
- */
-#define ACPI_RESTAG_ADDRESS "_ADR"
-#define ACPI_RESTAG_ALIGNMENT "_ALN"
-#define ACPI_RESTAG_ADDRESSSPACE "_ASI"
-#define ACPI_RESTAG_ACCESSSIZE "_ASZ"
-#define ACPI_RESTAG_TYPESPECIFICATTRIBUTES "_ATT"
-#define ACPI_RESTAG_BASEADDRESS "_BAS"
-#define ACPI_RESTAG_BUSMASTER "_BM_" /* Master(1), Slave(0) */
-#define ACPI_RESTAG_DECODE "_DEC"
-#define ACPI_RESTAG_DMA "_DMA"
-#define ACPI_RESTAG_DMATYPE "_TYP" /* Compatible(0), A(1), B(2), F(3) */
-#define ACPI_RESTAG_GRANULARITY "_GRA"
-#define ACPI_RESTAG_INTERRUPT "_INT"
-#define ACPI_RESTAG_INTERRUPTLEVEL "_LL_" /* ActiveLo(1), ActiveHi(0) */
-#define ACPI_RESTAG_INTERRUPTSHARE "_SHR" /* Shareable(1), NoShare(0) */
-#define ACPI_RESTAG_INTERRUPTTYPE "_HE_" /* Edge(1), Level(0) */
-#define ACPI_RESTAG_LENGTH "_LEN"
-#define ACPI_RESTAG_MEMATTRIBUTES "_MTP" /* Memory(0), Reserved(1), ACPI(2), NVS(3) */
-#define ACPI_RESTAG_MEMTYPE "_MEM" /* NonCache(0), Cacheable(1) Cache+combine(2), Cache+prefetch(3) */
-#define ACPI_RESTAG_MAXADDR "_MAX"
-#define ACPI_RESTAG_MINADDR "_MIN"
-#define ACPI_RESTAG_MAXTYPE "_MAF"
-#define ACPI_RESTAG_MINTYPE "_MIF"
-#define ACPI_RESTAG_REGISTERBITOFFSET "_RBO"
-#define ACPI_RESTAG_REGISTERBITWIDTH "_RBW"
-#define ACPI_RESTAG_RANGETYPE "_RNG"
-#define ACPI_RESTAG_READWRITETYPE "_RW_" /* ReadOnly(0), Writeable (1) */
-#define ACPI_RESTAG_TRANSLATION "_TRA"
-#define ACPI_RESTAG_TRANSTYPE "_TRS" /* Sparse(1), Dense(0) */
-#define ACPI_RESTAG_TYPE "_TTP" /* Translation(1), Static (0) */
-#define ACPI_RESTAG_XFERTYPE "_SIZ" /* 8(0), 8And16(1), 16(2) */
-
-
-/* Default sizes for "small" resource descriptors */
-
-#define ASL_RDESC_IRQ_SIZE 0x02
-#define ASL_RDESC_DMA_SIZE 0x02
-#define ASL_RDESC_ST_DEPEND_SIZE 0x00
-#define ASL_RDESC_END_DEPEND_SIZE 0x00
-#define ASL_RDESC_IO_SIZE 0x07
-#define ASL_RDESC_FIXED_IO_SIZE 0x03
-#define ASL_RDESC_END_TAG_SIZE 0x01
-
-
-typedef struct asl_resource_node
-{
- UINT32 BufferLength;
- void *Buffer;
- struct asl_resource_node *Next;
-
-} ASL_RESOURCE_NODE;
-
-
-/* Macros used to generate AML resource length fields */
-
-#define ACPI_AML_SIZE_LARGE(r) (sizeof (r) - sizeof (AML_RESOURCE_LARGE_HEADER))
-#define ACPI_AML_SIZE_SMALL(r) (sizeof (r) - sizeof (AML_RESOURCE_SMALL_HEADER))
-
-/*
- * Resource descriptors defined in the ACPI specification.
- *
- * Packing/alignment must be BYTE because these descriptors
- * are used to overlay the raw AML byte stream.
- */
-#pragma pack(1)
-
-/*
- * SMALL descriptors
- */
-#define AML_RESOURCE_SMALL_HEADER_COMMON \
- UINT8 DescriptorType;
-
-typedef struct aml_resource_small_header
-{
- AML_RESOURCE_SMALL_HEADER_COMMON
-
-} AML_RESOURCE_SMALL_HEADER;
-
-
-typedef struct aml_resource_irq
-{
- AML_RESOURCE_SMALL_HEADER_COMMON
- UINT16 IrqMask;
- UINT8 Flags;
-
-} AML_RESOURCE_IRQ;
-
-
-typedef struct aml_resource_irq_noflags
-{
- AML_RESOURCE_SMALL_HEADER_COMMON
- UINT16 IrqMask;
-
-} AML_RESOURCE_IRQ_NOFLAGS;
-
-
-typedef struct aml_resource_dma
-{
- AML_RESOURCE_SMALL_HEADER_COMMON
- UINT8 DmaChannelMask;
- UINT8 Flags;
-
-} AML_RESOURCE_DMA;
-
-
-typedef struct aml_resource_start_dependent
-{
- AML_RESOURCE_SMALL_HEADER_COMMON
- UINT8 Flags;
-
-} AML_RESOURCE_START_DEPENDENT;
-
-
-typedef struct aml_resource_start_dependent_noprio
-{
- AML_RESOURCE_SMALL_HEADER_COMMON
-
-} AML_RESOURCE_START_DEPENDENT_NOPRIO;
-
-
-typedef struct aml_resource_end_dependent
-{
- AML_RESOURCE_SMALL_HEADER_COMMON
-
-} AML_RESOURCE_END_DEPENDENT;
-
-
-typedef struct aml_resource_io
-{
- AML_RESOURCE_SMALL_HEADER_COMMON
- UINT8 Flags;
- UINT16 Minimum;
- UINT16 Maximum;
- UINT8 Alignment;
- UINT8 AddressLength;
-
-} AML_RESOURCE_IO;
-
-
-typedef struct aml_resource_fixed_io
-{
- AML_RESOURCE_SMALL_HEADER_COMMON
- UINT16 Address;
- UINT8 AddressLength;
-
-} AML_RESOURCE_FIXED_IO;
-
-
-typedef struct aml_resource_vendor_small
-{
- AML_RESOURCE_SMALL_HEADER_COMMON
-
-} AML_RESOURCE_VENDOR_SMALL;
-
-
-typedef struct aml_resource_end_tag
-{
- AML_RESOURCE_SMALL_HEADER_COMMON
- UINT8 Checksum;
-
-} AML_RESOURCE_END_TAG;
-
-
-/*
- * LARGE descriptors
- */
-#define AML_RESOURCE_LARGE_HEADER_COMMON \
- UINT8 DescriptorType;\
- UINT16 ResourceLength;
-
-typedef struct aml_resource_large_header
-{
- AML_RESOURCE_LARGE_HEADER_COMMON
-
-} AML_RESOURCE_LARGE_HEADER;
-
-
-typedef struct aml_resource_memory24
-{
- AML_RESOURCE_LARGE_HEADER_COMMON
- UINT8 Flags;
- UINT16 Minimum;
- UINT16 Maximum;
- UINT16 Alignment;
- UINT16 AddressLength;
-
-} AML_RESOURCE_MEMORY24;
-
-
-typedef struct aml_resource_vendor_large
-{
- AML_RESOURCE_LARGE_HEADER_COMMON
-
-} AML_RESOURCE_VENDOR_LARGE;
-
-
-typedef struct aml_resource_memory32
-{
- AML_RESOURCE_LARGE_HEADER_COMMON
- UINT8 Flags;
- UINT32 Minimum;
- UINT32 Maximum;
- UINT32 Alignment;
- UINT32 AddressLength;
-
-} AML_RESOURCE_MEMORY32;
-
-
-typedef struct aml_resource_fixed_memory32
-{
- AML_RESOURCE_LARGE_HEADER_COMMON
- UINT8 Flags;
- UINT32 Address;
- UINT32 AddressLength;
-
-} AML_RESOURCE_FIXED_MEMORY32;
-
-
-#define AML_RESOURCE_ADDRESS_COMMON \
- UINT8 ResourceType; \
- UINT8 Flags; \
- UINT8 SpecificFlags;
-
-
-typedef struct aml_resource_address
-{
- AML_RESOURCE_LARGE_HEADER_COMMON
- AML_RESOURCE_ADDRESS_COMMON
-
-} AML_RESOURCE_ADDRESS;
-
-
-typedef struct aml_resource_extended_address64
-{
- AML_RESOURCE_LARGE_HEADER_COMMON
- AML_RESOURCE_ADDRESS_COMMON
- UINT8 RevisionID;
- UINT8 Reserved;
- UINT64 Granularity;
- UINT64 Minimum;
- UINT64 Maximum;
- UINT64 TranslationOffset;
- UINT64 AddressLength;
- UINT64 TypeSpecific;
-
-} AML_RESOURCE_EXTENDED_ADDRESS64;
-
-#define AML_RESOURCE_EXTENDED_ADDRESS_REVISION 1 /* ACPI 3.0 */
-
-
-typedef struct aml_resource_address64
-{
- AML_RESOURCE_LARGE_HEADER_COMMON
- AML_RESOURCE_ADDRESS_COMMON
- UINT64 Granularity;
- UINT64 Minimum;
- UINT64 Maximum;
- UINT64 TranslationOffset;
- UINT64 AddressLength;
-
-} AML_RESOURCE_ADDRESS64;
-
-
-typedef struct aml_resource_address32
-{
- AML_RESOURCE_LARGE_HEADER_COMMON
- AML_RESOURCE_ADDRESS_COMMON
- UINT32 Granularity;
- UINT32 Minimum;
- UINT32 Maximum;
- UINT32 TranslationOffset;
- UINT32 AddressLength;
-
-} AML_RESOURCE_ADDRESS32;
-
-
-typedef struct aml_resource_address16
-{
- AML_RESOURCE_LARGE_HEADER_COMMON
- AML_RESOURCE_ADDRESS_COMMON
- UINT16 Granularity;
- UINT16 Minimum;
- UINT16 Maximum;
- UINT16 TranslationOffset;
- UINT16 AddressLength;
-
-} AML_RESOURCE_ADDRESS16;
-
-
-typedef struct aml_resource_extended_irq
-{
- AML_RESOURCE_LARGE_HEADER_COMMON
- UINT8 Flags;
- UINT8 InterruptCount;
- UINT32 Interrupts[1];
- /* ResSourceIndex, ResSource optional fields follow */
-
-} AML_RESOURCE_EXTENDED_IRQ;
-
-
-typedef struct aml_resource_generic_register
-{
- AML_RESOURCE_LARGE_HEADER_COMMON
- UINT8 AddressSpaceId;
- UINT8 BitWidth;
- UINT8 BitOffset;
- UINT8 AccessSize; /* ACPI 3.0, was previously Reserved */
- UINT64 Address;
-
-} AML_RESOURCE_GENERIC_REGISTER;
-
-/* restore default alignment */
-
-#pragma pack()
-
-/* Union of all resource descriptors, so we can allocate the worst case */
-
-typedef union aml_resource
-{
- /* Descriptor headers */
-
- UINT8 DescriptorType;
- AML_RESOURCE_SMALL_HEADER SmallHeader;
- AML_RESOURCE_LARGE_HEADER LargeHeader;
-
- /* Small resource descriptors */
-
- AML_RESOURCE_IRQ Irq;
- AML_RESOURCE_DMA Dma;
- AML_RESOURCE_START_DEPENDENT StartDpf;
- AML_RESOURCE_END_DEPENDENT EndDpf;
- AML_RESOURCE_IO Io;
- AML_RESOURCE_FIXED_IO FixedIo;
- AML_RESOURCE_VENDOR_SMALL VendorSmall;
- AML_RESOURCE_END_TAG EndTag;
-
- /* Large resource descriptors */
-
- AML_RESOURCE_MEMORY24 Memory24;
- AML_RESOURCE_GENERIC_REGISTER GenericReg;
- AML_RESOURCE_VENDOR_LARGE VendorLarge;
- AML_RESOURCE_MEMORY32 Memory32;
- AML_RESOURCE_FIXED_MEMORY32 FixedMemory32;
- AML_RESOURCE_ADDRESS16 Address16;
- AML_RESOURCE_ADDRESS32 Address32;
- AML_RESOURCE_ADDRESS64 Address64;
- AML_RESOURCE_EXTENDED_ADDRESS64 ExtAddress64;
- AML_RESOURCE_EXTENDED_IRQ ExtendedIrq;
-
- /* Utility overlays */
-
- AML_RESOURCE_ADDRESS Address;
- UINT32 DwordItem;
- UINT16 WordItem;
- UINT8 ByteItem;
-
-} AML_RESOURCE;
-
-#endif
-
diff --git a/sys/contrib/dev/acpica/common/adfile.c b/sys/contrib/dev/acpica/common/adfile.c
deleted file mode 100644
index 732b2bb..0000000
--- a/sys/contrib/dev/acpica/common/adfile.c
+++ /dev/null
@@ -1,398 +0,0 @@
-/******************************************************************************
- *
- * Module Name: adfile - Application-level disassembler file support routines
- * $Revision: 1.3 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acapps.h>
-
-#include <stdio.h>
-#include <string.h>
-
-
-#define _COMPONENT ACPI_TOOLS
- ACPI_MODULE_NAME ("adfile")
-
-
-char FilenameBuf[20];
-
-/******************************************************************************
- *
- * FUNCTION: AfGenerateFilename
- *
- * PARAMETERS: Prefix - prefix string
- * TableId - The table ID
- *
- * RETURN: Pointer to the completed string
- *
- * DESCRIPTION: Build an output filename from an ACPI table ID string
- *
- ******************************************************************************/
-
-char *
-AdGenerateFilename (
- char *Prefix,
- char *TableId)
-{
- ACPI_NATIVE_UINT i;
- ACPI_NATIVE_UINT j;
-
-
- for (i = 0; Prefix[i]; i++)
- {
- FilenameBuf[i] = Prefix[i];
- }
-
- FilenameBuf[i] = '_';
- i++;
-
- for (j = 0; j < 8 && (TableId[j] != ' ') && (TableId[j] != 0); i++, j++)
- {
- FilenameBuf[i] = TableId[j];
- }
-
- FilenameBuf[i] = 0;
- strcat (FilenameBuf, ACPI_TABLE_FILE_SUFFIX);
- return FilenameBuf;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AfWriteBuffer
- *
- * PARAMETERS: Filename - name of file
- * Buffer - data to write
- * Length - length of data
- *
- * RETURN: Actual number of bytes written
- *
- * DESCRIPTION: Open a file and write out a single buffer
- *
- ******************************************************************************/
-
-ACPI_NATIVE_INT
-AdWriteBuffer (
- char *Filename,
- char *Buffer,
- UINT32 Length)
-{
- FILE *fp;
- ACPI_SIZE Actual;
-
-
- fp = fopen (Filename, "wb");
- if (!fp)
- {
- printf ("Couldn't open %s\n", Filename);
- return (-1);
- }
-
- Actual = fwrite (Buffer, (size_t) Length, 1, fp);
- fclose (fp);
- return ((ACPI_NATIVE_INT) Actual);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AfWriteTable
- *
- * PARAMETERS: Table - pointer to the ACPI table
- * Length - length of the table
- * TableName - the table signature
- * OemTableID - from the table header
- *
- * RETURN: None
- *
- * DESCRIPTION: Dump the loaded tables to a file (or files)
- *
- ******************************************************************************/
-
-void
-AdWriteTable (
- ACPI_TABLE_HEADER *Table,
- UINT32 Length,
- char *TableName,
- char *OemTableId)
-{
- char *Filename;
-
-
- Filename = AdGenerateFilename (TableName, OemTableId);
- AdWriteBuffer (Filename, (char *) Table, Length);
-
- AcpiOsPrintf ("Table [%s] written to \"%s\"\n", TableName, Filename);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: FlGenerateFilename
- *
- * PARAMETERS: InputFilename - Original ASL source filename
- * Suffix - New extension.
- *
- * RETURN: New filename containing the original base + the new suffix
- *
- * DESCRIPTION: Generate a new filename from the ASL source filename and a new
- * extension. Used to create the *.LST, *.TXT, etc. files.
- *
- ******************************************************************************/
-
-char *
-FlGenerateFilename (
- char *InputFilename,
- char *Suffix)
-{
- char *Position;
- char *NewFilename;
-
-
- /*
- * Copy the original filename to a new buffer. Leave room for the worst case
- * where we append the suffix, an added dot and the null terminator.
- */
- NewFilename = ACPI_ALLOCATE_ZEROED (
- strlen (InputFilename) + strlen (Suffix) + 2);
- strcpy (NewFilename, InputFilename);
-
- /* Try to find the last dot in the filename */
-
- Position = strrchr (NewFilename, '.');
- if (Position)
- {
- /* Tack on the new suffix */
-
- Position++;
- *Position = 0;
- strcat (Position, Suffix);
- }
- else
- {
- /* No dot, add one and then the suffix */
-
- strcat (NewFilename, ".");
- strcat (NewFilename, Suffix);
- }
-
- return NewFilename;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: FlStrdup
- *
- * DESCRIPTION: Local strdup function
- *
- ******************************************************************************/
-
-static char *
-FlStrdup (
- char *String)
-{
- char *NewString;
-
-
- NewString = ACPI_ALLOCATE (strlen (String) + 1);
- if (!NewString)
- {
- return (NULL);
- }
-
- strcpy (NewString, String);
- return (NewString);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: FlSplitInputPathname
- *
- * PARAMETERS: InputFilename - The user-specified ASL source file to be
- * compiled
- * OutDirectoryPath - Where the directory path prefix is
- * returned
- * OutFilename - Where the filename part is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Split the input path into a directory and filename part
- * 1) Directory part used to open include files
- * 2) Filename part used to generate output filenames
- *
- ******************************************************************************/
-
-ACPI_STATUS
-FlSplitInputPathname (
- char *InputPath,
- char **OutDirectoryPath,
- char **OutFilename)
-{
- char *Substring;
- char *DirectoryPath;
- char *Filename;
-
-
- *OutDirectoryPath = NULL;
- *OutFilename = NULL;
-
- if (!InputPath)
- {
- return (AE_OK);
- }
-
- /* Get the path to the input filename's directory */
-
- DirectoryPath = FlStrdup (InputPath);
- if (!DirectoryPath)
- {
- return (AE_NO_MEMORY);
- }
-
- Substring = strrchr (DirectoryPath, '\\');
- if (!Substring)
- {
- Substring = strrchr (DirectoryPath, '/');
- if (!Substring)
- {
- Substring = strrchr (DirectoryPath, ':');
- }
- }
-
- if (!Substring)
- {
- DirectoryPath[0] = 0;
- Filename = FlStrdup (InputPath);
- }
- else
- {
- Filename = FlStrdup (Substring + 1);
- *(Substring+1) = 0;
- }
-
- if (!Filename)
- {
- return (AE_NO_MEMORY);
- }
-
- *OutDirectoryPath = DirectoryPath;
- *OutFilename = Filename;
-
- return (AE_OK);
-}
-
-
diff --git a/sys/contrib/dev/acpica/common/adisasm.c b/sys/contrib/dev/acpica/common/adisasm.c
deleted file mode 100644
index 843a9a8..0000000
--- a/sys/contrib/dev/acpica/common/adisasm.c
+++ /dev/null
@@ -1,1132 +0,0 @@
-/******************************************************************************
- *
- * Module Name: adisasm - Application-level disassembler routines
- * $Revision: 1.104 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acdebug.h>
-#include <contrib/dev/acpica/acdisasm.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/actables.h>
-#include <contrib/dev/acpica/acapps.h>
-
-#include <stdio.h>
-#include <time.h>
-
-
-#define _COMPONENT ACPI_TOOLS
- ACPI_MODULE_NAME ("adisasm")
-
-extern int AslCompilerdebug;
-
-ACPI_STATUS
-LsDisplayNamespace (
- void);
-
-void
-LsSetupNsList (void * Handle);
-
-
-/* Local prototypes */
-
-void
-AdCreateTableHeader (
- char *Filename,
- ACPI_TABLE_HEADER *Table);
-
-void
-AdDisassemblerHeader (
- char *Filename);
-
-ACPI_PARSE_OBJECT *AcpiGbl_ParseOpRoot;
-
-
-/* Stubs for ASL compiler */
-
-#ifndef ACPI_ASL_COMPILER
-BOOLEAN
-AcpiDsIsResultUsed (
- ACPI_PARSE_OBJECT *Op,
- ACPI_WALK_STATE *WalkState)
-{
- return TRUE;
-}
-
-ACPI_STATUS
-AcpiDsMethodError (
- ACPI_STATUS Status,
- ACPI_WALK_STATE *WalkState)
-{
- return (Status);
-}
-
-#endif
-
-ACPI_STATUS
-AcpiNsLoadTable (
- ACPI_NATIVE_UINT TableIndex,
- ACPI_NAMESPACE_NODE *Node)
-{
- return (AE_NOT_IMPLEMENTED);
-}
-
-ACPI_STATUS
-AcpiDsRestartControlMethod (
- ACPI_WALK_STATE *WalkState,
- ACPI_OPERAND_OBJECT *ReturnDesc)
-{
- return (AE_OK);
-}
-
-void
-AcpiDsTerminateControlMethod (
- ACPI_OPERAND_OBJECT *MethodDesc,
- ACPI_WALK_STATE *WalkState)
-{
- return;
-}
-
-ACPI_STATUS
-AcpiDsCallControlMethod (
- ACPI_THREAD_STATE *Thread,
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op)
-{
- return (AE_OK);
-}
-
-ACPI_STATUS
-AcpiDsMethodDataInitArgs (
- ACPI_OPERAND_OBJECT **Params,
- UINT32 MaxParamCount,
- ACPI_WALK_STATE *WalkState)
-{
- return (AE_OK);
-}
-
-
-ACPI_TABLE_DESC LocalTables[1];
-
-
-/*******************************************************************************
- *
- * FUNCTION: AdInitialize
- *
- * PARAMETERS: None.
- *
- * RETURN: Status
- *
- * DESCRIPTION: CA initialization
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AdInitialize (
- void)
-{
- ACPI_STATUS Status;
-
-
- /* ACPI CA subsystem initialization */
-
- Status = AcpiOsInitialize ();
- AcpiUtInitGlobals ();
-
- Status = AcpiUtMutexInitialize ();
- if (ACPI_FAILURE (Status))
- {
- return Status;
- }
-
- Status = AcpiNsRootInitialize ();
- if (ACPI_FAILURE (Status))
- {
- return Status;
- }
-
- /* Setup the Table Manager (cheat - there is no RSDT) */
-
- AcpiGbl_RootTableList.Size = 1;
- AcpiGbl_RootTableList.Count = 0;
- AcpiGbl_RootTableList.Tables = LocalTables;
-
- return Status;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AdAddExternalsToNamespace
- *
- * PARAMETERS:
- *
- * RETURN: Status
- *
- * DESCRIPTION:
- *
- ******************************************************************************/
-
-void
-AdAddExternalsToNamespace (
- void)
-{
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_EXTERNAL_LIST *External = AcpiGbl_ExternalList;
- ACPI_OPERAND_OBJECT *MethodDesc;
-
-
- while (External)
- {
- Status = AcpiNsLookup (NULL, External->InternalPath, External->Type,
- ACPI_IMODE_LOAD_PASS1, ACPI_NS_EXTERNAL | ACPI_NS_DONT_OPEN_SCOPE,
- NULL, &Node);
-
- if (External->Type == ACPI_TYPE_METHOD)
- {
- MethodDesc = AcpiUtCreateInternalObject (ACPI_TYPE_METHOD);
- MethodDesc->Method.ParamCount = (UINT8) External->Value;
- Node->Object = MethodDesc;
- }
-
- External = External->Next;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AdMethodExternalCount
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Return the number of externals that have been generated
- *
- ******************************************************************************/
-
-UINT32
-AdMethodExternalCount (
- void)
-{
- ACPI_EXTERNAL_LIST *External = AcpiGbl_ExternalList;
- UINT32 Count = 0;
-
-
- while (External)
- {
- if (External->Type == ACPI_TYPE_METHOD)
- {
- Count++;
- }
-
- External = External->Next;
- }
-
- return (Count);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AdAmlDisassemble
- *
- * PARAMETERS: Filename - AML input filename
- * OutToFile - TRUE if output should go to a file
- * Prefix - Path prefix for output
- * OutFilename - where the filename is returned
- * GetAllTables - TRUE if all tables are desired
- *
- * RETURN: Status
- *
- * DESCRIPTION: Disassemble an entire ACPI table
- *
- *****************************************************************************/
-
-extern char *Gbl_ExternalFilename;
-
-ACPI_STATUS
-AdAmlDisassemble (
- BOOLEAN OutToFile,
- char *Filename,
- char *Prefix,
- char **OutFilename,
- BOOLEAN GetAllTables)
-{
- ACPI_STATUS Status;
- char *DisasmFilename = NULL;
- FILE *File = NULL;
- ACPI_TABLE_HEADER *Table;
- ACPI_TABLE_HEADER *ExternalTable;
-
-
- /*
- * Input: AML Code from either a file,
- * or via GetTables (memory or registry)
- */
- if (Filename)
- {
- Status = AcpiDbGetTableFromFile (Filename, &Table);
- if (ACPI_FAILURE (Status))
- {
- return Status;
- }
-
- if (Gbl_ExternalFilename)
- {
- Status = AcpiDbGetTableFromFile (Gbl_ExternalFilename, &ExternalTable);
- if (ACPI_FAILURE (Status))
- {
- return Status;
- }
- }
- }
- else
- {
- Status = AdGetLocalTables (Filename, GetAllTables);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not get ACPI tables, %s\n",
- AcpiFormatException (Status));
- return Status;
- }
-
- if (!AcpiGbl_DbOpt_disasm)
- {
- return AE_OK;
- }
-
- /* Obtained the local tables, just disassemble the DSDT */
-
- Status = AcpiGetTable (ACPI_SIG_DSDT, 0, &Table);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not get DSDT, %s\n",
- AcpiFormatException (Status));
- return Status;
- }
-
- AcpiOsPrintf ("\nDisassembly of DSDT\n");
- Prefix = AdGenerateFilename ("dsdt", Table->OemTableId);
- }
-
- /*
- * Output: ASL code.
- * Redirect to a file if requested
- */
- if (OutToFile)
- {
- /* Create/Open a disassembly output file */
-
- DisasmFilename = FlGenerateFilename (Prefix, FILE_SUFFIX_DISASSEMBLY);
- if (!OutFilename)
- {
- fprintf (stderr, "Could not generate output filename\n");
- Status = AE_ERROR;
- goto Cleanup;
- }
-
- File = fopen (DisasmFilename, "w+");
- if (!File)
- {
- fprintf (stderr, "Could not open output file %s\n", DisasmFilename);
- Status = AE_ERROR;
- goto Cleanup;
- }
-
- AcpiOsRedirectOutput (File);
- }
-
- *OutFilename = DisasmFilename;
-
- if (!AcpiUtIsAmlTable (Table))
- {
- AdDisassemblerHeader (Filename);
- AcpiOsPrintf (" * ACPI Data Table [%4.4s]\n *\n",
- Table->Signature);
- AcpiOsPrintf (" * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue\n */\n\n");
-
- AcpiDmDumpDataTable (Table);
- fprintf (stderr, "Acpi Data Table [%4.4s] decoded, written to \"%s\"\n",
- Table->Signature, DisasmFilename);
- }
- else
- {
- /* Always parse the tables, only option is what to display */
-
- Status = AdParseTable (Table);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not parse ACPI tables, %s\n",
- AcpiFormatException (Status));
- goto Cleanup;
- }
-
- if (AslCompilerdebug)
- {
- AcpiOsPrintf ("/**** Before second load\n");
-
- LsSetupNsList (File);
- LsDisplayNamespace ();
- AcpiOsPrintf ("*****/\n");
- }
-
- /*
- * Load namespace from names created within control methods
- */
- AcpiDmFinishNamespaceLoad (AcpiGbl_ParseOpRoot, AcpiGbl_RootNode);
-
- /*
- * Cross reference the namespace here, in order to generate External() statements
- */
- AcpiDmCrossReferenceNamespace (AcpiGbl_ParseOpRoot, AcpiGbl_RootNode);
-
- if (AslCompilerdebug)
- {
- AcpiDmDumpTree (AcpiGbl_ParseOpRoot);
- }
-
- /* Find possible calls to external control methods */
-
- AcpiDmFindOrphanMethods (AcpiGbl_ParseOpRoot);
-
- /* Convert fixed-offset references to resource descriptors to symbolic references */
-
- AcpiDmConvertResourceIndexes (AcpiGbl_ParseOpRoot, AcpiGbl_RootNode);
-
- if (AslCompilerdebug)
- {
- AcpiOsPrintf ("/**** After second load and resource conversion\n");
- LsSetupNsList (File);
- LsDisplayNamespace ();
- AcpiOsPrintf ("*****/\n");
- }
-
- /*
- * If we found any external control methods, we must reparse the entire
- * tree with the new information (namely, the number of arguments per
- * method)
- */
- if (AdMethodExternalCount ())
- {
- fprintf (stderr,
- "\nFound %d external control methods, reparsing with new information\n",
- AdMethodExternalCount());
-
- /*
- * Reparse, rebuild namespace. no need to xref namespace
- */
- AcpiPsDeleteParseTree (AcpiGbl_ParseOpRoot);
- AcpiNsDeleteNamespaceSubtree (AcpiGbl_RootNode);
-
- AcpiGbl_RootNode = NULL;
- AcpiGbl_RootNodeStruct.Name.Integer = ACPI_ROOT_NAME;
- AcpiGbl_RootNodeStruct.DescriptorType = ACPI_DESC_TYPE_NAMED;
- AcpiGbl_RootNodeStruct.Type = ACPI_TYPE_DEVICE;
- AcpiGbl_RootNodeStruct.Child = NULL;
- AcpiGbl_RootNodeStruct.Peer = NULL;
- AcpiGbl_RootNodeStruct.Object = NULL;
- AcpiGbl_RootNodeStruct.Flags = ANOBJ_END_OF_PEER_LIST;
-
- Status = AcpiNsRootInitialize ();
- AdAddExternalsToNamespace ();
-
- Status = AdParseTable (Table);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not parse ACPI tables, %s\n",
- AcpiFormatException (Status));
- goto Cleanup;
- }
-
- if (AslCompilerdebug)
- {
- AcpiDmDumpTree (AcpiGbl_ParseOpRoot);
- }
- }
-
- /* Optional displays */
-
- if (AcpiGbl_DbOpt_disasm)
- {
- AdDisplayTables (Filename, Table);
- fprintf (stderr,
- "Disassembly completed, written to \"%s\"\n",
- DisasmFilename);
- }
- }
-
-Cleanup:
- if (OutToFile && File)
- {
-
-#ifdef ASL_DISASM_DEBUG
- LsSetupNsList (File);
- LsDisplayNamespace ();
-#endif
- fclose (File);
- AcpiOsRedirectOutput (stdout);
- }
-
- AcpiPsDeleteParseTree (AcpiGbl_ParseOpRoot);
- return Status;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AdDisassemblerHeader
- *
- * PARAMETERS: Filename - Input file for the table
- *
- * RETURN: None
- *
- * DESCRIPTION: Create the disassembler header, including ACPI CA signon with
- * current time and date.
- *
- *****************************************************************************/
-
-void
-AdDisassemblerHeader (
- char *Filename)
-{
- time_t Timer;
-
- time (&Timer);
-
- /* Header and input table info */
-
- AcpiOsPrintf ("/*\n * Intel ACPI Component Architecture\n");
- AcpiOsPrintf (" * AML Disassembler version %8.8X\n", ACPI_CA_VERSION);
-
- AcpiOsPrintf (" *\n * Disassembly of %s, %s", Filename, ctime (&Timer));
- AcpiOsPrintf (" *\n");
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AdCreateTableHeader
- *
- * PARAMETERS: Filename - Input file for the table
- * Table - Pointer to the raw table
- *
- * RETURN: None
- *
- * DESCRIPTION: Create the ASL table header, including ACPI CA signon with
- * current time and date.
- *
- *****************************************************************************/
-
-void
-AdCreateTableHeader (
- char *Filename,
- ACPI_TABLE_HEADER *Table)
-{
- char *NewFilename;
-
-
- AdDisassemblerHeader (Filename);
-
- AcpiOsPrintf (" *\n * Original Table Header:\n");
- AcpiOsPrintf (" * Signature \"%4.4s\"\n", Table->Signature);
- AcpiOsPrintf (" * Length 0x%8.8X (%u)\n", Table->Length, Table->Length);
- AcpiOsPrintf (" * Revision 0x%2.2X\n", Table->Revision);
- AcpiOsPrintf (" * OEM ID \"%.6s\"\n", Table->OemId);
- AcpiOsPrintf (" * OEM Table ID \"%.8s\"\n", Table->OemTableId);
- AcpiOsPrintf (" * OEM Revision 0x%8.8X (%u)\n", Table->OemRevision, Table->OemRevision);
- AcpiOsPrintf (" * Creator ID \"%.4s\"\n", Table->AslCompilerId);
- AcpiOsPrintf (" * Creator Revision 0x%8.8X (%u)\n", Table->AslCompilerRevision, Table->AslCompilerRevision);
- AcpiOsPrintf (" */\n");
-
- /* Create AML output filename based on input filename */
-
- if (Filename)
- {
- NewFilename = FlGenerateFilename (Filename, "aml");
- }
- else
- {
- NewFilename = ACPI_ALLOCATE_ZEROED (9);
- strncat (NewFilename, Table->Signature, 4);
- strcat (NewFilename, ".aml");
- }
-
- /* Open the ASL definition block */
-
- AcpiOsPrintf (
- "DefinitionBlock (\"%s\", \"%4.4s\", %hd, \"%.6s\", \"%.8s\", 0x%8.8X)\n",
- NewFilename, Table->Signature, Table->Revision,
- Table->OemId, Table->OemTableId, Table->OemRevision);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AdDisplayTables
- *
- * PARAMETERS: Filename - Input file for the table
- * Table - Pointer to the raw table
- *
- * RETURN: Status
- *
- * DESCRIPTION: Display (disassemble) loaded tables and dump raw tables
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AdDisplayTables (
- char *Filename,
- ACPI_TABLE_HEADER *Table)
-{
-
-
- if (!AcpiGbl_ParseOpRoot)
- {
- return AE_NOT_EXIST;
- }
-
- if (!AcpiGbl_DbOpt_verbose)
- {
- AdCreateTableHeader (Filename, Table);
- }
-
- AcpiDmDisassemble (NULL, AcpiGbl_ParseOpRoot, ACPI_UINT32_MAX);
-
- if (AcpiGbl_DbOpt_verbose)
- {
- AcpiOsPrintf ("\n\nTable Header:\n");
- AcpiUtDumpBuffer ((UINT8 *) Table, sizeof (ACPI_TABLE_HEADER),
- DB_BYTE_DISPLAY, ACPI_UINT32_MAX);
-
- AcpiOsPrintf ("Table Body (Length 0x%X)\n", Table->Length);
- AcpiUtDumpBuffer (((UINT8 *) Table + sizeof (ACPI_TABLE_HEADER)), Table->Length,
- DB_BYTE_DISPLAY, ACPI_UINT32_MAX);
- }
-
- return AE_OK;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AdDeferredParse
- *
- * PARAMETERS: Op - Root Op of the deferred opcode
- * Aml - Pointer to the raw AML
- * AmlLength - Length of the AML
- *
- * RETURN: Status
- *
- * DESCRIPTION: Parse one deferred opcode
- * (Methods, operation regions, etc.)
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AdDeferredParse (
- ACPI_PARSE_OBJECT *Op,
- UINT8 *Aml,
- UINT32 AmlLength)
-{
- ACPI_WALK_STATE *WalkState;
- ACPI_STATUS Status;
- ACPI_PARSE_OBJECT *SearchOp;
- ACPI_PARSE_OBJECT *StartOp;
- UINT32 BaseAmlOffset;
- ACPI_PARSE_OBJECT *ExtraOp;
-
-
- ACPI_FUNCTION_TRACE (AdDeferredParse);
-
-
- fprintf (stderr, ".");
-
- if (!Aml || !AmlLength)
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Parsing %s [%4.4s]\n",
- Op->Common.AmlOpName, (char *) &Op->Named.Name));
-
- WalkState = AcpiDsCreateWalkState (0, Op, NULL, NULL);
- if (!WalkState)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- Status = AcpiDsInitAmlWalk (WalkState, Op, NULL, Aml,
- AmlLength, NULL, ACPI_IMODE_LOAD_PASS1);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Parse the method */
-
- WalkState->ParseFlags &= ~ACPI_PARSE_DELETE_TREE;
- WalkState->ParseFlags |= ACPI_PARSE_DISASSEMBLE;
- Status = AcpiPsParseAml (WalkState);
-
- /*
- * We need to update all of the Aml offsets, since the parser thought
- * that the method began at offset zero. In reality, it began somewhere
- * within the ACPI table, at the BaseAmlOffset. Walk the entire tree that
- * was just created and update the AmlOffset in each Op
- */
- BaseAmlOffset = (Op->Common.Value.Arg)->Common.AmlOffset + 1;
- StartOp = (Op->Common.Value.Arg)->Common.Next;
- SearchOp = StartOp;
-
- /* Walk the parse tree */
-
- while (SearchOp)
- {
- SearchOp->Common.AmlOffset += BaseAmlOffset;
- SearchOp = AcpiPsGetDepthNext (StartOp, SearchOp);
- }
-
- /*
- * Link the newly parsed subtree into the main parse tree
- */
- switch (Op->Common.AmlOpcode)
- {
- case AML_BUFFER_OP:
- case AML_PACKAGE_OP:
- case AML_VAR_PACKAGE_OP:
-
- switch (Op->Common.AmlOpcode)
- {
- case AML_PACKAGE_OP:
- ExtraOp = Op->Common.Value.Arg;
- ExtraOp = ExtraOp->Common.Next;
- Op->Common.Value.Arg = ExtraOp->Common.Value.Arg;
- break;
-
- case AML_VAR_PACKAGE_OP:
- case AML_BUFFER_OP:
- default:
- ExtraOp = Op->Common.Value.Arg;
- Op->Common.Value.Arg = ExtraOp->Common.Value.Arg;
- break;
- }
-
- /* Must point all parents to the main tree */
-
- StartOp = Op;
- SearchOp = StartOp;
- while (SearchOp)
- {
- if (SearchOp->Common.Parent == ExtraOp)
- {
- SearchOp->Common.Parent = Op;
- }
- SearchOp = AcpiPsGetDepthNext (StartOp, SearchOp);
- }
- break;
-
- default:
- break;
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AdParseDeferredOps
- *
- * PARAMETERS: Root - Root of the parse tree
- *
- * RETURN: Status
- *
- * DESCRIPTION: Parse the deferred opcodes (Methods, regions, etc.)
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AdParseDeferredOps (
- ACPI_PARSE_OBJECT *Root)
-{
- ACPI_PARSE_OBJECT *Op = Root;
- ACPI_STATUS Status = AE_OK;
- const ACPI_OPCODE_INFO *OpInfo;
-
-
- ACPI_FUNCTION_NAME (AdParseDeferredOps);
- fprintf (stderr, "Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)\n");
-
- while (Op)
- {
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- if (!(OpInfo->Flags & AML_DEFER))
- {
- Op = AcpiPsGetDepthNext (Root, Op);
- continue;
- }
-
- switch (Op->Common.AmlOpcode)
- {
- case AML_METHOD_OP:
- case AML_BUFFER_OP:
- case AML_PACKAGE_OP:
- case AML_VAR_PACKAGE_OP:
-
- Status = AdDeferredParse (Op, Op->Named.Data, Op->Named.Length);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- break;
-
- case AML_REGION_OP:
- case AML_CREATE_QWORD_FIELD_OP:
- case AML_CREATE_DWORD_FIELD_OP:
- case AML_CREATE_WORD_FIELD_OP:
- case AML_CREATE_BYTE_FIELD_OP:
- case AML_CREATE_BIT_FIELD_OP:
- case AML_CREATE_FIELD_OP:
-
- /* Nothing to do in these cases */
-
- break;
-
- default:
- ACPI_ERROR ((AE_INFO, "Unhandled deferred opcode [%s]",
- Op->Common.AmlOpName));
- break;
- }
-
- Op = AcpiPsGetDepthNext (Root, Op);
- }
-
- fprintf (stderr, "\n");
- return Status;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AdGetLocalTables
- *
- * PARAMETERS: Filename - Not used
- * GetAllTables - TRUE if all tables are desired
- *
- * RETURN: Status
- *
- * DESCRIPTION: Get the ACPI tables from either memory or a file
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AdGetLocalTables (
- char *Filename,
- BOOLEAN GetAllTables)
-{
- ACPI_STATUS Status;
- ACPI_TABLE_HEADER TableHeader;
- ACPI_TABLE_HEADER *NewTable;
- UINT32 NumTables;
- UINT32 PointerSize;
- ACPI_NATIVE_UINT TableIndex;
-
-
- if (GetAllTables)
- {
- ACPI_MOVE_32_TO_32 (TableHeader.Signature, ACPI_SIG_RSDT);
- AcpiOsTableOverride (&TableHeader, &NewTable);
- if (!NewTable)
- {
- fprintf (stderr, "Could not obtain RSDT\n");
- return AE_NO_ACPI_TABLES;
- }
-
- if (ACPI_COMPARE_NAME (NewTable->Signature, ACPI_SIG_RSDT))
- {
- PointerSize = sizeof (UINT32);
- }
- else
- {
- PointerSize = sizeof (UINT64);
- }
-
- /*
- * Determine the number of tables pointed to by the RSDT/XSDT.
- * This is defined by the ACPI Specification to be the number of
- * pointers contained within the RSDT/XSDT. The size of the pointers
- * is architecture-dependent.
- */
- NumTables = (NewTable->Length - sizeof (ACPI_TABLE_HEADER)) / PointerSize;
- AcpiOsPrintf ("There are %d tables defined in the %4.4s\n\n",
- NumTables, NewTable->Signature);
-
- /* Get the FADT */
-
- ACPI_MOVE_32_TO_32 (TableHeader.Signature, ACPI_SIG_FADT);
- AcpiOsTableOverride (&TableHeader, &NewTable);
- if (NewTable)
- {
- AdWriteTable (NewTable, NewTable->Length,
- ACPI_SIG_FADT, NewTable->OemTableId);
- }
- AcpiOsPrintf ("\n");
-
- /* Don't bother with FACS, it is usually all zeros */
- }
-
- /* Always get the DSDT */
-
- ACPI_MOVE_32_TO_32 (TableHeader.Signature, ACPI_SIG_DSDT);
- AcpiOsTableOverride (&TableHeader, &NewTable);
- if (NewTable)
- {
- AdWriteTable (NewTable, NewTable->Length,
- ACPI_SIG_DSDT, NewTable->OemTableId);
-
- /* Store DSDT in the Table Manager */
-
- Status = AcpiTbStoreTable (0, NewTable, NewTable->Length,
- 0, &TableIndex);
- }
- else
- {
- fprintf (stderr, "Could not obtain DSDT\n");
- return AE_NO_ACPI_TABLES;
- }
-
-#if 0
- /* TBD: Future implementation */
-
- AcpiOsPrintf ("\n");
-
- /* Get all SSDTs */
-
- ACPI_MOVE_32_TO_32 (TableHeader.Signature, ACPI_SIG_SSDT);
- do
- {
- NewTable = NULL;
- Status = AcpiOsTableOverride (&TableHeader, &NewTable);
-
- } while (NewTable);
-#endif
-
- return AE_OK;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AdParseTable
- *
- * PARAMETERS: Table - Pointer to the raw table
- *
- * RETURN: Status
- *
- * DESCRIPTION: Parse the DSDT.
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AdParseTable (
- ACPI_TABLE_HEADER *Table)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_WALK_STATE *WalkState;
- UINT8 *AmlStart;
- UINT32 AmlLength;
- ACPI_NATIVE_UINT TableIndex;
-
-
- if (!Table)
- {
- return AE_NOT_EXIST;
- }
-
- /* Pass 1: Parse everything except control method bodies */
-
- fprintf (stderr, "Pass 1 parse of [%4.4s]\n", (char *) Table->Signature);
-
- AmlLength = Table->Length - sizeof (ACPI_TABLE_HEADER);
- AmlStart = ((UINT8 *) Table + sizeof (ACPI_TABLE_HEADER));
-
- /* Create the root object */
-
- AcpiGbl_ParseOpRoot = AcpiPsCreateScopeOp ();
- if (!AcpiGbl_ParseOpRoot)
- {
- return AE_NO_MEMORY;
- }
-
- /* Create and initialize a new walk state */
-
- WalkState = AcpiDsCreateWalkState (0,
- AcpiGbl_ParseOpRoot, NULL, NULL);
- if (!WalkState)
- {
- return (AE_NO_MEMORY);
- }
-
- Status = AcpiDsInitAmlWalk (WalkState, AcpiGbl_ParseOpRoot,
- NULL, AmlStart, AmlLength, NULL, ACPI_IMODE_LOAD_PASS1);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- WalkState->ParseFlags &= ~ACPI_PARSE_DELETE_TREE;
- WalkState->ParseFlags |= ACPI_PARSE_DISASSEMBLE;
-
- Status = AcpiPsParseAml (WalkState);
- if (ACPI_FAILURE (Status))
- {
- return Status;
- }
-
- /* Pass 2 */
-
- Status = AcpiTbStoreTable ((ACPI_NATIVE_UINT) Table, Table,
- Table->Length, ACPI_TABLE_ORIGIN_ALLOCATED, &TableIndex);
- if (ACPI_FAILURE (Status))
- {
- return Status;
- }
-
- fprintf (stderr, "Pass 2 parse of [%4.4s]\n", (char *) Table->Signature);
-
- Status = AcpiNsOneCompleteParse (ACPI_IMODE_LOAD_PASS2, 0);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- /* Pass 3: Parse control methods and link their parse trees into the main parse tree */
-
- Status = AdParseDeferredOps (AcpiGbl_ParseOpRoot);
-
- /* Process Resource Templates */
-
- AcpiDmFindResources (AcpiGbl_ParseOpRoot);
-
- fprintf (stderr, "Parsing completed\n");
- return AE_OK;
-}
-
-
diff --git a/sys/contrib/dev/acpica/common/adwalk.c b/sys/contrib/dev/acpica/common/adwalk.c
deleted file mode 100644
index 108561c..0000000
--- a/sys/contrib/dev/acpica/common/adwalk.c
+++ /dev/null
@@ -1,1001 +0,0 @@
-/******************************************************************************
- *
- * Module Name: adwalk - Application-level disassembler parse tree walk routines
- * $Revision: 1.6 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acdebug.h>
-#include <contrib/dev/acpica/acdisasm.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acapps.h>
-
-
-#define _COMPONENT ACPI_TOOLS
- ACPI_MODULE_NAME ("adwalk")
-
-/*
- * aslmap - opcode mappings and reserved method names
- */
-ACPI_OBJECT_TYPE
-AslMapNamedOpcodeToDataType (
- UINT16 Opcode);
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiDmFindOrphanDescending (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-static ACPI_STATUS
-AcpiDmDumpDescending (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-static ACPI_STATUS
-AcpiDmXrefDescendingOp (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-static ACPI_STATUS
-AcpiDmCommonAscendingOp (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-static ACPI_STATUS
-AcpiDmLoadDescendingOp (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-static UINT32
-AcpiDmInspectPossibleArgs (
- UINT32 CurrentOpArgCount,
- UINT32 TargetCount,
- ACPI_PARSE_OBJECT *Op);
-
-static ACPI_STATUS
-AcpiDmResourceDescendingOp (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpTree
- *
- * PARAMETERS: Origin - Starting object
- *
- * RETURN: None
- *
- * DESCRIPTION: Parse tree walk to format and output the nodes
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpTree (
- ACPI_PARSE_OBJECT *Origin)
-{
- ACPI_OP_WALK_INFO Info;
-
-
- if (!Origin)
- {
- return;
- }
-
- AcpiOsPrintf ("/*\nAML Parse Tree\n\n");
- Info.Flags = 0;
- Info.Count = 0;
- Info.Level = 0;
- Info.WalkState = NULL;
- AcpiDmWalkParseTree (Origin, AcpiDmDumpDescending, NULL, &Info);
- AcpiOsPrintf ("*/\n\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmFindOrphanMethods
- *
- * PARAMETERS: Origin - Starting object
- *
- * RETURN: None
- *
- * DESCRIPTION: Parse tree walk to find "orphaned" method invocations -- methods
- * that are not resolved in the namespace
- *
- ******************************************************************************/
-
-void
-AcpiDmFindOrphanMethods (
- ACPI_PARSE_OBJECT *Origin)
-{
- ACPI_OP_WALK_INFO Info;
-
-
- if (!Origin)
- {
- return;
- }
-
- Info.Flags = 0;
- Info.Level = 0;
- Info.WalkState = NULL;
- AcpiDmWalkParseTree (Origin, AcpiDmFindOrphanDescending, NULL, &Info);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmFinishNamespaceLoad
- *
- * PARAMETERS: ParseTreeRoot - Root of the parse tree
- * NamespaceRoot - Root of the internal namespace
- *
- * RETURN: None
- *
- * DESCRIPTION: Load all namespace items that are created within control
- * methods. Used before namespace cross reference
- *
- ******************************************************************************/
-
-void
-AcpiDmFinishNamespaceLoad (
- ACPI_PARSE_OBJECT *ParseTreeRoot,
- ACPI_NAMESPACE_NODE *NamespaceRoot)
-{
- ACPI_STATUS Status;
- ACPI_OP_WALK_INFO Info;
- ACPI_WALK_STATE *WalkState;
-
-
- if (!ParseTreeRoot)
- {
- return;
- }
-
- /* Create and initialize a new walk state */
-
- WalkState = AcpiDsCreateWalkState (0, ParseTreeRoot, NULL, NULL);
- if (!WalkState)
- {
- return;
- }
-
- Status = AcpiDsScopeStackPush (NamespaceRoot, NamespaceRoot->Type, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- Info.Flags = 0;
- Info.Level = 0;
- Info.WalkState = WalkState;
- AcpiDmWalkParseTree (ParseTreeRoot, AcpiDmLoadDescendingOp,
- AcpiDmCommonAscendingOp, &Info);
- ACPI_FREE (WalkState);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmCrossReferenceNamespace
- *
- * PARAMETERS: ParseTreeRoot - Root of the parse tree
- * NamespaceRoot - Root of the internal namespace
- *
- * RETURN: None
- *
- * DESCRIPTION: Cross reference the namespace to create externals
- *
- ******************************************************************************/
-
-void
-AcpiDmCrossReferenceNamespace (
- ACPI_PARSE_OBJECT *ParseTreeRoot,
- ACPI_NAMESPACE_NODE *NamespaceRoot)
-{
- ACPI_STATUS Status;
- ACPI_OP_WALK_INFO Info;
- ACPI_WALK_STATE *WalkState;
-
-
- if (!ParseTreeRoot)
- {
- return;
- }
-
- /* Create and initialize a new walk state */
-
- WalkState = AcpiDsCreateWalkState (0, ParseTreeRoot, NULL, NULL);
- if (!WalkState)
- {
- return;
- }
-
- Status = AcpiDsScopeStackPush (NamespaceRoot, NamespaceRoot->Type, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- Info.Flags = 0;
- Info.Level = 0;
- Info.WalkState = WalkState;
- AcpiDmWalkParseTree (ParseTreeRoot, AcpiDmXrefDescendingOp,
- AcpiDmCommonAscendingOp, &Info);
- ACPI_FREE (WalkState);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmConvertResourceIndexes
- *
- * PARAMETERS: ParseTreeRoot - Root of the parse tree
- * NamespaceRoot - Root of the internal namespace
- *
- * RETURN: None
- *
- * DESCRIPTION: Convert fixed-offset references to resource descriptors to
- * symbolic references. Should only be called after namespace has
- * been cross referenced.
- *
- ******************************************************************************/
-
-void
-AcpiDmConvertResourceIndexes (
- ACPI_PARSE_OBJECT *ParseTreeRoot,
- ACPI_NAMESPACE_NODE *NamespaceRoot)
-{
- ACPI_STATUS Status;
- ACPI_OP_WALK_INFO Info;
- ACPI_WALK_STATE *WalkState;
-
-
- if (!ParseTreeRoot)
- {
- return;
- }
-
- /* Create and initialize a new walk state */
-
- WalkState = AcpiDsCreateWalkState (0, ParseTreeRoot, NULL, NULL);
- if (!WalkState)
- {
- return;
- }
-
- Status = AcpiDsScopeStackPush (NamespaceRoot, NamespaceRoot->Type, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- Info.Flags = 0;
- Info.Level = 0;
- Info.WalkState = WalkState;
- AcpiDmWalkParseTree (ParseTreeRoot, AcpiDmResourceDescendingOp,
- AcpiDmCommonAscendingOp, &Info);
- ACPI_FREE (WalkState);
- return;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpDescending
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Format and print contents of one parse Op.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDmDumpDescending (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- ACPI_OP_WALK_INFO *Info = Context;
- const ACPI_OPCODE_INFO *OpInfo;
- char *Path;
-
-
- if (!Op)
- {
- return (AE_OK);
- }
-
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- Info->Count++;
-
- /* Most of the information (count, level, name) here */
-
- AcpiOsPrintf ("% 5d [%2.2d] ", Info->Count, Level);
- AcpiDmIndent (Level);
- AcpiOsPrintf ("%-28s", AcpiPsGetOpcodeName (Op->Common.AmlOpcode));
-
- /* Extra info is helpful */
-
- switch (Op->Common.AmlOpcode)
- {
- case AML_BYTE_OP:
- case AML_WORD_OP:
- case AML_DWORD_OP:
- AcpiOsPrintf ("%X", (UINT32) Op->Common.Value.Integer);
- break;
-
- case AML_INT_NAMEPATH_OP:
- if (Op->Common.Value.String)
- {
- AcpiNsExternalizeName (ACPI_UINT32_MAX, Op->Common.Value.String,
- NULL, &Path);
- AcpiOsPrintf ("%s %p", Path, Op->Common.Node);
- ACPI_FREE (Path);
- }
- else
- {
- AcpiOsPrintf ("[NULL]");
- }
- break;
-
- case AML_NAME_OP:
- case AML_METHOD_OP:
- case AML_DEVICE_OP:
- case AML_INT_NAMEDFIELD_OP:
- AcpiOsPrintf ("%4.4s", &Op->Named.Name);
- break;
- }
-
- AcpiOsPrintf ("\n");
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmFindOrphanDescending
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Check namepath Ops for orphaned method invocations
- *
- * Note: Experimental.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDmFindOrphanDescending (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- const ACPI_OPCODE_INFO *OpInfo;
- ACPI_PARSE_OBJECT *ChildOp;
- ACPI_PARSE_OBJECT *NextOp;
- ACPI_PARSE_OBJECT *ParentOp;
- UINT32 ArgCount;
-
-
- if (!Op)
- {
- return (AE_OK);
- }
-
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-
- switch (Op->Common.AmlOpcode)
- {
-#ifdef ACPI_UNDER_DEVELOPMENT
- case AML_ADD_OP:
- ChildOp = Op->Common.Value.Arg;
- if ((ChildOp->Common.AmlOpcode == AML_INT_NAMEPATH_OP) &&
- !ChildOp->Common.Node)
- {
- AcpiNsExternalizeName (ACPI_UINT32_MAX, ChildOp->Common.Value.String,
- NULL, &Path);
- AcpiOsPrintf ("/* %-16s A-NAMEPATH: %s */\n", Op->Common.AmlOpName, Path);
- ACPI_FREE (Path);
-
- NextOp = Op->Common.Next;
- if (!NextOp)
- {
- /* This NamePath has no args, assume it is an integer */
-
- AcpiDmAddToExternalList (ChildOp->Common.Value.String, ACPI_TYPE_INTEGER, 0);
- return (AE_OK);
- }
-
- ArgCount = AcpiDmInspectPossibleArgs (3, 1, NextOp);
- AcpiOsPrintf ("/* A-CHILDREN: %d Actual %d */\n", ArgCount, AcpiDmCountChildren (Op));
-
- if (ArgCount < 1)
- {
- /* One Arg means this is just a Store(Name,Target) */
-
- AcpiDmAddToExternalList (ChildOp->Common.Value.String, ACPI_TYPE_INTEGER, 0);
- return (AE_OK);
- }
-
- AcpiDmAddToExternalList (ChildOp->Common.Value.String, ACPI_TYPE_METHOD, ArgCount);
- }
- break;
-#endif
-
- case AML_STORE_OP:
-
- ChildOp = Op->Common.Value.Arg;
- if ((ChildOp->Common.AmlOpcode == AML_INT_NAMEPATH_OP) &&
- !ChildOp->Common.Node)
- {
- NextOp = Op->Common.Next;
- if (!NextOp)
- {
- /* This NamePath has no args, assume it is an integer */
-
- AcpiDmAddToExternalList (ChildOp->Common.Value.String, ACPI_TYPE_INTEGER, 0);
- return (AE_OK);
- }
-
- ArgCount = AcpiDmInspectPossibleArgs (2, 1, NextOp);
- if (ArgCount <= 1)
- {
- /* One Arg means this is just a Store(Name,Target) */
-
- AcpiDmAddToExternalList (ChildOp->Common.Value.String, ACPI_TYPE_INTEGER, 0);
- return (AE_OK);
- }
-
- AcpiDmAddToExternalList (ChildOp->Common.Value.String, ACPI_TYPE_METHOD, ArgCount);
- }
- break;
-
- case AML_INT_NAMEPATH_OP:
-
- /* Must examine parent to see if this namepath is an argument */
-
- ParentOp = Op->Common.Parent;
- OpInfo = AcpiPsGetOpcodeInfo (ParentOp->Common.AmlOpcode);
-
- if ((OpInfo->Class != AML_CLASS_EXECUTE) &&
- (OpInfo->Class != AML_CLASS_CREATE) &&
- (ParentOp->Common.AmlOpcode != AML_INT_METHODCALL_OP) &&
- !Op->Common.Node)
- {
- ArgCount = AcpiDmInspectPossibleArgs (0, 0, Op->Common.Next);
-
- /*
- * Check if namepath is a predicate for if/while or lone parameter to
- * a return.
- */
- if (ArgCount == 0)
- {
- if (((ParentOp->Common.AmlOpcode == AML_IF_OP) ||
- (ParentOp->Common.AmlOpcode == AML_WHILE_OP) ||
- (ParentOp->Common.AmlOpcode == AML_RETURN_OP)) &&
-
- /* And namepath is the first argument */
- (ParentOp->Common.Value.Arg == Op))
- {
- AcpiDmAddToExternalList (Op->Common.Value.String, ACPI_TYPE_INTEGER, 0);
- break;
- }
- }
-
- /*
- * This is a standalone namestring (not a parameter to another
- * operator) - it *must* be a method invocation, nothing else is
- * grammatically possible.
- */
- AcpiDmAddToExternalList (Op->Common.Value.String, ACPI_TYPE_METHOD, ArgCount);
-
- }
- break;
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmLoadDescendingOp
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Descending handler for namespace control method object load
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDmLoadDescendingOp (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- ACPI_OP_WALK_INFO *Info = Context;
- const ACPI_OPCODE_INFO *OpInfo;
- ACPI_WALK_STATE *WalkState;
- ACPI_OBJECT_TYPE ObjectType;
- ACPI_STATUS Status;
- char *Path = NULL;
- ACPI_PARSE_OBJECT *NextOp;
- ACPI_NAMESPACE_NODE *Node;
-
-
- WalkState = Info->WalkState;
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- ObjectType = OpInfo->ObjectType;
- ObjectType = AslMapNamedOpcodeToDataType (Op->Asl.AmlOpcode);
-
- /* Only interested in operators that create new names */
-
- if (!(OpInfo->Flags & AML_NAMED) &&
- !(OpInfo->Flags & AML_CREATE))
- {
- goto Exit;
- }
-
- /* Get the NamePath from the appropriate place */
-
- if (OpInfo->Flags & AML_NAMED)
- {
- /* For all named operators, get the new name */
-
- Path = (char *) Op->Named.Path;
- }
- else if (OpInfo->Flags & AML_CREATE)
- {
- /* New name is the last child */
-
- NextOp = Op->Common.Value.Arg;
-
- while (NextOp->Common.Next)
- {
- NextOp = NextOp->Common.Next;
- }
- Path = NextOp->Common.Value.String;
- }
-
- if (!Path)
- {
- goto Exit;
- }
-
- /* Insert the name into the namespace */
-
- Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType,
- ACPI_IMODE_LOAD_PASS2, ACPI_NS_DONT_OPEN_SCOPE,
- WalkState, &Node);
-
- Op->Common.Node = Node;
-
-
-Exit:
-
- if (AcpiNsOpensScope (ObjectType))
- {
- if (Op->Common.Node)
- {
- Status = AcpiDsScopeStackPush (Op->Common.Node, ObjectType, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
- }
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmXrefDescendingOp
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Descending handler for namespace cross reference
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDmXrefDescendingOp (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- ACPI_OP_WALK_INFO *Info = Context;
- const ACPI_OPCODE_INFO *OpInfo;
- ACPI_WALK_STATE *WalkState;
- ACPI_OBJECT_TYPE ObjectType;
- ACPI_STATUS Status;
- char *Path = NULL;
- ACPI_PARSE_OBJECT *NextOp;
- ACPI_NAMESPACE_NODE *Node;
-
-
- WalkState = Info->WalkState;
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- ObjectType = OpInfo->ObjectType;
- ObjectType = AslMapNamedOpcodeToDataType (Op->Asl.AmlOpcode);
-
- if ((!(OpInfo->Flags & AML_NAMED)) &&
- (!(OpInfo->Flags & AML_CREATE)) &&
- (Op->Common.AmlOpcode != AML_INT_NAMEPATH_OP))
- {
- goto Exit;
- }
-
- /* Get the NamePath from the appropriate place */
-
- if (OpInfo->Flags & AML_NAMED)
- {
- if ((Op->Common.AmlOpcode == AML_ALIAS_OP) ||
- (Op->Common.AmlOpcode == AML_SCOPE_OP))
- {
- /*
- * Only these two operators refer to an existing name,
- * first argument
- */
- Path = (char *) Op->Named.Path;
- }
- }
- else if (OpInfo->Flags & AML_CREATE)
- {
- /* Referenced Buffer Name is the first child */
-
- NextOp = Op->Common.Value.Arg;
- if (NextOp->Common.AmlOpcode == AML_INT_NAMEPATH_OP)
- {
- Path = NextOp->Common.Value.String;
- }
- }
- else
- {
- Path = Op->Common.Value.String;
- }
-
- if (!Path)
- {
- goto Exit;
- }
-
- /*
- * Lookup the name in the namespace. Name must exist at this point, or it
- * is an invalid reference.
- *
- * The namespace is also used as a lookup table for references to resource
- * descriptors and the fields within them.
- */
- Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ACPI_TYPE_ANY,
- ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE,
- WalkState, &Node);
- if (ACPI_FAILURE (Status))
- {
- if (Status == AE_NOT_FOUND)
- {
- AcpiDmAddToExternalList (Path, (UINT8) ObjectType, 0);
-
- /*
- * We could install this into the namespace, but we catch duplicate
- * externals when they are added to the list.
- */
-#if 0
- Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ACPI_TYPE_ANY,
- ACPI_IMODE_LOAD_PASS1, ACPI_NS_DONT_OPEN_SCOPE,
- WalkState, &Node);
-#endif
- }
- }
- else
- {
- Op->Common.Node = Node;
- }
-
-
-Exit:
- /* Open new scope if necessary */
-
- if (AcpiNsOpensScope (ObjectType))
- {
- if (Op->Common.Node)
- {
- Status = AcpiDsScopeStackPush (Op->Common.Node, ObjectType, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
- }
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmResourceDescendingOp
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: None
- *
- * DESCRIPTION: Process one parse op during symbolic resource index conversion.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDmResourceDescendingOp (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- ACPI_OP_WALK_INFO *Info = Context;
- const ACPI_OPCODE_INFO *OpInfo;
- ACPI_WALK_STATE *WalkState;
- ACPI_OBJECT_TYPE ObjectType;
- ACPI_STATUS Status;
-
-
- WalkState = Info->WalkState;
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-
- /* Open new scope if necessary */
-
- ObjectType = OpInfo->ObjectType;
- if (AcpiNsOpensScope (ObjectType))
- {
- if (Op->Common.Node)
- {
-
- Status = AcpiDsScopeStackPush (Op->Common.Node, ObjectType, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
- }
- }
-
- /*
- * Check if this operator contains a reference to a resource descriptor.
- * If so, convert the reference into a symbolic reference.
- */
- AcpiDmCheckResourceReference (Op, WalkState);
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmCommonAscendingOp
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: None
- *
- * DESCRIPTION: Ascending handler for combined parse/namespace walks. Closes
- * scope if necessary.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDmCommonAscendingOp (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- ACPI_OP_WALK_INFO *Info = Context;
- const ACPI_OPCODE_INFO *OpInfo;
- ACPI_OBJECT_TYPE ObjectType;
-
-
- /* Close scope if necessary */
-
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- ObjectType = OpInfo->ObjectType;
- ObjectType = AslMapNamedOpcodeToDataType (Op->Asl.AmlOpcode);
-
- if (AcpiNsOpensScope (ObjectType))
- {
- (void) AcpiDsScopeStackPop (Info->WalkState);
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmInspectPossibleArgs
- *
- * PARAMETERS: CurrentOpArgCount - Which arg of the current op was the
- * possible method invocation found
- * TargetCount - Number of targets (0,1,2) for this op
- * Op - Parse op
- *
- * RETURN: Status
- *
- * DESCRIPTION: Examine following args and next ops for possible arguments
- * for an unrecognized method invocation.
- *
- ******************************************************************************/
-
-static UINT32
-AcpiDmInspectPossibleArgs (
- UINT32 CurrentOpArgCount,
- UINT32 TargetCount,
- ACPI_PARSE_OBJECT *Op)
-{
- const ACPI_OPCODE_INFO *OpInfo;
- UINT32 i;
- UINT32 Last = 0;
- UINT32 Lookahead;
-
-
- Lookahead = (ACPI_METHOD_NUM_ARGS + TargetCount) - CurrentOpArgCount;
-
- /* Lookahead for the maximum number of possible arguments */
-
- for (i = 0; i < Lookahead; i++)
- {
- if (!Op)
- {
- break;
- }
-
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-
- /*
- * Any one of these operators is "very probably" not a method arg
- */
- if ((Op->Common.AmlOpcode == AML_STORE_OP) ||
- (Op->Common.AmlOpcode == AML_NOTIFY_OP))
- {
- break;
- }
-
- if ((OpInfo->Class != AML_CLASS_EXECUTE) &&
- (OpInfo->Class != AML_CLASS_CONTROL))
- {
- Last = i+1;
- }
-
- Op = Op->Common.Next;
- }
-
- return (Last);
-}
-
-
diff --git a/sys/contrib/dev/acpica/common/dmrestag.c b/sys/contrib/dev/acpica/common/dmrestag.c
deleted file mode 100644
index ed8b36b..0000000
--- a/sys/contrib/dev/acpica/common/dmrestag.c
+++ /dev/null
@@ -1,990 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dmrestag - Add tags to resource descriptors (Application-level)
- * $Revision: 1.11 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/acdisasm.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/amlcode.h>
-
-/* This module used for application-level code only */
-
-#define _COMPONENT ACPI_CA_DISASSEMBLER
- ACPI_MODULE_NAME ("dmrestag")
-
-/* Local prototypes */
-
-static void
-AcpiDmUpdateResourceName (
- ACPI_NAMESPACE_NODE *ResourceNode);
-
-static char *
-AcpiDmSearchTagList (
- UINT32 BitIndex,
- ACPI_RESOURCE_TAG *TagList);
-
-static char *
-AcpiDmGetResourceTag (
- UINT32 BitIndex,
- AML_RESOURCE *Resource,
- UINT8 ResourceIndex);
-
-static char *
-AcpiGetTagPathname (
- ACPI_NAMESPACE_NODE *BufferNode,
- ACPI_NAMESPACE_NODE *ResourceNode,
- UINT32 BitIndex);
-
-static ACPI_NAMESPACE_NODE *
-AcpiDmGetResourceNode (
- ACPI_NAMESPACE_NODE *BufferNode,
- UINT32 BitIndex);
-
-static ACPI_STATUS
-AcpiDmAddResourceToNamespace (
- UINT8 *Aml,
- UINT32 Length,
- UINT32 Offset,
- UINT8 ResourceIndex,
- void *Context);
-
-static void
-AcpiDmAddResourcesToNamespace (
- ACPI_NAMESPACE_NODE *BufferNode,
- ACPI_PARSE_OBJECT *Op);
-
-
-/******************************************************************************
- *
- * Resource Tag tables
- *
- * These are the predefined tags that refer to elements of a resource
- * descriptor. Each name and offset is defined in the ACPI specification.
- *
- * Each table entry contains the bit offset of the field and the associated
- * name.
- *
- ******************************************************************************/
-
-static ACPI_RESOURCE_TAG AcpiDmIrqTags[] =
-{
- {( 1 * 8), ACPI_RESTAG_INTERRUPT},
- {( 3 * 8) + 0, ACPI_RESTAG_INTERRUPTTYPE},
- {( 3 * 8) + 3, ACPI_RESTAG_INTERRUPTLEVEL},
- {( 3 * 8) + 4, ACPI_RESTAG_INTERRUPTSHARE},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmDmaTags[] =
-{
- {( 1 * 8), ACPI_RESTAG_DMA},
- {( 2 * 8) + 0, ACPI_RESTAG_XFERTYPE},
- {( 2 * 8) + 2, ACPI_RESTAG_BUSMASTER},
- {( 2 * 8) + 5, ACPI_RESTAG_DMATYPE},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmIoTags[] =
-{
- {( 1 * 8) + 0, ACPI_RESTAG_DECODE},
- {( 2 * 8), ACPI_RESTAG_MINADDR},
- {( 4 * 8), ACPI_RESTAG_MAXADDR},
- {( 6 * 8), ACPI_RESTAG_ALIGNMENT},
- {( 7 * 8), ACPI_RESTAG_LENGTH},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmFixedIoTags[] =
-{
- {( 1 * 8), ACPI_RESTAG_BASEADDRESS},
- {( 3 * 8), ACPI_RESTAG_LENGTH},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmMemory24Tags[] =
-{
- {( 3 * 8) + 0, ACPI_RESTAG_READWRITETYPE},
- {( 4 * 8), ACPI_RESTAG_MINADDR},
- {( 6 * 8), ACPI_RESTAG_MAXADDR},
- {( 8 * 8), ACPI_RESTAG_ALIGNMENT},
- {(10 * 8), ACPI_RESTAG_LENGTH},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmRegisterTags[] =
-{
- {( 3 * 8), ACPI_RESTAG_ADDRESSSPACE},
- {( 4 * 8), ACPI_RESTAG_REGISTERBITWIDTH},
- {( 5 * 8), ACPI_RESTAG_REGISTERBITOFFSET},
- {( 6 * 8), ACPI_RESTAG_ACCESSSIZE},
- {( 7 * 8), ACPI_RESTAG_ADDRESS},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmMemory32Tags[] =
-{
- {( 3 * 8) + 0, ACPI_RESTAG_READWRITETYPE},
- {( 4 * 8), ACPI_RESTAG_MINADDR},
- {( 8 * 8), ACPI_RESTAG_MAXADDR},
- {(12 * 8), ACPI_RESTAG_ALIGNMENT},
- {(16 * 8), ACPI_RESTAG_LENGTH},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmFixedMemory32Tags[] =
-{
- {( 3 * 8) + 0, ACPI_RESTAG_READWRITETYPE},
- {( 4 * 8), ACPI_RESTAG_BASEADDRESS},
- {( 8 * 8), ACPI_RESTAG_LENGTH},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmInterruptTags[] =
-{
- {( 3 * 8) + 1, ACPI_RESTAG_INTERRUPTTYPE},
- {( 3 * 8) + 2, ACPI_RESTAG_INTERRUPTLEVEL},
- {( 3 * 8) + 3, ACPI_RESTAG_INTERRUPTSHARE},
- {( 5 * 8), ACPI_RESTAG_INTERRUPT},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmAddress16Tags[] =
-{
- {( 4 * 8) + 1, ACPI_RESTAG_DECODE},
- {( 4 * 8) + 2, ACPI_RESTAG_MINTYPE},
- {( 4 * 8) + 3, ACPI_RESTAG_MAXTYPE},
- {( 6 * 8), ACPI_RESTAG_GRANULARITY},
- {( 8 * 8), ACPI_RESTAG_MINADDR},
- {(10 * 8), ACPI_RESTAG_MAXADDR},
- {(12 * 8), ACPI_RESTAG_TRANSLATION},
- {(14 * 8), ACPI_RESTAG_LENGTH},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmAddress32Tags[] =
-{
- {( 4 * 8) + 1, ACPI_RESTAG_DECODE},
- {( 4 * 8) + 2, ACPI_RESTAG_MINTYPE},
- {( 4 * 8) + 3, ACPI_RESTAG_MAXTYPE},
- {( 6 * 8), ACPI_RESTAG_GRANULARITY},
- {(10 * 8), ACPI_RESTAG_MINADDR},
- {(14 * 8), ACPI_RESTAG_MAXADDR},
- {(18 * 8), ACPI_RESTAG_TRANSLATION},
- {(22 * 8), ACPI_RESTAG_LENGTH},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmAddress64Tags[] =
-{
- {( 4 * 8) + 1, ACPI_RESTAG_DECODE},
- {( 4 * 8) + 2, ACPI_RESTAG_MINTYPE},
- {( 4 * 8) + 3, ACPI_RESTAG_MAXTYPE},
- {( 6 * 8), ACPI_RESTAG_GRANULARITY},
- {(14 * 8), ACPI_RESTAG_MINADDR},
- {(22 * 8), ACPI_RESTAG_MAXADDR},
- {(30 * 8), ACPI_RESTAG_TRANSLATION},
- {(38 * 8), ACPI_RESTAG_LENGTH},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmExtendedAddressTags[] =
-{
- {( 4 * 8) + 1, ACPI_RESTAG_DECODE},
- {( 4 * 8) + 2, ACPI_RESTAG_MINTYPE},
- {( 4 * 8) + 3, ACPI_RESTAG_MAXTYPE},
- {( 8 * 8), ACPI_RESTAG_GRANULARITY},
- {(16 * 8), ACPI_RESTAG_MINADDR},
- {(24 * 8), ACPI_RESTAG_MAXADDR},
- {(32 * 8), ACPI_RESTAG_TRANSLATION},
- {(40 * 8), ACPI_RESTAG_LENGTH},
- {(48 * 8), ACPI_RESTAG_TYPESPECIFICATTRIBUTES},
- {0, NULL}
-};
-
-/* Special-case tables for the type-specific flags */
-
-static ACPI_RESOURCE_TAG AcpiDmMemoryFlagTags[] =
-{
- {( 5 * 8) + 0, ACPI_RESTAG_READWRITETYPE},
- {( 5 * 8) + 1, ACPI_RESTAG_MEMTYPE},
- {( 5 * 8) + 3, ACPI_RESTAG_MEMATTRIBUTES},
- {( 5 * 8) + 5, ACPI_RESTAG_TYPE},
- {0, NULL}
-};
-
-static ACPI_RESOURCE_TAG AcpiDmIoFlagTags[] =
-{
- {( 5 * 8) + 0, ACPI_RESTAG_RANGETYPE},
- {( 5 * 8) + 4, ACPI_RESTAG_TYPE},
- {( 5 * 8) + 5, ACPI_RESTAG_TRANSTYPE},
- {0, NULL}
-};
-
-
-/* Dispatch table used to obtain the correct tag table for a descriptor */
-
-static ACPI_RESOURCE_TAG *AcpiGbl_ResourceTags [] =
-{
- /* Small descriptors */
-
- NULL, /* 0x00, Reserved */
- NULL, /* 0x01, Reserved */
- NULL, /* 0x02, Reserved */
- NULL, /* 0x03, Reserved */
- AcpiDmIrqTags, /* 0x04, ACPI_RESOURCE_NAME_IRQ_FORMAT */
- AcpiDmDmaTags, /* 0x05, ACPI_RESOURCE_NAME_DMA_FORMAT */
- NULL, /* 0x06, ACPI_RESOURCE_NAME_START_DEPENDENT */
- NULL, /* 0x07, ACPI_RESOURCE_NAME_END_DEPENDENT */
- AcpiDmIoTags, /* 0x08, ACPI_RESOURCE_NAME_IO_PORT */
- AcpiDmFixedIoTags, /* 0x09, ACPI_RESOURCE_NAME_FIXED_IO_PORT */
- NULL, /* 0x0A, Reserved */
- NULL, /* 0x0B, Reserved */
- NULL, /* 0x0C, Reserved */
- NULL, /* 0x0D, Reserved */
- NULL, /* 0x0E, ACPI_RESOURCE_NAME_SMALL_VENDOR */
- NULL, /* 0x0F, ACPI_RESOURCE_NAME_END_TAG (not used) */
-
- /* Large descriptors */
-
- NULL, /* 0x00, Reserved */
- AcpiDmMemory24Tags, /* 0x01, ACPI_RESOURCE_NAME_MEMORY_24 */
- AcpiDmRegisterTags, /* 0x02, ACPI_RESOURCE_NAME_GENERIC_REGISTER */
- NULL, /* 0x03, Reserved */
- NULL, /* 0x04, ACPI_RESOURCE_NAME_LARGE_VENDOR */
- AcpiDmMemory32Tags, /* 0x05, ACPI_RESOURCE_NAME_MEMORY_32 */
- AcpiDmFixedMemory32Tags, /* 0x06, ACPI_RESOURCE_NAME_FIXED_MEMORY_32 */
- AcpiDmAddress32Tags, /* 0x07, ACPI_RESOURCE_NAME_DWORD_ADDRESS_SPACE */
- AcpiDmAddress16Tags, /* 0x08, ACPI_RESOURCE_NAME_WORD_ADDRESS_SPACE */
- AcpiDmInterruptTags, /* 0x09, ACPI_RESOURCE_NAME_EXTENDED_XRUPT */
- AcpiDmAddress64Tags, /* 0x0A, ACPI_RESOURCE_NAME_QWORD_ADDRESS_SPACE */
- AcpiDmExtendedAddressTags /* 0x0B, ACPI_RESOURCE_NAME_EXTENDED_ADDRESS_SPACE */
-};
-
-
-/*
- * Globals used to generate unique resource descriptor names. We use names that
- * start with underscore and a prefix letter that is not used by other ACPI
- * reserved names. To this, we append hex 0x00 through 0xFF. These 5 prefixes
- * allow for 5*256 = 1280 unique names, probably sufficient for any single ASL
- * file. If this becomes too small, we can use alpha+numerals for a total
- * of 5*36*36 = 6480.
- */
-#define ACPI_NUM_RES_PREFIX 5
-
-static UINT32 AcpiGbl_NextResourceId = 0;
-static UINT8 AcpiGbl_NextPrefix = 0;
-static UINT8 AcpiGbl_Prefix[ACPI_NUM_RES_PREFIX] =
- {'Y','Z','J','K','X'};
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmCheckResourceReference
- *
- * PARAMETERS: Op - Parse Op for the AML opcode
- * WalkState - Current walk state (with valid scope)
- *
- * RETURN: None
- *
- * DESCRIPTION: Convert a reference to a resource descriptor to a symbolic
- * reference if possible
- *
- * NOTE: Bit index is used to transparently handle both resource bit
- * fields and byte fields.
- *
- ******************************************************************************/
-
-void
-AcpiDmCheckResourceReference (
- ACPI_PARSE_OBJECT *Op,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status;
- ACPI_PARSE_OBJECT *BufferNameOp;
- ACPI_PARSE_OBJECT *IndexOp;
- ACPI_NAMESPACE_NODE *BufferNode;
- ACPI_NAMESPACE_NODE *ResourceNode;
- const ACPI_OPCODE_INFO *OpInfo;
- char *Pathname;
- UINT32 BitIndex;
-
-
- /* We are only interested in the CreateXxxxField opcodes */
-
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- if (OpInfo->Type != AML_TYPE_CREATE_FIELD)
- {
- return;
- }
-
- /* Get the buffer term operand */
-
- BufferNameOp = AcpiPsGetDepthNext (NULL, Op);
-
- /* Must be a named buffer, not an arg or local or method call */
-
- if (BufferNameOp->Common.AmlOpcode != AML_INT_NAMEPATH_OP)
- {
- return;
- }
-
- /* Get the Index term, must be an integer constant to convert */
-
- IndexOp = BufferNameOp->Common.Next;
- OpInfo = AcpiPsGetOpcodeInfo (IndexOp->Common.AmlOpcode);
- if (OpInfo->ObjectType != ACPI_TYPE_INTEGER)
- {
- return;
- }
-
- /* Get the bit offset of the descriptor within the buffer */
-
- if ((Op->Common.AmlOpcode == AML_CREATE_BIT_FIELD_OP) ||
- (Op->Common.AmlOpcode == AML_CREATE_FIELD_OP))
- {
- /* Index operand is a bit offset */
-
- BitIndex = (UINT32) IndexOp->Common.Value.Integer;
- }
- else
- {
- /* Index operand is a byte offset, convert to bits */
-
- BitIndex = (UINT32) ACPI_MUL_8 (IndexOp->Common.Value.Integer);
- }
-
- /* Lookup the buffer in the namespace */
-
- Status = AcpiNsLookup (WalkState->ScopeInfo,
- BufferNameOp->Common.Value.String, ACPI_TYPE_BUFFER,
- ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, WalkState,
- &BufferNode);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- /* Validate object type, we must have a buffer */
-
- if (BufferNode->Type != ACPI_TYPE_BUFFER)
- {
- return;
- }
-
- /* Find the resource descriptor node corresponding to the index */
-
- ResourceNode = AcpiDmGetResourceNode (BufferNode, BitIndex);
- if (!ResourceNode)
- {
- return;
- }
-
- /* Translate the Index to a resource tag pathname */
-
- Pathname = AcpiGetTagPathname (BufferNode, ResourceNode, BitIndex);
- if (Pathname)
- {
- /* Complete the conversion of the Index to a symbol */
-
- IndexOp->Common.AmlOpcode = AML_INT_NAMEPATH_OP;
- IndexOp->Common.Value.String = Pathname;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmGetResourceNode
- *
- * PARAMETERS: BufferNode - Node for the parent buffer
- * BitIndex - Index into the resource descriptor
- *
- * RETURN: Namespace node for the resource descriptor. NULL if not found
- *
- * DESCRIPTION: Find a resource descriptor that corresponds to the bit index
- *
- ******************************************************************************/
-
-static ACPI_NAMESPACE_NODE *
-AcpiDmGetResourceNode (
- ACPI_NAMESPACE_NODE *BufferNode,
- UINT32 BitIndex)
-{
- ACPI_NAMESPACE_NODE *Node;
- UINT32 ByteIndex = ACPI_DIV_8 (BitIndex);
-
-
- /*
- * Child list contains an entry for each resource descriptor. Find
- * the descriptor that corresponds to the Index.
- *
- * If there are no children, this is not a resource template
- */
- Node = BufferNode->Child;
- while (Node)
- {
- /*
- * Check if the Index falls within this resource.
- *
- * Value contains the resource offset, Object contains the resource
- * length (both in bytes)
- */
- if ((ByteIndex >= Node->Value) &&
- (ByteIndex < (Node->Value + Node->Length)))
- {
- return (Node);
- }
-
- /* List is circular, this flag marks the end */
-
- if (Node->Flags & ANOBJ_END_OF_PEER_LIST)
- {
- return (NULL);
- }
-
- Node = Node->Peer;
- }
-
- return (NULL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiGetTagPathname
- *
- * PARAMETERS: BufferNode - Node for the parent buffer
- * ResourceNode - Node for a resource descriptor
- * BitIndex - Index into the resource descriptor
- *
- * RETURN: Full pathname for a resource tag. NULL if no match.
- * Path is returned in AML (packed) format.
- *
- * DESCRIPTION: Convert a BitIndex into a symbolic resource tag (full pathname)
- *
- ******************************************************************************/
-
-static char *
-AcpiGetTagPathname (
- ACPI_NAMESPACE_NODE *BufferNode,
- ACPI_NAMESPACE_NODE *ResourceNode,
- UINT32 BitIndex)
-{
- ACPI_STATUS Status;
- UINT32 ResourceBitIndex;
- UINT8 ResourceTableIndex;
- ACPI_SIZE RequiredSize;
- char *Pathname;
- AML_RESOURCE *Aml;
- ACPI_PARSE_OBJECT *Op;
- char *InternalPath;
- char *Tag;
-
-
- /* Get the Op that contains the actual buffer data */
-
- Op = BufferNode->Op->Common.Value.Arg;
- Op = Op->Common.Next;
- if (!Op)
- {
- return (NULL);
- }
-
- /* Get the individual resource descriptor and validate it */
-
- Aml = ACPI_CAST_PTR (AML_RESOURCE,
- &Op->Named.Data[ResourceNode->Value]);
-
- Status = AcpiUtValidateResource (Aml, &ResourceTableIndex);
- if (ACPI_FAILURE (Status))
- {
- return (NULL);
- }
-
- /* Get offset into this descriptor (from offset into entire buffer) */
-
- ResourceBitIndex = BitIndex - ACPI_MUL_8 (ResourceNode->Value);
-
- /* Get the tag associated with this resource descriptor and offset */
-
- Tag = AcpiDmGetResourceTag (ResourceBitIndex, Aml, ResourceTableIndex);
- if (!Tag)
- {
- return (NULL);
- }
-
- /*
- * Now that we know that we have a reference that can be converted to a
- * symbol, change the name of the resource to a unique name.
- */
- AcpiDmUpdateResourceName (ResourceNode);
-
- /* Get the full pathname to the parent buffer */
-
- RequiredSize = AcpiNsGetPathnameLength (BufferNode);
- Pathname = ACPI_ALLOCATE_ZEROED (RequiredSize + ACPI_PATH_SEGMENT_LENGTH);
- if (!Pathname)
- {
- return (NULL);
- }
-
- AcpiNsBuildExternalPath (BufferNode, RequiredSize, Pathname);
-
- /*
- * Create the full path to the resource and tag by: remove the buffer name,
- * append the resource descriptor name, append a dot, append the tag name.
- *
- * TBD: Always using the full path is a bit brute force, the path can be
- * often be optimized with carats (if the original buffer namepath is a
- * single nameseg). This doesn't really matter, because these paths do not
- * end up in the final compiled AML, it's just an appearance issue for the
- * disassembled code.
- */
- Pathname[ACPI_STRLEN (Pathname) - ACPI_NAME_SIZE] = 0;
- ACPI_STRNCAT (Pathname, ResourceNode->Name.Ascii, ACPI_NAME_SIZE);
- ACPI_STRCAT (Pathname, ".");
- ACPI_STRNCAT (Pathname, Tag, ACPI_NAME_SIZE);
-
- /* Internalize the namepath to AML format */
-
- AcpiNsInternalizeName (Pathname, &InternalPath);
- ACPI_FREE (Pathname);
- return (InternalPath);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmUpdateResourceName
- *
- * PARAMETERS: ResourceNode - Node for a resource descriptor
- *
- * RETURN: Stores new name in the ResourceNode
- *
- * DESCRIPTION: Create a new, unique name for a resource descriptor. Used by
- * both the disassembly of the descriptor itself and any symbolic
- * references to the descriptor. Ignored if a unique name has
- * already been assigned to the resource.
- *
- * NOTE: Single threaded, suitable for applications only!
- *
- ******************************************************************************/
-
-static void
-AcpiDmUpdateResourceName (
- ACPI_NAMESPACE_NODE *ResourceNode)
-{
- char Name[ACPI_NAME_SIZE];
-
-
- /* Ignore if a unique name has already been assigned */
-
- if (ResourceNode->Name.Integer != ACPI_DEFAULT_RESNAME)
- {
- return;
- }
-
- /* Generate a new ACPI name for the descriptor */
-
- Name[0] = '_';
- Name[1] = AcpiGbl_Prefix[AcpiGbl_NextPrefix];
- Name[2] = AcpiUtHexToAsciiChar (AcpiGbl_NextResourceId, 4);
- Name[3] = AcpiUtHexToAsciiChar (AcpiGbl_NextResourceId, 0);
-
- /* Update globals for next name */
-
- AcpiGbl_NextResourceId++;
- if (AcpiGbl_NextResourceId >= 256)
- {
- AcpiGbl_NextResourceId = 0;
- AcpiGbl_NextPrefix++;
- if (AcpiGbl_NextPrefix > ACPI_NUM_RES_PREFIX)
- {
- AcpiGbl_NextPrefix = 0;
- }
- }
-
- /* Change the resource descriptor name */
-
- ResourceNode->Name.Integer = *(UINT32 *) Name;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmGetResourceTag
- *
- * PARAMETERS: BitIndex - Index into the resource descriptor
- * Resource - Pointer to the raw resource data
- * ResourceIndex - Index correspoinding to the resource type
- *
- * RETURN: Pointer to the resource tag (ACPI_NAME). NULL if no match.
- *
- * DESCRIPTION: Convert a BitIndex into a symbolic resource tag.
- *
- ******************************************************************************/
-
-static char *
-AcpiDmGetResourceTag (
- UINT32 BitIndex,
- AML_RESOURCE *Resource,
- UINT8 ResourceIndex)
-{
- ACPI_RESOURCE_TAG *TagList;
- char *Tag = NULL;
-
-
- /* Get the tag list for this resource descriptor type */
-
- TagList = AcpiGbl_ResourceTags[ResourceIndex];
- if (!TagList)
- {
- /* There are no tags for this resource type */
-
- return (NULL);
- }
-
- /*
- * Handle the type-specific flags field for the address descriptors.
- * Kindof brute force, but just blindly search for an index match.
- */
- switch (Resource->DescriptorType)
- {
- case ACPI_RESOURCE_NAME_ADDRESS16:
- case ACPI_RESOURCE_NAME_ADDRESS32:
- case ACPI_RESOURCE_NAME_ADDRESS64:
- case ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64:
-
- if (Resource->Address.ResourceType == ACPI_ADDRESS_TYPE_MEMORY_RANGE)
- {
- Tag = AcpiDmSearchTagList (BitIndex, AcpiDmMemoryFlagTags);
- }
- else if (Resource->Address.ResourceType == ACPI_ADDRESS_TYPE_IO_RANGE)
- {
- Tag = AcpiDmSearchTagList (BitIndex, AcpiDmIoFlagTags);
- }
-
- /* If we found a match, all done. Else, drop to normal search below */
-
- if (Tag)
- {
- return (Tag);
- }
- break;
-
- default:
- break;
- }
-
- /* Search the tag list for this descriptor type */
-
- Tag = AcpiDmSearchTagList (BitIndex, TagList);
- return (Tag);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmSearchTagList
- *
- * PARAMETERS: BitIndex - Index into the resource descriptor
- * TagList - List to search
- *
- * RETURN: Pointer to a tag (ACPI_NAME). NULL if no match found.
- *
- * DESCRIPTION: Search a tag list for a match to the input BitIndex. Matches
- * a fixed offset to a symbolic resource tag name.
- *
- ******************************************************************************/
-
-static char *
-AcpiDmSearchTagList (
- UINT32 BitIndex,
- ACPI_RESOURCE_TAG *TagList)
-{
-
- /*
- * Walk the null-terminated tag list to find a matching bit offset.
- * We are looking for an exact match.
- */
- for ( ; TagList->Tag; TagList++)
- {
- if (BitIndex == TagList->BitIndex)
- {
- return (TagList->Tag);
- }
- }
-
- /* A matching offset was not found */
-
- return (NULL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmFindResources
- *
- * PARAMETERS: Root - Root of the parse tree
- *
- * RETURN: None
- *
- * DESCRIPTION: Add all ResourceTemplate declarations to the namespace. Each
- * resource descriptor in each template is given a node -- used
- * for later conversion of resource references to symbolic refs.
- *
- ******************************************************************************/
-
-void
-AcpiDmFindResources (
- ACPI_PARSE_OBJECT *Root)
-{
- ACPI_PARSE_OBJECT *Op = Root;
- ACPI_PARSE_OBJECT *Parent;
-
-
- /* Walk the entire parse tree */
-
- while (Op)
- {
- /* We are interested in Buffer() declarations */
-
- if (Op->Common.AmlOpcode == AML_BUFFER_OP)
- {
- /* And only declarations of the form Name (XXXX, Buffer()... ) */
-
- Parent = Op->Common.Parent;
- if (Parent->Common.AmlOpcode == AML_NAME_OP)
- {
- /*
- * If the buffer is a resource template, add the individual
- * resource descriptors to the namespace, as children of the
- * buffer node.
- */
- if (ACPI_SUCCESS (AcpiDmIsResourceTemplate (Op)))
- {
- Op->Common.DisasmOpcode = ACPI_DASM_RESOURCE;
- AcpiDmAddResourcesToNamespace (Parent->Common.Node, Op);
- }
- }
- }
-
- Op = AcpiPsGetDepthNext (Root, Op);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmAddResourcesToNamespace
- *
- * PARAMETERS: BufferNode - Node for the parent buffer
- * Op - Parse op for the buffer
- *
- * RETURN: None
- *
- * DESCRIPTION: Add an entire resource template to the namespace. Each
- * resource descriptor is added as a namespace node.
- *
- ******************************************************************************/
-
-static void
-AcpiDmAddResourcesToNamespace (
- ACPI_NAMESPACE_NODE *BufferNode,
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *NextOp;
-
-
- /* Get to the ByteData list */
-
- NextOp = Op->Common.Value.Arg;
- NextOp = NextOp->Common.Next;
- if (!NextOp)
- {
- return;
- }
-
- /* Set Node and Op to point to each other */
-
- BufferNode->Op = Op;
- Op->Common.Node = BufferNode;
-
- /*
- * Insert each resource into the namespace
- * NextOp contains the Aml pointer and the Aml length
- */
- AcpiUtWalkAmlResources ((UINT8 *) NextOp->Named.Data,
- (ACPI_SIZE) NextOp->Common.Value.Integer,
- AcpiDmAddResourceToNamespace, BufferNode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmAddResourceToNamespace
- *
- * PARAMETERS: ACPI_WALK_AML_CALLBACK
- * BufferNode - Node for the parent buffer
- *
- * RETURN: Status
- *
- * DESCRIPTION: Add one resource descriptor to the namespace as a child of the
- * parent buffer. The same name is used for each descriptor. This
- * is changed later to a unique name if the resource is actually
- * referenced by an AML operator.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDmAddResourceToNamespace (
- UINT8 *Aml,
- UINT32 Length,
- UINT32 Offset,
- UINT8 ResourceIndex,
- void *Context)
-{
- ACPI_STATUS Status;
- ACPI_GENERIC_STATE ScopeInfo;
- ACPI_NAMESPACE_NODE *Node;
-
-
- /* TBD: Don't need to add descriptors that have no tags defined? */
-
- /* Add the resource to the namespace, as child of the buffer */
-
- ScopeInfo.Scope.Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, Context);
- Status = AcpiNsLookup (&ScopeInfo, "_TMP", ACPI_TYPE_LOCAL_RESOURCE,
- ACPI_IMODE_LOAD_PASS2,
- ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE | ACPI_NS_PREFIX_IS_SCOPE,
- NULL, &Node);
- if (ACPI_FAILURE (Status))
- {
- return (AE_OK);
- }
-
- /* Set the name to the default, changed later if resource is referenced */
-
- Node->Name.Integer = ACPI_DEFAULT_RESNAME;
-
- /* Save the offset of the descriptor (within the original buffer) */
-
- Node->Value = Offset;
- Node->Length = Length;
- return (AE_OK);
-}
-
diff --git a/sys/contrib/dev/acpica/common/dmtable.c b/sys/contrib/dev/acpica/common/dmtable.c
deleted file mode 100644
index ce4b5f9..0000000
--- a/sys/contrib/dev/acpica/common/dmtable.c
+++ /dev/null
@@ -1,734 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dmtable - Support for ACPI tables that contain no AML code
- * $Revision: 1.12 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acdisasm.h>
-#include <contrib/dev/acpica/actables.h>
-
-/* This module used for application-level code only */
-
-#define _COMPONENT ACPI_CA_DISASSEMBLER
- ACPI_MODULE_NAME ("dmtable")
-
-/* Local Prototypes */
-
-static ACPI_DMTABLE_DATA *
-AcpiDmGetTableData (
- char *Signature);
-
-static void
-AcpiDmCheckAscii (
- UINT8 *Target,
- UINT32 Count);
-
-
-/* These tables map a subtable type to a description string */
-
-static const char *AcpiDmDmarSubnames[] =
-{
- "Hardware Unit Definition",
- "Reserved Memory Region",
- "Unknown SubTable Type" /* Reserved */
-};
-
-static const char *AcpiDmMadtSubnames[] =
-{
- "Processor Local APIC", /* ACPI_MADT_TYPE_LOCAL_APIC */
- "I/O APIC", /* ACPI_MADT_TYPE_IO_APIC */
- "Interrupt Source Override", /* ACPI_MADT_TYPE_INTERRUPT_OVERRIDE */
- "NMI Source", /* ACPI_MADT_TYPE_NMI_SOURCE */
- "Local APIC NMI", /* ACPI_MADT_TYPE_LOCAL_APIC_NMI */
- "Local APIC Address Override", /* ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE */
- "I/O SAPIC", /* ACPI_MADT_TYPE_IO_SAPIC */
- "Local SAPIC", /* ACPI_MADT_TYPE_LOCAL_SAPIC */
- "Platform Interrupt Sources", /* ACPI_MADT_TYPE_INTERRUPT_SOURCE */
- "Unknown SubTable Type" /* Reserved */
-};
-
-static const char *AcpiDmSratSubnames[] =
-{
- "Processor Local APIC/SAPIC Affinity",
- "Memory Affinity",
- "Unknown SubTable Type" /* Reserved */
-};
-
-
-/*******************************************************************************
- *
- * ACPI Table Data, indexed by signature.
- *
- * Simple tables have only a TableInfo structure, complex tables have a handler.
- * This table must be NULL terminated. RSDP and FACS are special-cased
- * elsewhere.
- *
- ******************************************************************************/
-
-static ACPI_DMTABLE_DATA AcpiDmTableData[] =
-{
- {ACPI_SIG_ASF, NULL, AcpiDmDumpAsf, "Alert Standard Format table"},
- {ACPI_SIG_BOOT, AcpiDmTableInfoBoot, NULL, "Simple Boot Flag Table"},
- {ACPI_SIG_CPEP, NULL, AcpiDmDumpCpep, "Corrected Platform Error Polling table"},
- {ACPI_SIG_DBGP, AcpiDmTableInfoDbgp, NULL, "Debug Port table"},
- {ACPI_SIG_DMAR, NULL, AcpiDmDumpDmar, "DMA Remapping table"},
- {ACPI_SIG_ECDT, AcpiDmTableInfoEcdt, NULL, "Embedded Controller Boot Resources Table"},
- {ACPI_SIG_FADT, NULL, AcpiDmDumpFadt, "Fixed ACPI Description Table"},
- {ACPI_SIG_HPET, AcpiDmTableInfoHpet, NULL, "High Precision Event Timer table"},
- {ACPI_SIG_MADT, NULL, AcpiDmDumpMadt, "Multiple APIC Description Table"},
- {ACPI_SIG_MCFG, NULL, AcpiDmDumpMcfg, "Memory Mapped Configuration table"},
- {ACPI_SIG_RSDT, NULL, AcpiDmDumpRsdt, "Root System Description Table"},
- {ACPI_SIG_SBST, AcpiDmTableInfoSbst, NULL, "Smart Battery Specification Table"},
- {ACPI_SIG_SLIT, NULL, AcpiDmDumpSlit, "System Locality Information Table"},
- {ACPI_SIG_SPCR, AcpiDmTableInfoSpcr, NULL, "Serial Port Console Redirection table"},
- {ACPI_SIG_SPMI, AcpiDmTableInfoSpmi, NULL, "Server Platform Management Interface table"},
- {ACPI_SIG_SRAT, NULL, AcpiDmDumpSrat, "System Resource Affinity Table"},
- {ACPI_SIG_TCPA, AcpiDmTableInfoTcpa, NULL, "Trusted Computing Platform Alliance table"},
- {ACPI_SIG_WDRT, AcpiDmTableInfoWdrt, NULL, "Watchdog Resource Table"},
- {ACPI_SIG_XSDT, NULL, AcpiDmDumpXsdt, "Extended System Description Table"},
- {NULL, NULL, NULL, NULL}
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbGenerateChecksum
- *
- * PARAMETERS: Table - Pointer to a valid ACPI table (with a
- * standard ACPI header)
- *
- * RETURN: 8 bit checksum of buffer
- *
- * DESCRIPTION: Computes an 8 bit checksum of the table.
- *
- ******************************************************************************/
-
-UINT8
-AcpiTbGenerateChecksum (
- ACPI_TABLE_HEADER *Table)
-{
- UINT8 Checksum;
-
-
- /* Sum the entire table as-is */
-
- Checksum = AcpiTbChecksum ((UINT8 *) Table, Table->Length);
-
- /* Subtract off the existing checksum value in the table */
-
- Checksum = (UINT8) (Checksum - Table->Checksum);
-
- /* Compute the final checksum */
-
- Checksum = (UINT8) (0 - Checksum);
- return (Checksum);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmGetTableData
- *
- * PARAMETERS: Signature - ACPI signature (4 chars) to match
- *
- * RETURN: Pointer to a valid ACPI_DMTABLE_DATA. Null if no match found.
- *
- * DESCRIPTION: Find a match in the global table of supported ACPI tables
- *
- ******************************************************************************/
-
-static ACPI_DMTABLE_DATA *
-AcpiDmGetTableData (
- char *Signature)
-{
- ACPI_DMTABLE_DATA *TableData;
-
-
- for (TableData = AcpiDmTableData; TableData->Signature; TableData++)
- {
- if (ACPI_COMPARE_NAME (Signature, TableData->Signature))
- {
- return (TableData);
- }
- }
-
- return (NULL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpDataTable
- *
- * PARAMETERS: Table - An ACPI table
- *
- * RETURN: None.
- *
- * DESCRIPTION: Format the contents of an ACPI data table (any table other
- * than an SSDT or DSDT that does not contain executable AML code)
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpDataTable (
- ACPI_TABLE_HEADER *Table)
-{
- ACPI_DMTABLE_DATA *TableData;
- UINT32 Length;
-
-
- /* Ignore tables that contain AML */
-
- if (AcpiUtIsAmlTable (Table))
- {
- return;
- }
-
- /*
- * Handle tables that don't use the common ACPI table header structure.
- * Currently, these are the FACS and RSDP.
- */
- if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_FACS))
- {
- Length = Table->Length;
- AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoFacs);
- }
- else if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_RSDP))
- {
- Length = AcpiDmDumpRsdp (Table);
- }
- else
- {
- /*
- * All other tables must use the common ACPI table header, dump it now
- */
- Length = Table->Length;
- AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoHeader);
- AcpiOsPrintf ("\n");
-
- /* Match signature and dispatch appropriately */
-
- TableData = AcpiDmGetTableData (Table->Signature);
- if (!TableData)
- {
- if (!ACPI_STRNCMP (Table->Signature, "OEM", 3))
- {
- AcpiOsPrintf ("\n**** OEM-defined ACPI table [%4.4s], unknown contents\n\n",
- Table->Signature);
- }
- else
- {
- AcpiOsPrintf ("\n**** Unknown ACPI table type [%4.4s]\n\n",
- Table->Signature);
- }
- }
- else if (TableData->TableHandler)
- {
- /* Complex table, has a handler */
-
- TableData->TableHandler (Table);
- }
- else if (TableData->TableInfo)
- {
- /* Simple table, just walk the info table */
-
- AcpiDmDumpTable (Length, 0, Table, 0, TableData->TableInfo);
- }
- }
-
- /* Always dump the raw table data */
-
- AcpiOsPrintf ("\nRaw Table Data\n\n");
- AcpiUtDumpBuffer2 (ACPI_CAST_PTR (UINT8, Table), Length, DB_BYTE_DISPLAY);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmLineHeader
- *
- * PARAMETERS: Offset - Current byte offset, from table start
- * ByteLength - Length of the field in bytes, 0 for flags
- * Name - Name of this field
- * Value - Optional value, displayed on left of ':'
- *
- * RETURN: None
- *
- * DESCRIPTION: Utility routines for formatting output lines. Displays the
- * current table offset in hex and decimal, the field length,
- * and the field name.
- *
- ******************************************************************************/
-
-void
-AcpiDmLineHeader (
- UINT32 Offset,
- UINT32 ByteLength,
- char *Name)
-{
-
- if (ByteLength)
- {
- AcpiOsPrintf ("[%3.3Xh %3.3d% 3d] %28s : ",
- Offset, Offset, ByteLength, Name);
- }
- else
- {
- AcpiOsPrintf ("%42s : ",
- Name);
- }
-}
-
-void
-AcpiDmLineHeader2 (
- UINT32 Offset,
- UINT32 ByteLength,
- char *Name,
- UINT32 Value)
-{
-
- if (ByteLength)
- {
- AcpiOsPrintf ("[%3.3Xh %3.3d% 3d] %24s % 3d : ",
- Offset, Offset, ByteLength, Name, Value);
- }
- else
- {
- AcpiOsPrintf ("[%3.3Xh %3.3d ] %24s % 3d : ",
- Offset, Offset, Name, Value);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpTable
- *
- * PARAMETERS: TableLength - Length of the entire ACPI table
- * TableOffset - Starting offset within the table for this
- * sub-descriptor (0 if main table)
- * Table - The ACPI table
- * SubtableLength - Lenghth of this sub-descriptor
- * Info - Info table for this ACPI table
- *
- * RETURN: None
- *
- * DESCRIPTION: Display ACPI table contents by walking the Info table.
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpTable (
- UINT32 TableLength,
- UINT32 TableOffset,
- void *Table,
- UINT32 SubtableLength,
- ACPI_DMTABLE_INFO *Info)
-{
- UINT8 *Target;
- UINT32 CurrentOffset;
- UINT32 ByteLength;
- UINT8 Temp8;
- UINT16 Temp16;
- ACPI_DMTABLE_DATA *TableData;
-
-
- if (!Info)
- {
- AcpiOsPrintf ("Display not implemented\n");
- return;
- }
-
- /* Walk entire Info table; Null name terminates */
-
- for (; Info->Name; Info++)
- {
- /*
- * Target points to the field within the ACPI Table. CurrentOffset is
- * the offset of the field from the start of the main table.
- */
- Target = ACPI_ADD_PTR (UINT8, Table, Info->Offset);
- CurrentOffset = TableOffset + Info->Offset;
-
- /* Check for beyond EOT or beyond subtable end */
-
- if ((CurrentOffset >= TableLength) ||
- (SubtableLength && (Info->Offset >= SubtableLength)))
- {
- return;
- }
-
- /* Generate the byte length for this field */
-
- switch (Info->Opcode)
- {
- case ACPI_DMT_UINT8:
- case ACPI_DMT_CHKSUM:
- case ACPI_DMT_SPACEID:
- case ACPI_DMT_MADT:
- case ACPI_DMT_SRAT:
- ByteLength = 1;
- break;
- case ACPI_DMT_UINT16:
- case ACPI_DMT_DMAR:
- ByteLength = 2;
- break;
- case ACPI_DMT_UINT24:
- ByteLength = 3;
- break;
- case ACPI_DMT_UINT32:
- case ACPI_DMT_NAME4:
- case ACPI_DMT_SIG:
- ByteLength = 4;
- break;
- case ACPI_DMT_NAME6:
- ByteLength = 6;
- break;
- case ACPI_DMT_UINT56:
- ByteLength = 7;
- break;
- case ACPI_DMT_UINT64:
- case ACPI_DMT_NAME8:
- ByteLength = 8;
- break;
- case ACPI_DMT_STRING:
- ByteLength = ACPI_STRLEN (ACPI_CAST_PTR (char, Target)) + 1;
- break;
- case ACPI_DMT_GAS:
- AcpiOsPrintf ("\n");
- ByteLength = sizeof (ACPI_GENERIC_ADDRESS);
- break;
- default:
- ByteLength = 0;
- break;
- }
-
- /* Start a new line and decode the opcode */
-
- AcpiDmLineHeader (CurrentOffset, ByteLength, Info->Name);
-
- switch (Info->Opcode)
- {
- /* Single-bit Flag fields. Note: Opcode is the bit position */
-
- case ACPI_DMT_FLAG0:
- case ACPI_DMT_FLAG1:
- case ACPI_DMT_FLAG2:
- case ACPI_DMT_FLAG3:
- case ACPI_DMT_FLAG4:
- case ACPI_DMT_FLAG5:
- case ACPI_DMT_FLAG6:
- case ACPI_DMT_FLAG7:
-
- AcpiOsPrintf ("%1.1X\n", (*Target >> Info->Opcode) & 0x01);
- break;
-
- /* 2-bit Flag fields */
-
- case ACPI_DMT_FLAGS0:
-
- AcpiOsPrintf ("%1.1X\n", *Target & 0x03);
- break;
-
- case ACPI_DMT_FLAGS2:
-
- AcpiOsPrintf ("%1.1X\n", (*Target >> 2) & 0x03);
- break;
-
- /* Standard Data Types */
-
- case ACPI_DMT_UINT8:
-
- AcpiOsPrintf ("%2.2X\n", *Target);
- break;
-
- case ACPI_DMT_UINT16:
-
- AcpiOsPrintf ("%4.4X\n", ACPI_GET16 (Target));
- break;
-
- case ACPI_DMT_UINT24:
-
- AcpiOsPrintf ("%2.2X%2.2X%2.2X\n",
- *Target, *(Target + 1), *(Target + 2));
- break;
-
- case ACPI_DMT_UINT32:
-
- AcpiOsPrintf ("%8.8X\n", ACPI_GET32 (Target));
- break;
-
- case ACPI_DMT_UINT56:
-
- AcpiOsPrintf ("%6.6X%8.8X\n",
- ACPI_HIDWORD (ACPI_GET64 (Target)) & 0x00FFFFFF,
- ACPI_LODWORD (ACPI_GET64 (Target)));
- break;
-
- case ACPI_DMT_UINT64:
-
- AcpiOsPrintf ("%8.8X%8.8X\n",
- ACPI_FORMAT_UINT64 (ACPI_GET64 (Target)));
- break;
-
- case ACPI_DMT_STRING:
-
- AcpiOsPrintf ("%s\n", ACPI_CAST_PTR (char, Target));
- break;
-
- /* Fixed length ASCII name fields */
-
- case ACPI_DMT_SIG:
-
- AcpiDmCheckAscii (Target, 4);
- AcpiOsPrintf ("\"%4.4s\" ", Target);
- TableData = AcpiDmGetTableData (ACPI_CAST_PTR (char, Target));
- if (TableData)
- {
- AcpiOsPrintf ("/* %s */", TableData->Name);
- }
- AcpiOsPrintf ("\n");
- break;
-
- case ACPI_DMT_NAME4:
-
- AcpiDmCheckAscii (Target, 4);
- AcpiOsPrintf ("\"%4.4s\"\n", Target);
- break;
-
- case ACPI_DMT_NAME6:
-
- AcpiDmCheckAscii (Target, 6);
- AcpiOsPrintf ("\"%6.6s\"\n", Target);
- break;
-
- case ACPI_DMT_NAME8:
-
- AcpiDmCheckAscii (Target, 8);
- AcpiOsPrintf ("\"%8.8s\"\n", Target);
- break;
-
- /* Special Data Types */
-
- case ACPI_DMT_CHKSUM:
-
- /* Checksum, display and validate */
-
- AcpiOsPrintf ("%2.2X", *Target);
- Temp8 = AcpiTbGenerateChecksum (Table);
- if (Temp8 != ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Checksum)
- {
- AcpiOsPrintf (
- " /* Incorrect checksum, should be %2.2X */", Temp8);
- }
- AcpiOsPrintf ("\n");
- break;
-
- case ACPI_DMT_SPACEID:
-
- /* Address Space ID */
-
- AcpiOsPrintf ("%2.2X (%s)\n", *Target, AcpiUtGetRegionName (*Target));
- break;
-
- case ACPI_DMT_GAS:
-
- /* Generic Address Structure */
-
- AcpiOsPrintf ("<Generic Address Structure>\n");
- AcpiDmDumpTable (ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Length,
- CurrentOffset, Target, 0, AcpiDmTableInfoGas);
- break;
-
- case ACPI_DMT_DMAR:
-
- /* DMAR subtable types */
-
- Temp16 = *Target;
- if (Temp16 > ACPI_DMAR_TYPE_RESERVED)
- {
- Temp16 = ACPI_DMAR_TYPE_RESERVED;
- }
-
- AcpiOsPrintf ("%4.4X <%s>\n", *Target, AcpiDmDmarSubnames[Temp16]);
- break;
-
- case ACPI_DMT_MADT:
-
- /* MADT subtable types */
-
- Temp8 = *Target;
- if (Temp8 > ACPI_MADT_TYPE_RESERVED)
- {
- Temp8 = ACPI_MADT_TYPE_RESERVED;
- }
-
- AcpiOsPrintf ("%2.2X <%s>\n", *Target, AcpiDmMadtSubnames[Temp8]);
- break;
-
- case ACPI_DMT_SRAT:
-
- /* SRAT subtable types */
-
- Temp8 = *Target;
- if (Temp8 > ACPI_SRAT_TYPE_RESERVED)
- {
- Temp8 = ACPI_SRAT_TYPE_RESERVED;
- }
-
- AcpiOsPrintf ("%2.2X <%s>\n", *Target, AcpiDmSratSubnames[Temp8]);
- break;
-
- case ACPI_DMT_EXIT:
- return;
-
- default:
- ACPI_ERROR ((AE_INFO,
- "**** Invalid table opcode [%X] ****\n", Info->Opcode));
- return;
- }
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmCheckAscii
- *
- * PARAMETERS: Name - Ascii string
- * Count - Number of characters to check
- *
- * RETURN: None
- *
- * DESCRIPTION: Ensure that the requested number of characters are printable
- * Ascii characters. Sets non-printable and null chars to <space>.
- *
- ******************************************************************************/
-
-static void
-AcpiDmCheckAscii (
- UINT8 *Name,
- UINT32 Count)
-{
- UINT32 i;
-
-
- for (i = 0; i < Count; i++)
- {
- if (!Name[i] || !isprint (Name[i]))
- {
- Name[i] = ' ';
- }
- }
-}
diff --git a/sys/contrib/dev/acpica/common/dmtbdump.c b/sys/contrib/dev/acpica/common/dmtbdump.c
deleted file mode 100644
index 03ca323..0000000
--- a/sys/contrib/dev/acpica/common/dmtbdump.c
+++ /dev/null
@@ -1,798 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dmtbdump - Dump ACPI data tables that contain no AML code
- * $Revision: 1.15 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acdisasm.h>
-#include <contrib/dev/acpica/actables.h>
-
-/* This module used for application-level code only */
-
-#define _COMPONENT ACPI_CA_DISASSEMBLER
- ACPI_MODULE_NAME ("dmtbdump")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpRsdp
- *
- * PARAMETERS: Table - A RSDP
- *
- * RETURN: Length of the table (there is no length field, use revision)
- *
- * DESCRIPTION: Format the contents of a RSDP
- *
- ******************************************************************************/
-
-UINT32
-AcpiDmDumpRsdp (
- ACPI_TABLE_HEADER *Table)
-{
- UINT32 Length = ACPI_RSDP_REV0_SIZE;
-
-
- /* Dump the common ACPI 1.0 portion */
-
- AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoRsdp1);
-
- /* ACPI 2.0+ contains more data and has a Length field */
-
- if (ACPI_CAST_PTR (ACPI_TABLE_RSDP, Table)->Revision > 0)
- {
- Length = ACPI_CAST_PTR (ACPI_TABLE_RSDP, Table)->Length;
- AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoRsdp2);
- }
-
- return (Length);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpRsdt
- *
- * PARAMETERS: Table - A RSDT
- *
- * RETURN: None
- *
- * DESCRIPTION: Format the contents of a RSDT
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpRsdt (
- ACPI_TABLE_HEADER *Table)
-{
- UINT32 *Array;
- UINT32 Entries;
- UINT32 Offset;
- UINT32 i;
-
-
- /* Point to start of table pointer array */
-
- Array = ACPI_CAST_PTR (ACPI_TABLE_RSDT, Table)->TableOffsetEntry;
- Offset = sizeof (ACPI_TABLE_HEADER);
-
- /* RSDT uses 32-bit pointers */
-
- Entries = (Table->Length - sizeof (ACPI_TABLE_HEADER)) / sizeof (UINT32);
-
- for (i = 0; i < Entries; i++)
- {
- AcpiDmLineHeader2 (Offset, sizeof (UINT32), "ACPI Table Address", i);
- AcpiOsPrintf ("%8.8X\n", Array[i]);
- Offset += sizeof (UINT32);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpXsdt
- *
- * PARAMETERS: Table - A XSDT
- *
- * RETURN: None
- *
- * DESCRIPTION: Format the contents of a XSDT
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpXsdt (
- ACPI_TABLE_HEADER *Table)
-{
- UINT64 *Array;
- UINT32 Entries;
- UINT32 Offset;
- UINT32 i;
-
-
- /* Point to start of table pointer array */
-
- Array = ACPI_CAST_PTR (ACPI_TABLE_XSDT, Table)->TableOffsetEntry;
- Offset = sizeof (ACPI_TABLE_HEADER);
-
- /* XSDT uses 64-bit pointers */
-
- Entries = (Table->Length - sizeof (ACPI_TABLE_HEADER)) / sizeof (UINT64);
-
- for (i = 0; i < Entries; i++)
- {
- AcpiDmLineHeader2 (Offset, sizeof (UINT64), "ACPI Table Address", i);
- AcpiOsPrintf ("%8.8X%8.8X\n", ACPI_FORMAT_UINT64 (Array[i]));
- Offset += sizeof (UINT64);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpFadt
- *
- * PARAMETERS: Table - A FADT
- *
- * RETURN: None
- *
- * DESCRIPTION: Format the contents of a FADT
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpFadt (
- ACPI_TABLE_HEADER *Table)
-{
-
- /* Common ACPI 1.0 portion of FADT */
-
- AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoFadt1);
-
- /* Check for ACPI 2.0+ extended data (cannot depend on Revision field) */
-
- if (Table->Length >= sizeof (ACPI_TABLE_FADT))
- {
- AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoFadt2);
- }
-
- /* Validate various fields in the FADT, including length */
-
- AcpiTbCreateLocalFadt (Table, Table->Length);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpAsf
- *
- * PARAMETERS: Table - A ASF table
- *
- * RETURN: None
- *
- * DESCRIPTION: Format the contents of a ASF table
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpAsf (
- ACPI_TABLE_HEADER *Table)
-{
- UINT32 Offset = sizeof (ACPI_TABLE_HEADER);
- ACPI_ASF_INFO *SubTable;
- ACPI_DMTABLE_INFO *InfoTable;
- ACPI_DMTABLE_INFO *DataInfoTable = NULL;
- UINT8 *DataTable = NULL;
- ACPI_NATIVE_UINT DataCount = 0;
- ACPI_NATIVE_UINT DataLength = 0;
- ACPI_NATIVE_UINT DataOffset = 0;
- ACPI_NATIVE_UINT i;
-
-
- /* No main table, only sub-tables */
-
- SubTable = ACPI_ADD_PTR (ACPI_ASF_INFO, Table, Offset);
- while (Offset < Table->Length)
- {
- /* Common sub-table header */
-
- AcpiDmDumpTable (Table->Length, Offset, SubTable, 0, AcpiDmTableInfoAsfHdr);
-
- switch (SubTable->Header.Type & 0x7F) /* Mask off top bit */
- {
- case ACPI_ASF_TYPE_INFO:
- InfoTable = AcpiDmTableInfoAsf0;
- break;
-
- case ACPI_ASF_TYPE_ALERT:
- InfoTable = AcpiDmTableInfoAsf1;
- DataInfoTable = AcpiDmTableInfoAsf1a;
- DataTable = ACPI_ADD_PTR (UINT8, SubTable, sizeof (ACPI_ASF_ALERT));
- DataCount = ((ACPI_ASF_ALERT *) SubTable)->Alerts;
- DataLength = ((ACPI_ASF_ALERT *) SubTable)->DataLength;
- DataOffset = Offset + sizeof (ACPI_ASF_ALERT);
- break;
-
- case ACPI_ASF_TYPE_CONTROL:
- InfoTable = AcpiDmTableInfoAsf2;
- DataInfoTable = AcpiDmTableInfoAsf2a;
- DataTable = ACPI_ADD_PTR (UINT8, SubTable, sizeof (ACPI_ASF_REMOTE));
- DataCount = ((ACPI_ASF_REMOTE *) SubTable)->Controls;
- DataLength = ((ACPI_ASF_REMOTE *) SubTable)->DataLength;
- DataOffset = Offset + sizeof (ACPI_ASF_REMOTE);
- break;
-
- case ACPI_ASF_TYPE_BOOT:
- InfoTable = AcpiDmTableInfoAsf3;
- break;
-
- case ACPI_ASF_TYPE_ADDRESS:
- InfoTable = AcpiDmTableInfoAsf4;
- DataTable = ACPI_ADD_PTR (UINT8, SubTable, sizeof (ACPI_ASF_ADDRESS));
- DataLength = ((ACPI_ASF_ADDRESS *) SubTable)->Devices;
- DataOffset = Offset + sizeof (ACPI_ASF_ADDRESS);
- break;
-
- default:
- AcpiOsPrintf ("\n**** Unknown ASF sub-table type %X\n", SubTable->Header.Type);
- return;
- }
-
- AcpiDmDumpTable (Table->Length, Offset, SubTable, SubTable->Header.Length, InfoTable);
-
-
- /* Dump variable-length extra data */
-
- switch (SubTable->Header.Type & 0x7F) /* Mask off top bit */
- {
- case ACPI_ASF_TYPE_ALERT:
- case ACPI_ASF_TYPE_CONTROL:
-
- for (i = 0; i < DataCount; i++)
- {
- AcpiOsPrintf ("\n");
- AcpiDmDumpTable (Table->Length, DataOffset, DataTable, DataLength, DataInfoTable);
-
- DataTable = ACPI_ADD_PTR (UINT8, DataTable, DataLength);
- DataOffset += DataLength;
- }
- break;
-
- case ACPI_ASF_TYPE_ADDRESS:
-
- for (i = 0; i < DataLength; i++)
- {
- if (!(i % 16))
- {
- AcpiDmLineHeader (DataOffset, 1, "Addresses");
- }
-
- AcpiOsPrintf ("%2.2X ", *DataTable);
- DataTable++;
- DataOffset++;
- }
-
- AcpiOsPrintf ("\n");
- break;
- }
-
- AcpiOsPrintf ("\n");
-
- /* Point to next sub-table */
-
- Offset += SubTable->Header.Length;
- SubTable = ACPI_ADD_PTR (ACPI_ASF_INFO, SubTable, SubTable->Header.Length);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpCpep
- *
- * PARAMETERS: Table - A CPEP table
- *
- * RETURN: None
- *
- * DESCRIPTION: Format the contents of a CPEP. This table type consists
- * of an open-ended number of subtables.
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpCpep (
- ACPI_TABLE_HEADER *Table)
-{
- ACPI_CPEP_POLLING *SubTable;
- UINT32 Length = Table->Length;
- UINT32 Offset = sizeof (ACPI_TABLE_CPEP);
-
-
- /* Main table */
-
- AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoCpep);
-
- /* Sub-tables */
-
- SubTable = ACPI_ADD_PTR (ACPI_CPEP_POLLING, Table, Offset);
- while (Offset < Table->Length)
- {
- AcpiOsPrintf ("\n");
- AcpiDmDumpTable (Length, Offset, SubTable, SubTable->Length, AcpiDmTableInfoCpep0);
-
- /* Point to next sub-table */
-
- Offset += SubTable->Length;
- SubTable = ACPI_ADD_PTR (ACPI_CPEP_POLLING, SubTable, SubTable->Length);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpDmar
- *
- * PARAMETERS: Table - A DMAR table
- *
- * RETURN: None
- *
- * DESCRIPTION: Format the contents of a DMAR. This table type consists
- * of an open-ended number of subtables.
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpDmar (
- ACPI_TABLE_HEADER *Table)
-{
- ACPI_DMAR_HEADER *SubTable;
- UINT32 Length = Table->Length;
- UINT32 Offset = sizeof (ACPI_TABLE_DMAR);
- ACPI_DMTABLE_INFO *InfoTable;
- ACPI_DMAR_DEVICE_SCOPE *ScopeTable;
- UINT32 ScopeOffset;
- UINT8 *PciPath;
- UINT32 PathOffset;
-
-
- /* Main table */
-
- AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoDmar);
-
- /* Sub-tables */
-
- SubTable = ACPI_ADD_PTR (ACPI_DMAR_HEADER, Table, Offset);
- while (Offset < Table->Length)
- {
- /* Common sub-table header */
-
- AcpiOsPrintf ("\n");
- AcpiDmDumpTable (Length, Offset, SubTable, 0, AcpiDmTableInfoDmarHdr);
-
- switch (SubTable->Type)
- {
- case ACPI_DMAR_TYPE_HARDWARE_UNIT:
- InfoTable = AcpiDmTableInfoDmar0;
- ScopeOffset = sizeof (ACPI_DMAR_HARDWARE_UNIT);
- break;
- case ACPI_DMAR_TYPE_RESERVED_MEMORY:
- InfoTable = AcpiDmTableInfoDmar1;
- ScopeOffset = sizeof (ACPI_DMAR_RESERVED_MEMORY);
- break;
- default:
- AcpiOsPrintf ("\n**** Unknown DMAR sub-table type %X\n\n", SubTable->Type);
- return;
- }
-
- AcpiDmDumpTable (Length, Offset, SubTable, SubTable->Length, InfoTable);
-
- /*
- * Currently, a common flag indicates whether there are any
- * device scope entries present at the end of the subtable.
- */
- if ((SubTable->Flags & ACPI_DMAR_INCLUDE_ALL) == 0)
- {
- /* Dump the device scope entries */
-
- ScopeTable = ACPI_ADD_PTR (ACPI_DMAR_DEVICE_SCOPE, SubTable, ScopeOffset);
- while (ScopeOffset < SubTable->Length)
- {
- AcpiOsPrintf ("\n");
- AcpiDmDumpTable (Length, Offset + ScopeOffset, ScopeTable,
- ScopeTable->Length, AcpiDmTableInfoDmarScope);
-
- /* Dump the PCI Path entries for this device scope */
-
- PathOffset = sizeof (ACPI_DMAR_DEVICE_SCOPE); /* Path entries start at this offset */
-
- PciPath = ACPI_ADD_PTR (UINT8, ScopeTable,
- sizeof (ACPI_DMAR_DEVICE_SCOPE));
-
- while (PathOffset < ScopeTable->Length)
- {
- AcpiDmLineHeader ((PathOffset + ScopeOffset + Offset), 2, "PCI Path");
- AcpiOsPrintf ("[%2.2X, %2.2X]\n", PciPath[0], PciPath[1]);
-
- /* Point to next PCI Path entry */
-
- PathOffset += 2;
- PciPath += 2;
- }
-
- /* Point to next device scope entry */
-
- ScopeOffset += ScopeTable->Length;
- ScopeTable = ACPI_ADD_PTR (ACPI_DMAR_DEVICE_SCOPE,
- ScopeTable, ScopeTable->Length);
- }
- }
-
- /* Point to next sub-table */
-
- Offset += SubTable->Length;
- SubTable = ACPI_ADD_PTR (ACPI_DMAR_HEADER, SubTable, SubTable->Length);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpMadt
- *
- * PARAMETERS: Table - A MADT table
- *
- * RETURN: None
- *
- * DESCRIPTION: Format the contents of a MADT. This table type consists
- * of an open-ended number of subtables.
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpMadt (
- ACPI_TABLE_HEADER *Table)
-{
- ACPI_SUBTABLE_HEADER *SubTable;
- UINT32 Length = Table->Length;
- UINT32 Offset = sizeof (ACPI_TABLE_MADT);
- ACPI_DMTABLE_INFO *InfoTable;
-
-
- /* Main table */
-
- AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoMadt);
-
- /* Sub-tables */
-
- SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Table, Offset);
- while (Offset < Table->Length)
- {
- /* Common sub-table header */
-
- AcpiOsPrintf ("\n");
- AcpiDmDumpTable (Length, Offset, SubTable, 0, AcpiDmTableInfoMadtHdr);
-
- switch (SubTable->Type)
- {
- case ACPI_MADT_TYPE_LOCAL_APIC:
- InfoTable = AcpiDmTableInfoMadt0;
- break;
- case ACPI_MADT_TYPE_IO_APIC:
- InfoTable = AcpiDmTableInfoMadt1;
- break;
- case ACPI_MADT_TYPE_INTERRUPT_OVERRIDE:
- InfoTable = AcpiDmTableInfoMadt2;
- break;
- case ACPI_MADT_TYPE_NMI_SOURCE:
- InfoTable = AcpiDmTableInfoMadt3;
- break;
- case ACPI_MADT_TYPE_LOCAL_APIC_NMI:
- InfoTable = AcpiDmTableInfoMadt4;
- break;
- case ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE:
- InfoTable = AcpiDmTableInfoMadt5;
- break;
- case ACPI_MADT_TYPE_IO_SAPIC:
- InfoTable = AcpiDmTableInfoMadt6;
- break;
- case ACPI_MADT_TYPE_LOCAL_SAPIC:
- InfoTable = AcpiDmTableInfoMadt7;
- break;
- case ACPI_MADT_TYPE_INTERRUPT_SOURCE:
- InfoTable = AcpiDmTableInfoMadt8;
- break;
- default:
- AcpiOsPrintf ("\n**** Unknown MADT sub-table type %X\n\n", SubTable->Type);
- return;
- }
-
- AcpiDmDumpTable (Length, Offset, SubTable, SubTable->Length, InfoTable);
-
- /* Point to next sub-table */
-
- Offset += SubTable->Length;
- SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, SubTable, SubTable->Length);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpMcfg
- *
- * PARAMETERS: Table - A MCFG Table
- *
- * RETURN: None
- *
- * DESCRIPTION: Format the contents of a MCFG table
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpMcfg (
- ACPI_TABLE_HEADER *Table)
-{
- UINT32 Offset = sizeof (ACPI_TABLE_MCFG);
- ACPI_MCFG_ALLOCATION *SubTable;
-
-
- /* Main table */
-
- AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMcfg);
-
- /* Sub-tables */
-
- SubTable = ACPI_ADD_PTR (ACPI_MCFG_ALLOCATION, Table, Offset);
- while (Offset < Table->Length)
- {
- if (Offset + sizeof (ACPI_MCFG_ALLOCATION) > Table->Length)
- {
- AcpiOsPrintf ("Warning: there are %d invalid trailing bytes\n",
- sizeof (ACPI_MCFG_ALLOCATION) - (Offset - Table->Length));
- return;
- }
-
- AcpiOsPrintf ("\n");
- AcpiDmDumpTable (Table->Length, Offset, SubTable, 0, AcpiDmTableInfoMcfg0);
-
- /* Point to next sub-table (each subtable is of fixed length) */
-
- Offset += sizeof (ACPI_MCFG_ALLOCATION);
- SubTable = ACPI_ADD_PTR (ACPI_MCFG_ALLOCATION, SubTable,
- sizeof (ACPI_MCFG_ALLOCATION));
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpSlit
- *
- * PARAMETERS: Table - An SLIT
- *
- * RETURN: None
- *
- * DESCRIPTION: Format the contents of a SLIT
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpSlit (
- ACPI_TABLE_HEADER *Table)
-{
- UINT32 Offset;
- UINT8 *Row;
- UINT32 Localities;
- UINT32 i;
- UINT32 j;
-
-
- /* Main table */
-
- AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoSlit);
-
- /* Display the Locality NxN Matrix */
-
- Localities = (UINT32) ACPI_CAST_PTR (ACPI_TABLE_SLIT, Table)->LocalityCount;
- Offset = ACPI_OFFSET (ACPI_TABLE_SLIT, Entry[0]);
- Row = (UINT8 *) ACPI_CAST_PTR (ACPI_TABLE_SLIT, Table)->Entry;
-
- for (i = 0; i < Localities; i++)
- {
- /* Display one row of the matrix */
-
- AcpiDmLineHeader2 (Offset, Localities, "Locality", i);
- for (j = 0; j < Localities; j++)
- {
- /* Check for beyond EOT */
-
- if (Offset >= Table->Length)
- {
- AcpiOsPrintf ("\n**** Not enough room in table for all localities\n");
- return;
- }
-
- AcpiOsPrintf ("%2.2X ", Row[j]);
- Offset++;
-
- /* Display up to 16 bytes per output row */
-
- if (j && (((j+1) % 16) == 0) && ((j+1) < Localities))
- {
- AcpiOsPrintf ("\n");
- AcpiDmLineHeader (Offset, 0, "");
- }
- }
-
- /* Point to next row */
-
- AcpiOsPrintf ("\n");
- Row += Localities;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpSrat
- *
- * PARAMETERS: Table - A SRAT table
- *
- * RETURN: None
- *
- * DESCRIPTION: Format the contents of a SRAT
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpSrat (
- ACPI_TABLE_HEADER *Table)
-{
- UINT32 Offset = sizeof (ACPI_TABLE_SRAT);
- ACPI_SUBTABLE_HEADER *SubTable;
- ACPI_DMTABLE_INFO *InfoTable;
-
-
- /* Main table */
-
- AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoSrat);
-
- /* Sub-tables */
-
- SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Table, Offset);
- while (Offset < Table->Length)
- {
- switch (SubTable->Type)
- {
- case ACPI_SRAT_TYPE_CPU_AFFINITY:
- InfoTable = AcpiDmTableInfoSrat0;
- break;
- case ACPI_SRAT_TYPE_MEMORY_AFFINITY:
- InfoTable = AcpiDmTableInfoSrat1;
- break;
- default:
- AcpiOsPrintf ("\n**** Unknown SRAT sub-table type %X\n", SubTable->Type);
- return;
- }
-
- AcpiOsPrintf ("\n");
- AcpiDmDumpTable (Table->Length, Offset, SubTable, SubTable->Length, InfoTable);
-
- /* Point to next sub-table */
-
- Offset += SubTable->Length;
- SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, SubTable, SubTable->Length);
- }
-}
-
diff --git a/sys/contrib/dev/acpica/common/dmtbinfo.c b/sys/contrib/dev/acpica/common/dmtbinfo.c
deleted file mode 100644
index 5454005..0000000
--- a/sys/contrib/dev/acpica/common/dmtbinfo.c
+++ /dev/null
@@ -1,967 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dmtbinfo - Table info for non-AML tables
- * $Revision: 1.13 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acdisasm.h>
-
-/* This module used for application-level code only */
-
-#define _COMPONENT ACPI_CA_DISASSEMBLER
- ACPI_MODULE_NAME ("dmtbinfo")
-
-/*
- * Macros used to generate offsets to specific table fields
- */
-#define ACPI_FACS_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_FACS,f)
-#define ACPI_GAS_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_GENERIC_ADDRESS,f)
-#define ACPI_HDR_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_HEADER,f)
-#define ACPI_RSDP_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_RSDP,f)
-#define ACPI_BOOT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_BOOT,f)
-#define ACPI_CPEP_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_CPEP,f)
-#define ACPI_DBGP_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_DBGP,f)
-#define ACPI_DMAR_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_DMAR,f)
-#define ACPI_ECDT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_ECDT,f)
-#define ACPI_HPET_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_HPET,f)
-#define ACPI_MADT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_MADT,f)
-#define ACPI_MCFG_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_MCFG,f)
-#define ACPI_SBST_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_SBST,f)
-#define ACPI_SLIT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_SLIT,f)
-#define ACPI_SPCR_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_SPCR,f)
-#define ACPI_SPMI_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_SPMI,f)
-#define ACPI_SRAT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_SRAT,f)
-#define ACPI_TCPA_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_TCPA,f)
-#define ACPI_WDRT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_WDRT,f)
-
-/* Sub-tables */
-
-#define ACPI_ASF0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_ASF_INFO,f)
-#define ACPI_ASF1_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_ASF_ALERT,f)
-#define ACPI_ASF1a_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_ASF_ALERT_DATA,f)
-#define ACPI_ASF2_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_ASF_REMOTE,f)
-#define ACPI_ASF2a_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_ASF_CONTROL_DATA,f)
-#define ACPI_ASF3_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_ASF_RMCP,f)
-#define ACPI_ASF4_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_ASF_ADDRESS,f)
-#define ACPI_CPEP0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_CPEP_POLLING,f)
-#define ACPI_DMARS_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_DMAR_DEVICE_SCOPE,f)
-#define ACPI_DMAR0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_DMAR_HARDWARE_UNIT,f)
-#define ACPI_DMAR1_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_DMAR_RESERVED_MEMORY,f)
-#define ACPI_MADT0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_MADT_LOCAL_APIC,f)
-#define ACPI_MADT1_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_MADT_IO_APIC,f)
-#define ACPI_MADT2_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_MADT_INTERRUPT_OVERRIDE,f)
-#define ACPI_MADT3_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_MADT_NMI_SOURCE,f)
-#define ACPI_MADT4_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_MADT_LOCAL_APIC_NMI,f)
-#define ACPI_MADT5_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_MADT_LOCAL_APIC_OVERRIDE,f)
-#define ACPI_MADT6_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_MADT_IO_SAPIC,f)
-#define ACPI_MADT7_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_MADT_LOCAL_SAPIC,f)
-#define ACPI_MADT8_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_MADT_INTERRUPT_SOURCE,f)
-#define ACPI_MADTH_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_SUBTABLE_HEADER,f)
-#define ACPI_MCFG0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_MCFG_ALLOCATION,f)
-#define ACPI_SRAT0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_SRAT_CPU_AFFINITY,f)
-#define ACPI_SRAT1_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_SRAT_MEM_AFFINITY,f)
-
-/*
- * Simplify access to flag fields by breaking them up into bytes
- */
-#define ACPI_FLAG_OFFSET(d,f,o) (UINT8) (ACPI_OFFSET (d,f) + o)
-
-/* Flags */
-
-#define ACPI_FADT_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_FADT,f,o)
-#define ACPI_FACS_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_FACS,f,o)
-#define ACPI_HPET_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_HPET,f,o)
-#define ACPI_SRAT0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_SRAT_CPU_AFFINITY,f,o)
-#define ACPI_SRAT1_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_SRAT_MEM_AFFINITY,f,o)
-#define ACPI_MADT_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_MADT,f,o)
-#define ACPI_MADT0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_LOCAL_APIC,f,o)
-#define ACPI_MADT2_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_INTERRUPT_OVERRIDE,f,o)
-#define ACPI_MADT3_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_NMI_SOURCE,f,o)
-#define ACPI_MADT4_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_LOCAL_APIC_NMI,f,o)
-#define ACPI_MADT7_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_LOCAL_SAPIC,f,o)
-#define ACPI_MADT8_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_INTERRUPT_SOURCE,f,o)
-
-
-/*
- * ACPI Table Information, used to dump formatted ACPI tables
- *
- * Each entry is of the form: <Field Type, Field Offset, Field Name>
- */
-
-/*******************************************************************************
- *
- * Common ACPI table header
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoHeader[] =
-{
- {ACPI_DMT_SIG, ACPI_HDR_OFFSET (Signature[0]), "Signature"},
- {ACPI_DMT_UINT32, ACPI_HDR_OFFSET (Length), "Table Length"},
- {ACPI_DMT_UINT8, ACPI_HDR_OFFSET (Revision), "Revision"},
- {ACPI_DMT_CHKSUM, ACPI_HDR_OFFSET (Checksum), "Checksum"},
- {ACPI_DMT_NAME6, ACPI_HDR_OFFSET (OemId[0]), "Oem ID"},
- {ACPI_DMT_NAME8, ACPI_HDR_OFFSET (OemTableId[0]), "Oem Table ID"},
- {ACPI_DMT_UINT32, ACPI_HDR_OFFSET (OemRevision), "Oem Revision"},
- {ACPI_DMT_NAME4, ACPI_HDR_OFFSET (AslCompilerId[0]), "Asl Compiler ID"},
- {ACPI_DMT_UINT32, ACPI_HDR_OFFSET (AslCompilerRevision), "Asl Compiler Revision"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * GAS - Generic Address Structure
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoGas[] =
-{
- {ACPI_DMT_SPACEID, ACPI_GAS_OFFSET (SpaceId), "Space ID"},
- {ACPI_DMT_UINT8, ACPI_GAS_OFFSET (BitWidth), "Bit Width"},
- {ACPI_DMT_UINT8, ACPI_GAS_OFFSET (BitOffset), "Bit Offset"},
- {ACPI_DMT_UINT8, ACPI_GAS_OFFSET (AccessWidth), "Access Width"},
- {ACPI_DMT_UINT64, ACPI_GAS_OFFSET (Address), "Address"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * RSDP - Root System Description Pointer (Signature is "RSD PTR ")
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[] =
-{
- {ACPI_DMT_NAME8, ACPI_RSDP_OFFSET (Signature[0]), "Signature"},
- {ACPI_DMT_UINT8, ACPI_RSDP_OFFSET (Checksum), "Checksum"},
- {ACPI_DMT_NAME6, ACPI_RSDP_OFFSET (OemId[0]), "Oem ID"},
- {ACPI_DMT_UINT8, ACPI_RSDP_OFFSET (Revision), "Revision"},
- {ACPI_DMT_UINT32, ACPI_RSDP_OFFSET (RsdtPhysicalAddress), "RSDT Address"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* ACPI 2.0+ Extensions */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[] =
-{
- {ACPI_DMT_UINT32, ACPI_RSDP_OFFSET (Length), "Length"},
- {ACPI_DMT_UINT64, ACPI_RSDP_OFFSET (XsdtPhysicalAddress), "XSDT Address"},
- {ACPI_DMT_UINT8, ACPI_RSDP_OFFSET (ExtendedChecksum), "Extended Checksum"},
- {ACPI_DMT_UINT24, ACPI_RSDP_OFFSET (Reserved[0]), "Reserved"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * FACS - Firmware ACPI Control Structure
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoFacs[] =
-{
- {ACPI_DMT_NAME4, ACPI_FACS_OFFSET (Signature[0]), "Signature"},
- {ACPI_DMT_UINT32, ACPI_FACS_OFFSET (Length), "Length"},
- {ACPI_DMT_UINT32, ACPI_FACS_OFFSET (HardwareSignature), "Hardware Signature"},
- {ACPI_DMT_UINT32, ACPI_FACS_OFFSET (FirmwareWakingVector), "Firmware Waking Vector(32)"},
- {ACPI_DMT_UINT32, ACPI_FACS_OFFSET (GlobalLock), "Global Lock"},
- {ACPI_DMT_UINT32, ACPI_FACS_OFFSET (Flags), "Flags (decoded below)"},
- {ACPI_DMT_FLAG0, ACPI_FACS_FLAG_OFFSET (Flags,0), "S4BIOS Support Present"},
- {ACPI_DMT_UINT64, ACPI_FACS_OFFSET (XFirmwareWakingVector), "Firmware Waking Vector(64)"},
- {ACPI_DMT_UINT8, ACPI_FACS_OFFSET (Version), "Version"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * FADT - Fixed ACPI Description Table (Signature is FACP)
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[] =
-{
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Facs), "FACS Address"},
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Dsdt), "DSDT Address"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (Model), "Model"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (PreferredProfile), "PM Profile"},
- {ACPI_DMT_UINT16, ACPI_FADT_OFFSET (SciInterrupt), "SCI Interrupt"},
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (SmiCommand), "SMI Command Port"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (AcpiEnable), "ACPI Enable Value"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (AcpiDisable), "ACPI Disable Value"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (S4BiosRequest), "S4BIOS Command"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (PstateControl), "P-State Control"},
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Pm1aEventBlock), "PM1A Event Block Address"},
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Pm1bEventBlock), "PM1B Event Block Address"},
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Pm1aControlBlock), "PM1A Control Block Address"},
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Pm1bControlBlock), "PM1B Control Block Address"},
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Pm2ControlBlock), "PM2 Control Block Address"},
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (PmTimerBlock), "PM Timer Block Address"},
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Gpe0Block), "GPE0 Block Address"},
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Gpe1Block), "GPE1 Block Address"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (Pm1EventLength), "PM1 Event Block Length"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (Pm1ControlLength), "PM1 Control Block Length"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (Pm2ControlLength), "PM2 Control Block Length"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (PmTimerLength), "PM Timer Block Length"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (Gpe0BlockLength), "GPE0 Block Length"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (Gpe1BlockLength), "GPE1 Block Length"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (Gpe1Base), "GPE1 Base Offset"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (CstControl), "_CST Support"},
- {ACPI_DMT_UINT16, ACPI_FADT_OFFSET (C2Latency), "C2 Latency"},
- {ACPI_DMT_UINT16, ACPI_FADT_OFFSET (C3Latency), "C3 Latency"},
- {ACPI_DMT_UINT16, ACPI_FADT_OFFSET (FlushSize), "CPU Cache Size"},
- {ACPI_DMT_UINT16, ACPI_FADT_OFFSET (FlushStride), "Cache Flush Stride"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (DutyOffset), "Duty Cycle Offset"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (DutyWidth), "Duty Cycle Width"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (DayAlarm), "RTC Day Alarm Index"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (MonthAlarm), "RTC Month Alarm Index"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (Century), "RTC Century Index"},
- {ACPI_DMT_UINT16, ACPI_FADT_OFFSET (BootFlags), "Boot Architecture Flags"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (Reserved), "Reserved"},
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Flags), "Flags (decoded below)"},
-
- /* Flags byte 0 */
-
- {ACPI_DMT_FLAG0, ACPI_FADT_FLAG_OFFSET (Flags,0), "WBINVD is operational"},
- {ACPI_DMT_FLAG1, ACPI_FADT_FLAG_OFFSET (Flags,0), "WBINVD does not invalidate"},
- {ACPI_DMT_FLAG2, ACPI_FADT_FLAG_OFFSET (Flags,0), "All CPUs support C1"},
- {ACPI_DMT_FLAG3, ACPI_FADT_FLAG_OFFSET (Flags,0), "C2 works on MP system"},
- {ACPI_DMT_FLAG4, ACPI_FADT_FLAG_OFFSET (Flags,0), "Power button is generic"},
- {ACPI_DMT_FLAG5, ACPI_FADT_FLAG_OFFSET (Flags,0), "Sleep button is generic"},
- {ACPI_DMT_FLAG6, ACPI_FADT_FLAG_OFFSET (Flags,0), "RTC wakeup not fixed"},
- {ACPI_DMT_FLAG7, ACPI_FADT_FLAG_OFFSET (Flags,0), "RTC wakeup/S4 not possible"},
-
- /* Flags byte 1 */
-
- {ACPI_DMT_FLAG0, ACPI_FADT_FLAG_OFFSET (Flags,1), "32-bit PM Timer"},
- {ACPI_DMT_FLAG1, ACPI_FADT_FLAG_OFFSET (Flags,1), "Docking Supported"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* ACPI 2.0+ Extensions */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoFadt2[] =
-{
- {ACPI_DMT_FLAG2, ACPI_FADT_FLAG_OFFSET (Flags,1), "Reset Register Supported"},
- {ACPI_DMT_FLAG3, ACPI_FADT_FLAG_OFFSET (Flags,1), "Sealed Case"},
- {ACPI_DMT_FLAG4, ACPI_FADT_FLAG_OFFSET (Flags,1), "Headless - No Video"},
- {ACPI_DMT_FLAG5, ACPI_FADT_FLAG_OFFSET (Flags,1), "Native instr after SLP_TYP"},
- {ACPI_DMT_FLAG6, ACPI_FADT_FLAG_OFFSET (Flags,1), "PCIEXP_WAK Supported"},
- {ACPI_DMT_FLAG7, ACPI_FADT_FLAG_OFFSET (Flags,1), "Use Platform Timer"},
-
- /* Flags byte 2 */
-
- {ACPI_DMT_FLAG0, ACPI_FADT_FLAG_OFFSET (Flags,2), "RTC_STS valid after S4"},
- {ACPI_DMT_FLAG1, ACPI_FADT_FLAG_OFFSET (Flags,2), "Remote Power-on capable"},
- {ACPI_DMT_FLAG2, ACPI_FADT_FLAG_OFFSET (Flags,2), "APIC Cluster Model"},
- {ACPI_DMT_FLAG3, ACPI_FADT_FLAG_OFFSET (Flags,2), "APIC Physical Dest Mode"},
-
- {ACPI_DMT_GAS, ACPI_FADT_OFFSET (ResetRegister), "Reset Register"},
- {ACPI_DMT_UINT8, ACPI_FADT_OFFSET (ResetValue), "Value to cause reset"},
- {ACPI_DMT_UINT24, ACPI_FADT_OFFSET (Reserved4[0]), "Reserved"},
- {ACPI_DMT_UINT64, ACPI_FADT_OFFSET (XFacs), "FACS Address"},
- {ACPI_DMT_UINT64, ACPI_FADT_OFFSET (XDsdt), "DSDT Address"},
- {ACPI_DMT_GAS, ACPI_FADT_OFFSET (XPm1aEventBlock), "PM1A Event Block"},
- {ACPI_DMT_GAS, ACPI_FADT_OFFSET (XPm1bEventBlock), "PM1B Event Block"},
- {ACPI_DMT_GAS, ACPI_FADT_OFFSET (XPm1aControlBlock), "PM1A Control Block"},
- {ACPI_DMT_GAS, ACPI_FADT_OFFSET (XPm1bControlBlock), "PM1B Control Block"},
- {ACPI_DMT_GAS, ACPI_FADT_OFFSET (XPm2ControlBlock), "PM2 Control Block"},
- {ACPI_DMT_GAS, ACPI_FADT_OFFSET (XPmTimerBlock), "PM Timer Block"},
- {ACPI_DMT_GAS, ACPI_FADT_OFFSET (XGpe0Block), "GPE0 Block"},
- {ACPI_DMT_GAS, ACPI_FADT_OFFSET (XGpe1Block), "GPE1 Block"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*
- * Remaining tables are not consumed directly by the ACPICA subsystem
- */
-
-/*******************************************************************************
- *
- * ASF - Alert Standard Format table (Signature "ASF!")
- *
- ******************************************************************************/
-
-/* Common sub-table header (one per sub-table) */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[] =
-{
- {ACPI_DMT_UINT8, ACPI_ASF0_OFFSET (Header.Type), "Sub-Table Type"},
- {ACPI_DMT_UINT8, ACPI_ASF0_OFFSET (Header.Reserved), "Reserved"},
- {ACPI_DMT_UINT16, ACPI_ASF0_OFFSET (Header.Length), "Length"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 0: ASF Information */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoAsf0[] =
-{
- {ACPI_DMT_UINT8, ACPI_ASF0_OFFSET (MinResetValue), "Minimum Reset Value"},
- {ACPI_DMT_UINT8, ACPI_ASF0_OFFSET (MinResetValue), "Minimum Polling Interval"},
- {ACPI_DMT_UINT16, ACPI_ASF0_OFFSET (SystemId), "System ID"},
- {ACPI_DMT_UINT32, ACPI_ASF0_OFFSET (SystemId), "Manufacturer ID"},
- {ACPI_DMT_UINT8, ACPI_ASF0_OFFSET (Flags), "Flags"},
- {ACPI_DMT_UINT24, ACPI_ASF0_OFFSET (Reserved2[0]), "Reserved"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 1: ASF Alerts */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1[] =
-{
- {ACPI_DMT_UINT8, ACPI_ASF1_OFFSET (AssertMask), "AssertMask"},
- {ACPI_DMT_UINT8, ACPI_ASF1_OFFSET (DeassertMask), "DeassertMask"},
- {ACPI_DMT_UINT8, ACPI_ASF1_OFFSET (Alerts), "Alert Count"},
- {ACPI_DMT_UINT8, ACPI_ASF1_OFFSET (DataLength), "Alert Data Length"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 1a: ASF Alert data */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1a[] =
-{
- {ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Address), "Address"},
- {ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Command), "Command"},
- {ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Mask), "Mask"},
- {ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Value), "Value"},
- {ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (SensorType), "SensorType"},
- {ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Type), "Type"},
- {ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Offset), "Offset"},
- {ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (SourceType), "SourceType"},
- {ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Severity), "Severity"},
- {ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (SensorNumber), "SensorNumber"},
- {ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Entity), "Entity"},
- {ACPI_DMT_UINT8, ACPI_ASF1a_OFFSET (Instance), "Instance"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 2: ASF Remote Control */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2[] =
-{
- {ACPI_DMT_UINT8, ACPI_ASF2_OFFSET (Controls), "Control Count"},
- {ACPI_DMT_UINT8, ACPI_ASF2_OFFSET (DataLength), "Control Data Length"},
- {ACPI_DMT_UINT16, ACPI_ASF2_OFFSET (Reserved2), "Reserved"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 2a: ASF Control data */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2a[] =
-{
- {ACPI_DMT_UINT8, ACPI_ASF2a_OFFSET (Function), "Function"},
- {ACPI_DMT_UINT8, ACPI_ASF2a_OFFSET (Address), "Address"},
- {ACPI_DMT_UINT8, ACPI_ASF2a_OFFSET (Command), "Command"},
- {ACPI_DMT_UINT8, ACPI_ASF2a_OFFSET (Value), "Value"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 3: ASF RMCP Boot Options */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoAsf3[] =
-{
- {ACPI_DMT_UINT56, ACPI_ASF3_OFFSET (Capabilities[0]), "Capabilites"},
- {ACPI_DMT_UINT8, ACPI_ASF3_OFFSET (CompletionCode), "Completion Code"},
- {ACPI_DMT_UINT32, ACPI_ASF3_OFFSET (EnterpriseId), "Enterprise ID"},
- {ACPI_DMT_UINT8, ACPI_ASF3_OFFSET (Command), "Command"},
- {ACPI_DMT_UINT16, ACPI_ASF3_OFFSET (Parameter), "Parameter"},
- {ACPI_DMT_UINT16, ACPI_ASF3_OFFSET (BootOptions), "Boot Options"},
- {ACPI_DMT_UINT16, ACPI_ASF3_OFFSET (OemParameters), "Oem Parameters"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 4: ASF Address */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[] =
-{
- {ACPI_DMT_UINT8, ACPI_ASF4_OFFSET (EpromAddress), "Eprom Address"},
- {ACPI_DMT_UINT8, ACPI_ASF4_OFFSET (Devices), "Device Count"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * BOOT - Simple Boot Flag Table
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[] =
-{
- {ACPI_DMT_UINT8, ACPI_BOOT_OFFSET (CmosIndex), "Boot Register Index"},
- {ACPI_DMT_UINT24, ACPI_BOOT_OFFSET (Reserved[0]), "Reserved"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * CPEP - Corrected Platform Error Polling table
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[] =
-{
- {ACPI_DMT_UINT64, ACPI_CPEP_OFFSET (Reserved), "Reserved"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[] =
-{
- {ACPI_DMT_UINT8, ACPI_CPEP0_OFFSET (Type), "Sub-Table Type"},
- {ACPI_DMT_UINT8, ACPI_CPEP0_OFFSET (Length), "Length"},
- {ACPI_DMT_UINT8, ACPI_CPEP0_OFFSET (Id), "Processor ID"},
- {ACPI_DMT_UINT8, ACPI_CPEP0_OFFSET (Eid), "Processor EID"},
- {ACPI_DMT_UINT32, ACPI_CPEP0_OFFSET (Interval), "Polling Interval"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * DBGP - Debug Port
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoDbgp[] =
-{
- {ACPI_DMT_UINT8, ACPI_DBGP_OFFSET (Type), "Interface Type"},
- {ACPI_DMT_UINT24, ACPI_DBGP_OFFSET (Reserved[0]), "Reserved"},
- {ACPI_DMT_GAS, ACPI_DBGP_OFFSET (DebugPort), "Debug Port Register"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * DMAR - DMA Remapping table
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoDmar[] =
-{
- {ACPI_DMT_UINT8, ACPI_DMAR_OFFSET (Width), "Host Address Width"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* Common sub-table header (one per sub-table) */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoDmarHdr[] =
-{
- {ACPI_DMT_DMAR, ACPI_DMAR0_OFFSET (Header.Type), "Sub-Table Type"},
- {ACPI_DMT_UINT16, ACPI_DMAR0_OFFSET (Header.Length), "Length"},
- {ACPI_DMT_UINT8, ACPI_DMAR0_OFFSET (Header.Flags), "Flags"},
- {ACPI_DMT_UINT24, ACPI_DMAR0_OFFSET (Header.Reserved[0]), "Reserved"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* Common device scope entry */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoDmarScope[] =
-{
- {ACPI_DMT_UINT8, ACPI_DMARS_OFFSET (EntryType), "Device Scope Entry Type"},
- {ACPI_DMT_UINT8, ACPI_DMARS_OFFSET (Length), "Entry Length"},
- {ACPI_DMT_UINT8, ACPI_DMARS_OFFSET (Segment), "PCI Segment Number"},
- {ACPI_DMT_UINT8, ACPI_DMARS_OFFSET (Bus), "PCI Bus Number"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* DMAR sub-tables */
-
-/* 0: Hardware Unit Definition */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoDmar0[] =
-{
- {ACPI_DMT_UINT64, ACPI_DMAR0_OFFSET (Address), "Register Base Address"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 1: Reserved Memory Defininition */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoDmar1[] =
-{
- {ACPI_DMT_UINT64, ACPI_DMAR1_OFFSET (Address), "Base Address"},
- {ACPI_DMT_UINT64, ACPI_DMAR1_OFFSET (EndAddress), "End Address (limit)"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * ECDT - Embedded Controller Boot Resources Table
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoEcdt[] =
-{
- {ACPI_DMT_GAS, ACPI_ECDT_OFFSET (Control), "Command/Status Register"},
- {ACPI_DMT_GAS, ACPI_ECDT_OFFSET (Data), "Data Register"},
- {ACPI_DMT_UINT32, ACPI_ECDT_OFFSET (Uid), "UID"},
- {ACPI_DMT_UINT8, ACPI_ECDT_OFFSET (Gpe), "GPE Number"},
- {ACPI_DMT_STRING, ACPI_ECDT_OFFSET (Id[0]), "Namepath"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * HPET - High Precision Event Timer table
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoHpet[] =
-{
- {ACPI_DMT_UINT32, ACPI_HPET_OFFSET (Id), "Hardware Block ID"},
- {ACPI_DMT_GAS, ACPI_HPET_OFFSET (Address), "Timer Block Register"},
- {ACPI_DMT_UINT8, ACPI_HPET_OFFSET (Sequence), "Sequence Number"},
- {ACPI_DMT_UINT16, ACPI_HPET_OFFSET (MinimumTick), "Minimum Clock Ticks"},
- {ACPI_DMT_UINT8, ACPI_HPET_OFFSET (Flags), "Flags (decoded below)"},
- {ACPI_DMT_FLAG0, ACPI_HPET_FLAG_OFFSET (Flags,0), "Page Protect"},
- {ACPI_DMT_FLAG1, ACPI_HPET_FLAG_OFFSET (Flags,0), "4K Page Protect"},
- {ACPI_DMT_FLAG2, ACPI_HPET_FLAG_OFFSET (Flags,0), "64K Page Protect"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * MADT - Multiple APIC Description Table and subtables
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMadt[] =
-{
- {ACPI_DMT_UINT32, ACPI_MADT_OFFSET (Address), "Local Apic Address"},
- {ACPI_DMT_UINT32, ACPI_MADT_OFFSET (Flags), "Flags (decoded below)"},
- {ACPI_DMT_FLAG0, ACPI_MADT_FLAG_OFFSET (Flags,0), "PC-AT Compatibility"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* Common sub-table header (one per sub-table) */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[] =
-{
- {ACPI_DMT_MADT, ACPI_MADTH_OFFSET (Type), "Sub-Table Type"},
- {ACPI_DMT_UINT8, ACPI_MADTH_OFFSET (Length), "Length"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* MADT sub-tables */
-
-/* 0: processor APIC */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMadt0[] =
-{
- {ACPI_DMT_UINT8, ACPI_MADT0_OFFSET (ProcessorId), "Processor ID"},
- {ACPI_DMT_UINT8, ACPI_MADT0_OFFSET (Id), "Local Apic ID"},
- {ACPI_DMT_UINT32, ACPI_MADT0_OFFSET (LapicFlags), "Flags (decoded below)"},
- {ACPI_DMT_FLAG0, ACPI_MADT0_FLAG_OFFSET (LapicFlags,0), "Processor Enabled"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 1: IO APIC */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMadt1[] =
-{
- {ACPI_DMT_UINT8, ACPI_MADT1_OFFSET (Id), "I/O Apic ID"},
- {ACPI_DMT_UINT8, ACPI_MADT1_OFFSET (Reserved), "Reserved"},
- {ACPI_DMT_UINT32, ACPI_MADT1_OFFSET (Address), "Address"},
- {ACPI_DMT_UINT32, ACPI_MADT1_OFFSET (GlobalIrqBase), "Interrupt"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 2: Interrupt Override */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMadt2[] =
-{
- {ACPI_DMT_UINT8, ACPI_MADT2_OFFSET (Bus), "Bus"},
- {ACPI_DMT_UINT8, ACPI_MADT2_OFFSET (SourceIrq), "Source"},
- {ACPI_DMT_UINT32, ACPI_MADT2_OFFSET (GlobalIrq), "Interrupt"},
- {ACPI_DMT_UINT16, ACPI_MADT2_OFFSET (IntiFlags), "Flags (decoded below)"},
- {ACPI_DMT_FLAGS0, ACPI_MADT2_FLAG_OFFSET (IntiFlags,0), "Polarity"},
- {ACPI_DMT_FLAGS2, ACPI_MADT2_FLAG_OFFSET (IntiFlags,0), "Trigger Mode"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 3: NMI Sources */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMadt3[] =
-{
- {ACPI_DMT_UINT16, ACPI_MADT3_OFFSET (IntiFlags), "Flags (decoded below)"},
- {ACPI_DMT_FLAGS0, ACPI_MADT3_FLAG_OFFSET (IntiFlags,0), "Polarity"},
- {ACPI_DMT_FLAGS2, ACPI_MADT3_FLAG_OFFSET (IntiFlags,0), "Trigger Mode"},
- {ACPI_DMT_UINT32, ACPI_MADT3_OFFSET (GlobalIrq), "Interrupt"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 4: Local APIC NMI */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMadt4[] =
-{
- {ACPI_DMT_UINT8, ACPI_MADT4_OFFSET (ProcessorId), "Processor ID"},
- {ACPI_DMT_UINT16, ACPI_MADT4_OFFSET (IntiFlags), "Flags (decoded below)"},
- {ACPI_DMT_FLAGS0, ACPI_MADT4_FLAG_OFFSET (IntiFlags,0), "Polarity"},
- {ACPI_DMT_FLAGS2, ACPI_MADT4_FLAG_OFFSET (IntiFlags,0), "Trigger Mode"},
- {ACPI_DMT_UINT8, ACPI_MADT4_OFFSET (Lint), "Interrupt Input LINT"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 5: Address Override */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMadt5[] =
-{
- {ACPI_DMT_UINT16, ACPI_MADT5_OFFSET (Reserved), "Reserved"},
- {ACPI_DMT_UINT64, ACPI_MADT5_OFFSET (Address), "APIC Address"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 6: I/O Sapic */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMadt6[] =
-{
- {ACPI_DMT_UINT8, ACPI_MADT6_OFFSET (Id), "I/O Sapic ID"},
- {ACPI_DMT_UINT8, ACPI_MADT6_OFFSET (Reserved), "Reserved"},
- {ACPI_DMT_UINT32, ACPI_MADT6_OFFSET (GlobalIrqBase), "Interrupt Base"},
- {ACPI_DMT_UINT64, ACPI_MADT6_OFFSET (Address), "Address"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 7: Local Sapic */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMadt7[] =
-{
- {ACPI_DMT_UINT8, ACPI_MADT7_OFFSET (ProcessorId), "Processor ID"},
- {ACPI_DMT_UINT8, ACPI_MADT7_OFFSET (Id), "Local Sapic ID"},
- {ACPI_DMT_UINT8, ACPI_MADT7_OFFSET (Eid), "Local Sapic EID"},
- {ACPI_DMT_UINT24, ACPI_MADT7_OFFSET (Reserved[0]), "Reserved"},
- {ACPI_DMT_UINT32, ACPI_MADT7_OFFSET (LapicFlags), "Flags (decoded below)"},
- {ACPI_DMT_FLAG0, ACPI_MADT7_FLAG_OFFSET (LapicFlags,0), "Processor Enabled"},
- {ACPI_DMT_UINT32, ACPI_MADT7_OFFSET (Uid), "Processor UID"},
- {ACPI_DMT_STRING, ACPI_MADT7_OFFSET (UidString[0]), "Processor UID String"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-/* 8: Platform Interrupt Source */
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMadt8[] =
-{
- {ACPI_DMT_UINT16, ACPI_MADT8_OFFSET (IntiFlags), "Flags (decoded below)"},
- {ACPI_DMT_FLAGS0, ACPI_MADT8_FLAG_OFFSET (IntiFlags,0), "Polarity"},
- {ACPI_DMT_FLAGS2, ACPI_MADT8_FLAG_OFFSET (IntiFlags,0), "Trigger Mode"},
- {ACPI_DMT_UINT8, ACPI_MADT8_OFFSET (Type), "InterruptType"},
- {ACPI_DMT_UINT8, ACPI_MADT8_OFFSET (Id), "Processor ID"},
- {ACPI_DMT_UINT8, ACPI_MADT8_OFFSET (Eid), "Processor EID"},
- {ACPI_DMT_UINT8, ACPI_MADT8_OFFSET (IoSapicVector), "I/O Sapic Vector"},
- {ACPI_DMT_UINT32, ACPI_MADT8_OFFSET (GlobalIrq), "Interrupt"},
- {ACPI_DMT_UINT32, ACPI_MADT8_OFFSET (Flags), "Flags (decoded below)"},
- {ACPI_DMT_FLAG0, ACPI_MADT8_OFFSET (Flags), "CPEI Override"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * MCFG - PCI Memory Mapped Configuration table and sub-table
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[] =
-{
- {ACPI_DMT_UINT64, ACPI_MCFG_OFFSET (Reserved[0]), "Reserved"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[] =
-{
- {ACPI_DMT_UINT64, ACPI_MCFG0_OFFSET (Address), "Base Address"},
- {ACPI_DMT_UINT16, ACPI_MCFG0_OFFSET (PciSegment), "Segment Group Number"},
- {ACPI_DMT_UINT8, ACPI_MCFG0_OFFSET (StartBusNumber), "Start Bus Number"},
- {ACPI_DMT_UINT8, ACPI_MCFG0_OFFSET (EndBusNumber), "End Bus Number"},
- {ACPI_DMT_UINT32, ACPI_MCFG0_OFFSET (Reserved), "Reserved"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * SBST - Smart Battery Specification Table
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoSbst[] =
-{
- {ACPI_DMT_UINT32, ACPI_SBST_OFFSET (WarningLevel), "Warning Level"},
- {ACPI_DMT_UINT32, ACPI_SBST_OFFSET (LowLevel), "Low Level"},
- {ACPI_DMT_UINT32, ACPI_SBST_OFFSET (CriticalLevel), "Critical Level"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * SLIT - System Locality Information Table
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoSlit[] =
-{
- {ACPI_DMT_UINT64, ACPI_SLIT_OFFSET (LocalityCount), "Localities"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * SPCR - Serial Port Console Redirection table
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoSpcr[] =
-{
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (InterfaceType), "Interface Type"},
- {ACPI_DMT_UINT24, ACPI_SPCR_OFFSET (Reserved[0]), "Reserved"},
- {ACPI_DMT_GAS, ACPI_SPCR_OFFSET (SerialPort), "Serial Port Register"},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (InterruptType), "Interrupt Type"},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (PcInterrupt), "PCAT-compatible IRQ"},
- {ACPI_DMT_UINT32, ACPI_SPCR_OFFSET (Interrupt), "Interrupt"},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (BaudRate), "Baud Rate"},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (Parity), "Parity"},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (StopBits), "Stop Bits"},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (FlowControl), "Flow Control"},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (TerminalType), "Terminal Type"},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (Reserved2), "Reserved"},
- {ACPI_DMT_UINT16, ACPI_SPCR_OFFSET (PciDeviceId), "PCI Device ID"},
- {ACPI_DMT_UINT16, ACPI_SPCR_OFFSET (PciVendorId), "PCI Vendor ID"},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (PciBus), "PCI Bus"},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (PciDevice), "PCI Device"},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (PciFunction), "PCI Function"},
- {ACPI_DMT_UINT32, ACPI_SPCR_OFFSET (PciFlags), "PCI Flags"},
- {ACPI_DMT_UINT8, ACPI_SPCR_OFFSET (PciSegment), "PCI Segment"},
- {ACPI_DMT_UINT32, ACPI_SPCR_OFFSET (Reserved2), "Reserved"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * SPMI - Server Platform Management Interface table
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoSpmi[] =
-{
- {ACPI_DMT_UINT8, ACPI_SPMI_OFFSET (Reserved), "Reserved"},
- {ACPI_DMT_UINT8, ACPI_SPMI_OFFSET (InterfaceType), "Interface Type"},
- {ACPI_DMT_UINT16, ACPI_SPMI_OFFSET (SpecRevision), "IPMI Spec Version"},
- {ACPI_DMT_UINT8, ACPI_SPMI_OFFSET (InterruptType), "Interrupt Type"},
- {ACPI_DMT_UINT8, ACPI_SPMI_OFFSET (GpeNumber), "GPE Number"},
- {ACPI_DMT_UINT8, ACPI_SPMI_OFFSET (Reserved1), "Reserved"},
- {ACPI_DMT_UINT8, ACPI_SPMI_OFFSET (PciDeviceFlag), "PCI Device Flag"},
- {ACPI_DMT_UINT32, ACPI_SPMI_OFFSET (Interrupt), "Interrupt"},
- {ACPI_DMT_GAS, ACPI_SPMI_OFFSET (IpmiRegister), "IPMI Register"},
- {ACPI_DMT_UINT8, ACPI_SPMI_OFFSET (PciSegment), "PCI Segment"},
- {ACPI_DMT_UINT8, ACPI_SPMI_OFFSET (PciBus), "PCI Bus"},
- {ACPI_DMT_UINT8, ACPI_SPMI_OFFSET (PciDevice), "PCI Device"},
- {ACPI_DMT_UINT8, ACPI_SPMI_OFFSET (PciFunction), "PCI Function"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * SRAT - System Resource Affinity Table and sub-tables
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoSrat[] =
-{
- {ACPI_DMT_UINT32, ACPI_SRAT_OFFSET (TableRevision), "Table Revision"},
- {ACPI_DMT_UINT64, ACPI_SRAT_OFFSET (Reserved), "Reserved"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoSrat0[] =
-{
- {ACPI_DMT_SRAT, ACPI_SRAT0_OFFSET (Header.Type), "Sub-Table Type"},
- {ACPI_DMT_UINT8, ACPI_SRAT0_OFFSET (Header.Length), "Length"},
- {ACPI_DMT_UINT8, ACPI_SRAT0_OFFSET (ProximityDomainLo), "Proximity Domain Low(8)"},
- {ACPI_DMT_UINT8, ACPI_SRAT0_OFFSET (ApicId), "Apic ID"},
- {ACPI_DMT_UINT32, ACPI_SRAT0_OFFSET (Flags), "Flags (decoded below)"},
- {ACPI_DMT_FLAG0, ACPI_SRAT0_FLAG_OFFSET (Flags,0), "Enabled"},
- {ACPI_DMT_UINT8, ACPI_SRAT0_OFFSET (LocalSapicEid), "Local Sapic EID"},
- {ACPI_DMT_UINT24, ACPI_SRAT0_OFFSET (ProximityDomainHi[0]), "Proximity Domain High(24)"},
- {ACPI_DMT_UINT32, ACPI_SRAT0_OFFSET (Reserved), "Reserved"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoSrat1[] =
-{
- {ACPI_DMT_SRAT, ACPI_SRAT1_OFFSET (Header.Type), "Sub-Table Type"},
- {ACPI_DMT_UINT8, ACPI_SRAT1_OFFSET (Header.Length), "Length"},
- {ACPI_DMT_UINT32, ACPI_SRAT1_OFFSET (ProximityDomain), "Proximity Domain"},
- {ACPI_DMT_UINT16, ACPI_SRAT1_OFFSET (Reserved), "Reserved"},
- {ACPI_DMT_UINT64, ACPI_SRAT1_OFFSET (BaseAddress), "Base Address"},
- {ACPI_DMT_UINT64, ACPI_SRAT1_OFFSET (Length), "Address Length"},
- {ACPI_DMT_UINT32, ACPI_SRAT1_OFFSET (MemoryType), "Memory Type"},
- {ACPI_DMT_UINT32, ACPI_SRAT1_OFFSET (Flags), "Flags (decoded below)"},
- {ACPI_DMT_FLAG0, ACPI_SRAT1_FLAG_OFFSET (Flags,0), "Enabled"},
- {ACPI_DMT_FLAG1, ACPI_SRAT1_FLAG_OFFSET (Flags,0), "Hot Pluggable"},
- {ACPI_DMT_FLAG2, ACPI_SRAT1_FLAG_OFFSET (Flags,0), "Non-Volatile"},
- {ACPI_DMT_UINT64, ACPI_SRAT1_OFFSET (Reserved1), "Reserved"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * TCPA - Trusted Computing Platform Alliance table
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoTcpa[] =
-{
- {ACPI_DMT_UINT16, ACPI_TCPA_OFFSET (Reserved), "Reserved"},
- {ACPI_DMT_UINT32, ACPI_TCPA_OFFSET (MaxLogLength), "Max Event Log Length"},
- {ACPI_DMT_UINT64, ACPI_TCPA_OFFSET (LogAddress), "Event Log Address"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
-
-/*******************************************************************************
- *
- * WDRT - Watchdog Resource Table
- *
- ******************************************************************************/
-
-ACPI_DMTABLE_INFO AcpiDmTableInfoWdrt[] =
-{
- {ACPI_DMT_UINT32, ACPI_WDRT_OFFSET (HeaderLength), "Header Length"},
- {ACPI_DMT_UINT8, ACPI_WDRT_OFFSET (PciSegment), "PCI Segment"},
- {ACPI_DMT_UINT8, ACPI_WDRT_OFFSET (PciBus), "PCI Bus"},
- {ACPI_DMT_UINT8, ACPI_WDRT_OFFSET (PciDevice), "PCI Device"},
- {ACPI_DMT_UINT8, ACPI_WDRT_OFFSET (PciFunction), "PCI Function"},
- {ACPI_DMT_UINT32, ACPI_WDRT_OFFSET (TimerPeriod), "Timer Period"},
- {ACPI_DMT_UINT32, ACPI_WDRT_OFFSET (MaxCount), "Max Count"},
- {ACPI_DMT_UINT32, ACPI_WDRT_OFFSET (MinCount), "Min Count"},
- {ACPI_DMT_UINT8, ACPI_WDRT_OFFSET (Flags), "Flags (decoded below)"},
- {ACPI_DMT_FLAG0, ACPI_WDRT_OFFSET (Flags), "Enabled"},
- {ACPI_DMT_FLAG7, ACPI_WDRT_OFFSET (Flags), "Stopped When Asleep"},
- {ACPI_DMT_UINT24, ACPI_WDRT_OFFSET (Reserved[0]), "Reserved"},
- {ACPI_DMT_UINT32, ACPI_WDRT_OFFSET (Entries), "Watchdog Entries"},
- {ACPI_DMT_EXIT, 0, NULL}
-};
-
diff --git a/sys/contrib/dev/acpica/common/getopt.c b/sys/contrib/dev/acpica/common/getopt.c
deleted file mode 100644
index 2c61575..0000000
--- a/sys/contrib/dev/acpica/common/getopt.c
+++ /dev/null
@@ -1,246 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: getopt
- * $Revision: 1.10 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <stdio.h>
-#include <string.h>
-
-#define ERR(szz,czz) if(AcpiGbl_Opterr){fprintf(stderr,"%s%s%c\n",argv[0],szz,czz);}
-
-
-int AcpiGbl_Opterr = 1;
-int AcpiGbl_Optind = 1;
-int AcpiGbl_Optopt;
-char *AcpiGbl_Optarg;
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiGetopt
- *
- * PARAMETERS: argc, argv - from main
- * opts - options info list
- *
- * RETURN: Option character or EOF
- *
- * DESCRIPTION: Get the next option
- *
- ******************************************************************************/
-
-int
-AcpiGetopt(
- int argc,
- char **argv,
- char *opts)
-{
- static int CurrentCharPtr = 1;
- int CurrentChar;
- char *OptsPtr;
-
-
- if (CurrentCharPtr == 1)
- {
- if (AcpiGbl_Optind >= argc ||
- argv[AcpiGbl_Optind][0] != '-' ||
- argv[AcpiGbl_Optind][1] == '\0')
- {
- return(EOF);
- }
- else if (strcmp (argv[AcpiGbl_Optind], "--") == 0)
- {
- AcpiGbl_Optind++;
- return(EOF);
- }
- }
-
- /* Get the option */
-
- CurrentChar =
- AcpiGbl_Optopt =
- argv[AcpiGbl_Optind][CurrentCharPtr];
-
- /* Make sure that the option is legal */
-
- if (CurrentChar == ':' ||
- (OptsPtr = strchr (opts, CurrentChar)) == NULL)
- {
- ERR (": illegal option -- ", CurrentChar);
-
- if (argv[AcpiGbl_Optind][++CurrentCharPtr] == '\0')
- {
- AcpiGbl_Optind++;
- CurrentCharPtr = 1;
- }
-
- return ('?');
- }
-
- /* Option requires an argument? */
-
- if (*++OptsPtr == ':')
- {
- if (argv[AcpiGbl_Optind][CurrentCharPtr+1] != '\0')
- {
- AcpiGbl_Optarg = &argv[AcpiGbl_Optind++][CurrentCharPtr+1];
- }
- else if (++AcpiGbl_Optind >= argc)
- {
- ERR (": option requires an argument -- ", CurrentChar);
-
- CurrentCharPtr = 1;
- return ('?');
- }
- else
- {
- AcpiGbl_Optarg = argv[AcpiGbl_Optind++];
- }
-
- CurrentCharPtr = 1;
- }
-
- /* Option has optional single-char arguments? */
-
- else if (*OptsPtr == '^')
- {
- if (argv[AcpiGbl_Optind][CurrentCharPtr+1] != '\0')
- {
- AcpiGbl_Optarg = &argv[AcpiGbl_Optind][CurrentCharPtr+1];
- }
- else
- {
- AcpiGbl_Optarg = "^";
- }
-
- AcpiGbl_Optind++;
- CurrentCharPtr = 1;
- }
-
- /* Option with no arguments */
-
- else
- {
- if (argv[AcpiGbl_Optind][++CurrentCharPtr] == '\0')
- {
- CurrentCharPtr = 1;
- AcpiGbl_Optind++;
- }
-
- AcpiGbl_Optarg = NULL;
- }
-
- return (CurrentChar);
-}
diff --git a/sys/contrib/dev/acpica/compiler/aslanalyze.c b/sys/contrib/dev/acpica/compiler/aslanalyze.c
deleted file mode 100644
index 93f2f0b..0000000
--- a/sys/contrib/dev/acpica/compiler/aslanalyze.c
+++ /dev/null
@@ -1,2211 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: aslanalyze.c - check for semantic errors
- * $Revision: 1.115 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/compiler/aslcompiler.h>
-#include "aslcompiler.y.h"
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/amlcode.h>
-
-#include <ctype.h>
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("aslanalyze")
-
-/* Local prototypes */
-
-static UINT32
-AnMapArgTypeToBtype (
- UINT32 ArgType);
-
-static UINT32
-AnMapEtypeToBtype (
- UINT32 Etype);
-
-static void
-AnFormatBtype (
- char *Buffer,
- UINT32 Btype);
-
-static UINT32
-AnGetBtype (
- ACPI_PARSE_OBJECT *Op);
-
-static UINT32
-AnCheckForReservedName (
- ACPI_PARSE_OBJECT *Op,
- char *Name);
-
-static void
-AnCheckForReservedMethod (
- ACPI_PARSE_OBJECT *Op,
- ASL_METHOD_INFO *MethodInfo);
-
-static UINT32
-AnMapObjTypeToBtype (
- ACPI_PARSE_OBJECT *Op);
-
-static BOOLEAN
-AnLastStatementIsReturn (
- ACPI_PARSE_OBJECT *Op);
-
-static void
-AnCheckMethodReturnValue (
- ACPI_PARSE_OBJECT *Op,
- const ACPI_OPCODE_INFO *OpInfo,
- ACPI_PARSE_OBJECT *ArgOp,
- UINT32 RequiredBtypes,
- UINT32 ThisNodeBtype);
-
-static BOOLEAN
-AnIsInternalMethod (
- ACPI_PARSE_OBJECT *Op);
-
-static UINT32
-AnGetInternalMethodReturnType (
- ACPI_PARSE_OBJECT *Op);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AnIsInternalMethod
- *
- * PARAMETERS: Op - Current op
- *
- * RETURN: Boolean
- *
- * DESCRIPTION: Check for an internal control method.
- *
- ******************************************************************************/
-
-static BOOLEAN
-AnIsInternalMethod (
- ACPI_PARSE_OBJECT *Op)
-{
-
- if ((!ACPI_STRCMP (Op->Asl.ExternalName, "\\_OSI")) ||
- (!ACPI_STRCMP (Op->Asl.ExternalName, "_OSI")))
- {
- return (TRUE);
- }
-
- return (FALSE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AnGetInternalMethodReturnType
- *
- * PARAMETERS: Op - Current op
- *
- * RETURN: Btype
- *
- * DESCRIPTION: Get the return type of an internal method
- *
- ******************************************************************************/
-
-static UINT32
-AnGetInternalMethodReturnType (
- ACPI_PARSE_OBJECT *Op)
-{
-
- if ((!ACPI_STRCMP (Op->Asl.ExternalName, "\\_OSI")) ||
- (!ACPI_STRCMP (Op->Asl.ExternalName, "_OSI")))
- {
- return (ACPI_BTYPE_STRING);
- }
-
- return (0);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AnMapArgTypeToBtype
- *
- * PARAMETERS: ArgType - The ARGI required type(s) for this argument,
- * from the opcode info table
- *
- * RETURN: The corresponding Bit-encoded types
- *
- * DESCRIPTION: Convert an encoded ARGI required argument type code into a
- * bitfield type code. Implements the implicit source conversion
- * rules.
- *
- ******************************************************************************/
-
-static UINT32
-AnMapArgTypeToBtype (
- UINT32 ArgType)
-{
-
- switch (ArgType)
- {
-
- /* Simple types */
-
- case ARGI_ANYTYPE:
- return (ACPI_BTYPE_OBJECTS_AND_REFS);
-
- case ARGI_PACKAGE:
- return (ACPI_BTYPE_PACKAGE);
-
- case ARGI_EVENT:
- return (ACPI_BTYPE_EVENT);
-
- case ARGI_MUTEX:
- return (ACPI_BTYPE_MUTEX);
-
- case ARGI_DDBHANDLE:
- return (ACPI_BTYPE_DDB_HANDLE);
-
- /* Interchangeable types */
- /*
- * Source conversion rules:
- * Integer, String, and Buffer are all interchangeable
- */
- case ARGI_INTEGER:
- case ARGI_STRING:
- case ARGI_BUFFER:
- case ARGI_BUFFER_OR_STRING:
- case ARGI_COMPUTEDATA:
- return (ACPI_BTYPE_COMPUTE_DATA);
-
- /* References */
-
- case ARGI_INTEGER_REF:
- return (ACPI_BTYPE_INTEGER);
-
- case ARGI_OBJECT_REF:
- return (ACPI_BTYPE_ALL_OBJECTS);
-
- case ARGI_DEVICE_REF:
- return (ACPI_BTYPE_DEVICE_OBJECTS);
-
- case ARGI_REFERENCE:
- return (ACPI_BTYPE_REFERENCE);
-
- case ARGI_TARGETREF:
- case ARGI_FIXED_TARGET:
- case ARGI_SIMPLE_TARGET:
- return (ACPI_BTYPE_OBJECTS_AND_REFS);
-
- /* Complex types */
-
- case ARGI_DATAOBJECT:
-
- /*
- * Buffer, string, package or reference to a Op -
- * Used only by SizeOf operator
- */
- return (ACPI_BTYPE_STRING | ACPI_BTYPE_BUFFER |
- ACPI_BTYPE_PACKAGE | ACPI_BTYPE_REFERENCE);
-
- case ARGI_COMPLEXOBJ:
-
- /* Buffer, String, or package */
-
- return (ACPI_BTYPE_STRING | ACPI_BTYPE_BUFFER | ACPI_BTYPE_PACKAGE);
-
- case ARGI_REF_OR_STRING:
- return (ACPI_BTYPE_STRING | ACPI_BTYPE_REFERENCE);
-
- case ARGI_REGION_OR_BUFFER:
-
- /* Used by Load() only. Allow buffers in addition to regions/fields */
-
- return (ACPI_BTYPE_REGION | ACPI_BTYPE_BUFFER | ACPI_BTYPE_FIELD_UNIT);
-
- case ARGI_DATAREFOBJ:
- return (ACPI_BTYPE_INTEGER |ACPI_BTYPE_STRING | ACPI_BTYPE_BUFFER |
- ACPI_BTYPE_PACKAGE | ACPI_BTYPE_REFERENCE | ACPI_BTYPE_DDB_HANDLE);
-
- default:
- break;
- }
-
- return (ACPI_BTYPE_OBJECTS_AND_REFS);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AnMapEtypeToBtype
- *
- * PARAMETERS: Etype - Encoded ACPI Type
- *
- * RETURN: Btype corresponding to the Etype
- *
- * DESCRIPTION: Convert an encoded ACPI type to a bitfield type applying the
- * operand conversion rules. In other words, returns the type(s)
- * this Etype is implicitly converted to during interpretation.
- *
- ******************************************************************************/
-
-static UINT32
-AnMapEtypeToBtype (
- UINT32 Etype)
-{
-
-
- if (Etype == ACPI_TYPE_ANY)
- {
- return ACPI_BTYPE_OBJECTS_AND_REFS;
- }
-
- /* Try the standard ACPI data types */
-
- if (Etype <= ACPI_TYPE_EXTERNAL_MAX)
- {
- /*
- * This switch statement implements the allowed operand conversion
- * rules as per the "ASL Data Types" section of the ACPI
- * specification.
- */
- switch (Etype)
- {
- case ACPI_TYPE_INTEGER:
- return (ACPI_BTYPE_COMPUTE_DATA | ACPI_BTYPE_DDB_HANDLE);
-
- case ACPI_TYPE_STRING:
- case ACPI_TYPE_BUFFER:
- return (ACPI_BTYPE_COMPUTE_DATA);
-
- case ACPI_TYPE_PACKAGE:
- return (ACPI_BTYPE_PACKAGE);
-
- case ACPI_TYPE_FIELD_UNIT:
- return (ACPI_BTYPE_COMPUTE_DATA | ACPI_BTYPE_FIELD_UNIT);
-
- case ACPI_TYPE_BUFFER_FIELD:
- return (ACPI_BTYPE_COMPUTE_DATA | ACPI_BTYPE_BUFFER_FIELD);
-
- case ACPI_TYPE_DDB_HANDLE:
- return (ACPI_BTYPE_INTEGER | ACPI_BTYPE_DDB_HANDLE);
-
- case ACPI_BTYPE_DEBUG_OBJECT:
-
- /* Cannot be used as a source operand */
-
- return (0);
-
- default:
- return (1 << (Etype - 1));
- }
- }
-
- /* Try the internal data types */
-
- switch (Etype)
- {
- case ACPI_TYPE_LOCAL_REGION_FIELD:
- case ACPI_TYPE_LOCAL_BANK_FIELD:
- case ACPI_TYPE_LOCAL_INDEX_FIELD:
-
- /* Named fields can be either Integer/Buffer/String */
-
- return (ACPI_BTYPE_COMPUTE_DATA | ACPI_BTYPE_FIELD_UNIT);
-
- case ACPI_TYPE_LOCAL_ALIAS:
-
- return (ACPI_BTYPE_INTEGER);
-
-
- case ACPI_TYPE_LOCAL_RESOURCE:
- case ACPI_TYPE_LOCAL_RESOURCE_FIELD:
-
- return (ACPI_BTYPE_REFERENCE);
-
- default:
- printf ("Unhandled encoded type: %X\n", Etype);
- return (0);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AnFormatBtype
- *
- * PARAMETERS: Btype - Bitfield of ACPI types
- * Buffer - Where to put the ascii string
- *
- * RETURN: None.
- *
- * DESCRIPTION: Convert a Btype to a string of ACPI types
- *
- ******************************************************************************/
-
-static void
-AnFormatBtype (
- char *Buffer,
- UINT32 Btype)
-{
- UINT32 Type;
- BOOLEAN First = TRUE;
-
-
- *Buffer = 0;
-
- if (Btype == 0)
- {
- strcat (Buffer, "NoReturnValue");
- return;
- }
-
- for (Type = 1; Type <= ACPI_TYPE_EXTERNAL_MAX; Type++)
- {
- if (Btype & 0x00000001)
- {
- if (!First)
- {
- strcat (Buffer, "|");
- }
- First = FALSE;
- strcat (Buffer, AcpiUtGetTypeName (Type));
- }
- Btype >>= 1;
- }
-
- if (Btype & 0x00000001)
- {
- if (!First)
- {
- strcat (Buffer, "|");
- }
- First = FALSE;
- strcat (Buffer, "Reference");
- }
-
- Btype >>= 1;
- if (Btype & 0x00000001)
- {
- if (!First)
- {
- strcat (Buffer, "|");
- }
- First = FALSE;
- strcat (Buffer, "Resource");
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AnGetBtype
- *
- * PARAMETERS: Op - Parse node whose type will be returned.
- *
- * RETURN: The Btype associated with the Op.
- *
- * DESCRIPTION: Get the (bitfield) ACPI type associated with the parse node.
- * Handles the case where the node is a name or method call and
- * the actual type must be obtained from the namespace node.
- *
- ******************************************************************************/
-
-static UINT32
-AnGetBtype (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_NAMESPACE_NODE *Node;
- ACPI_PARSE_OBJECT *ReferencedNode;
- UINT32 ThisNodeBtype = 0;
-
-
- if ((Op->Asl.ParseOpcode == PARSEOP_NAMESEG) ||
- (Op->Asl.ParseOpcode == PARSEOP_NAMESTRING) ||
- (Op->Asl.ParseOpcode == PARSEOP_METHODCALL))
- {
- Node = Op->Asl.Node;
- if (!Node)
- {
- DbgPrint (ASL_DEBUG_OUTPUT,
- "No attached Nsnode: [%s] at line %d name [%s], ignoring typecheck\n",
- Op->Asl.ParseOpName, Op->Asl.LineNumber,
- Op->Asl.ExternalName);
- return ACPI_UINT32_MAX;
- }
-
- ThisNodeBtype = AnMapEtypeToBtype (Node->Type);
- if (!ThisNodeBtype)
- {
- AslError (ASL_ERROR, ASL_MSG_COMPILER_INTERNAL, Op,
- "could not map type");
- }
-
- /*
- * Since it was a named reference, enable the
- * reference bit also
- */
- ThisNodeBtype |= ACPI_BTYPE_REFERENCE;
-
- if (Op->Asl.ParseOpcode == PARSEOP_METHODCALL)
- {
- ReferencedNode = Node->Op;
- if (!ReferencedNode)
- {
- /* Check for an internal method */
-
- if (AnIsInternalMethod (Op))
- {
- return (AnGetInternalMethodReturnType (Op));
- }
-
- AslError (ASL_ERROR, ASL_MSG_COMPILER_INTERNAL, Op,
- "null Op pointer");
- return ACPI_UINT32_MAX;
- }
-
- if (ReferencedNode->Asl.CompileFlags & NODE_METHOD_TYPED)
- {
- ThisNodeBtype = ReferencedNode->Asl.AcpiBtype;
- }
- else
- {
- return (ACPI_UINT32_MAX -1);
- }
- }
- }
- else
- {
- ThisNodeBtype = Op->Asl.AcpiBtype;
- }
-
- return (ThisNodeBtype);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AnCheckForReservedName
- *
- * PARAMETERS: Op - A parse node
- * Name - NameSeg to check
- *
- * RETURN: None
- *
- * DESCRIPTION: Check a NameSeg against the reserved list.
- *
- ******************************************************************************/
-
-static UINT32
-AnCheckForReservedName (
- ACPI_PARSE_OBJECT *Op,
- char *Name)
-{
- UINT32 i;
-
-
- if (Name[0] == 0)
- {
- AcpiOsPrintf ("Found a null name, external = %s\n",
- Op->Asl.ExternalName);
- }
-
- /* All reserved names are prefixed with a single underscore */
-
- if (Name[0] != '_')
- {
- return (ACPI_NOT_RESERVED_NAME);
- }
-
- /* Check for a standard reserved method name */
-
- for (i = 0; ReservedMethods[i].Name; i++)
- {
- if (ACPI_COMPARE_NAME (Name, ReservedMethods[i].Name))
- {
- if (ReservedMethods[i].Flags & ASL_RSVD_SCOPE)
- {
- AslError (ASL_ERROR, ASL_MSG_RESERVED_WORD, Op,
- Op->Asl.ExternalName);
- return (ACPI_PREDEFINED_NAME);
- }
- else if (ReservedMethods[i].Flags & ASL_RSVD_RESOURCE_NAME)
- {
- AslError (ASL_ERROR, ASL_MSG_RESERVED_WORD, Op,
- Op->Asl.ExternalName);
- return (ACPI_PREDEFINED_NAME);
- }
-
- /* Return index into reserved array */
-
- return i;
- }
- }
-
- /*
- * Now check for the "special" reserved names --
- * GPE: _Lxx
- * GPE: _Exx
- * EC: _Qxx
- */
- if ((Name[1] == 'L') ||
- (Name[1] == 'E') ||
- (Name[1] == 'Q'))
- {
- /* The next two characters must be hex digits */
-
- if ((isxdigit (Name[2])) &&
- (isxdigit (Name[3])))
- {
- return (ACPI_EVENT_RESERVED_NAME);
- }
- }
-
-
- /* Check for the names reserved for the compiler itself: _T_x */
-
- else if ((Op->Asl.ExternalName[1] == 'T') &&
- (Op->Asl.ExternalName[2] == '_'))
- {
- /* Ignore if actually emitted by the compiler */
-
- if (Op->Asl.CompileFlags & NODE_COMPILER_EMITTED)
- {
- return (ACPI_NOT_RESERVED_NAME);
- }
-
- AslError (ASL_ERROR, ASL_MSG_RESERVED_WORD, Op, Op->Asl.ExternalName);
- return (ACPI_COMPILER_RESERVED_NAME);
- }
-
- /*
- * The name didn't match any of the known reserved names. Flag it as a
- * warning, since the entire namespace starting with an underscore is
- * reserved by the ACPI spec.
- */
- AslError (ASL_WARNING, ASL_MSG_UNKNOWN_RESERVED_NAME, Op,
- Op->Asl.ExternalName);
-
- return (ACPI_NOT_RESERVED_NAME);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AnCheckForReservedMethod
- *
- * PARAMETERS: Op - A parse node of type "METHOD".
- * MethodInfo - Saved info about this method
- *
- * RETURN: None
- *
- * DESCRIPTION: If method is a reserved name, check that the number of arguments
- * and the return type (returns a value or not) is correct.
- *
- ******************************************************************************/
-
-static void
-AnCheckForReservedMethod (
- ACPI_PARSE_OBJECT *Op,
- ASL_METHOD_INFO *MethodInfo)
-{
- UINT32 Index;
-
-
- /* Check for a match against the reserved name list */
-
- Index = AnCheckForReservedName (Op, Op->Asl.NameSeg);
-
- switch (Index)
- {
- case ACPI_NOT_RESERVED_NAME:
- case ACPI_PREDEFINED_NAME:
- case ACPI_COMPILER_RESERVED_NAME:
-
- /* Just return, nothing to do */
- break;
-
-
- case ACPI_EVENT_RESERVED_NAME:
-
- Gbl_ReservedMethods++;
-
- /* NumArguments must be zero for all _Lxx, _Exx, and _Qxx methods */
-
- if (MethodInfo->NumArguments != 0)
- {
- sprintf (MsgBuffer, "%s requires %d",
- Op->Asl.ExternalName, 0);
-
- AslError (ASL_WARNING, ASL_MSG_RESERVED_ARG_COUNT_HI, Op, MsgBuffer);
- }
- break;
-
-
- default:
-
- Gbl_ReservedMethods++;
-
- /* Matched a reserved method name */
-
- if (MethodInfo->NumArguments != ReservedMethods[Index].NumArguments)
- {
- sprintf (MsgBuffer, "%s requires %d",
- ReservedMethods[Index].Name,
- ReservedMethods[Index].NumArguments);
-
- if (MethodInfo->NumArguments > ReservedMethods[Index].NumArguments)
- {
- AslError (ASL_WARNING, ASL_MSG_RESERVED_ARG_COUNT_HI, Op,
- MsgBuffer);
- }
- else
- {
- AslError (ASL_WARNING, ASL_MSG_RESERVED_ARG_COUNT_LO, Op,
- MsgBuffer);
- }
- }
-
- if (MethodInfo->NumReturnNoValue &&
- ReservedMethods[Index].Flags & ASL_RSVD_RETURN_VALUE)
- {
- sprintf (MsgBuffer, "%s", ReservedMethods[Index].Name);
-
- AslError (ASL_WARNING, ASL_MSG_RESERVED_RETURN_VALUE, Op, MsgBuffer);
- }
- break;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AnMapObjTypeToBtype
- *
- * PARAMETERS: Op - A parse node
- *
- * RETURN: A Btype
- *
- * DESCRIPTION: Map object to the associated "Btype"
- *
- ******************************************************************************/
-
-static UINT32
-AnMapObjTypeToBtype (
- ACPI_PARSE_OBJECT *Op)
-{
-
- switch (Op->Asl.ParseOpcode)
- {
- case PARSEOP_OBJECTTYPE_BFF: /* "BuffFieldObj" */
- return (ACPI_BTYPE_BUFFER_FIELD);
-
- case PARSEOP_OBJECTTYPE_BUF: /* "BuffObj" */
- return (ACPI_BTYPE_BUFFER);
-
- case PARSEOP_OBJECTTYPE_DDB: /* "DDBHandleObj" */
- return (ACPI_BTYPE_DDB_HANDLE);
-
- case PARSEOP_OBJECTTYPE_DEV: /* "DeviceObj" */
- return (ACPI_BTYPE_DEVICE);
-
- case PARSEOP_OBJECTTYPE_EVT: /* "EventObj" */
- return (ACPI_BTYPE_EVENT);
-
- case PARSEOP_OBJECTTYPE_FLD: /* "FieldUnitObj" */
- return (ACPI_BTYPE_FIELD_UNIT);
-
- case PARSEOP_OBJECTTYPE_INT: /* "IntObj" */
- return (ACPI_BTYPE_INTEGER);
-
- case PARSEOP_OBJECTTYPE_MTH: /* "MethodObj" */
- return (ACPI_BTYPE_METHOD);
-
- case PARSEOP_OBJECTTYPE_MTX: /* "MutexObj" */
- return (ACPI_BTYPE_MUTEX);
-
- case PARSEOP_OBJECTTYPE_OPR: /* "OpRegionObj" */
- return (ACPI_BTYPE_REGION);
-
- case PARSEOP_OBJECTTYPE_PKG: /* "PkgObj" */
- return (ACPI_BTYPE_PACKAGE);
-
- case PARSEOP_OBJECTTYPE_POW: /* "PowerResObj" */
- return (ACPI_BTYPE_POWER);
-
- case PARSEOP_OBJECTTYPE_STR: /* "StrObj" */
- return (ACPI_BTYPE_STRING);
-
- case PARSEOP_OBJECTTYPE_THZ: /* "ThermalZoneObj" */
- return (ACPI_BTYPE_THERMAL);
-
- case PARSEOP_OBJECTTYPE_UNK: /* "UnknownObj" */
- return (ACPI_BTYPE_OBJECTS_AND_REFS);
-
- default:
- return (0);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AnMethodAnalysisWalkBegin
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Descending callback for the analysis walk. Check methods for:
- * 1) Initialized local variables
- * 2) Valid arguments
- * 3) Return types
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AnMethodAnalysisWalkBegin (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- ASL_ANALYSIS_WALK_INFO *WalkInfo = (ASL_ANALYSIS_WALK_INFO *) Context;
- ASL_METHOD_INFO *MethodInfo = WalkInfo->MethodStack;
- ACPI_PARSE_OBJECT *Next;
- UINT32 RegisterNumber;
- UINT32 i;
- char LocalName[] = "Local0";
- char ArgName[] = "Arg0";
- ACPI_PARSE_OBJECT *ArgNode;
- ACPI_PARSE_OBJECT *NextType;
- ACPI_PARSE_OBJECT *NextParamType;
- UINT8 ActualArgs = 0;
-
-
- switch (Op->Asl.ParseOpcode)
- {
- case PARSEOP_METHOD:
-
- TotalMethods++;
-
- /* Create and init method info */
-
- MethodInfo = UtLocalCalloc (sizeof (ASL_METHOD_INFO));
- MethodInfo->Next = WalkInfo->MethodStack;
- MethodInfo->Op = Op;
-
- WalkInfo->MethodStack = MethodInfo;
-
- /* Get the name node, ignored here */
-
- Next = Op->Asl.Child;
-
- /* Get the NumArguments node */
-
- Next = Next->Asl.Next;
- MethodInfo->NumArguments = (UINT8)
- (((UINT8) Next->Asl.Value.Integer) & 0x07);
-
- /* Get the SerializeRule and SyncLevel nodes, ignored here */
-
- Next = Next->Asl.Next;
- Next = Next->Asl.Next;
- ArgNode = Next;
-
- /* Get the ReturnType node */
-
- Next = Next->Asl.Next;
-
- NextType = Next->Asl.Child;
- while (NextType)
- {
- /* Get and map each of the ReturnTypes */
-
- MethodInfo->ValidReturnTypes |= AnMapObjTypeToBtype (NextType);
- NextType->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
- NextType = NextType->Asl.Next;
- }
-
- /* Get the ParameterType node */
-
- Next = Next->Asl.Next;
-
- NextType = Next->Asl.Child;
- while (NextType)
- {
- if (NextType->Asl.ParseOpcode == PARSEOP_DEFAULT_ARG)
- {
- NextParamType = NextType->Asl.Child;
- while (NextParamType)
- {
- MethodInfo->ValidArgTypes[ActualArgs] |= AnMapObjTypeToBtype (NextParamType);
- NextParamType->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
- NextParamType = NextParamType->Asl.Next;
- }
- }
- else
- {
- MethodInfo->ValidArgTypes[ActualArgs] =
- AnMapObjTypeToBtype (NextType);
- NextType->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
- }
-
- ActualArgs++;
- NextType = NextType->Asl.Next;
- }
-
- if ((MethodInfo->NumArguments) &&
- (MethodInfo->NumArguments != ActualArgs))
- {
- /* error: Param list did not match number of args */
- }
-
- /* Allow numarguments == 0 for Function() */
-
- if ((!MethodInfo->NumArguments) && (ActualArgs))
- {
- MethodInfo->NumArguments = ActualArgs;
- ArgNode->Asl.Value.Integer |= ActualArgs;
- }
-
- /*
- * Actual arguments are initialized at method entry.
- * All other ArgX "registers" can be used as locals, so we
- * track their initialization.
- */
- for (i = 0; i < MethodInfo->NumArguments; i++)
- {
- MethodInfo->ArgInitialized[i] = TRUE;
- }
- break;
-
-
- case PARSEOP_METHODCALL:
-
- if (MethodInfo &&
- (Op->Asl.Node == MethodInfo->Op->Asl.Node))
- {
- AslError (ASL_REMARK, ASL_MSG_RECURSION, Op, Op->Asl.ExternalName);
- }
- break;
-
-
- case PARSEOP_LOCAL0:
- case PARSEOP_LOCAL1:
- case PARSEOP_LOCAL2:
- case PARSEOP_LOCAL3:
- case PARSEOP_LOCAL4:
- case PARSEOP_LOCAL5:
- case PARSEOP_LOCAL6:
- case PARSEOP_LOCAL7:
-
- if (!MethodInfo)
- {
- /*
- * Probably was an error in the method declaration,
- * no additional error here
- */
- ACPI_WARNING ((AE_INFO, "%p, No parent method", Op));
- return (AE_ERROR);
- }
-
- RegisterNumber = (Op->Asl.AmlOpcode & 0x000F);
-
- /*
- * If the local is being used as a target, mark the local
- * initialized
- */
- if (Op->Asl.CompileFlags & NODE_IS_TARGET)
- {
- MethodInfo->LocalInitialized[RegisterNumber] = TRUE;
- }
-
- /*
- * Otherwise, this is a reference, check if the local
- * has been previously initialized.
- *
- * The only operator that accepts an uninitialized value is ObjectType()
- */
- else if ((!MethodInfo->LocalInitialized[RegisterNumber]) &&
- (Op->Asl.Parent->Asl.ParseOpcode != PARSEOP_OBJECTTYPE))
- {
- LocalName[strlen (LocalName) -1] = (char) (RegisterNumber + 0x30);
- AslError (ASL_ERROR, ASL_MSG_LOCAL_INIT, Op, LocalName);
- }
- break;
-
-
- case PARSEOP_ARG0:
- case PARSEOP_ARG1:
- case PARSEOP_ARG2:
- case PARSEOP_ARG3:
- case PARSEOP_ARG4:
- case PARSEOP_ARG5:
- case PARSEOP_ARG6:
-
- if (!MethodInfo)
- {
- /*
- * Probably was an error in the method declaration,
- * no additional error here
- */
- ACPI_WARNING ((AE_INFO, "%p, No parent method", Op));
- return (AE_ERROR);
- }
-
- RegisterNumber = (Op->Asl.AmlOpcode & 0x000F) - 8;
- ArgName[strlen (ArgName) -1] = (char) (RegisterNumber + 0x30);
-
- /*
- * If the Arg is being used as a target, mark the local
- * initialized
- */
- if (Op->Asl.CompileFlags & NODE_IS_TARGET)
- {
- MethodInfo->ArgInitialized[RegisterNumber] = TRUE;
- }
-
- /*
- * Otherwise, this is a reference, check if the Arg
- * has been previously initialized.
- *
- * The only operator that accepts an uninitialized value is ObjectType()
- */
- else if ((!MethodInfo->ArgInitialized[RegisterNumber]) &&
- (Op->Asl.Parent->Asl.ParseOpcode != PARSEOP_OBJECTTYPE))
- {
- AslError (ASL_ERROR, ASL_MSG_ARG_INIT, Op, ArgName);
- }
-
- /* Flag this arg if it is not a "real" argument to the method */
-
- if (RegisterNumber >= MethodInfo->NumArguments)
- {
- AslError (ASL_REMARK, ASL_MSG_NOT_PARAMETER, Op, ArgName);
- }
- break;
-
-
- case PARSEOP_RETURN:
-
- if (!MethodInfo)
- {
- /*
- * Probably was an error in the method declaration,
- * no additional error here
- */
- ACPI_WARNING ((AE_INFO, "%p, No parent method", Op));
- return (AE_ERROR);
- }
-
- /* Child indicates a return value */
-
- if ((Op->Asl.Child) &&
- (Op->Asl.Child->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG))
- {
- MethodInfo->NumReturnWithValue++;
- }
- else
- {
- MethodInfo->NumReturnNoValue++;
- }
- break;
-
-
- case PARSEOP_BREAK:
- case PARSEOP_CONTINUE:
-
- Next = Op->Asl.Parent;
- while (Next)
- {
- if (Next->Asl.ParseOpcode == PARSEOP_WHILE)
- {
- break;
- }
- Next = Next->Asl.Parent;
- }
-
- if (!Next)
- {
- AslError (ASL_ERROR, ASL_MSG_NO_WHILE, Op, NULL);
- }
- break;
-
-
- case PARSEOP_STALL:
-
- /* We can range check if the argument is an integer */
-
- if ((Op->Asl.Child->Asl.ParseOpcode == PARSEOP_INTEGER) &&
- (Op->Asl.Child->Asl.Value.Integer > ACPI_UINT8_MAX))
- {
- AslError (ASL_ERROR, ASL_MSG_INVALID_TIME, Op, NULL);
- }
- break;
-
-
- case PARSEOP_DEVICE:
- case PARSEOP_EVENT:
- case PARSEOP_MUTEX:
- case PARSEOP_OPERATIONREGION:
- case PARSEOP_POWERRESOURCE:
- case PARSEOP_PROCESSOR:
- case PARSEOP_THERMALZONE:
-
- /*
- * The first operand is a name to be created in the namespace.
- * Check against the reserved list.
- */
- i = AnCheckForReservedName (Op, Op->Asl.NameSeg);
- if (i < ACPI_VALID_RESERVED_NAME_MAX)
- {
- AslError (ASL_ERROR, ASL_MSG_RESERVED_USE, Op, Op->Asl.ExternalName);
- }
- break;
-
-
- case PARSEOP_NAME:
-
- i = AnCheckForReservedName (Op, Op->Asl.NameSeg);
- if (i < ACPI_VALID_RESERVED_NAME_MAX)
- {
- if (ReservedMethods[i].NumArguments > 0)
- {
- /*
- * This reserved name must be a control method because
- * it must have arguments
- */
- AslError (ASL_ERROR, ASL_MSG_RESERVED_METHOD, Op,
- "with arguments");
- }
-
- /* Typechecking for _HID */
-
- else if (!ACPI_STRCMP (METHOD_NAME__HID, ReservedMethods[i].Name))
- {
- /* Examine the second operand to typecheck it */
-
- Next = Op->Asl.Child->Asl.Next;
-
- if ((Next->Asl.ParseOpcode != PARSEOP_INTEGER) &&
- (Next->Asl.ParseOpcode != PARSEOP_STRING_LITERAL))
- {
- /* _HID must be a string or an integer */
-
- AslError (ASL_ERROR, ASL_MSG_RESERVED_OPERAND_TYPE, Next,
- "String or Integer");
- }
-
- if (Next->Asl.ParseOpcode == PARSEOP_STRING_LITERAL)
- {
- /*
- * _HID is a string, all characters must be alphanumeric.
- * One of the things we want to catch here is the use of
- * a leading asterisk in the string.
- */
- for (i = 0; Next->Asl.Value.String[i]; i++)
- {
- if (!isalnum (Next->Asl.Value.String[i]))
- {
- AslError (ASL_ERROR, ASL_MSG_ALPHANUMERIC_STRING,
- Next, Next->Asl.Value.String);
- break;
- }
- }
- }
- }
- }
- break;
-
-
- default:
- break;
- }
-
- return AE_OK;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AnLastStatementIsReturn
- *
- * PARAMETERS: Op - A method parse node
- *
- * RETURN: TRUE if last statement is an ASL RETURN. False otherwise
- *
- * DESCRIPTION: Walk down the list of top level statements within a method
- * to find the last one. Check if that last statement is in
- * fact a RETURN statement.
- *
- ******************************************************************************/
-
-static BOOLEAN
-AnLastStatementIsReturn (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *Next;
-
-
- /*
- * Check if last statement is a return
- */
- Next = ASL_GET_CHILD_NODE (Op);
- while (Next)
- {
- if ((!Next->Asl.Next) &&
- (Next->Asl.ParseOpcode == PARSEOP_RETURN))
- {
- return TRUE;
- }
-
- Next = ASL_GET_PEER_NODE (Next);
- }
-
- return FALSE;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AnMethodAnalysisWalkEnd
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Ascending callback for analysis walk. Complete method
- * return analysis.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AnMethodAnalysisWalkEnd (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- ASL_ANALYSIS_WALK_INFO *WalkInfo = (ASL_ANALYSIS_WALK_INFO *) Context;
- ASL_METHOD_INFO *MethodInfo = WalkInfo->MethodStack;
-
-
- switch (Op->Asl.ParseOpcode)
- {
- case PARSEOP_METHOD:
- case PARSEOP_RETURN:
- if (!MethodInfo)
- {
- printf ("No method info for method! [%s]\n", Op->Asl.Namepath);
- AslError (ASL_ERROR, ASL_MSG_COMPILER_INTERNAL, Op,
- "No method info for this method");
- CmCleanupAndExit ();
- return (AE_AML_INTERNAL);
- }
- break;
-
- default:
- break;
- }
-
- switch (Op->Asl.ParseOpcode)
- {
- case PARSEOP_METHOD:
-
- WalkInfo->MethodStack = MethodInfo->Next;
-
- /*
- * Check if there is no return statement at the end of the
- * method AND we can actually get there -- i.e., the execution
- * of the method can possibly terminate without a return statement.
- */
- if ((!AnLastStatementIsReturn (Op)) &&
- (!(Op->Asl.CompileFlags & NODE_HAS_NO_EXIT)))
- {
- /*
- * No return statement, and execution can possibly exit
- * via this path. This is equivalent to Return ()
- */
- MethodInfo->NumReturnNoValue++;
- }
-
- /*
- * Check for case where some return statements have a return value
- * and some do not. Exit without a return statement is a return with
- * no value
- */
- if (MethodInfo->NumReturnNoValue &&
- MethodInfo->NumReturnWithValue)
- {
- AslError (ASL_WARNING, ASL_MSG_RETURN_TYPES, Op,
- Op->Asl.ExternalName);
- }
-
- /*
- * If there are any RETURN() statements with no value, or there is a
- * control path that allows the method to exit without a return value,
- * we mark the method as a method that does not return a value. This
- * knowledge can be used to check method invocations that expect a
- * returned value.
- */
- if (MethodInfo->NumReturnNoValue)
- {
- if (MethodInfo->NumReturnWithValue)
- {
- Op->Asl.CompileFlags |= NODE_METHOD_SOME_NO_RETVAL;
- }
- else
- {
- Op->Asl.CompileFlags |= NODE_METHOD_NO_RETVAL;
- }
- }
-
- /*
- * Check predefined method names for correct return behavior
- * and correct number of arguments
- */
- AnCheckForReservedMethod (Op, MethodInfo);
- ACPI_FREE (MethodInfo);
- break;
-
-
- case PARSEOP_RETURN:
-
- /*
- * The parent block does not "exit" and continue execution -- the
- * method is terminated here with the Return() statement.
- */
- Op->Asl.Parent->Asl.CompileFlags |= NODE_HAS_NO_EXIT;
-
- /* Used in the "typing" pass later */
-
- Op->Asl.ParentMethod = MethodInfo->Op;
-
- /*
- * If there is a peer node after the return statement, then this
- * node is unreachable code -- i.e., it won't be executed because of
- * the preceeding Return() statement.
- */
- if (Op->Asl.Next)
- {
- AslError (ASL_WARNING, ASL_MSG_UNREACHABLE_CODE, Op->Asl.Next, NULL);
- }
- break;
-
-
- case PARSEOP_IF:
-
- if ((Op->Asl.CompileFlags & NODE_HAS_NO_EXIT) &&
- (Op->Asl.Next) &&
- (Op->Asl.Next->Asl.ParseOpcode == PARSEOP_ELSE))
- {
- /*
- * This IF has a corresponding ELSE. The IF block has no exit,
- * (it contains an unconditional Return)
- * mark the ELSE block to remember this fact.
- */
- Op->Asl.Next->Asl.CompileFlags |= NODE_IF_HAS_NO_EXIT;
- }
- break;
-
-
- case PARSEOP_ELSE:
-
- if ((Op->Asl.CompileFlags & NODE_HAS_NO_EXIT) &&
- (Op->Asl.CompileFlags & NODE_IF_HAS_NO_EXIT))
- {
- /*
- * This ELSE block has no exit and the corresponding IF block
- * has no exit either. Therefore, the parent node has no exit.
- */
- Op->Asl.Parent->Asl.CompileFlags |= NODE_HAS_NO_EXIT;
- }
- break;
-
-
- default:
-
- if ((Op->Asl.CompileFlags & NODE_HAS_NO_EXIT) &&
- (Op->Asl.Parent))
- {
- /* If this node has no exit, then the parent has no exit either */
-
- Op->Asl.Parent->Asl.CompileFlags |= NODE_HAS_NO_EXIT;
- }
- break;
- }
-
- return AE_OK;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AnMethodTypingWalkBegin
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Descending callback for the typing walk.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AnMethodTypingWalkBegin (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
-
- return AE_OK;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AnMethodTypingWalkEnd
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Ascending callback for typing walk. Complete the method
- * return analysis. Check methods for:
- * 1) Initialized local variables
- * 2) Valid arguments
- * 3) Return types
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AnMethodTypingWalkEnd (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- UINT32 ThisNodeBtype;
-
-
- switch (Op->Asl.ParseOpcode)
- {
- case PARSEOP_METHOD:
-
- Op->Asl.CompileFlags |= NODE_METHOD_TYPED;
- break;
-
- case PARSEOP_RETURN:
-
- if ((Op->Asl.Child) &&
- (Op->Asl.Child->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG))
- {
- ThisNodeBtype = AnGetBtype (Op->Asl.Child);
-
- if ((Op->Asl.Child->Asl.ParseOpcode == PARSEOP_METHODCALL) &&
- (ThisNodeBtype == (ACPI_UINT32_MAX -1)))
- {
- /*
- * The called method is untyped at this time (typically a
- * forward reference).
- *
- * Check for a recursive method call first.
- */
- if (Op->Asl.ParentMethod != Op->Asl.Child->Asl.Node->Op)
- {
- /* We must type the method here */
-
- TrWalkParseTree (Op->Asl.Child->Asl.Node->Op,
- ASL_WALK_VISIT_TWICE, AnMethodTypingWalkBegin,
- AnMethodTypingWalkEnd, NULL);
-
- ThisNodeBtype = AnGetBtype (Op->Asl.Child);
- }
- }
-
- /* Returns a value, save the value type */
-
- if (Op->Asl.ParentMethod)
- {
- Op->Asl.ParentMethod->Asl.AcpiBtype |= ThisNodeBtype;
- }
- }
- break;
-
- default:
- break;
- }
-
- return AE_OK;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AnCheckMethodReturnValue
- *
- * PARAMETERS: Op - Parent
- * OpInfo - Parent info
- * ArgOp - Method invocation op
- * RequiredBtypes - What caller requires
- * ThisNodeBtype - What this node returns (if anything)
- *
- * RETURN: None
- *
- * DESCRIPTION: Check a method invocation for 1) A return value and if it does
- * in fact return a value, 2) check the type of the return value.
- *
- ******************************************************************************/
-
-static void
-AnCheckMethodReturnValue (
- ACPI_PARSE_OBJECT *Op,
- const ACPI_OPCODE_INFO *OpInfo,
- ACPI_PARSE_OBJECT *ArgOp,
- UINT32 RequiredBtypes,
- UINT32 ThisNodeBtype)
-{
- ACPI_PARSE_OBJECT *OwningOp;
- ACPI_NAMESPACE_NODE *Node;
-
-
- Node = ArgOp->Asl.Node;
-
-
- /* Examine the parent op of this method */
-
- OwningOp = Node->Op;
- if (OwningOp->Asl.CompileFlags & NODE_METHOD_NO_RETVAL)
- {
- /* Method NEVER returns a value */
-
- AslError (ASL_ERROR, ASL_MSG_NO_RETVAL, Op, Op->Asl.ExternalName);
- }
- else if (OwningOp->Asl.CompileFlags & NODE_METHOD_SOME_NO_RETVAL)
- {
- /* Method SOMETIMES returns a value, SOMETIMES not */
-
- AslError (ASL_WARNING, ASL_MSG_SOME_NO_RETVAL, Op, Op->Asl.ExternalName);
- }
- else if (!(ThisNodeBtype & RequiredBtypes))
- {
- /* Method returns a value, but the type is wrong */
-
- AnFormatBtype (StringBuffer, ThisNodeBtype);
- AnFormatBtype (StringBuffer2, RequiredBtypes);
-
-
- /*
- * The case where the method does not return any value at all
- * was already handled in the namespace cross reference
- * -- Only issue an error if the method in fact returns a value,
- * but it is of the wrong type
- */
- if (ThisNodeBtype != 0)
- {
- sprintf (MsgBuffer,
- "Method returns [%s], %s operator requires [%s]",
- StringBuffer, OpInfo->Name, StringBuffer2);
-
- AslError (ASL_ERROR, ASL_MSG_INVALID_TYPE, ArgOp, MsgBuffer);
- }
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AnOperandTypecheckWalkBegin
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Descending callback for the analysis walk. Check methods for:
- * 1) Initialized local variables
- * 2) Valid arguments
- * 3) Return types
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AnOperandTypecheckWalkBegin (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
-
- return AE_OK;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AnOperandTypecheckWalkEnd
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Ascending callback for analysis walk. Complete method
- * return analysis.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AnOperandTypecheckWalkEnd (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- const ACPI_OPCODE_INFO *OpInfo;
- UINT32 RuntimeArgTypes;
- UINT32 RuntimeArgTypes2;
- UINT32 RequiredBtypes;
- UINT32 ThisNodeBtype;
- UINT32 CommonBtypes;
- UINT32 OpcodeClass;
- ACPI_PARSE_OBJECT *ArgOp;
- UINT32 ArgType;
-
-
- switch (Op->Asl.AmlOpcode)
- {
- case AML_RAW_DATA_BYTE:
- case AML_RAW_DATA_WORD:
- case AML_RAW_DATA_DWORD:
- case AML_RAW_DATA_QWORD:
- case AML_RAW_DATA_BUFFER:
- case AML_RAW_DATA_CHAIN:
- case AML_PACKAGE_LENGTH:
- case AML_UNASSIGNED_OPCODE:
- case AML_DEFAULT_ARG_OP:
-
- /* Ignore the internal (compiler-only) AML opcodes */
-
- return (AE_OK);
-
- default:
- break;
- }
-
- OpInfo = AcpiPsGetOpcodeInfo (Op->Asl.AmlOpcode);
- if (!OpInfo)
- {
- return (AE_OK);
- }
-
- ArgOp = Op->Asl.Child;
- RuntimeArgTypes = OpInfo->RuntimeArgs;
- OpcodeClass = OpInfo->Class;
-
-
- /*
- * Special case for control opcodes IF/RETURN/WHILE since they
- * have no runtime arg list (at this time)
- */
- switch (Op->Asl.AmlOpcode)
- {
- case AML_IF_OP:
- case AML_WHILE_OP:
- case AML_RETURN_OP:
-
- if (ArgOp->Asl.ParseOpcode == PARSEOP_METHODCALL)
- {
- /* Check for an internal method */
-
- if (AnIsInternalMethod (ArgOp))
- {
- return (AE_OK);
- }
-
- /* The lone arg is a method call, check it */
-
- RequiredBtypes = AnMapArgTypeToBtype (ARGI_INTEGER);
- if (Op->Asl.AmlOpcode == AML_RETURN_OP)
- {
- RequiredBtypes = 0xFFFFFFFF;
- }
-
- ThisNodeBtype = AnGetBtype (ArgOp);
- if (ThisNodeBtype == ACPI_UINT32_MAX)
- {
- return (AE_OK);
- }
- AnCheckMethodReturnValue (Op, OpInfo, ArgOp,
- RequiredBtypes, ThisNodeBtype);
- }
- return (AE_OK);
-
- default:
- break;
- }
-
- /* Ignore the non-executable opcodes */
-
- if (RuntimeArgTypes == ARGI_INVALID_OPCODE)
- {
- return (AE_OK);
- }
-
- switch (OpcodeClass)
- {
- case AML_CLASS_EXECUTE:
- case AML_CLASS_CREATE:
- case AML_CLASS_CONTROL:
- case AML_CLASS_RETURN_VALUE:
-
- /* TBD: Change class or fix typechecking for these */
-
- if ((Op->Asl.AmlOpcode == AML_BUFFER_OP) ||
- (Op->Asl.AmlOpcode == AML_PACKAGE_OP) ||
- (Op->Asl.AmlOpcode == AML_VAR_PACKAGE_OP))
- {
- break;
- }
-
- /* Reverse the runtime argument list */
-
- RuntimeArgTypes2 = 0;
- while ((ArgType = GET_CURRENT_ARG_TYPE (RuntimeArgTypes)))
- {
- RuntimeArgTypes2 <<= ARG_TYPE_WIDTH;
- RuntimeArgTypes2 |= ArgType;
- INCREMENT_ARG_LIST (RuntimeArgTypes);
- }
-
- while ((ArgType = GET_CURRENT_ARG_TYPE (RuntimeArgTypes2)))
- {
- RequiredBtypes = AnMapArgTypeToBtype (ArgType);
-
- ThisNodeBtype = AnGetBtype (ArgOp);
- if (ThisNodeBtype == ACPI_UINT32_MAX)
- {
- goto NextArgument;
- }
-
- /* Examine the arg based on the required type of the arg */
-
- switch (ArgType)
- {
- case ARGI_TARGETREF:
-
- if (ArgOp->Asl.ParseOpcode == PARSEOP_ZERO)
- {
- /* ZERO is the placeholder for "don't store result" */
-
- ThisNodeBtype = RequiredBtypes;
- break;
- }
-
- if (ArgOp->Asl.ParseOpcode == PARSEOP_INTEGER)
- {
- /*
- * This is the case where an original reference to a resource
- * descriptor field has been replaced by an (Integer) offset.
- * These named fields are supported at compile-time only;
- * the names are not passed to the interpreter (via the AML).
- */
- if ((ArgOp->Asl.Node->Type == ACPI_TYPE_LOCAL_RESOURCE_FIELD) ||
- (ArgOp->Asl.Node->Type == ACPI_TYPE_LOCAL_RESOURCE))
- {
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_FIELD, ArgOp, NULL);
- }
- else
- {
- AslError (ASL_ERROR, ASL_MSG_INVALID_TYPE, ArgOp, NULL);
- }
- break;
- }
-
- if ((ArgOp->Asl.ParseOpcode == PARSEOP_METHODCALL) ||
- (ArgOp->Asl.ParseOpcode == PARSEOP_DEREFOF))
- {
- break;
- }
-
- ThisNodeBtype = RequiredBtypes;
- break;
-
-
- case ARGI_REFERENCE: /* References */
- case ARGI_INTEGER_REF:
- case ARGI_OBJECT_REF:
- case ARGI_DEVICE_REF:
-
- switch (ArgOp->Asl.ParseOpcode)
- {
- case PARSEOP_LOCAL0:
- case PARSEOP_LOCAL1:
- case PARSEOP_LOCAL2:
- case PARSEOP_LOCAL3:
- case PARSEOP_LOCAL4:
- case PARSEOP_LOCAL5:
- case PARSEOP_LOCAL6:
- case PARSEOP_LOCAL7:
-
- /* TBD: implement analysis of current value (type) of the local */
- /* For now, just treat any local as a typematch */
-
- /*ThisNodeBtype = RequiredBtypes;*/
- break;
-
- case PARSEOP_ARG0:
- case PARSEOP_ARG1:
- case PARSEOP_ARG2:
- case PARSEOP_ARG3:
- case PARSEOP_ARG4:
- case PARSEOP_ARG5:
- case PARSEOP_ARG6:
-
- /* Hard to analyze argument types, sow we won't */
- /* For now, just treat any arg as a typematch */
-
- /* ThisNodeBtype = RequiredBtypes; */
- break;
-
- case PARSEOP_DEBUG:
- break;
-
- case PARSEOP_REFOF:
- case PARSEOP_INDEX:
- default:
- break;
-
- }
- break;
-
- case ARGI_INTEGER:
- default:
- break;
- }
-
-
- CommonBtypes = ThisNodeBtype & RequiredBtypes;
-
- if (ArgOp->Asl.ParseOpcode == PARSEOP_METHODCALL)
- {
- if (AnIsInternalMethod (ArgOp))
- {
- return (AE_OK);
- }
-
- /* Check a method call for a valid return value */
-
- AnCheckMethodReturnValue (Op, OpInfo, ArgOp,
- RequiredBtypes, ThisNodeBtype);
- }
-
- /*
- * Now check if the actual type(s) match at least one
- * bit to the required type
- */
- else if (!CommonBtypes)
- {
- /* No match -- this is a type mismatch error */
-
- AnFormatBtype (StringBuffer, ThisNodeBtype);
- AnFormatBtype (StringBuffer2, RequiredBtypes);
-
- sprintf (MsgBuffer, "[%s] found, %s operator requires [%s]",
- StringBuffer, OpInfo->Name, StringBuffer2);
-
- AslError (ASL_ERROR, ASL_MSG_INVALID_TYPE, ArgOp, MsgBuffer);
- }
-
- NextArgument:
- ArgOp = ArgOp->Asl.Next;
- INCREMENT_ARG_LIST (RuntimeArgTypes2);
- }
- break;
-
- default:
- break;
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AnIsResultUsed
- *
- * PARAMETERS: Op - Parent op for the operator
- *
- * RETURN: TRUE if result from this operation is actually consumed
- *
- * DESCRIPTION: Determine if the function result value from an operator is
- * used.
- *
- ******************************************************************************/
-
-BOOLEAN
-AnIsResultUsed (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *Parent;
-
-
- switch (Op->Asl.ParseOpcode)
- {
- case PARSEOP_INCREMENT:
- case PARSEOP_DECREMENT:
-
- /* These are standalone operators, no return value */
-
- return (TRUE);
-
- default:
- break;
- }
-
- /* Examine parent to determine if the return value is used */
-
- Parent = Op->Asl.Parent;
- switch (Parent->Asl.ParseOpcode)
- {
- /* If/While - check if the operator is the predicate */
-
- case PARSEOP_IF:
- case PARSEOP_WHILE:
-
- /* First child is the predicate */
-
- if (Parent->Asl.Child == Op)
- {
- return (TRUE);
- }
- return (FALSE);
-
- /* Not used if one of these is the parent */
-
- case PARSEOP_METHOD:
- case PARSEOP_DEFINITIONBLOCK:
- case PARSEOP_ELSE:
-
- return (FALSE);
-
- default:
- /* Any other type of parent means that the result is used */
-
- return (TRUE);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AnOtherSemanticAnalysisWalkBegin
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Descending callback for the analysis walk. Checks for
- * miscellaneous issues in the code.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AnOtherSemanticAnalysisWalkBegin (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- ACPI_PARSE_OBJECT *ArgNode;
- ACPI_PARSE_OBJECT *PrevArgNode = NULL;
- const ACPI_OPCODE_INFO *OpInfo;
-
-
- OpInfo = AcpiPsGetOpcodeInfo (Op->Asl.AmlOpcode);
-
- /*
- * Determine if an execution class operator actually does something by
- * checking if it has a target and/or the function return value is used.
- * (Target is optional, so a standalone statement can actually do nothing.)
- */
- if ((OpInfo->Class == AML_CLASS_EXECUTE) &&
- (OpInfo->Flags & AML_HAS_RETVAL) &&
- (!AnIsResultUsed (Op)))
- {
- if (OpInfo->Flags & AML_HAS_TARGET)
- {
- /*
- * Find the target node, it is always the last child. If the traget
- * is not specified in the ASL, a default node of type Zero was
- * created by the parser.
- */
- ArgNode = Op->Asl.Child;
- while (ArgNode->Asl.Next)
- {
- PrevArgNode = ArgNode;
- ArgNode = ArgNode->Asl.Next;
- }
-
- /* Divide() is the only weird case, it has two targets */
-
- if (Op->Asl.AmlOpcode == AML_DIVIDE_OP)
- {
- if ((ArgNode->Asl.ParseOpcode == PARSEOP_ZERO) &&
- (PrevArgNode->Asl.ParseOpcode == PARSEOP_ZERO))
- {
- AslError (ASL_WARNING, ASL_MSG_RESULT_NOT_USED, Op, Op->Asl.ExternalName);
- }
- }
- else if (ArgNode->Asl.ParseOpcode == PARSEOP_ZERO)
- {
- AslError (ASL_WARNING, ASL_MSG_RESULT_NOT_USED, Op, Op->Asl.ExternalName);
- }
- }
- else
- {
- /*
- * Has no target and the result is not used. Only a couple opcodes
- * can have this combination.
- */
- switch (Op->Asl.ParseOpcode)
- {
- case PARSEOP_ACQUIRE:
- case PARSEOP_WAIT:
- break;
-
- default:
- AslError (ASL_WARNING, ASL_MSG_RESULT_NOT_USED, Op, Op->Asl.ExternalName);
- break;
- }
- }
- }
-
-
- /*
- * Semantic checks for individual ASL operators
- */
- switch (Op->Asl.ParseOpcode)
- {
- case PARSEOP_ACQUIRE:
- case PARSEOP_WAIT:
- /*
- * Emit a warning if the timeout parameter for these operators is not
- * ACPI_WAIT_FOREVER, and the result value from the operator is not
- * checked, meaning that a timeout could happen, but the code
- * would not know about it.
- */
-
- /* First child is the namepath, 2nd child is timeout */
-
- ArgNode = Op->Asl.Child;
- ArgNode = ArgNode->Asl.Next;
-
- /*
- * Check for the WAIT_FOREVER case - defined by the ACPI spec to be
- * 0xFFFF or greater
- */
- if (((ArgNode->Asl.ParseOpcode == PARSEOP_WORDCONST) ||
- (ArgNode->Asl.ParseOpcode == PARSEOP_INTEGER)) &&
- (ArgNode->Asl.Value.Integer >= (ACPI_INTEGER) ACPI_WAIT_FOREVER))
- {
- break;
- }
-
- /*
- * The operation could timeout. If the return value is not used
- * (indicates timeout occurred), issue a warning
- */
- if (!AnIsResultUsed (Op))
- {
- AslError (ASL_WARNING, ASL_MSG_TIMEOUT, ArgNode, Op->Asl.ExternalName);
- }
- break;
-
- case PARSEOP_CREATEFIELD:
- /*
- * Check for a zero Length (NumBits) operand. NumBits is the 3rd operand
- */
- ArgNode = Op->Asl.Child;
- ArgNode = ArgNode->Asl.Next;
- ArgNode = ArgNode->Asl.Next;
-
- if ((ArgNode->Asl.ParseOpcode == PARSEOP_ZERO) ||
- ((ArgNode->Asl.ParseOpcode == PARSEOP_INTEGER) &&
- (ArgNode->Asl.Value.Integer == 0)))
- {
- AslError (ASL_ERROR, ASL_MSG_NON_ZERO, ArgNode, NULL);
- }
- break;
-
- default:
- break;
- }
-
- return AE_OK;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AnOtherSemanticAnalysisWalkEnd
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Ascending callback for analysis walk. Complete method
- * return analysis.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AnOtherSemanticAnalysisWalkEnd (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
-
- return AE_OK;
-
-}
-
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-/*******************************************************************************
- *
- * FUNCTION: AnMapBtypeToEtype
- *
- * PARAMETERS: Btype - Bitfield of ACPI types
- *
- * RETURN: The Etype corresponding the the Btype
- *
- * DESCRIPTION: Convert a bitfield type to an encoded type
- *
- ******************************************************************************/
-
-UINT32
-AnMapBtypeToEtype (
- UINT32 Btype)
-{
- UINT32 i;
- UINT32 Etype;
-
-
- if (Btype == 0)
- {
- return 0;
- }
-
- Etype = 1;
- for (i = 1; i < Btype; i *= 2)
- {
- Etype++;
- }
-
- return (Etype);
-}
-#endif
-
diff --git a/sys/contrib/dev/acpica/compiler/aslcodegen.c b/sys/contrib/dev/acpica/compiler/aslcodegen.c
deleted file mode 100644
index 25ee729..0000000
--- a/sys/contrib/dev/acpica/compiler/aslcodegen.c
+++ /dev/null
@@ -1,661 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: aslcodegen - AML code generation
- * $Revision: 1.62 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/compiler/aslcompiler.h>
-#include "aslcompiler.y.h"
-#include <contrib/dev/acpica/amlcode.h>
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("aslcodegen")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-CgAmlWriteWalk (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-static void
-CgLocalWriteAmlData (
- ACPI_PARSE_OBJECT *Op,
- void *Buffer,
- UINT32 Length);
-
-static void
-CgWriteAmlOpcode (
- ACPI_PARSE_OBJECT *Op);
-
-static void
-CgWriteTableHeader (
- ACPI_PARSE_OBJECT *Op);
-
-static void
-CgCloseTable (
- void);
-
-static void
-CgWriteNode (
- ACPI_PARSE_OBJECT *Op);
-
-
-/*******************************************************************************
- *
- * FUNCTION: CgGenerateAmlOutput
- *
- * PARAMETERS: None.
- *
- * RETURN: None
- *
- * DESCRIPTION: Generate AML code. Currently generates the listing file
- * simultaneously.
- *
- ******************************************************************************/
-
-void
-CgGenerateAmlOutput (
- void)
-{
-
- DbgPrint (ASL_DEBUG_OUTPUT, "\nWriting AML\n\n");
-
- /* Generate the AML output file */
-
- FlSeekFile (ASL_FILE_SOURCE_OUTPUT, 0);
- Gbl_SourceLine = 0;
- Gbl_NextError = Gbl_ErrorLog;
-
- TrWalkParseTree (RootNode, ASL_WALK_VISIT_DOWNWARD,
- CgAmlWriteWalk, NULL, NULL);
- CgCloseTable ();
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: CgAmlWriteWalk
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Parse tree walk to generate the AML code.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-CgAmlWriteWalk (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
-
- /*
- * Print header at level 0. Alignment assumes 32-bit pointers
- */
- if (!Level)
- {
- DbgPrint (ASL_TREE_OUTPUT,
- "Final parse tree used for AML output:\n");
- DbgPrint (ASL_TREE_OUTPUT,
- "%*s Value P_Op A_Op OpLen PByts Len SubLen PSubLen OpPtr Child Parent Flags AcTyp Final Col L\n",
- 76, " ");
- }
-
- /* Debug output */
-
- DbgPrint (ASL_TREE_OUTPUT,
- "%5.5d [%2d]", Op->Asl.LogicalLineNumber, Level);
- UtPrintFormattedName (Op->Asl.ParseOpcode, Level);
-
- if (Op->Asl.ParseOpcode == PARSEOP_NAMESEG ||
- Op->Asl.ParseOpcode == PARSEOP_NAMESTRING ||
- Op->Asl.ParseOpcode == PARSEOP_METHODCALL)
- {
- DbgPrint (ASL_TREE_OUTPUT,
- "%10.32s ", Op->Asl.ExternalName);
- }
- else
- {
- DbgPrint (ASL_TREE_OUTPUT, " ");
- }
-
- DbgPrint (ASL_TREE_OUTPUT,
- "%08X %04X %04X %01X %04X %04X %04X %04X %08X %08X %08X %08X %08X %04X %02d %02d\n",
- /* 1 */ (UINT32) Op->Asl.Value.Integer,
- /* 2 */ Op->Asl.ParseOpcode,
- /* 3 */ Op->Asl.AmlOpcode,
- /* 4 */ Op->Asl.AmlOpcodeLength,
- /* 5 */ Op->Asl.AmlPkgLenBytes,
- /* 6 */ Op->Asl.AmlLength,
- /* 7 */ Op->Asl.AmlSubtreeLength,
- /* 8 */ Op->Asl.Parent ? Op->Asl.Parent->Asl.AmlSubtreeLength : 0,
- /* 9 */ Op,
- /* 10 */ Op->Asl.Child,
- /* 11 */ Op->Asl.Parent,
- /* 12 */ Op->Asl.CompileFlags,
- /* 13 */ Op->Asl.AcpiBtype,
- /* 14 */ Op->Asl.FinalAmlLength,
- /* 15 */ Op->Asl.Column,
- /* 16 */ Op->Asl.LineNumber);
-
- /* Generate the AML for this node */
-
- CgWriteNode (Op);
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: CgLocalWriteAmlData
- *
- * PARAMETERS: Op - Current parse op
- * Buffer - Buffer to write
- * Length - Size of data in buffer
- *
- * RETURN: None
- *
- * DESCRIPTION: Write a buffer of AML data to the AML output file.
- *
- ******************************************************************************/
-
-static void
-CgLocalWriteAmlData (
- ACPI_PARSE_OBJECT *Op,
- void *Buffer,
- UINT32 Length)
-{
-
- /* Write the raw data to the AML file */
-
- FlWriteFile (ASL_FILE_AML_OUTPUT, Buffer, Length);
-
- /* Update the final AML length for this node (used for listings) */
-
- if (Op)
- {
- Op->Asl.FinalAmlLength += Length;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: CgWriteAmlOpcode
- *
- * PARAMETERS: Op - Parse node with an AML opcode
- *
- * RETURN: None.
- *
- * DESCRIPTION: Write the AML opcode corresponding to a parse node.
- *
- ******************************************************************************/
-
-static void
-CgWriteAmlOpcode (
- ACPI_PARSE_OBJECT *Op)
-{
- UINT8 PkgLenFirstByte;
- UINT32 i;
- union {
- UINT16 Opcode;
- UINT8 OpcodeBytes[2];
- } Aml;
- union {
- UINT32 Len;
- UINT8 LenBytes[4];
- } PkgLen;
-
-
- /* We expect some DEFAULT_ARGs, just ignore them */
-
- if (Op->Asl.ParseOpcode == PARSEOP_DEFAULT_ARG)
- {
- return;
- }
-
- switch (Op->Asl.AmlOpcode)
- {
- case AML_UNASSIGNED_OPCODE:
-
- /* These opcodes should not get here */
-
- printf ("Found a node with an unassigned AML opcode\n");
- fprintf (stderr, "Found a node with an unassigned AML opcode\n");
- return;
-
- case AML_INT_RESERVEDFIELD_OP:
-
- /* Special opcodes for within a field definition */
-
- Aml.Opcode = 0x00;
- break;
-
- case AML_INT_ACCESSFIELD_OP:
-
- Aml.Opcode = 0x01;
- break;
-
- default:
- Aml.Opcode = Op->Asl.AmlOpcode;
- break;
- }
-
-
- switch (Aml.Opcode)
- {
- case AML_PACKAGE_LENGTH:
-
- /* Value is the length to be encoded (Used in field definitions) */
-
- PkgLen.Len = (UINT32) Op->Asl.Value.Integer;
- break;
-
- default:
-
- /* Check for two-byte opcode */
-
- if (Aml.Opcode > 0x00FF)
- {
- /* Write the high byte first */
-
- CgLocalWriteAmlData (Op, &Aml.OpcodeBytes[1], 1);
- }
-
- CgLocalWriteAmlData (Op, &Aml.OpcodeBytes[0], 1);
-
- /* Subtreelength doesn't include length of package length bytes */
-
- PkgLen.Len = Op->Asl.AmlSubtreeLength + Op->Asl.AmlPkgLenBytes;
- break;
- }
-
- /* Does this opcode have an associated "PackageLength" field? */
-
- if (Op->Asl.CompileFlags & NODE_AML_PACKAGE)
- {
- if (Op->Asl.AmlPkgLenBytes == 1)
- {
- /* Simplest case -- no bytes to follow, just write the count */
-
- CgLocalWriteAmlData (Op, &PkgLen.LenBytes[0], 1);
- }
- else if (Op->Asl.AmlPkgLenBytes != 0)
- {
- /*
- * Encode the "bytes to follow" in the first byte, top two bits.
- * The low-order nybble of the length is in the bottom 4 bits
- */
- PkgLenFirstByte = (UINT8)
- (((UINT32) (Op->Asl.AmlPkgLenBytes - 1) << 6) |
- (PkgLen.LenBytes[0] & 0x0F));
-
- CgLocalWriteAmlData (Op, &PkgLenFirstByte, 1);
-
- /*
- * Shift the length over by the 4 bits we just stuffed
- * in the first byte
- */
- PkgLen.Len >>= 4;
-
- /* Now we can write the remaining bytes - either 1, 2, or 3 bytes */
-
- for (i = 0; i < (UINT32) (Op->Asl.AmlPkgLenBytes - 1); i++)
- {
- CgLocalWriteAmlData (Op, &PkgLen.LenBytes[i], 1);
- }
- }
- }
-
- switch (Aml.Opcode)
- {
- case AML_BYTE_OP:
-
- CgLocalWriteAmlData (Op, &Op->Asl.Value.Integer, 1);
- break;
-
- case AML_WORD_OP:
-
- CgLocalWriteAmlData (Op, &Op->Asl.Value.Integer, 2);
- break;
-
- case AML_DWORD_OP:
-
- CgLocalWriteAmlData (Op, &Op->Asl.Value.Integer, 4);
- break;
-
- case AML_QWORD_OP:
-
- CgLocalWriteAmlData (Op, &Op->Asl.Value.Integer, 8);
- break;
-
- case AML_STRING_OP:
-
- CgLocalWriteAmlData (Op, Op->Asl.Value.String, Op->Asl.AmlLength);
- break;
-
- default:
- /* All data opcodes must appear above */
- break;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: CgWriteTableHeader
- *
- * PARAMETERS: Op - The DEFINITIONBLOCK node
- *
- * RETURN: None
- *
- * DESCRIPTION: Write a table header corresponding to the DEFINITIONBLOCK
- *
- ******************************************************************************/
-
-static void
-CgWriteTableHeader (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *Child;
-
-
- /* AML filename */
-
- Child = Op->Asl.Child;
-
- /* Signature */
-
- Child = Child->Asl.Next;
- strncpy (TableHeader.Signature, Child->Asl.Value.String, 4);
-
- /* Revision */
-
- Child = Child->Asl.Next;
- TableHeader.Revision = (UINT8) Child->Asl.Value.Integer;
-
- /* Command-line Revision override */
-
- if (Gbl_RevisionOverride)
- {
- TableHeader.Revision = Gbl_RevisionOverride;
- }
-
- /* OEMID */
-
- Child = Child->Asl.Next;
- strncpy (TableHeader.OemId, Child->Asl.Value.String, 6);
-
- /* OEM TableID */
-
- Child = Child->Asl.Next;
- strncpy (TableHeader.OemTableId, Child->Asl.Value.String, 8);
-
- /* OEM Revision */
-
- Child = Child->Asl.Next;
- TableHeader.OemRevision = (UINT32) Child->Asl.Value.Integer;
-
- /* Compiler ID */
-
- strncpy (TableHeader.AslCompilerId, CompilerCreatorId, 4);
-
- /* Compiler version */
-
- TableHeader.AslCompilerRevision = CompilerCreatorRevision;
-
- /* Table length. Checksum zero for now, will rewrite later */
-
- TableHeader.Length = Gbl_TableLength;
- TableHeader.Checksum = 0;
-
- CgLocalWriteAmlData (Op, &TableHeader, sizeof (ACPI_TABLE_HEADER));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: CgCloseTable
- *
- * PARAMETERS: None.
- *
- * RETURN: None.
- *
- * DESCRIPTION: Complete the ACPI table by calculating the checksum and
- * re-writing the header.
- *
- ******************************************************************************/
-
-static void
-CgCloseTable (
- void)
-{
- signed char Sum;
- UINT8 FileByte;
-
-
- FlSeekFile (ASL_FILE_AML_OUTPUT, 0);
- Sum = 0;
-
- /* Calculate the checksum over the entire file */
-
- while (FlReadFile (ASL_FILE_AML_OUTPUT, &FileByte, 1) == AE_OK)
- {
- Sum = (signed char) (Sum + FileByte);
- }
-
- /* Re-write the table header with the checksum */
-
- TableHeader.Checksum = (UINT8) (0 - Sum);
-
- FlSeekFile (ASL_FILE_AML_OUTPUT, 0);
- CgLocalWriteAmlData (NULL, &TableHeader, sizeof (ACPI_TABLE_HEADER));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: CgWriteNode
- *
- * PARAMETERS: Op - Parse node to write.
- *
- * RETURN: None.
- *
- * DESCRIPTION: Write the AML that corresponds to a parse node.
- *
- ******************************************************************************/
-
-static void
-CgWriteNode (
- ACPI_PARSE_OBJECT *Op)
-{
- ASL_RESOURCE_NODE *Rnode;
-
-
- /* Always check for DEFAULT_ARG and other "Noop" nodes */
- /* TBD: this may not be the best place for this check */
-
- if ((Op->Asl.ParseOpcode == PARSEOP_DEFAULT_ARG) ||
- (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL) ||
- (Op->Asl.ParseOpcode == PARSEOP_INCLUDE) ||
- (Op->Asl.ParseOpcode == PARSEOP_INCLUDE_END))
- {
- return;
- }
-
- Op->Asl.FinalAmlLength = 0;
-
- switch (Op->Asl.AmlOpcode)
- {
- case AML_RAW_DATA_BYTE:
- case AML_RAW_DATA_WORD:
- case AML_RAW_DATA_DWORD:
- case AML_RAW_DATA_QWORD:
-
- CgLocalWriteAmlData (Op, &Op->Asl.Value.Integer, Op->Asl.AmlLength);
- return;
-
-
- case AML_RAW_DATA_BUFFER:
-
- CgLocalWriteAmlData (Op, Op->Asl.Value.Buffer, Op->Asl.AmlLength);
- return;
-
-
- case AML_RAW_DATA_CHAIN:
-
- Rnode = ACPI_CAST_PTR (ASL_RESOURCE_NODE, Op->Asl.Value.Buffer);
- while (Rnode)
- {
- CgLocalWriteAmlData (Op, Rnode->Buffer, Rnode->BufferLength);
- Rnode = Rnode->Next;
- }
- return;
-
- default:
- /* Internal data opcodes must all appear above */
- break;
- }
-
- switch (Op->Asl.ParseOpcode)
- {
- case PARSEOP_DEFAULT_ARG:
-
- break;
-
- case PARSEOP_DEFINITIONBLOCK:
-
- CgWriteTableHeader (Op);
- break;
-
- case PARSEOP_NAMESEG:
- case PARSEOP_NAMESTRING:
- case PARSEOP_METHODCALL:
-
- CgLocalWriteAmlData (Op, Op->Asl.Value.String, Op->Asl.AmlLength);
- break;
-
- default:
-
- CgWriteAmlOpcode (Op);
- break;
- }
-}
-
-
diff --git a/sys/contrib/dev/acpica/compiler/aslcompile.c b/sys/contrib/dev/acpica/compiler/aslcompile.c
deleted file mode 100644
index eba3552..0000000
--- a/sys/contrib/dev/acpica/compiler/aslcompile.c
+++ /dev/null
@@ -1,929 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: aslcompile - top level compile module
- * $Revision: 1.97 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#include <stdio.h>
-#include <time.h>
-#include <contrib/dev/acpica/compiler/aslcompiler.h>
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("aslcompile")
-
-/* Local prototypes */
-
-static void
-CmFlushSourceCode (
- void);
-
-static ACPI_STATUS
-FlCheckForAscii (
- ASL_FILE_INFO *FileInfo);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AslCompilerSignon
- *
- * PARAMETERS: FileId - ID of the output file
- *
- * RETURN: None
- *
- * DESCRIPTION: Display compiler signon
- *
- ******************************************************************************/
-
-void
-AslCompilerSignon (
- UINT32 FileId)
-{
- char *Prefix = "";
-
-
- /* Set line prefix depending on the destination file type */
-
- switch (FileId)
- {
- case ASL_FILE_ASM_SOURCE_OUTPUT:
- case ASL_FILE_ASM_INCLUDE_OUTPUT:
-
- Prefix = "; ";
- break;
-
- case ASL_FILE_HEX_OUTPUT:
-
- if (Gbl_HexOutputFlag == HEX_OUTPUT_ASM)
- {
- Prefix = "; ";
- }
- else if (Gbl_HexOutputFlag == HEX_OUTPUT_C)
- {
- FlPrintFile (ASL_FILE_HEX_OUTPUT, "/*\n");
- Prefix = " * ";
- }
- break;
-
- case ASL_FILE_C_SOURCE_OUTPUT:
- case ASL_FILE_C_INCLUDE_OUTPUT:
-
- Prefix = " * ";
- break;
-
- default:
- /* No other output types supported */
- break;
- }
-
- /*
- * Compiler signon with copyright
- */
- FlPrintFile (FileId,
- "%s\n%s%s\n%s",
- Prefix,
- Prefix, IntelAcpiCA,
- Prefix);
-
- /* Running compiler or disassembler? */
-
- if (Gbl_DisasmFlag)
- {
- FlPrintFile (FileId,
- "%s", DisassemblerId);
- }
- else
- {
- FlPrintFile (FileId,
- "%s", CompilerId);
- }
-
- /* Version, build date, copyright, compliance */
-
- FlPrintFile (FileId,
- " version %X [%s]\n%s%s\n%s%s\n%s\n",
- (UINT32) ACPI_CA_VERSION, __DATE__,
- Prefix, CompilerCopyright,
- Prefix, CompilerCompliance,
- Prefix);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AslCompilerFileHeader
- *
- * PARAMETERS: FileId - ID of the output file
- *
- * RETURN: None
- *
- * DESCRIPTION: Header used at the beginning of output files
- *
- ******************************************************************************/
-
-void
-AslCompilerFileHeader (
- UINT32 FileId)
-{
- struct tm *NewTime;
- time_t Aclock;
- char *Prefix = "";
-
-
- /* Set line prefix depending on the destination file type */
-
- switch (FileId)
- {
- case ASL_FILE_ASM_SOURCE_OUTPUT:
- case ASL_FILE_ASM_INCLUDE_OUTPUT:
-
- Prefix = "; ";
- break;
-
- case ASL_FILE_HEX_OUTPUT:
-
- if (Gbl_HexOutputFlag == HEX_OUTPUT_ASM)
- {
- Prefix = "; ";
- }
- else if (Gbl_HexOutputFlag == HEX_OUTPUT_C)
- {
- Prefix = " * ";
- }
- break;
-
- case ASL_FILE_C_SOURCE_OUTPUT:
- case ASL_FILE_C_INCLUDE_OUTPUT:
-
- Prefix = " * ";
- break;
-
- default:
- /* No other output types supported */
- break;
- }
-
- /* Compilation header with timestamp */
-
- (void) time (&Aclock);
- NewTime = localtime (&Aclock);
-
- FlPrintFile (FileId,
- "%sCompilation of \"%s\" - %s%s\n",
- Prefix, Gbl_Files[ASL_FILE_INPUT].Filename, asctime (NewTime),
- Prefix);
-
- switch (FileId)
- {
- case ASL_FILE_C_SOURCE_OUTPUT:
- case ASL_FILE_C_INCLUDE_OUTPUT:
- FlPrintFile (FileId, " */\n");
- break;
-
- default:
- /* Nothing to do for other output types */
- break;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: CmFlushSourceCode
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Read in any remaining source code after the parse tree
- * has been constructed.
- *
- ******************************************************************************/
-
-static void
-CmFlushSourceCode (
- void)
-{
- char Buffer;
-
-
- while (FlReadFile (ASL_FILE_INPUT, &Buffer, 1) != AE_ERROR)
- {
- InsertLineBuffer ((int) Buffer);
- }
-
- ResetCurrentLineBuffer ();
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: FlConsume*
- *
- * PARAMETERS: FileInfo - Points to an open input file
- *
- * RETURN: Number of lines consumed
- *
- * DESCRIPTION: Step over both types of comment during check for ascii chars
- *
- ******************************************************************************/
-
-void
-FlConsumeAnsiComment (
- ASL_FILE_INFO *FileInfo,
- ASL_FILE_STATUS *Status)
-{
- UINT8 Byte;
- BOOLEAN ClosingComment = FALSE;
-
-
- while (fread (&Byte, 1, 1, FileInfo->Handle))
- {
- /* Scan until comment close is found */
-
- if (ClosingComment)
- {
- if (Byte == '/')
- {
- return;
- }
-
- if (Byte != '*')
- {
- /* Reset */
-
- ClosingComment = FALSE;
- }
- }
- else if (Byte == '*')
- {
- ClosingComment = TRUE;
- }
-
- /* Maintain line count */
-
- if (Byte == 0x0A)
- {
- Status->Line++;
- }
-
- Status->Offset++;
- }
-}
-
-
-void
-FlConsumeNewComment (
- ASL_FILE_INFO *FileInfo,
- ASL_FILE_STATUS *Status)
-{
- UINT8 Byte;
-
-
- while (fread (&Byte, 1, 1, FileInfo->Handle))
- {
- Status->Offset++;
-
- /* Comment ends at newline */
-
- if (Byte == 0x0A)
- {
- Status->Line++;
- return;
- }
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: FlCheckForAscii
- *
- * PARAMETERS: FileInfo - Points to an open input file
- *
- * RETURN: Status
- *
- * DESCRIPTION: Verify that the input file is entirely ASCII. Ignores characters
- * within comments. Note: does not handle nested comments and does
- * not handle comment delimiters within string literals. However,
- * on the rare chance this happens and an invalid character is
- * missed, the parser will catch the error by failing in some
- * spectactular manner.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-FlCheckForAscii (
- ASL_FILE_INFO *FileInfo)
-{
- UINT8 Byte;
- ACPI_SIZE BadBytes = 0;
- BOOLEAN OpeningComment = FALSE;
- ASL_FILE_STATUS Status;
-
-
- Status.Line = 1;
- Status.Offset = 0;
-
- /* Read the entire file */
-
- while (fread (&Byte, 1, 1, FileInfo->Handle))
- {
- /* Ignore comment fields (allow non-ascii within) */
-
- if (OpeningComment)
- {
- /* Check for second comment open delimiter */
-
- if (Byte == '*')
- {
- FlConsumeAnsiComment (FileInfo, &Status);
- }
-
- if (Byte == '/')
- {
- FlConsumeNewComment (FileInfo, &Status);
- }
-
- /* Reset */
-
- OpeningComment = FALSE;
- }
- else if (Byte == '/')
- {
- OpeningComment = TRUE;
- }
-
- /* Check for an ASCII character */
-
- if (!isascii (Byte))
- {
- if (BadBytes < 10)
- {
- AcpiOsPrintf (
- "Non-ASCII character [0x%2.2X] found in line %u, file offset 0x%.2X\n",
- Byte, Status.Line, Status.Offset);
- }
-
- BadBytes++;
- }
-
- /* Update line counter */
-
- else if (Byte == 0x0A)
- {
- Status.Line++;
- }
-
- Status.Offset++;
- }
-
- /* Seek back to the beginning of the source file */
-
- fseek (FileInfo->Handle, 0, SEEK_SET);
-
- /* Were there any non-ASCII characters in the file? */
-
- if (BadBytes)
- {
- AcpiOsPrintf (
- "%u non-ASCII characters found in input source text, could be a binary file\n",
- BadBytes);
- AslError (ASL_ERROR, ASL_MSG_NON_ASCII, NULL, FileInfo->Filename);
- return (AE_BAD_CHARACTER);
- }
-
- /* File is OK */
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: CmDoCompile
- *
- * PARAMETERS: None
- *
- * RETURN: Status (0 = OK)
- *
- * DESCRIPTION: This procedure performs the entire compile
- *
- ******************************************************************************/
-
-int
-CmDoCompile (
- void)
-{
- ACPI_STATUS Status;
- UINT8 FullCompile;
- UINT8 Event;
-
-
- FullCompile = UtBeginEvent ("*** Total Compile time ***");
- Event = UtBeginEvent ("Open input and output files");
-
- /* Open the required input and output files */
-
- Status = FlOpenInputFile (Gbl_Files[ASL_FILE_INPUT].Filename);
- if (ACPI_FAILURE (Status))
- {
- AePrintErrorLog (ASL_FILE_STDERR);
- return -1;
- }
-
- /* Check for 100% ASCII source file (comments are ignored) */
-
- Status = FlCheckForAscii (&Gbl_Files[ASL_FILE_INPUT]);
- if (ACPI_FAILURE (Status))
- {
- AePrintErrorLog (ASL_FILE_STDERR);
- return -1;
- }
-
- Status = FlOpenMiscOutputFiles (Gbl_OutputFilenamePrefix);
- if (ACPI_FAILURE (Status))
- {
- AePrintErrorLog (ASL_FILE_STDERR);
- return -1;
- }
- UtEndEvent (Event);
-
- /* Build the parse tree */
-
- Event = UtBeginEvent ("Parse source code and build parse tree");
- AslCompilerparse();
- UtEndEvent (Event);
-
- /* Flush out any remaining source after parse tree is complete */
-
- Event = UtBeginEvent ("Flush source input");
- CmFlushSourceCode ();
-
- /* Did the parse tree get successfully constructed? */
-
- if (!RootNode)
- {
- CmCleanupAndExit ();
- return -1;
- }
-
- /* Optional parse tree dump, compiler debug output only */
-
- LsDumpParseTree ();
-
- OpcGetIntegerWidth (RootNode);
- UtEndEvent (Event);
-
- /* Pre-process parse tree for any operator transforms */
-
- Event = UtBeginEvent ("Parse tree transforms");
- DbgPrint (ASL_DEBUG_OUTPUT, "\nParse tree transforms\n\n");
- TrWalkParseTree (RootNode, ASL_WALK_VISIT_DOWNWARD,
- TrAmlTransformWalk, NULL, NULL);
- UtEndEvent (Event);
-
- /* Generate AML opcodes corresponding to the parse tokens */
-
- Event = UtBeginEvent ("Generate AML opcodes");
- DbgPrint (ASL_DEBUG_OUTPUT, "\nGenerating AML opcodes\n\n");
- TrWalkParseTree (RootNode, ASL_WALK_VISIT_UPWARD, NULL,
- OpcAmlOpcodeWalk, NULL);
- UtEndEvent (Event);
-
- /*
- * Now that the input is parsed, we can open the AML output file.
- * Note: by default, the name of this file comes from the table descriptor
- * within the input file.
- */
- Event = UtBeginEvent ("Open AML output file");
- Status = FlOpenAmlOutputFile (Gbl_OutputFilenamePrefix);
- if (ACPI_FAILURE (Status))
- {
- AePrintErrorLog (ASL_FILE_STDERR);
- return -1;
- }
- UtEndEvent (Event);
-
- /* Interpret and generate all compile-time constants */
-
- Event = UtBeginEvent ("Constant folding via AML interpreter");
- DbgPrint (ASL_DEBUG_OUTPUT,
- "\nInterpreting compile-time constant expressions\n\n");
- TrWalkParseTree (RootNode, ASL_WALK_VISIT_DOWNWARD,
- OpcAmlConstantWalk, NULL, NULL);
- UtEndEvent (Event);
-
- /* Update AML opcodes if necessary, after constant folding */
-
- Event = UtBeginEvent ("Updating AML opcodes after constant folding");
- DbgPrint (ASL_DEBUG_OUTPUT,
- "\nUpdating AML opcodes after constant folding\n\n");
- TrWalkParseTree (RootNode, ASL_WALK_VISIT_UPWARD,
- NULL, OpcAmlOpcodeUpdateWalk, NULL);
- UtEndEvent (Event);
-
- /* Calculate all AML package lengths */
-
- Event = UtBeginEvent ("Generate AML package lengths");
- DbgPrint (ASL_DEBUG_OUTPUT, "\nGenerating Package lengths\n\n");
- TrWalkParseTree (RootNode, ASL_WALK_VISIT_UPWARD, NULL,
- LnPackageLengthWalk, NULL);
- UtEndEvent (Event);
-
- if (Gbl_ParseOnlyFlag)
- {
- AePrintErrorLog (ASL_FILE_STDOUT);
- UtDisplaySummary (ASL_FILE_STDOUT);
- if (Gbl_DebugFlag)
- {
- /* Print error summary to the debug file */
-
- AePrintErrorLog (ASL_FILE_STDERR);
- UtDisplaySummary (ASL_FILE_STDERR);
- }
- return 0;
- }
-
- /*
- * Create an internal namespace and use it as a symbol table
- */
-
- /* Namespace loading */
-
- Event = UtBeginEvent ("Create ACPI Namespace");
- Status = LdLoadNamespace (RootNode);
- UtEndEvent (Event);
- if (ACPI_FAILURE (Status))
- {
- return -1;
- }
-
- /* Namespace cross-reference */
-
- AslGbl_NamespaceEvent = UtBeginEvent ("Cross reference parse tree and Namespace");
- Status = LkCrossReferenceNamespace ();
- if (ACPI_FAILURE (Status))
- {
- return -1;
- }
-
- /* Namespace - Check for non-referenced objects */
-
- LkFindUnreferencedObjects ();
- UtEndEvent (AslGbl_NamespaceEvent);
-
- /*
- * Semantic analysis. This can happen only after the
- * namespace has been loaded and cross-referenced.
- *
- * part one - check control methods
- */
- Event = UtBeginEvent ("Analyze control method return types");
- AnalysisWalkInfo.MethodStack = NULL;
-
- DbgPrint (ASL_DEBUG_OUTPUT, "\nSemantic analysis - Method analysis\n\n");
- TrWalkParseTree (RootNode, ASL_WALK_VISIT_TWICE,
- AnMethodAnalysisWalkBegin,
- AnMethodAnalysisWalkEnd, &AnalysisWalkInfo);
- UtEndEvent (Event);
-
- /* Semantic error checking part two - typing of method returns */
-
- Event = UtBeginEvent ("Determine object types returned by methods");
- DbgPrint (ASL_DEBUG_OUTPUT, "\nSemantic analysis - Method typing\n\n");
- TrWalkParseTree (RootNode, ASL_WALK_VISIT_TWICE,
- AnMethodTypingWalkBegin,
- AnMethodTypingWalkEnd, NULL);
- UtEndEvent (Event);
-
- /* Semantic error checking part three - operand type checking */
-
- Event = UtBeginEvent ("Analyze AML operand types");
- DbgPrint (ASL_DEBUG_OUTPUT, "\nSemantic analysis - Operand type checking\n\n");
- TrWalkParseTree (RootNode, ASL_WALK_VISIT_TWICE,
- AnOperandTypecheckWalkBegin,
- AnOperandTypecheckWalkEnd, &AnalysisWalkInfo);
- UtEndEvent (Event);
-
- /* Semantic error checking part four - other miscellaneous checks */
-
- Event = UtBeginEvent ("Miscellaneous analysis");
- DbgPrint (ASL_DEBUG_OUTPUT, "\nSemantic analysis - miscellaneous\n\n");
- TrWalkParseTree (RootNode, ASL_WALK_VISIT_TWICE,
- AnOtherSemanticAnalysisWalkBegin,
- AnOtherSemanticAnalysisWalkEnd, &AnalysisWalkInfo);
- UtEndEvent (Event);
-
- /* Calculate all AML package lengths */
-
- Event = UtBeginEvent ("Finish AML package length generation");
- DbgPrint (ASL_DEBUG_OUTPUT, "\nGenerating Package lengths\n\n");
- TrWalkParseTree (RootNode, ASL_WALK_VISIT_UPWARD, NULL,
- LnInitLengthsWalk, NULL);
- TrWalkParseTree (RootNode, ASL_WALK_VISIT_UPWARD, NULL,
- LnPackageLengthWalk, NULL);
- UtEndEvent (Event);
-
- /* Code generation - emit the AML */
-
- Event = UtBeginEvent ("Generate AML code and write output files");
- CgGenerateAmlOutput ();
- UtEndEvent (Event);
-
- Event = UtBeginEvent ("Write optional output files");
- CmDoOutputFiles ();
- UtEndEvent (Event);
-
- UtEndEvent (FullCompile);
- CmCleanupAndExit ();
- return 0;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: CmDoOutputFiles
- *
- * PARAMETERS: None
- *
- * RETURN: None.
- *
- * DESCRIPTION: Create all "listing" type files
- *
- ******************************************************************************/
-
-void
-CmDoOutputFiles (
- void)
-{
-
- /* Create listings and hex files */
-
- LsDoListings ();
- LsDoHexOutput ();
-
- /* Dump the namespace to the .nsp file if requested */
-
- (void) LsDisplayNamespace ();
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: CmDumpEvent
- *
- * PARAMETERS: Event - A compiler event struct
- *
- * RETURN: None.
- *
- * DESCRIPTION: Dump a compiler event struct
- *
- ******************************************************************************/
-
-static void
-CmDumpEvent (
- ASL_EVENT_INFO *Event)
-{
- UINT32 Delta;
- UINT32 USec;
- UINT32 MSec;
-
- if (!Event->Valid)
- {
- return;
- }
-
- /* Delta will be in 100-nanosecond units */
-
- Delta = (UINT32) (Event->EndTime - Event->StartTime);
-
- USec = Delta / 10;
- MSec = Delta / 10000;
-
- /* Round milliseconds up */
-
- if ((USec - (MSec * 1000)) >= 500)
- {
- MSec++;
- }
-
- DbgPrint (ASL_DEBUG_OUTPUT, "%8u usec %8u msec - %s\n",
- USec, MSec, Event->EventName);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: CmCleanupAndExit
- *
- * PARAMETERS: None
- *
- * RETURN: None.
- *
- * DESCRIPTION: Close all open files and exit the compiler
- *
- ******************************************************************************/
-
-void
-CmCleanupAndExit (
- void)
-{
- UINT32 i;
-
-
- AePrintErrorLog (ASL_FILE_STDOUT);
- if (Gbl_DebugFlag)
- {
- /* Print error summary to the debug file */
-
- AePrintErrorLog (ASL_FILE_STDERR);
- }
-
- DbgPrint (ASL_DEBUG_OUTPUT, "\n\nElapsed time for major events\n\n");
- for (i = 0; i < AslGbl_NextEvent; i++)
- {
- CmDumpEvent (&AslGbl_Events[i]);
- }
-
- if (Gbl_CompileTimesFlag)
- {
- printf ("\nElapsed time for major events\n\n");
- for (i = 0; i < AslGbl_NextEvent; i++)
- {
- CmDumpEvent (&AslGbl_Events[i]);
- }
-
- printf ("\nMiscellaneous compile statistics\n\n");
- printf ("%11u : %s\n", TotalParseNodes, "Parse nodes");
- printf ("%11u : %s\n", Gbl_NsLookupCount, "Namespace searches");
- printf ("%11u : %s\n", TotalNamedObjects, "Named objects");
- printf ("%11u : %s\n", TotalMethods, "Control methods");
- printf ("%11u : %s\n", TotalAllocations, "Memory Allocations");
- printf ("%11u : %s\n", TotalAllocated, "Total allocated memory");
- printf ("%11u : %s\n", TotalFolds, "Constant subtrees folded");
- printf ("\n");
- }
-
- if (Gbl_NsLookupCount)
- {
- DbgPrint (ASL_DEBUG_OUTPUT, "\n\nMiscellaneous compile statistics\n\n");
- DbgPrint (ASL_DEBUG_OUTPUT, "%32s : %d\n", "Total Namespace searches",
- Gbl_NsLookupCount);
- DbgPrint (ASL_DEBUG_OUTPUT, "%32s : %d usec\n", "Time per search",
- ((UINT32) (AslGbl_Events[AslGbl_NamespaceEvent].EndTime -
- AslGbl_Events[AslGbl_NamespaceEvent].StartTime) /
- 10) / Gbl_NsLookupCount);
- }
-
- /* Close all open files */
-
- for (i = 2; i < ASL_MAX_FILE_TYPE; i++)
- {
- FlCloseFile (i);
- }
-
- /*
- * TBD: SourceOutput should be .TMP, then rename if we want to keep it?
- */
- if (!Gbl_SourceOutputFlag)
- {
- remove (Gbl_Files[ASL_FILE_SOURCE_OUTPUT].Filename);
- }
-
- /* Delete AML file if there are errors */
-
- if ((Gbl_ExceptionCount[ASL_ERROR] > 0) && (!Gbl_IgnoreErrors))
- {
- remove (Gbl_Files[ASL_FILE_AML_OUTPUT].Filename);
- }
-
- if (Gbl_ExceptionCount[ASL_ERROR] > ASL_MAX_ERROR_COUNT)
- {
- printf ("\nMaximum error count (%d) exceeded\n", ASL_MAX_ERROR_COUNT);
- }
-
- UtDisplaySummary (ASL_FILE_STDOUT);
-
- /*
- * Return non-zero exit code if there have been errors, unless the
- * global ignore error flag has been set
- */
- if ((Gbl_ExceptionCount[ASL_ERROR] > 0) && (!Gbl_IgnoreErrors))
- {
- exit (1);
- }
- exit (0);
-}
-
-
diff --git a/sys/contrib/dev/acpica/compiler/aslcompiler.h b/sys/contrib/dev/acpica/compiler/aslcompiler.h
deleted file mode 100644
index 6477665..0000000
--- a/sys/contrib/dev/acpica/compiler/aslcompiler.h
+++ /dev/null
@@ -1,913 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: aslcompiler.h - common include file for iASL
- * $Revision: 1.148 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ASLCOMPILER_H
-#define __ASLCOMPILER_H
-
-
-/* Microsoft-specific */
-
-#if (defined WIN32 || defined WIN64)
-
-/* warn : used #pragma pack */
-#pragma warning(disable:4103)
-
-/* warn : named type definition in parentheses */
-#pragma warning(disable:4115)
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <errno.h>
-#include <ctype.h>
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/amlresrc.h>
-#include <contrib/dev/acpica/acdebug.h>
-
-/* Compiler headers */
-
-#include <contrib/dev/acpica/compiler/asldefine.h>
-#include <contrib/dev/acpica/compiler/asltypes.h>
-#include <contrib/dev/acpica/compiler/aslglobal.h>
-
-
-/*******************************************************************************
- *
- * Compiler prototypes
- *
- ******************************************************************************/
-
-/*
- * parser - generated from flex/bison, lex/yacc, etc.
- */
-int
-AslCompilerparse(
- void);
-
-ACPI_PARSE_OBJECT *
-AslDoError (
- void);
-
-int
-AslCompilerlex(
- void);
-
-void
-ResetCurrentLineBuffer (
- void);
-
-void
-InsertLineBuffer (
- int SourceChar);
-
-int
-AslPopInputFileStack (
- void);
-
-void
-AslPushInputFileStack (
- FILE *InputFile,
- char *Filename);
-
-
-/*
- * aslcompile - compile mainline
- */
-void
-AslCompilerSignon (
- UINT32 FileId);
-
-void
-AslCompilerFileHeader (
- UINT32 FileId);
-
-int
-CmDoCompile (
- void);
-
-void
-CmDoOutputFiles (
- void);
-
-void
-CmCleanupAndExit (
- void);
-
-
-/*
- * aslanalyze - semantic analysis
- */
-ACPI_STATUS
-AnOtherSemanticAnalysisWalkBegin (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-ACPI_STATUS
-AnOtherSemanticAnalysisWalkEnd (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-ACPI_STATUS
-AnOperandTypecheckWalkBegin (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-ACPI_STATUS
-AnOperandTypecheckWalkEnd (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-ACPI_STATUS
-AnMethodAnalysisWalkBegin (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-ACPI_STATUS
-AnMethodAnalysisWalkEnd (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-ACPI_STATUS
-AnMethodTypingWalkBegin (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-ACPI_STATUS
-AnMethodTypingWalkEnd (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-
-/*
- * aslerror - error handling/reporting
- */
-void
-AslError (
- UINT8 Level,
- UINT8 MessageId,
- ACPI_PARSE_OBJECT *Op,
- char *ExtraMessage);
-
-void
-AslCoreSubsystemError (
- ACPI_PARSE_OBJECT *Op,
- ACPI_STATUS Status,
- char *ExtraMessage,
- BOOLEAN Abort);
-
-int
-AslCompilererror(
- char *s);
-
-void
-AslCommonError (
- UINT8 Level,
- UINT8 MessageId,
- UINT32 CurrentLineNumber,
- UINT32 LogicalLineNumber,
- UINT32 LogicalByteOffset,
- UINT32 Column,
- char *Filename,
- char *ExtraMessage);
-
-void
-AePrintException (
- UINT32 FileId,
- ASL_ERROR_MSG *Enode,
- char *Header);
-
-void
-AePrintErrorLog (
- UINT32 FileId);
-
-ACPI_PHYSICAL_ADDRESS
-AeLocalGetRootPointer (
- void);
-
-
-/*
- * asllisting - generate all "listing" type files
- */
-void
-LsDoListings (
- void);
-
-void
-LsWriteNodeToAsmListing (
- ACPI_PARSE_OBJECT *Op);
-
-void
-LsWriteNode (
- ACPI_PARSE_OBJECT *Op,
- UINT32 FileId);
-
-void
-LsDoHexOutput (
- void);
-
-void
-LsDumpParseTree (
- void);
-
-/*
- * aslfold - constant folding
- */
-ACPI_STATUS
-OpcAmlConstantWalk (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-
-/*
- * aslopcodes - generate AML opcodes
- */
-ACPI_STATUS
-OpcAmlOpcodeWalk (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-ACPI_STATUS
-OpcAmlOpcodeUpdateWalk (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-void
-OpcGenerateAmlOpcode (
- ACPI_PARSE_OBJECT *Op);
-
-UINT32
-OpcSetOptimalIntegerSize (
- ACPI_PARSE_OBJECT *Op);
-
-void
-OpcGetIntegerWidth (
- ACPI_PARSE_OBJECT *Op);
-
-
-/*
- * asloperands - generate AML operands for the AML opcodes
- */
-ACPI_PARSE_OBJECT *
-UtGetArg (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Argn);
-
-void
-OpnGenerateAmlOperands (
- ACPI_PARSE_OBJECT *Op);
-
-void
-OpnDoPackage (
- ACPI_PARSE_OBJECT *Op);
-
-
-/*
- * aslopt - optmization
- */
-void
-OptOptimizeNamePath (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Flags,
- ACPI_WALK_STATE *WalkState,
- char *AmlNameString,
- ACPI_NAMESPACE_NODE *TargetNode);
-
-
-/*
- * aslcodegen - code generation
- */
-void
-CgGenerateAmlOutput (
- void);
-
-
-/*
- * asllength - calculate/adjust AML package lengths
- */
-ACPI_STATUS
-LnPackageLengthWalk (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-ACPI_STATUS
-LnInitLengthsWalk (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-void
-CgGenerateAmlLengths (
- ACPI_PARSE_OBJECT *Op);
-
-
-/*
- * aslmap - opcode mappings and reserved method names
- */
-ACPI_OBJECT_TYPE
-AslMapNamedOpcodeToDataType (
- UINT16 Opcode);
-
-void
-MpDisplayReservedNames (
- void);
-
-
-/*
- * asltransform - parse tree transformations
- */
-ACPI_STATUS
-TrAmlTransformWalk (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-
-/*
- * asltree - parse tree support
- */
-ACPI_STATUS
-TrWalkParseTree (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Visitation,
- ASL_WALK_CALLBACK DescendingCallback,
- ASL_WALK_CALLBACK AscendingCallback,
- void *Context);
-
-/* Values for "Visitation" parameter above */
-
-#define ASL_WALK_VISIT_DOWNWARD 0x01
-#define ASL_WALK_VISIT_UPWARD 0x02
-#define ASL_WALK_VISIT_TWICE (ASL_WALK_VISIT_DOWNWARD | ASL_WALK_VISIT_UPWARD)
-
-
-ACPI_PARSE_OBJECT *
-TrAllocateNode (
- UINT32 ParseOpcode);
-
-void
-TrReleaseNode (
- ACPI_PARSE_OBJECT *Op);
-
-ACPI_PARSE_OBJECT *
-TrUpdateNode (
- UINT32 ParseOpcode,
- ACPI_PARSE_OBJECT *Op);
-
-ACPI_PARSE_OBJECT *
-TrCreateNode (
- UINT32 ParseOpcode,
- UINT32 NumChildren,
- ...);
-
-ACPI_PARSE_OBJECT *
-TrCreateLeafNode (
- UINT32 ParseOpcode);
-
-ACPI_PARSE_OBJECT *
-TrCreateValuedLeafNode (
- UINT32 ParseOpcode,
- ACPI_INTEGER Value);
-
-ACPI_PARSE_OBJECT *
-TrLinkChildren (
- ACPI_PARSE_OBJECT *Op,
- UINT32 NumChildren,
- ...);
-
-void
-TrSetEndLineNumber (
- ACPI_PARSE_OBJECT *Op);
-
-void
-TrWalkTree (
- void);
-
-ACPI_PARSE_OBJECT *
-TrLinkPeerNode (
- ACPI_PARSE_OBJECT *Op1,
- ACPI_PARSE_OBJECT *Op2);
-
-ACPI_PARSE_OBJECT *
-TrLinkChildNode (
- ACPI_PARSE_OBJECT *Op1,
- ACPI_PARSE_OBJECT *Op2);
-
-ACPI_PARSE_OBJECT *
-TrSetNodeFlags (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Flags);
-
-ACPI_PARSE_OBJECT *
-TrLinkPeerNodes (
- UINT32 NumPeers,
- ...);
-
-
-/*
- * aslfiles - File I/O support
- */
-void
-AslAbort (
- void);
-
-void
-FlOpenIncludeFile (
- ACPI_PARSE_OBJECT *Op);
-
-void
-FlFileError (
- UINT32 FileId,
- UINT8 ErrorId);
-
-ACPI_STATUS
-FlReadFile (
- UINT32 FileId,
- void *Buffer,
- UINT32 Length);
-
-void
-FlWriteFile (
- UINT32 FileId,
- void *Buffer,
- UINT32 Length);
-
-void
-FlSeekFile (
- UINT32 FileId,
- long Offset);
-
-void
-FlCloseFile (
- UINT32 FileId);
-
-void
-FlPrintFile (
- UINT32 FileId,
- char *Format,
- ...);
-
-void
-FlSetLineNumber (
- ACPI_PARSE_OBJECT *Op);
-
-ACPI_STATUS
-FlOpenInputFile (
- char *InputFilename);
-
-ACPI_STATUS
-FlOpenAmlOutputFile (
- char *InputFilename);
-
-ACPI_STATUS
-FlOpenMiscOutputFiles (
- char *InputFilename);
-
-
-/*
- * asload - load namespace in prep for cross reference
- */
-ACPI_STATUS
-LdLoadNamespace (
- ACPI_PARSE_OBJECT *RootOp);
-
-
-/*
- * asllookup - namespace cross reference
- */
-ACPI_STATUS
-LkCrossReferenceNamespace (
- void);
-
-void
-LkFindUnreferencedObjects (
- void);
-
-ACPI_STATUS
-LsDisplayNamespace (
- void);
-
-
-/*
- * aslutils - common compiler utilites
- */
-void
-DbgPrint (
- UINT32 Type,
- char *Format,
- ...);
-
-/* Type values for above */
-
-#define ASL_DEBUG_OUTPUT 0
-#define ASL_PARSE_OUTPUT 1
-#define ASL_TREE_OUTPUT 2
-
-void
-UtDisplayConstantOpcodes (
- void);
-
-UINT8
-UtBeginEvent (
- char *Name);
-
-void
-UtEndEvent (
- UINT8 Event);
-
-void *
-UtLocalCalloc (
- UINT32 Size);
-
-void
-UtPrintFormattedName (
- UINT16 ParseOpcode,
- UINT32 Level);
-
-void
-UtDisplaySummary (
- UINT32 FileId);
-
-UINT8
-UtHexCharToValue (
- int HexChar);
-
-void
-UtConvertByteToHex (
- UINT8 RawByte,
- UINT8 *Buffer);
-
-void
-UtConvertByteToAsmHex (
- UINT8 RawByte,
- UINT8 *Buffer);
-
-char *
-UtGetOpName (
- UINT32 ParseOpcode);
-
-void
-UtSetParseOpName (
- ACPI_PARSE_OBJECT *Op);
-
-char *
-UtGetStringBuffer (
- UINT32 Length);
-
-ACPI_STATUS
-UtInternalizeName (
- char *ExternalName,
- char **ConvertedName);
-
-void
-UtAttachNamepathToOwner (
- ACPI_PARSE_OBJECT *Op,
- ACPI_PARSE_OBJECT *NameNode);
-
-ACPI_PARSE_OBJECT *
-UtCheckIntegerRange (
- ACPI_PARSE_OBJECT *Op,
- UINT32 LowValue,
- UINT32 HighValue);
-
-ACPI_INTEGER
-UtDoConstant (
- char *String);
-
-
-/*
- * aslresource - Resource template generation 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 DefaultBit);
-
-ACPI_PARSE_OBJECT *
-RsCompleteNodeAndGetNext (
- ACPI_PARSE_OBJECT *Op);
-
-void
-RsCheckListForDuplicates (
- ACPI_PARSE_OBJECT *Op);
-
-ASL_RESOURCE_NODE *
-RsDoOneResourceDescriptor (
- ACPI_PARSE_OBJECT *DescriptorTypeOp,
- UINT32 CurrentByteOffset,
- UINT8 *State);
-
-/* Values for State above */
-
-#define ACPI_RSTATE_NORMAL 0
-#define ACPI_RSTATE_START_DEPENDENT 1
-#define ACPI_RSTATE_DEPENDENT_LIST 2
-
-UINT32
-RsLinkDescriptorChain (
- ASL_RESOURCE_NODE **PreviousRnode,
- ASL_RESOURCE_NODE *Rnode);
-
-void
-RsDoResourceTemplate (
- ACPI_PARSE_OBJECT *Op);
-
-
-/*
- * aslrestype1 - generate Small descriptors
- */
-ASL_RESOURCE_NODE *
-RsDoEndTagDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-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 *
-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);
-
-
-/*
- * aslrestype2 - generate Large descriptors
- */
-ASL_RESOURCE_NODE *
-RsDoInterruptDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoDwordIoDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoDwordMemoryDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoDwordSpaceDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoExtendedIoDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoExtendedMemoryDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoExtendedSpaceDescriptor (
- 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 *
-RsDoQwordSpaceDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoWordIoDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset);
-
-ASL_RESOURCE_NODE *
-RsDoWordSpaceDescriptor (
- 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 /* __ASLCOMPILER_H */
-
diff --git a/sys/contrib/dev/acpica/compiler/aslcompiler.l b/sys/contrib/dev/acpica/compiler/aslcompiler.l
deleted file mode 100644
index 78be4ea..0000000
--- a/sys/contrib/dev/acpica/compiler/aslcompiler.l
+++ /dev/null
@@ -1,1182 +0,0 @@
-
-%{
-/******************************************************************************
- *
- * Module Name: aslcompiler.l - Flex input file
- * $Revision: 1.79 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <stdlib.h>
-#include <string.h>
-#include <contrib/dev/acpica/compiler/aslcompiler.h>
-#include "aslcompiler.y.h"
-YYSTYPE AslCompilerlval;
-
-/*
- * Generation: Use the following command line:
- *
- * flex.exe -PAslCompiler -i -o$(InputPath).c $(InputPath)
- *
- * -i: Scanner must be case-insensitive
- */
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("aslscan")
-char
-comment (void);
-char
-comment2 (void);
-void
-count (int type);
-char
-literal (void);
-void
-copy (void);
-
-/*! [Begin] no source code translation */
-
-%}
-
-
-LeadNameChar [A-Za-z_]
-DigitChar [0-9]
-HexDigitChar [A-Fa-f0-9]
-RootChar [\\]
-Nothing []
-
-NameChar [A-Za-z_0-9]
-NameSeg1 {LeadNameChar}{NameChar}
-NameSeg2 {LeadNameChar}{NameChar}{NameChar}
-NameSeg3 {LeadNameChar}{NameChar}{NameChar}{NameChar}
-NameSeg {LeadNameChar}|{NameSeg1}|{NameSeg2}|{NameSeg3}
-
-NameString {RootChar}|{RootChar}{NamePath}|[\^]+{NamePath}|{NonEmptyNamePath}
-NamePath {NonEmptyNamePath}?
-NonEmptyNamePath {NameSeg}{NamePathTail}*
-NamePathTail [.]{NameSeg}
-
-%%
-
-[ ] { count (0); }
-[\n] { count (0); }
-[ \t] { count (0); }
-
-
-"/*" { if (!comment ()) yyterminate (); }
-"//" { if (!comment2 ()) yyterminate (); }
-
-"\"" { if (literal ()) return (PARSEOP_STRING_LITERAL); else yyterminate (); }
-
-
-0[xX]{HexDigitChar}+ |
-{DigitChar}+ { AslCompilerlval.i = UtDoConstant ((char *) AslCompilertext);
- count (1); return (PARSEOP_INTEGER); }
-
-"Include" { count (1); return (PARSEOP_INCLUDE); }
-"#include" { count (1); return (PARSEOP_INCLUDE_CSTYLE); }
-"#line" { count (1); return (PARSEOP_LINE_CSTYLE); }
-"External" { count (1); return (PARSEOP_EXTERNAL); }
-
-
-"Ones" { count (1); return (PARSEOP_ONES); }
-"One" { count (1); return (PARSEOP_ONE); }
-"Zero" { count (1); return (PARSEOP_ZERO); }
-"Revision" { count (1); return (PARSEOP_REVISION); }
-
-"Offset" { count (1); return (PARSEOP_OFFSET); }
-"AccessAs" { count (1); return (PARSEOP_ACCESSAS); }
-"BankField" { count (2); return (PARSEOP_BANKFIELD); }
-"CreateBitField" { count (2); return (PARSEOP_CREATEBITFIELD); }
-"CreateByteField" { count (2); return (PARSEOP_CREATEBYTEFIELD); }
-"CreateDWordField" { count (2); return (PARSEOP_CREATEDWORDFIELD); }
-"CreateField" { count (2); return (PARSEOP_CREATEFIELD); }
-"CreateQWordField" { count (2); return (PARSEOP_CREATEQWORDFIELD); }
-"CreateWordField" { count (2); return (PARSEOP_CREATEWORDFIELD); }
-"DataTableRegion" { count (2); return (PARSEOP_DATATABLEREGION); }
-"Device" { count (2); return (PARSEOP_DEVICE); }
-"Event" { count (2); return (PARSEOP_EVENT); }
-"Field" { count (2); return (PARSEOP_FIELD); }
-"Function" { count (2); return (PARSEOP_FUNCTION); }
-"IndexField" { count (2); return (PARSEOP_INDEXFIELD); }
-"Method" { count (2); return (PARSEOP_METHOD); }
-"Mutex" { count (2); return (PARSEOP_MUTEX); }
-"OperationRegion" { count (2); return (PARSEOP_OPERATIONREGION); }
-"PowerResource" { count (2); return (PARSEOP_POWERRESOURCE); }
-"Processor" { count (2); return (PARSEOP_PROCESSOR); }
-"ThermalZone" { count (2); return (PARSEOP_THERMALZONE); }
-"Alias" { count (2); return (PARSEOP_ALIAS); }
-"Name" { count (2); return (PARSEOP_NAME); }
-"Scope" { count (2); return (PARSEOP_SCOPE); }
-"Break" { count (3); return (PARSEOP_BREAK); }
-"BreakPoint" { count (3); return (PARSEOP_BREAKPOINT); }
-"Continue" { count (3); return (PARSEOP_CONTINUE); }
-"Fatal" { count (3); return (PARSEOP_FATAL); }
-"If" { count (3); return (PARSEOP_IF); }
-"Else" { count (3); return (PARSEOP_ELSE); }
-"ElseIf" { count (3); return (PARSEOP_ELSEIF); }
-"Load" { count (3); return (PARSEOP_LOAD); }
-"Noop" { count (3); return (PARSEOP_NOOP); }
-"Notify" { count (3); return (PARSEOP_NOTIFY); }
-"Release" { count (3); return (PARSEOP_RELEASE); }
-"Reset" { count (3); return (PARSEOP_RESET); }
-"Return" { count (3); return (PARSEOP_RETURN); }
-"Signal" { count (3); return (PARSEOP_SIGNAL); }
-"Sleep" { count (3); return (PARSEOP_SLEEP); }
-"Stall" { count (3); return (PARSEOP_STALL); }
-"Switch" { count (3); return (PARSEOP_SWITCH); }
-"Case" { count (3); return (PARSEOP_CASE); }
-"Default" { count (3); return (PARSEOP_DEFAULT); }
-"Unload" { count (3); return (PARSEOP_UNLOAD); }
-"While" { count (3); return (PARSEOP_WHILE); }
-
-"Acquire" { count (3); return (PARSEOP_ACQUIRE); }
-"Add" { count (3); return (PARSEOP_ADD); }
-"And" { count (3); return (PARSEOP_AND); }
-"Concatenate" { count (3); return (PARSEOP_CONCATENATE); }
-"ConcatenateResTemplate" { count (3); return (PARSEOP_CONCATENATERESTEMPLATE); }
-"CondRefOf" { count (3); return (PARSEOP_CONDREFOF); }
-"CopyObject" { count (3); return (PARSEOP_COPYOBJECT); }
-"Decrement" { count (3); return (PARSEOP_DECREMENT); }
-"DeRefOf" { count (3); return (PARSEOP_DEREFOF); }
-"Divide" { count (3); return (PARSEOP_DIVIDE); }
-"FindSetLeftBit" { count (3); return (PARSEOP_FINDSETLEFTBIT); }
-"FindSetRightBit" { count (3); return (PARSEOP_FINDSETRIGHTBIT); }
-"FromBCD" { count (3); return (PARSEOP_FROMBCD); }
-"Increment" { count (3); return (PARSEOP_INCREMENT); }
-"Index" { count (3); return (PARSEOP_INDEX); }
-"LAnd" { count (3); return (PARSEOP_LAND); }
-"LEqual" { count (3); return (PARSEOP_LEQUAL); }
-"LGreater" { count (3); return (PARSEOP_LGREATER); }
-"LGreaterEqual" { count (3); return (PARSEOP_LGREATEREQUAL); }
-"LLess" { count (3); return (PARSEOP_LLESS); }
-"LLessEqual" { count (3); return (PARSEOP_LLESSEQUAL); }
-"LNot" { count (3); return (PARSEOP_LNOT); }
-"LNotEqual" { count (3); return (PARSEOP_LNOTEQUAL); }
-"LoadTable" { count (3); return (PARSEOP_LOADTABLE); }
-"LOr" { count (3); return (PARSEOP_LOR); }
-"Match" { count (3); return (PARSEOP_MATCH); }
-"Mid" { count (3); return (PARSEOP_MID); }
-"Mod" { count (3); return (PARSEOP_MOD); }
-"Multiply" { count (3); return (PARSEOP_MULTIPLY); }
-"NAnd" { count (3); return (PARSEOP_NAND); }
-"NOr" { count (3); return (PARSEOP_NOR); }
-"Not" { count (3); return (PARSEOP_NOT); }
-"ObjectType" { count (3); return (PARSEOP_OBJECTTYPE); }
-"Or" { count (3); return (PARSEOP_OR); }
-"RefOf" { count (3); return (PARSEOP_REFOF); }
-"ShiftLeft" { count (3); return (PARSEOP_SHIFTLEFT); }
-"ShiftRight" { count (3); return (PARSEOP_SHIFTRIGHT); }
-"SizeOf" { count (3); return (PARSEOP_SIZEOF); }
-"Store" { count (3); return (PARSEOP_STORE); }
-"Subtract" { count (3); return (PARSEOP_SUBTRACT); }
-"Timer" { count (3); return (PARSEOP_TIMER); }
-"ToBCD" { count (3); return (PARSEOP_TOBCD); }
-"ToBuffer" { count (3); return (PARSEOP_TOBUFFER); }
-"ToDecimalString" { count (3); return (PARSEOP_TODECIMALSTRING); }
-"ToHexString" { count (3); return (PARSEOP_TOHEXSTRING); }
-"ToInteger" { count (3); return (PARSEOP_TOINTEGER); }
-"ToString" { count (3); return (PARSEOP_TOSTRING); }
-"Wait" { count (3); return (PARSEOP_WAIT); }
-"XOr" { count (3); return (PARSEOP_XOR); }
-
-"Arg0" { count (1); return (PARSEOP_ARG0); }
-"Arg1" { count (1); return (PARSEOP_ARG1); }
-"Arg2" { count (1); return (PARSEOP_ARG2); }
-"Arg3" { count (1); return (PARSEOP_ARG3); }
-"Arg4" { count (1); return (PARSEOP_ARG4); }
-"Arg5" { count (1); return (PARSEOP_ARG5); }
-"Arg6" { count (1); return (PARSEOP_ARG6); }
-
-"Local0" { count (1); return (PARSEOP_LOCAL0); }
-"Local1" { count (1); return (PARSEOP_LOCAL1); }
-"Local2" { count (1); return (PARSEOP_LOCAL2); }
-"Local3" { count (1); return (PARSEOP_LOCAL3); }
-"Local4" { count (1); return (PARSEOP_LOCAL4); }
-"Local5" { count (1); return (PARSEOP_LOCAL5); }
-"Local6" { count (1); return (PARSEOP_LOCAL6); }
-"Local7" { count (1); return (PARSEOP_LOCAL7); }
-
-"Debug" { count (1); return (PARSEOP_DEBUG); }
-
-"DefinitionBlock" { count (1); return (PARSEOP_DEFINITIONBLOCK); }
-"Buffer" { count (1); return (PARSEOP_BUFFER); }
-"Package" { count (1); return (PARSEOP_PACKAGE); }
-
-"EISAID" { count (1); return (PARSEOP_EISAID); }
-"ResourceTemplate" { count (1); return (PARSEOP_RESOURCETEMPLATE); }
-"ToUUID" { count (1); return (PARSEOP_TOUUID); }
-"Unicode" { count (1); return (PARSEOP_UNICODE); }
-"DMA" { count (1); return (PARSEOP_DMA); }
-"DWordIO" { count (1); return (PARSEOP_DWORDIO); }
-"DWordMemory" { count (1); return (PARSEOP_DWORDMEMORY); }
-"DWordSpace" { count (1); return (PARSEOP_DWORDSPACE); }
-"EndDependentFn" { count (1); return (PARSEOP_ENDDEPENDENTFN); }
-"ExtendedIO" { count (1); return (PARSEOP_EXTENDEDIO); }
-"ExtendedMemory" { count (1); return (PARSEOP_EXTENDEDMEMORY); }
-"ExtendedSpace" { count (1); return (PARSEOP_EXTENDEDSPACE); }
-"FixedIO" { count (1); return (PARSEOP_FIXEDIO); }
-"Interrupt" { count (1); return (PARSEOP_INTERRUPT); }
-"IO" { count (1); return (PARSEOP_IO); }
-"IRQNoFlags" { count (1); return (PARSEOP_IRQNOFLAGS); }
-"IRQ" { count (1); return (PARSEOP_IRQ); }
-"Memory24" { count (1); return (PARSEOP_MEMORY24); }
-"Memory32Fixed" { count (1); return (PARSEOP_MEMORY32FIXED); }
-"Memory32" { count (1); return (PARSEOP_MEMORY32); }
-"QWordIO" { count (1); return (PARSEOP_QWORDIO); }
-"QWordMemory" { count (1); return (PARSEOP_QWORDMEMORY); }
-"QWordSpace" { count (1); return (PARSEOP_QWORDSPACE); }
-"Register" { count (1); return (PARSEOP_REGISTER); }
-"StartDependentFn" { count (1); return (PARSEOP_STARTDEPENDENTFN); }
-"StartDependentFnNoPri" { count (1); return (PARSEOP_STARTDEPENDENTFN_NOPRI); }
-"VendorLong" { count (1); return (PARSEOP_VENDORLONG); }
-"VendorShort" { count (1); return (PARSEOP_VENDORSHORT); }
-"WordBusNumber" { count (1); return (PARSEOP_WORDBUSNUMBER); }
-"WordIO" { count (1); return (PARSEOP_WORDIO); }
-"WordSpace" { count (1); return (PARSEOP_WORDSPACE); }
-
-"UnknownObj" { count (0); return (PARSEOP_OBJECTTYPE_UNK); }
-"IntObj" { count (0); return (PARSEOP_OBJECTTYPE_INT); }
-"StrObj" { count (0); return (PARSEOP_OBJECTTYPE_STR); }
-"BuffObj" { count (0); return (PARSEOP_OBJECTTYPE_BUF); }
-"PkgObj" { count (0); return (PARSEOP_OBJECTTYPE_PKG); }
-"FieldUnitObj" { count (0); return (PARSEOP_OBJECTTYPE_FLD); }
-"DeviceObj" { count (0); return (PARSEOP_OBJECTTYPE_DEV); }
-"EventObj" { count (0); return (PARSEOP_OBJECTTYPE_EVT); }
-"MethodObj" { count (0); return (PARSEOP_OBJECTTYPE_MTH); }
-"MutexObj" { count (0); return (PARSEOP_OBJECTTYPE_MTX); }
-"OpRegionObj" { count (0); return (PARSEOP_OBJECTTYPE_OPR); }
-"PowerResObj" { count (0); return (PARSEOP_OBJECTTYPE_POW); }
-"ProcessorObj" { count (0); return (PARSEOP_OBJECTTYPE_PRO); }
-"ThermalZoneObj" { count (0); return (PARSEOP_OBJECTTYPE_THZ); }
-"BuffFieldObj" { count (0); return (PARSEOP_OBJECTTYPE_BFF); }
-"DDBHandleObj" { count (0); return (PARSEOP_OBJECTTYPE_DDB); }
-
-"AnyAcc" { count (0); return (PARSEOP_ACCESSTYPE_ANY); }
-"ByteAcc" { count (0); return (PARSEOP_ACCESSTYPE_BYTE); }
-"WordAcc" { count (0); return (PARSEOP_ACCESSTYPE_WORD); }
-"DWordAcc" { count (0); return (PARSEOP_ACCESSTYPE_DWORD); }
-"QWordAcc" { count (0); return (PARSEOP_ACCESSTYPE_QWORD); }
-"BufferAcc" { count (0); return (PARSEOP_ACCESSTYPE_BUF); }
-
-"Lock" { count (0); return (PARSEOP_LOCKRULE_LOCK); }
-"NoLock" { count (0); return (PARSEOP_LOCKRULE_NOLOCK); }
-
-"Preserve" { count (0); return (PARSEOP_UPDATERULE_PRESERVE); }
-"WriteAsOnes" { count (0); return (PARSEOP_UPDATERULE_ONES); }
-"WriteAsZeros" { count (0); return (PARSEOP_UPDATERULE_ZEROS); }
-
-"Serialized" { count (0); return (PARSEOP_SERIALIZERULE_SERIAL); }
-"NotSerialized" { count (0); return (PARSEOP_SERIALIZERULE_NOTSERIAL); }
-
-"SystemIO" { count (0); return (PARSEOP_REGIONSPACE_IO); }
-"SystemMemory" { count (0); return (PARSEOP_REGIONSPACE_MEM); }
-"PCI_Config" { count (0); return (PARSEOP_REGIONSPACE_PCI); }
-"EmbeddedControl" { count (0); return (PARSEOP_REGIONSPACE_EC); }
-"SMBus" { count (0); return (PARSEOP_REGIONSPACE_SMBUS); }
-"SystemCMOS" { count (0); return (PARSEOP_REGIONSPACE_CMOS); }
-"PciBarTarget" { count (0); return (PARSEOP_REGIONSPACE_PCIBAR); }
-
-"FFixedHW" { count (0); return (PARSEOP_ADDRESSSPACE_FFIXEDHW); }
-
-"SMBQuick" { count (0); return (PARSEOP_ACCESSATTRIB_QUICK); }
-"SMBSendReceive" { count (0); return (PARSEOP_ACCESSATTRIB_SND_RCV); }
-"SMBByte" { count (0); return (PARSEOP_ACCESSATTRIB_BYTE); }
-"SMBWord" { count (0); return (PARSEOP_ACCESSATTRIB_WORD); }
-"SMBBlock" { count (0); return (PARSEOP_ACCESSATTRIB_BLOCK); }
-"SMBProcessCall" { count (0); return (PARSEOP_ACCESSATTRIB_WORD_CALL); }
-"SMBBlockProcessCall" { count (0); return (PARSEOP_ACCESSATTRIB_BLOCK_CALL); }
-
-"MTR" { count (0); return (PARSEOP_MATCHTYPE_MTR); }
-"MEQ" { count (0); return (PARSEOP_MATCHTYPE_MEQ); }
-"MLE" { count (0); return (PARSEOP_MATCHTYPE_MLE); }
-"MLT" { count (0); return (PARSEOP_MATCHTYPE_MLT); }
-"MGE" { count (0); return (PARSEOP_MATCHTYPE_MGE); }
-"MGT" { count (0); return (PARSEOP_MATCHTYPE_MGT); }
-
-"Compatibility" { count (0); return (PARSEOP_DMATYPE_COMPATIBILITY); }
-"TypeA" { count (0); return (PARSEOP_DMATYPE_A); }
-"TypeB" { count (0); return (PARSEOP_DMATYPE_B); }
-"TypeF" { count (0); return (PARSEOP_DMATYPE_F); }
-
-"BusMaster" { count (0); return (PARSEOP_BUSMASTERTYPE_MASTER); }
-"NotBusMaster" { count (0); return (PARSEOP_BUSMASTERTYPE_NOTMASTER); }
-
-"Transfer8" { count (0); return (PARSEOP_XFERTYPE_8); }
-"Transfer8_16" { count (0); return (PARSEOP_XFERTYPE_8_16); }
-"Transfer16" { count (0); return (PARSEOP_XFERTYPE_16); }
-
-"ResourceConsumer" { count (0); return (PARSEOP_RESOURCETYPE_CONSUMER); }
-"ResourceProducer" { count (0); return (PARSEOP_RESOURCETYPE_PRODUCER); }
-
-"MinFixed" { count (0); return (PARSEOP_MINTYPE_FIXED); }
-"MinNotFixed" { count (0); return (PARSEOP_MINTYPE_NOTFIXED); }
-
-"MaxFixed" { count (0); return (PARSEOP_MAXTYPE_FIXED); }
-"MaxNotFixed" { count (0); return (PARSEOP_MAXTYPE_NOTFIXED); }
-
-"PosDecode" { count (0); return (PARSEOP_DECODETYPE_POS); }
-"SubDecode" { count (0); return (PARSEOP_DECODETYPE_SUB); }
-
-"ISAOnlyRanges" { count (0); return (PARSEOP_RANGETYPE_ISAONLY); }
-"NonISAOnlyRanges" { count (0); return (PARSEOP_RANGETYPE_NONISAONLY); }
-"EntireRange" { count (0); return (PARSEOP_RANGETYPE_ENTIRE); }
-
-"Cacheable" { count (0); return (PARSEOP_MEMTYPE_CACHEABLE); }
-"WriteCombining" { count (0); return (PARSEOP_MEMTYPE_WRITECOMBINING); }
-"Prefetchable" { count (0); return (PARSEOP_MEMTYPE_PREFETCHABLE); }
-"NonCacheable" { count (0); return (PARSEOP_MEMTYPE_NONCACHEABLE); }
-
-"ReadWrite" { count (0); return (PARSEOP_READWRITETYPE_BOTH); }
-"ReadOnly" { count (0); return (PARSEOP_READWRITETYPE_READONLY); }
-
-"Edge" { count (0); return (PARSEOP_INTTYPE_EDGE); }
-"Level" { count (0); return (PARSEOP_INTTYPE_LEVEL); }
-
-"ActiveHigh" { count (0); return (PARSEOP_INTLEVEL_ACTIVEHIGH); }
-"ActiveLow" { count (0); return (PARSEOP_INTLEVEL_ACTIVELOW); }
-
-"Shared" { count (0); return (PARSEOP_SHARETYPE_SHARED); }
-"Exclusive" { count (0); return (PARSEOP_SHARETYPE_EXCLUSIVE); }
-
-"Decode10" { count (0); return (PARSEOP_IODECODETYPE_10); }
-"Decode16" { count (0); return (PARSEOP_IODECODETYPE_16); }
-
-"TypeTranslation" { count (0); return (PARSEOP_TYPE_TRANSLATION); }
-"TypeStatic" { count (0); return (PARSEOP_TYPE_STATIC); }
-
-"SparseTranslation" { count (0); return (PARSEOP_TRANSLATIONTYPE_SPARSE); }
-"DenseTranslation" { count (0); return (PARSEOP_TRANSLATIONTYPE_DENSE); }
-
-"AddressRangeMemory" { count (0); return (PARSEOP_ADDRESSTYPE_MEMORY); }
-"AddressRangeReserved" { count (0); return (PARSEOP_ADDRESSTYPE_RESERVED); }
-"AddressRangeNVS" { count (0); return (PARSEOP_ADDRESSTYPE_NVS); }
-"AddressRangeACPI" { count (0); return (PARSEOP_ADDRESSTYPE_ACPI); }
-
-
-"{" { count (0); return('{'); }
-"}" { count (0); return('}'); }
-"," { count (0); return(','); }
-"(" { count (0); return('('); }
-")" { count (0); return(')'); }
-
-
-{NameSeg} { char *s;
- count (0);
- s=malloc (ACPI_NAME_SIZE + 1);
- if (strcmp (AslCompilertext, "\\"))
- {
- strcpy (s, "____");
- AcpiUtStrupr (AslCompilertext);
- }
- memcpy (s, AslCompilertext, strlen (AslCompilertext));
- AslCompilerlval.s = s;
- DbgPrint (ASL_PARSE_OUTPUT, "NameSeg: %s\n", s);
- return (PARSEOP_NAMESEG); }
-
-{NameString} { char *s;
- count (0);
- s=malloc (strlen (AslCompilertext)+1);
- AcpiUtStrupr (AslCompilertext);
- strcpy (s, AslCompilertext);
- s[strlen (AslCompilertext)] = 0;
- AslCompilerlval.s = s;
- DbgPrint (ASL_PARSE_OUTPUT, "NameString: %s\n", s);
- return (PARSEOP_NAMESTRING); }
-
-"*" |
-"/" { count (1);
- AslCompilererror ("Parse error, expecting ASL keyword or name");}
-
-. { count (1);
- sprintf (MsgBuffer,
- "Invalid character (0x%2.2X), expecting ASL keyword or name",
- *AslCompilertext);
- AslCompilererror (MsgBuffer);}
-
-<<EOF>> { if (AslPopInputFileStack ())
- yyterminate();
- else
- return (PARSEOP_INCLUDE_END);};
-
-%%
-
-/*! [End] no source code translation !*/
-
-typedef struct asl_file_node
-{
- FILE *File;
- UINT32 CurrentLineNumber;
- YY_BUFFER_STATE State;
- char *Filename;
- struct asl_file_node *Next;
-
-} ASL_FILE_NODE;
-
-ASL_FILE_NODE *InputStack = NULL;
-
-
-/*******************************************************************************
- *
- * FUNCTION: AslPopInputFileStack
- *
- * PARAMETERS: None
- *
- * RETURN: 0 if a node was popped, -1 otherwise
- *
- * DESCRIPTION: Pop the top of the input file stack and point the parser to
- * the saved parse buffer contained in the fnode. Also, set the
- * global line counters to the saved values. This function is
- * called when an include file reaches EOF.
- *
- ******************************************************************************/
-
-int
-AslPopInputFileStack (
- void)
-{
- ASL_FILE_NODE *Fnode;
- FILE *InputFile = NULL;
-
-
- Fnode = InputStack;
- DbgPrint (ASL_PARSE_OUTPUT, "\nPop InputFile Stack, Fnode %p\n\n", Fnode);
-
-
- if (!Fnode)
- {
- return -1;
- }
-
- /* Close the current include file */
-
- fclose (yyin);
-
- /* Update the top-of-stack */
-
- InputStack = Fnode->Next;
- InputFile = Fnode->File;
-
- /* Reset global line counter and filename */
-
- Gbl_Files[ASL_FILE_INPUT].Filename = Fnode->Filename;
- Gbl_CurrentLineNumber = Fnode->CurrentLineNumber;
-
- /* Point the parser to the popped file */
-
- yy_delete_buffer (YY_CURRENT_BUFFER);
- yy_switch_to_buffer (Fnode->State);
-
- /* All done with this node */
-
- ACPI_FREE (Fnode);
- return 0;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AslPushInputFileStack
- *
- * PARAMETERS: InputFile - Open file pointer
- * Filename - Name of the file
- *
- * RETURN: None
- *
- * DESCRIPTION: Push the InputFile onto the file stack, and point the parser
- * to this file. Called when an include file is successfully
- * opened.
- *
- ******************************************************************************/
-
-void
-AslPushInputFileStack (
- FILE *InputFile,
- char *Filename)
-{
- ASL_FILE_NODE *Fnode;
- YY_BUFFER_STATE State;
-
-
- /* Save the current state in an Fnode */
-
- Fnode = UtLocalCalloc (sizeof (ASL_FILE_NODE));
-
- Fnode->File = yyin;
- Fnode->Next = InputStack;
- Fnode->State = YY_CURRENT_BUFFER;
- Fnode->CurrentLineNumber = Gbl_CurrentLineNumber;
- Fnode->Filename = Gbl_Files[ASL_FILE_INPUT].Filename;
-
- /* Push it on the stack */
-
- InputStack = Fnode;
-
- /* Point the parser to this file */
-
- State = yy_create_buffer (InputFile, YY_BUF_SIZE);
- yy_switch_to_buffer (State);
-
- DbgPrint (ASL_PARSE_OUTPUT, "\nPush InputFile Stack, returning %p\n\n", InputFile);
-
- /* Reset the global line count and filename */
-
- Gbl_Files[ASL_FILE_INPUT].Filename = Filename;
- Gbl_CurrentLineNumber = 1;
- yyin = InputFile;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: ResetCurrentLineBuffer
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Reset the Line Buffer to zero, increment global line numbers.
- *
- ******************************************************************************/
-
-void
-ResetCurrentLineBuffer (
- void)
-{
-
- if (Gbl_Files[ASL_FILE_SOURCE_OUTPUT].Handle)
- {
- FlWriteFile (ASL_FILE_SOURCE_OUTPUT, Gbl_CurrentLineBuffer,
- Gbl_LineBufPtr - Gbl_CurrentLineBuffer);
- }
-
- Gbl_CurrentLineOffset += Gbl_CurrentColumn;
- Gbl_CurrentColumn = 0;
-
- Gbl_CurrentLineNumber++;
- Gbl_LogicalLineNumber++;
- Gbl_LineBufPtr = Gbl_CurrentLineBuffer;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: InsertLineBuffer
- *
- * PARAMETERS: SourceChar - One char from the input ASL source file
- *
- * RETURN: None
- *
- * DESCRIPTION: Put one character of the source file into the temp line buffer
- *
- ******************************************************************************/
-
-#define ASL_SPACES_PER_TAB 4
-
-void
-InsertLineBuffer (
- int SourceChar)
-{
- UINT32 i;
- UINT32 Count = 1;
-
-
- if (SourceChar == EOF)
- {
- return;
- }
-
- Gbl_InputByteCount++;
-
- /* Handle tabs. Convert to spaces */
-
- if (SourceChar == '\t')
- {
- SourceChar = ' ';
- Count = ASL_SPACES_PER_TAB -
- (Gbl_CurrentColumn & (ASL_SPACES_PER_TAB-1));
- }
-
-
- for (i = 0; i < Count; i++)
- {
- Gbl_CurrentColumn++;
-
- /* Insert the character into the line buffer */
-
- *Gbl_LineBufPtr = (UINT8) SourceChar;
- Gbl_LineBufPtr++;
-
- if (Gbl_LineBufPtr > (Gbl_CurrentLineBuffer + (ASL_LINE_BUFFER_SIZE - 1)))
- {
-#if 0
- /*
- * Warning if we have split a long source line.
- * <Probably overkill>
- */
- sprintf (MsgBuffer, "Max %d", ASL_LINE_BUFFER_SIZE);
- AslCommonError (ASL_WARNING, ASL_MSG_LONG_LINE,
- Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
- Gbl_CurrentLineOffset, Gbl_CurrentColumn,
- Gbl_Files[ASL_FILE_INPUT].Filename, MsgBuffer);
-#endif
-
- ResetCurrentLineBuffer ();
- }
- else if (SourceChar == '\n')
- {
- /* End of line */
-
- ResetCurrentLineBuffer ();
- }
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: count
- *
- * PARAMETERS: yytext - Contains the matched keyword.
- * Type - Keyword/Character type:
- * 0 = anything except a keyword
- * 1 = pseudo-keywords
- * 2 = non-executable ASL keywords
- * 3 = executable ASL keywords
- *
- * RETURN: None
- *
- * DESCRIPTION: Count keywords and put them into the line buffer
- *
- ******************************************************************************/
-
-void
-count (
- int Type)
-{
- int i;
-
-
- switch (Type)
- {
- case 2:
- TotalKeywords++;
- TotalNamedObjects++;
- break;
-
- case 3:
- TotalKeywords++;
- TotalExecutableOpcodes++;
- break;
- }
-
- for (i = 0; (yytext[i] != 0) && (yytext[i] != EOF); i++)
- {
- InsertLineBuffer (yytext[i]);
- *Gbl_LineBufPtr = 0;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: comment
- *
- * PARAMETERS: none
- *
- * RETURN: none
- *
- * DESCRIPTION: Process a standard comment.
- *
- ******************************************************************************/
-
-char
-comment (void)
-{
- char c;
- char c1 = 0;
-
-
- InsertLineBuffer ('/');
- InsertLineBuffer ('*');
-
-loop:
-
- /* Eat chars until end-of-comment */
-
- while ((c = (char) input()) != '*' && c != EOF)
- {
- InsertLineBuffer (c);
- c1 = c;
- }
-
- if (c == EOF)
- {
- goto EarlyEOF;
- }
-
- /*
- * Check for nested comment -- can help catch cases where a previous
- * comment was accidently left unterminated
- */
- if ((c1 == '/') && (c == '*'))
- {
- AslCommonError (ASL_WARNING, ASL_MSG_NESTED_COMMENT,
- Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
- Gbl_InputByteCount, Gbl_CurrentColumn,
- Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
- }
-
- /* Comment is closed only if the NEXT character is a slash */
-
- InsertLineBuffer (c);
-
- if ((c1 = (char) input()) != '/' && c1 != EOF)
- {
- unput(c1);
- goto loop;
- }
-
- if (c1 == EOF)
- {
- goto EarlyEOF;
- }
-
- InsertLineBuffer (c1);
- return TRUE;
-
-
-EarlyEOF:
- /*
- * Premature End-Of-File
- */
- AslCommonError (ASL_ERROR, ASL_MSG_EARLY_EOF,
- Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
- Gbl_CurrentLineOffset, Gbl_CurrentColumn,
- Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
- return (FALSE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: comment
- *
- * PARAMETERS: none
- *
- * RETURN: none
- *
- * DESCRIPTION: Process a new "//" comment.
- *
- ******************************************************************************/
-
-char
-comment2 (void)
-{
- char c;
-
-
- InsertLineBuffer ('/');
- InsertLineBuffer ('/');
-
- while ((c = (char) input()) != '\n' && c != EOF)
- {
- InsertLineBuffer (c);
- }
-
- if (c == EOF)
- {
- /* End of file is OK, change to newline. Let parser detect EOF later */
-
- c = '\n';
- }
-
- InsertLineBuffer (c);
- return (TRUE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: literal
- *
- * PARAMETERS: none
- *
- * RETURN: none
- *
- * DESCRIPTION: Process a string literal (surrounded by quotes)
- *
- ******************************************************************************/
-
-#define ASL_NORMAL_CHAR 0
-#define ASL_ESCAPE_SEQUENCE 1
-#define ASL_OCTAL_CONSTANT 2
-#define ASL_HEX_CONSTANT 3
-
-char
-literal (void)
-{
- char *StringBuffer = MsgBuffer;
- char *EndBuffer = MsgBuffer + ASL_MSG_BUFFER_SIZE;
- char *CleanString;
- char StringChar;
- UINT32 State = ASL_NORMAL_CHAR;
- UINT32 i = 0;
- UINT8 Digit;
- char ConvertBuffer[4];
-
-
- /*
- * Eat chars until end-of-literal.
- * NOTE: Put back the original surrounding quotes into the
- * source line buffer.
- */
- InsertLineBuffer ('\"');
- while ((StringChar = (char) input()) != EOF)
- {
- InsertLineBuffer (StringChar);
-
-DoCharacter:
-
- switch (State)
- {
- case ASL_NORMAL_CHAR:
-
- switch (StringChar)
- {
- case '\\':
- /*
- * Special handling for backslash-escape sequence. We will
- * toss the backslash and translate the escape char(s).
- */
- State = ASL_ESCAPE_SEQUENCE;
- continue;
-
- case '\"':
-
- /* String terminator */
-
- goto CompletedString;
- }
- break;
-
-
- case ASL_ESCAPE_SEQUENCE:
-
- State = ASL_NORMAL_CHAR;
- switch (StringChar)
- {
- case 'a':
- StringChar = 0x07; /* BELL */
- break;
-
- case 'b':
- StringChar = 0x08; /* BACKSPACE */
- break;
-
- case 'f':
- StringChar = 0x0C; /* FORMFEED */
- break;
-
- case 'n':
- StringChar = 0x0A; /* LINEFEED */
- break;
-
- case 'r':
- StringChar = 0x0D; /* CARRIAGE RETURN*/
- break;
-
- case 't':
- StringChar = 0x09; /* HORIZONTAL TAB */
- break;
-
- case 'v':
- StringChar = 0x0B; /* VERTICAL TAB */
- break;
-
- case 'x':
- State = ASL_HEX_CONSTANT;
- i = 0;
- continue;
-
- case '\'': /* Single Quote */
- case '\"': /* Double Quote */
- case '\\': /* Backslash */
- break;
-
- default:
-
- /* Check for an octal digit (0-7) */
-
- if (ACPI_IS_OCTAL_DIGIT (StringChar))
- {
- State = ASL_OCTAL_CONSTANT;
- ConvertBuffer[0] = StringChar;
- i = 1;
- continue;
- }
-
- /* Unknown escape sequence issue warning, but use the character */
-
- AslCommonError (ASL_WARNING, ASL_MSG_INVALID_ESCAPE,
- Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
- Gbl_CurrentLineOffset, Gbl_CurrentColumn,
- Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
- break;
- }
- break;
-
-
- case ASL_OCTAL_CONSTANT:
-
- /* Up to three octal digits allowed */
-
- if (!ACPI_IS_OCTAL_DIGIT (StringChar) ||
- (i > 2))
- {
- /*
- * Reached end of the constant. Convert the assembled ASCII
- * string and resume processing of the next character
- */
- ConvertBuffer[i] = 0;
- Digit = (UINT8) ACPI_STRTOUL (ConvertBuffer, NULL, 8);
-
- /* Check for NULL or non-ascii character (ignore if so) */
-
- if ((Digit == 0) || (Digit > ACPI_ASCII_MAX))
- {
- AslCommonError (ASL_WARNING, ASL_MSG_INVALID_STRING,
- Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
- Gbl_CurrentLineOffset, Gbl_CurrentColumn,
- Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
- }
- else
- {
- *StringBuffer = (char) Digit;
- StringBuffer++;
- if (StringBuffer >= EndBuffer)
- {
- goto BufferOverflow;
- }
- }
-
- State = ASL_NORMAL_CHAR;
- goto DoCharacter;
- break;
- }
-
- /* Append another digit of the constant */
-
- ConvertBuffer[i] = StringChar;
- i++;
- continue;
-
-
- case ASL_HEX_CONSTANT:
-
- /* Up to two hex digits allowed */
-
- if (!ACPI_IS_XDIGIT (StringChar) ||
- (i > 1))
- {
- /*
- * Reached end of the constant. Convert the assembled ASCII
- * string and resume processing of the next character
- */
- ConvertBuffer[i] = 0;
- Digit = (UINT8) ACPI_STRTOUL (ConvertBuffer, NULL, 16);
-
- /* Check for NULL or non-ascii character (ignore if so) */
-
- if ((Digit == 0) || (Digit > ACPI_ASCII_MAX))
- {
- AslCommonError (ASL_WARNING, ASL_MSG_INVALID_STRING,
- Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
- Gbl_CurrentLineOffset, Gbl_CurrentColumn,
- Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
- }
- else
- {
- *StringBuffer = (char) Digit;
- StringBuffer++;
- if (StringBuffer >= EndBuffer)
- {
- goto BufferOverflow;
- }
- }
-
- State = ASL_NORMAL_CHAR;
- goto DoCharacter;
- break;
- }
-
- /* Append another digit of the constant */
-
- ConvertBuffer[i] = StringChar;
- i++;
- continue;
- }
-
- /* Save the finished character */
-
- *StringBuffer = StringChar;
- StringBuffer++;
- if (StringBuffer >= EndBuffer)
- {
- goto BufferOverflow;
- }
- }
-
- /*
- * Premature End-Of-File
- */
- AslCommonError (ASL_ERROR, ASL_MSG_EARLY_EOF,
- Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
- Gbl_CurrentLineOffset, Gbl_CurrentColumn,
- Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
- return (FALSE);
-
-
-CompletedString:
- /*
- * Null terminate the input string and copy string to a new buffer
- */
- *StringBuffer = 0;
-
- CleanString = UtGetStringBuffer (strlen (MsgBuffer) + 1);
- if (!CleanString)
- {
- AslCommonError (ASL_ERROR, ASL_MSG_MEMORY_ALLOCATION,
- Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
- Gbl_CurrentLineOffset, Gbl_CurrentColumn,
- Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
- return (FALSE);
- }
-
- ACPI_STRCPY (CleanString, MsgBuffer);
- AslCompilerlval.s = CleanString;
- return (TRUE);
-
-
-BufferOverflow:
-
- /* Literal was too long */
-
- AslCommonError (ASL_ERROR, ASL_MSG_STRING_LENGTH,
- Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
- Gbl_CurrentLineOffset, Gbl_CurrentColumn,
- Gbl_Files[ASL_FILE_INPUT].Filename, "Max length 4096");
- return (FALSE);
-}
-
-
diff --git a/sys/contrib/dev/acpica/compiler/aslcompiler.y b/sys/contrib/dev/acpica/compiler/aslcompiler.y
deleted file mode 100644
index 0b33d38..0000000
--- a/sys/contrib/dev/acpica/compiler/aslcompiler.y
+++ /dev/null
@@ -1,3189 +0,0 @@
-
-%{
-/******************************************************************************
- *
- * Module Name: aslcompiler.y - Bison input file (ASL grammar and actions)
- * $Revision: 1.105 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define YYDEBUG 1
-#define YYERROR_VERBOSE 1
-
-/*
- * State stack - compiler will fault if it overflows. (Default was 200)
- */
-#define YYINITDEPTH 600
-
-#include <contrib/dev/acpica/compiler/aslcompiler.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <contrib/dev/acpica/acpi.h>
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("aslparse")
-
-/*
- * Global Notes:
- *
- * October 2005: The following list terms have been optimized (from the
- * original ASL grammar in the ACPI specification) to force the immediate
- * reduction of each list item so that the parse stack use doesn't increase on
- * each list element and possibly overflow on very large lists (>4000 items).
- * This dramatically reduces use of the parse stack overall.
- *
- * ArgList, TermList, Objectlist, ByteList, DWordList, PackageList,
- * ResourceMacroList, and FieldUnitList
- */
-
-
-/*
- * Next statement is important - this makes everything public so that
- * we can access some of the parser tables from other modules
- */
-#define static
-#undef alloca
-#define alloca AslLocalAllocate
-#define YYERROR_VERBOSE 1
-
-void *
-AslLocalAllocate (unsigned int Size);
-
-/*
- * The windows version of bison defines this incorrectly as "32768" (Not negative).
- * Using a custom (edited binary) version of bison that defines YYFLAG as YYFBAD
- * instead (#define YYFBAD 32768), so we can define it correctly here.
- *
- * The problem is that if YYFLAG is positive, the extended syntax error messages
- * are disabled.
- */
-
-#define YYFLAG -32768
-
-
-%}
-
-
-/*
- * Declare the type of values in the grammar
- */
-
-%union {
- UINT64 i;
- char *s;
- ACPI_PARSE_OBJECT *n;
-}
-
-
-/*! [Begin] no source code translation */
-
-/*
- * These shift/reduce conflicts are expected. There should be zer0
- * reduce/reduce conflicts.
- */
-%expect 64
-
-
-/*
- * Token types: These are returned by the lexer
- *
- * NOTE: This list MUST match the AslKeywordMapping table found
- * in aslmap.c EXACTLY! Double check any changes!
- */
-
-%token <i> PARSEOP_ACCESSAS
-%token <i> PARSEOP_ACCESSATTRIB_BLOCK
-%token <i> PARSEOP_ACCESSATTRIB_BLOCK_CALL
-%token <i> PARSEOP_ACCESSATTRIB_BYTE
-%token <i> PARSEOP_ACCESSATTRIB_WORD_CALL
-%token <i> PARSEOP_ACCESSATTRIB_QUICK
-%token <i> PARSEOP_ACCESSATTRIB_SND_RCV
-%token <i> PARSEOP_ACCESSATTRIB_WORD
-%token <i> PARSEOP_ACCESSTYPE_ANY
-%token <i> PARSEOP_ACCESSTYPE_BUF
-%token <i> PARSEOP_ACCESSTYPE_BYTE
-%token <i> PARSEOP_ACCESSTYPE_DWORD
-%token <i> PARSEOP_ACCESSTYPE_QWORD
-%token <i> PARSEOP_ACCESSTYPE_WORD
-%token <i> PARSEOP_ACQUIRE
-%token <i> PARSEOP_ADD
-%token <i> PARSEOP_ADDRESSSPACE_FFIXEDHW
-%token <i> PARSEOP_ADDRESSTYPE_ACPI
-%token <i> PARSEOP_ADDRESSTYPE_MEMORY
-%token <i> PARSEOP_ADDRESSTYPE_NVS
-%token <i> PARSEOP_ADDRESSTYPE_RESERVED
-%token <i> PARSEOP_ALIAS
-%token <i> PARSEOP_AND
-%token <i> PARSEOP_ARG0
-%token <i> PARSEOP_ARG1
-%token <i> PARSEOP_ARG2
-%token <i> PARSEOP_ARG3
-%token <i> PARSEOP_ARG4
-%token <i> PARSEOP_ARG5
-%token <i> PARSEOP_ARG6
-%token <i> PARSEOP_BANKFIELD
-%token <i> PARSEOP_BREAK
-%token <i> PARSEOP_BREAKPOINT
-%token <i> PARSEOP_BUFFER
-%token <i> PARSEOP_BUSMASTERTYPE_MASTER
-%token <i> PARSEOP_BUSMASTERTYPE_NOTMASTER
-%token <i> PARSEOP_BYTECONST
-%token <i> PARSEOP_CASE
-%token <i> PARSEOP_CONCATENATE
-%token <i> PARSEOP_CONCATENATERESTEMPLATE
-%token <i> PARSEOP_CONDREFOF
-%token <i> PARSEOP_CONTINUE
-%token <i> PARSEOP_COPYOBJECT
-%token <i> PARSEOP_CREATEBITFIELD
-%token <i> PARSEOP_CREATEBYTEFIELD
-%token <i> PARSEOP_CREATEDWORDFIELD
-%token <i> PARSEOP_CREATEFIELD
-%token <i> PARSEOP_CREATEQWORDFIELD
-%token <i> PARSEOP_CREATEWORDFIELD
-%token <i> PARSEOP_DATATABLEREGION
-%token <i> PARSEOP_DEBUG
-%token <i> PARSEOP_DECODETYPE_POS
-%token <i> PARSEOP_DECODETYPE_SUB
-%token <i> PARSEOP_DECREMENT
-%token <i> PARSEOP_DEFAULT
-%token <i> PARSEOP_DEFAULT_ARG
-%token <i> PARSEOP_DEFINITIONBLOCK
-%token <i> PARSEOP_DEREFOF
-%token <i> PARSEOP_DEVICE
-%token <i> PARSEOP_DIVIDE
-%token <i> PARSEOP_DMA
-%token <i> PARSEOP_DMATYPE_A
-%token <i> PARSEOP_DMATYPE_COMPATIBILITY
-%token <i> PARSEOP_DMATYPE_B
-%token <i> PARSEOP_DMATYPE_F
-%token <i> PARSEOP_DWORDCONST
-%token <i> PARSEOP_DWORDIO
-%token <i> PARSEOP_DWORDMEMORY
-%token <i> PARSEOP_DWORDSPACE
-%token <i> PARSEOP_EISAID
-%token <i> PARSEOP_ELSE
-%token <i> PARSEOP_ELSEIF
-%token <i> PARSEOP_ENDDEPENDENTFN
-%token <i> PARSEOP_ENDTAG
-%token <i> PARSEOP_ERRORNODE
-%token <i> PARSEOP_EVENT
-%token <i> PARSEOP_EXTENDEDIO
-%token <i> PARSEOP_EXTENDEDMEMORY
-%token <i> PARSEOP_EXTENDEDSPACE
-%token <i> PARSEOP_EXTERNAL
-%token <i> PARSEOP_FATAL
-%token <i> PARSEOP_FIELD
-%token <i> PARSEOP_FINDSETLEFTBIT
-%token <i> PARSEOP_FINDSETRIGHTBIT
-%token <i> PARSEOP_FIXEDIO
-%token <i> PARSEOP_FROMBCD
-%token <i> PARSEOP_FUNCTION
-%token <i> PARSEOP_IF
-%token <i> PARSEOP_INCLUDE
-%token <i> PARSEOP_INCLUDE_CSTYLE
-%token <i> PARSEOP_INCLUDE_END
-%token <i> PARSEOP_INCREMENT
-%token <i> PARSEOP_INDEX
-%token <i> PARSEOP_INDEXFIELD
-%token <i> PARSEOP_INTEGER
-%token <i> PARSEOP_INTERRUPT
-%token <i> PARSEOP_INTLEVEL_ACTIVEHIGH
-%token <i> PARSEOP_INTLEVEL_ACTIVELOW
-%token <i> PARSEOP_INTTYPE_EDGE
-%token <i> PARSEOP_INTTYPE_LEVEL
-%token <i> PARSEOP_IO
-%token <i> PARSEOP_IODECODETYPE_10
-%token <i> PARSEOP_IODECODETYPE_16
-%token <i> PARSEOP_IRQ
-%token <i> PARSEOP_IRQNOFLAGS
-%token <i> PARSEOP_LAND
-%token <i> PARSEOP_LEQUAL
-%token <i> PARSEOP_LGREATER
-%token <i> PARSEOP_LGREATEREQUAL
-%token <i> PARSEOP_LINE_CSTYLE
-%token <i> PARSEOP_LLESS
-%token <i> PARSEOP_LLESSEQUAL
-%token <i> PARSEOP_LNOT
-%token <i> PARSEOP_LNOTEQUAL
-%token <i> PARSEOP_LOAD
-%token <i> PARSEOP_LOADTABLE
-%token <i> PARSEOP_LOCAL0
-%token <i> PARSEOP_LOCAL1
-%token <i> PARSEOP_LOCAL2
-%token <i> PARSEOP_LOCAL3
-%token <i> PARSEOP_LOCAL4
-%token <i> PARSEOP_LOCAL5
-%token <i> PARSEOP_LOCAL6
-%token <i> PARSEOP_LOCAL7
-%token <i> PARSEOP_LOCKRULE_LOCK
-%token <i> PARSEOP_LOCKRULE_NOLOCK
-%token <i> PARSEOP_LOR
-%token <i> PARSEOP_MATCH
-%token <i> PARSEOP_MATCHTYPE_MEQ
-%token <i> PARSEOP_MATCHTYPE_MGE
-%token <i> PARSEOP_MATCHTYPE_MGT
-%token <i> PARSEOP_MATCHTYPE_MLE
-%token <i> PARSEOP_MATCHTYPE_MLT
-%token <i> PARSEOP_MATCHTYPE_MTR
-%token <i> PARSEOP_MAXTYPE_FIXED
-%token <i> PARSEOP_MAXTYPE_NOTFIXED
-%token <i> PARSEOP_MEMORY24
-%token <i> PARSEOP_MEMORY32
-%token <i> PARSEOP_MEMORY32FIXED
-%token <i> PARSEOP_MEMTYPE_CACHEABLE
-%token <i> PARSEOP_MEMTYPE_NONCACHEABLE
-%token <i> PARSEOP_MEMTYPE_PREFETCHABLE
-%token <i> PARSEOP_MEMTYPE_WRITECOMBINING
-%token <i> PARSEOP_METHOD
-%token <i> PARSEOP_METHODCALL
-%token <i> PARSEOP_MID
-%token <i> PARSEOP_MINTYPE_FIXED
-%token <i> PARSEOP_MINTYPE_NOTFIXED
-%token <i> PARSEOP_MOD
-%token <i> PARSEOP_MULTIPLY
-%token <i> PARSEOP_MUTEX
-%token <i> PARSEOP_NAME
-%token <s> PARSEOP_NAMESEG
-%token <s> PARSEOP_NAMESTRING
-%token <i> PARSEOP_NAND
-%token <i> PARSEOP_NOOP
-%token <i> PARSEOP_NOR
-%token <i> PARSEOP_NOT
-%token <i> PARSEOP_NOTIFY
-%token <i> PARSEOP_OBJECTTYPE
-%token <i> PARSEOP_OBJECTTYPE_BFF
-%token <i> PARSEOP_OBJECTTYPE_BUF
-%token <i> PARSEOP_OBJECTTYPE_DDB
-%token <i> PARSEOP_OBJECTTYPE_DEV
-%token <i> PARSEOP_OBJECTTYPE_EVT
-%token <i> PARSEOP_OBJECTTYPE_FLD
-%token <i> PARSEOP_OBJECTTYPE_INT
-%token <i> PARSEOP_OBJECTTYPE_MTH
-%token <i> PARSEOP_OBJECTTYPE_MTX
-%token <i> PARSEOP_OBJECTTYPE_OPR
-%token <i> PARSEOP_OBJECTTYPE_PKG
-%token <i> PARSEOP_OBJECTTYPE_POW
-%token <i> PARSEOP_OBJECTTYPE_PRO
-%token <i> PARSEOP_OBJECTTYPE_STR
-%token <i> PARSEOP_OBJECTTYPE_THZ
-%token <i> PARSEOP_OBJECTTYPE_UNK
-%token <i> PARSEOP_OFFSET
-%token <i> PARSEOP_ONE
-%token <i> PARSEOP_ONES
-%token <i> PARSEOP_OPERATIONREGION
-%token <i> PARSEOP_OR
-%token <i> PARSEOP_PACKAGE
-%token <i> PARSEOP_PACKAGE_LENGTH
-%token <i> PARSEOP_POWERRESOURCE
-%token <i> PARSEOP_PROCESSOR
-%token <i> PARSEOP_QWORDCONST
-%token <i> PARSEOP_QWORDIO
-%token <i> PARSEOP_QWORDMEMORY
-%token <i> PARSEOP_QWORDSPACE
-%token <i> PARSEOP_RANGETYPE_ENTIRE
-%token <i> PARSEOP_RANGETYPE_ISAONLY
-%token <i> PARSEOP_RANGETYPE_NONISAONLY
-%token <i> PARSEOP_RAW_DATA
-%token <i> PARSEOP_READWRITETYPE_BOTH
-%token <i> PARSEOP_READWRITETYPE_READONLY
-%token <i> PARSEOP_REFOF
-%token <i> PARSEOP_REGIONSPACE_CMOS
-%token <i> PARSEOP_REGIONSPACE_EC
-%token <i> PARSEOP_REGIONSPACE_IO
-%token <i> PARSEOP_REGIONSPACE_MEM
-%token <i> PARSEOP_REGIONSPACE_PCI
-%token <i> PARSEOP_REGIONSPACE_PCIBAR
-%token <i> PARSEOP_REGIONSPACE_SMBUS
-%token <i> PARSEOP_REGISTER
-%token <i> PARSEOP_RELEASE
-%token <i> PARSEOP_RESERVED_BYTES
-%token <i> PARSEOP_RESET
-%token <i> PARSEOP_RESOURCETEMPLATE
-%token <i> PARSEOP_RESOURCETYPE_CONSUMER
-%token <i> PARSEOP_RESOURCETYPE_PRODUCER
-%token <i> PARSEOP_RETURN
-%token <i> PARSEOP_REVISION
-%token <i> PARSEOP_SCOPE
-%token <i> PARSEOP_SERIALIZERULE_NOTSERIAL
-%token <i> PARSEOP_SERIALIZERULE_SERIAL
-%token <i> PARSEOP_SHARETYPE_EXCLUSIVE
-%token <i> PARSEOP_SHARETYPE_SHARED
-%token <i> PARSEOP_SHIFTLEFT
-%token <i> PARSEOP_SHIFTRIGHT
-%token <i> PARSEOP_SIGNAL
-%token <i> PARSEOP_SIZEOF
-%token <i> PARSEOP_SLEEP
-%token <i> PARSEOP_STALL
-%token <i> PARSEOP_STARTDEPENDENTFN
-%token <i> PARSEOP_STARTDEPENDENTFN_NOPRI
-%token <i> PARSEOP_STORE
-%token <s> PARSEOP_STRING_LITERAL
-%token <i> PARSEOP_SUBTRACT
-%token <i> PARSEOP_SWITCH
-%token <i> PARSEOP_THERMALZONE
-%token <i> PARSEOP_TIMER
-%token <i> PARSEOP_TOBCD
-%token <i> PARSEOP_TOBUFFER
-%token <i> PARSEOP_TODECIMALSTRING
-%token <i> PARSEOP_TOHEXSTRING
-%token <i> PARSEOP_TOINTEGER
-%token <i> PARSEOP_TOSTRING
-%token <i> PARSEOP_TOUUID
-%token <i> PARSEOP_TRANSLATIONTYPE_DENSE
-%token <i> PARSEOP_TRANSLATIONTYPE_SPARSE
-%token <i> PARSEOP_TYPE_STATIC
-%token <i> PARSEOP_TYPE_TRANSLATION
-%token <i> PARSEOP_UNICODE
-%token <i> PARSEOP_UNLOAD
-%token <i> PARSEOP_UPDATERULE_ONES
-%token <i> PARSEOP_UPDATERULE_PRESERVE
-%token <i> PARSEOP_UPDATERULE_ZEROS
-%token <i> PARSEOP_VAR_PACKAGE
-%token <i> PARSEOP_VENDORLONG
-%token <i> PARSEOP_VENDORSHORT
-%token <i> PARSEOP_WAIT
-%token <i> PARSEOP_WHILE
-%token <i> PARSEOP_WORDBUSNUMBER
-%token <i> PARSEOP_WORDCONST
-%token <i> PARSEOP_WORDIO
-%token <i> PARSEOP_WORDSPACE
-%token <i> PARSEOP_XFERTYPE_8
-%token <i> PARSEOP_XFERTYPE_8_16
-%token <i> PARSEOP_XFERTYPE_16
-%token <i> PARSEOP_XOR
-%token <i> PARSEOP_ZERO
-
-
-/*
- * Production names
- */
-
-%type <n> ASLCode
-%type <n> DefinitionBlockTerm
-%type <n> TermList
-%type <n> Term
-%type <n> CompilerDirective
-%type <n> ObjectList
-%type <n> Object
-%type <n> DataObject
-%type <n> BufferData
-%type <n> PackageData
-%type <n> IntegerData
-%type <n> StringData
-%type <n> NamedObject
-%type <n> NameSpaceModifier
-%type <n> UserTerm
-%type <n> ArgList
-%type <n> TermArg
-%type <n> Target
-%type <n> RequiredTarget
-%type <n> SimpleTarget
-%type <n> BufferTermData
-%type <n> ParameterTypePackage
-%type <n> ParameterTypePackageList
-%type <n> ParameterTypesPackage
-%type <n> ParameterTypesPackageList
-
-%type <n> Type1Opcode
-%type <n> Type2Opcode
-%type <n> Type2IntegerOpcode
-%type <n> Type2StringOpcode
-%type <n> Type2BufferOpcode
-%type <n> Type2BufferOrStringOpcode
-%type <n> Type3Opcode
-
-/* Obsolete %type <n> Type4Opcode */
-
-%type <n> Type5Opcode
-%type <n> Type6Opcode
-
-%type <n> LineTerm
-%type <n> IncludeTerm
-%type <n> IncludeCStyleTerm
-%type <n> ExternalTerm
-
-%type <n> FieldUnitList
-%type <n> FieldUnit
-%type <n> FieldUnitEntry
-
-%type <n> OffsetTerm
-%type <n> AccessAsTerm
-%type <n> OptionalAccessAttribTerm
-
-
-/* Named Objects */
-
-%type <n> BankFieldTerm
-%type <n> CreateBitFieldTerm
-%type <n> CreateByteFieldTerm
-%type <n> CreateDWordFieldTerm
-%type <n> CreateFieldTerm
-%type <n> CreateQWordFieldTerm
-%type <n> CreateWordFieldTerm
-%type <n> DataRegionTerm
-%type <n> DeviceTerm
-%type <n> EventTerm
-%type <n> FieldTerm
-%type <n> FunctionTerm
-%type <n> IndexFieldTerm
-%type <n> MethodTerm
-%type <n> MutexTerm
-%type <n> OpRegionTerm
-%type <n> OpRegionSpaceIdTerm
-%type <n> PowerResTerm
-%type <n> ProcessorTerm
-%type <n> ThermalZoneTerm
-
-
-/* Namespace modifiers */
-
-%type <n> AliasTerm
-%type <n> NameTerm
-%type <n> ScopeTerm
-
-/* Type 1 opcodes */
-
-%type <n> BreakTerm
-%type <n> BreakPointTerm
-%type <n> ContinueTerm
-%type <n> FatalTerm
-%type <n> IfElseTerm
-%type <n> IfTerm
-%type <n> ElseTerm
-%type <n> LoadTerm
-%type <n> NoOpTerm
-%type <n> NotifyTerm
-%type <n> ReleaseTerm
-%type <n> ResetTerm
-%type <n> ReturnTerm
-%type <n> SignalTerm
-%type <n> SleepTerm
-%type <n> StallTerm
-%type <n> SwitchTerm
-%type <n> CaseDefaultTermList
-//%type <n> CaseTermList
-%type <n> CaseTerm
-%type <n> DefaultTerm
-%type <n> UnloadTerm
-%type <n> WhileTerm
-
-/* Type 2 opcodes */
-
-%type <n> AcquireTerm
-%type <n> AddTerm
-%type <n> AndTerm
-%type <n> ConcatTerm
-%type <n> ConcatResTerm
-%type <n> CondRefOfTerm
-%type <n> CopyObjectTerm
-%type <n> DecTerm
-%type <n> DerefOfTerm
-%type <n> DivideTerm
-%type <n> FindSetLeftBitTerm
-%type <n> FindSetRightBitTerm
-%type <n> FromBCDTerm
-%type <n> IncTerm
-%type <n> IndexTerm
-%type <n> LAndTerm
-%type <n> LEqualTerm
-%type <n> LGreaterTerm
-%type <n> LGreaterEqualTerm
-%type <n> LLessTerm
-%type <n> LLessEqualTerm
-%type <n> LNotTerm
-%type <n> LNotEqualTerm
-%type <n> LoadTableTerm
-%type <n> LOrTerm
-%type <n> MatchTerm
-%type <n> MidTerm
-%type <n> ModTerm
-%type <n> MultiplyTerm
-%type <n> NAndTerm
-%type <n> NOrTerm
-%type <n> NotTerm
-%type <n> ObjectTypeTerm
-%type <n> OrTerm
-%type <n> RefOfTerm
-%type <n> ShiftLeftTerm
-%type <n> ShiftRightTerm
-%type <n> SizeOfTerm
-%type <n> StoreTerm
-%type <n> SubtractTerm
-%type <n> TimerTerm
-%type <n> ToBCDTerm
-%type <n> ToBufferTerm
-%type <n> ToDecimalStringTerm
-%type <n> ToHexStringTerm
-%type <n> ToIntegerTerm
-%type <n> ToStringTerm
-%type <n> WaitTerm
-%type <n> XOrTerm
-
-%type <n> OptionalTermArg
-%type <n> OptionalReturnArg
-%type <n> OptionalListString
-
-
-/* Keywords */
-
-%type <n> ObjectTypeKeyword
-%type <n> AccessTypeKeyword
-%type <n> AccessAttribKeyword
-%type <n> LockRuleKeyword
-%type <n> UpdateRuleKeyword
-%type <n> RegionSpaceKeyword
-%type <n> AddressSpaceKeyword
-%type <n> MatchOpKeyword
-%type <n> SerializeRuleKeyword
-%type <n> DMATypeKeyword
-%type <n> OptionalBusMasterKeyword
-%type <n> XferTypeKeyword
-%type <n> ResourceTypeKeyword
-%type <n> MinKeyword
-%type <n> MaxKeyword
-%type <n> DecodeKeyword
-%type <n> RangeTypeKeyword
-%type <n> MemTypeKeyword
-%type <n> OptionalReadWriteKeyword
-%type <n> InterruptTypeKeyword
-%type <n> InterruptLevel
-%type <n> ShareTypeKeyword
-%type <n> IODecodeKeyword
-%type <n> TypeKeyword
-%type <n> TranslationKeyword
-%type <n> AddressKeyword
-
-/* Types */
-
-%type <n> SuperName
-%type <n> ArgTerm
-%type <n> LocalTerm
-%type <n> DebugTerm
-
-%type <n> Integer
-%type <n> ByteConst
-%type <n> WordConst
-%type <n> DWordConst
-%type <n> QWordConst
-%type <n> String
-
-%type <n> ConstTerm
-%type <n> ByteConstExpr
-%type <n> WordConstExpr
-%type <n> DWordConstExpr
-%type <n> QWordConstExpr
-%type <n> ConstExprTerm
-
-%type <n> BufferTerm
-%type <n> ByteList
-%type <n> DWordList
-
-%type <n> PackageTerm
-%type <n> PackageList
-%type <n> PackageElement
-
-%type <n> VarPackageLengthTerm
-
-/* Macros */
-
-%type <n> EISAIDTerm
-%type <n> ResourceTemplateTerm
-%type <n> ToUUIDTerm
-%type <n> UnicodeTerm
-%type <n> ResourceMacroList
-%type <n> ResourceMacroTerm
-
-%type <n> DMATerm
-%type <n> DWordIOTerm
-%type <n> DWordMemoryTerm
-%type <n> DWordSpaceTerm
-%type <n> EndDependentFnTerm
-%type <n> ExtendedIOTerm
-%type <n> ExtendedMemoryTerm
-%type <n> ExtendedSpaceTerm
-%type <n> FixedIOTerm
-%type <n> InterruptTerm
-%type <n> IOTerm
-%type <n> IRQNoFlagsTerm
-%type <n> IRQTerm
-%type <n> Memory24Term
-%type <n> Memory32FixedTerm
-%type <n> Memory32Term
-%type <n> QWordIOTerm
-%type <n> QWordMemoryTerm
-%type <n> QWordSpaceTerm
-%type <n> RegisterTerm
-%type <n> StartDependentFnTerm
-%type <n> StartDependentFnNoPriTerm
-%type <n> VendorLongTerm
-%type <n> VendorShortTerm
-%type <n> WordBusNumberTerm
-%type <n> WordIOTerm
-%type <n> WordSpaceTerm
-
-%type <n> NameString
-%type <n> NameSeg
-
-
-/* Local types that help construct the AML, not in ACPI spec */
-
-%type <n> IncludeEndTerm
-%type <n> AmlPackageLengthTerm
-%type <n> OptionalByteConstExpr
-%type <n> OptionalDWordConstExpr
-%type <n> OptionalQWordConstExpr
-%type <n> OptionalSerializeRuleKeyword
-%type <n> OptionalResourceType_First
-%type <n> OptionalResourceType
-%type <n> OptionalMinType
-%type <n> OptionalMaxType
-%type <n> OptionalMemType
-%type <n> OptionalCount
-%type <n> OptionalDecodeType
-%type <n> OptionalRangeType
-%type <n> OptionalShareType
-%type <n> OptionalType
-%type <n> OptionalType_Last
-%type <n> OptionalTranslationType_Last
-%type <n> OptionalStringData
-%type <n> OptionalNameString
-%type <n> OptionalNameString_First
-%type <n> OptionalNameString_Last
-%type <n> OptionalAddressRange
-%type <n> OptionalObjectTypeKeyword
-%type <n> OptionalParameterTypePackage
-%type <n> OptionalParameterTypesPackage
-%type <n> OptionalReference
-%type <n> OptionalAccessSize
-
-
-%type <n> TermArgItem
-%type <n> NameStringItem
-
-%%
-
-
-/*******************************************************************************
- *
- * Production rules start here
- *
- ******************************************************************************/
-
-/*
- * ASL Names
- */
-
-
-/*
- * Blocks, Data, and Opcodes
- */
-
-ASLCode
- : DefinitionBlockTerm
- | error {YYABORT; $$ = NULL;}
- ;
-
-DefinitionBlockTerm
- : PARSEOP_DEFINITIONBLOCK '(' {$$ = TrCreateLeafNode (PARSEOP_DEFINITIONBLOCK);}
- String ','
- String ','
- ByteConst ','
- String ','
- String ','
- DWordConst
- ')' {TrSetEndLineNumber ($<n>3);}
- '{' TermList '}' {$$ = TrLinkChildren ($<n>3,7,$4,$6,$8,$10,$12,$14,$18);}
- ;
-
-/* ACPI 3.0 -- allow semicolons between terms */
-
-TermList
- : {$$ = NULL;}
- | TermList Term {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);}
- | TermList ';' Term {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);}
- ;
-
-Term
- : Object {}
- | Type1Opcode {}
- | Type2Opcode {}
- | Type2IntegerOpcode {}
- | Type2StringOpcode {}
- | Type2BufferOpcode {}
- | Type2BufferOrStringOpcode {}
- | error {$$ = AslDoError(); yyclearin;}
- ;
-
-CompilerDirective
- : IncludeTerm {}
- | IncludeCStyleTerm {$$ = NULL;}
- | LineTerm {$$ = NULL;}
- | ExternalTerm {}
- ;
-
-ObjectList
- : {$$ = NULL;}
- | ObjectList Object {$$ = TrLinkPeerNode ($1,$2);}
- | error {$$ = AslDoError(); yyclearin;}
- ;
-
-Object
- : CompilerDirective {}
- | NamedObject {}
- | NameSpaceModifier {}
- ;
-
-DataObject
- : BufferData {}
- | PackageData {}
- | IntegerData {}
- | StringData {}
- ;
-
-BufferData
- : Type5Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
- | Type2BufferOrStringOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
- | Type2BufferOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
- | BufferTerm {}
- ;
-
-PackageData
- : PackageTerm {}
- ;
-
-IntegerData
- : Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
- | Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
- | Integer {}
- | ConstTerm {}
- ;
-
-StringData
- : Type2StringOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
- | String {}
- ;
-
-NamedObject
- : BankFieldTerm {}
- | CreateBitFieldTerm {}
- | CreateByteFieldTerm {}
- | CreateDWordFieldTerm {}
- | CreateFieldTerm {}
- | CreateQWordFieldTerm {}
- | CreateWordFieldTerm {}
- | DataRegionTerm {}
- | DeviceTerm {}
- | EventTerm {}
- | FieldTerm {}
- | FunctionTerm {}
- | IndexFieldTerm {}
- | MethodTerm {}
- | MutexTerm {}
- | OpRegionTerm {}
- | PowerResTerm {}
- | ProcessorTerm {}
- | ThermalZoneTerm {}
- ;
-
-NameSpaceModifier
- : AliasTerm {}
- | NameTerm {}
- | ScopeTerm {}
- ;
-
-UserTerm
- : NameString '(' {TrUpdateNode (PARSEOP_METHODCALL, $1);}
- ArgList ')' {$$ = TrLinkChildNode ($1,$4);}
- ;
-
-ArgList
- : {$$ = NULL;}
- | TermArg
- | ArgList ',' /* Allows a trailing comma at list end */
- | ArgList ','
- TermArg {$$ = TrLinkPeerNode ($1,$3);}
- ;
-
-/*
-Removed from TermArg due to reduce/reduce conflicts
- | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
- | Type2StringOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
- | Type2BufferOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
- | Type2BufferOrStringOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
-
-*/
-
-TermArg
- : Type2Opcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
- | DataObject {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
- | NameString {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
- | ArgTerm {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
- | LocalTerm {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
- ;
-
-Target
- : {$$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_TARGET | NODE_COMPILE_TIME_CONST);} /* Placeholder is a ZeroOp object */
- | ',' {$$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_TARGET | NODE_COMPILE_TIME_CONST);} /* Placeholder is a ZeroOp object */
- | ',' SuperName {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
- ;
-
-RequiredTarget
- : ',' SuperName {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
- ;
-
-SimpleTarget
- : NameString {}
- | LocalTerm {}
- | ArgTerm {}
- ;
-
-/* Rules for specifying the type of one method argument or return value */
-
-ParameterTypePackage
- : {$$ = NULL;}
- | ObjectTypeKeyword {$$ = $1;}
- | ParameterTypePackage ','
- ObjectTypeKeyword {$$ = TrLinkPeerNodes (2,$1,$3);}
- ;
-
-ParameterTypePackageList
- : {$$ = NULL;}
- | ObjectTypeKeyword {$$ = $1;}
- | '{' ParameterTypePackage '}' {$$ = $2;}
- ;
-
-OptionalParameterTypePackage
- : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
- | ',' ParameterTypePackageList {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
- ;
-
-/* Rules for specifying the types for method arguments */
-
-ParameterTypesPackage
- : ParameterTypePackageList {$$ = $1;}
- | ParameterTypesPackage ','
- ParameterTypePackageList {$$ = TrLinkPeerNodes (2,$1,$3);}
- ;
-
-ParameterTypesPackageList
- : {$$ = NULL;}
- | ObjectTypeKeyword {$$ = $1;}
- | '{' ParameterTypesPackage '}' {$$ = $2;}
- ;
-
-OptionalParameterTypesPackage
- : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
- | ',' ParameterTypesPackageList {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
- ;
-
-
-/* Opcode types */
-
-Type1Opcode
- : BreakTerm {}
- | BreakPointTerm {}
- | ContinueTerm {}
- | FatalTerm {}
- | IfElseTerm {}
- | LoadTerm {}
- | NoOpTerm {}
- | NotifyTerm {}
- | ReleaseTerm {}
- | ResetTerm {}
- | ReturnTerm {}
- | SignalTerm {}
- | SleepTerm {}
- | StallTerm {}
- | SwitchTerm {}
- | UnloadTerm {}
- | WhileTerm {}
- ;
-
-Type2Opcode
- : AcquireTerm {}
- | CondRefOfTerm {}
- | CopyObjectTerm {}
- | DerefOfTerm {}
- | ObjectTypeTerm {}
- | RefOfTerm {}
- | SizeOfTerm {}
- | StoreTerm {}
- | TimerTerm {}
- | WaitTerm {}
- | UserTerm {}
- ;
-
-/*
- * Type 3/4/5 opcodes
- */
-
-Type2IntegerOpcode /* "Type3" opcodes */
- : AddTerm {}
- | AndTerm {}
- | DecTerm {}
- | DivideTerm {}
- | FindSetLeftBitTerm {}
- | FindSetRightBitTerm {}
- | FromBCDTerm {}
- | IncTerm {}
- | IndexTerm {}
- | LAndTerm {}
- | LEqualTerm {}
- | LGreaterTerm {}
- | LGreaterEqualTerm {}
- | LLessTerm {}
- | LLessEqualTerm {}
- | LNotTerm {}
- | LNotEqualTerm {}
- | LoadTableTerm {}
- | LOrTerm {}
- | MatchTerm {}
- | ModTerm {}
- | MultiplyTerm {}
- | NAndTerm {}
- | NOrTerm {}
- | NotTerm {}
- | OrTerm {}
- | ShiftLeftTerm {}
- | ShiftRightTerm {}
- | SubtractTerm {}
- | ToBCDTerm {}
- | ToIntegerTerm {}
- | XOrTerm {}
- ;
-
-Type2StringOpcode /* "Type4" Opcodes */
- : ToDecimalStringTerm {}
- | ToHexStringTerm {}
- | ToStringTerm {}
- ;
-
-Type2BufferOpcode /* "Type5" Opcodes */
- : ToBufferTerm {}
- | ConcatResTerm {}
- ;
-
-Type2BufferOrStringOpcode
- : ConcatTerm {}
- | MidTerm {}
- ;
-
-/*
- * A type 3 opcode evaluates to an Integer and cannot have a destination operand
- */
-
-Type3Opcode
- : EISAIDTerm {}
- ;
-
-/* Obsolete
-Type4Opcode
- : ConcatTerm {}
- | ToDecimalStringTerm {}
- | ToHexStringTerm {}
- | MidTerm {}
- | ToStringTerm {}
- ;
-*/
-
-
-Type5Opcode
- : ResourceTemplateTerm {}
- | UnicodeTerm {}
- | ToUUIDTerm {}
- ;
-
-Type6Opcode
- : RefOfTerm {}
- | DerefOfTerm {}
- | IndexTerm {}
- | UserTerm {}
- ;
-
-IncludeTerm
- : PARSEOP_INCLUDE '(' {$$ = TrCreateLeafNode (PARSEOP_INCLUDE);}
- String ')' {$$ = TrLinkChildren ($<n>3,1,$4);FlOpenIncludeFile ($4);}
- TermList
- IncludeEndTerm {$$ = TrLinkPeerNodes (3,$<n>3,$7,$8);}
- ;
-
-IncludeEndTerm
- : PARSEOP_INCLUDE_END {$$ = TrCreateLeafNode (PARSEOP_INCLUDE_END);}
- ;
-
-IncludeCStyleTerm
- : PARSEOP_INCLUDE_CSTYLE
- String {FlOpenIncludeFile ($2);}
- ;
-
-LineTerm
- : PARSEOP_LINE_CSTYLE
- Integer {FlSetLineNumber ($2);}
- ;
-
-ExternalTerm
- : PARSEOP_EXTERNAL '('
- NameString
- OptionalObjectTypeKeyword
- OptionalParameterTypePackage
- OptionalParameterTypesPackage
- ')' {$$ = TrCreateNode (PARSEOP_EXTERNAL,4,$3,$4,$5,$6);}
- | PARSEOP_EXTERNAL '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-
-/******* Named Objects *******************************************************/
-
-
-BankFieldTerm
- : PARSEOP_BANKFIELD '(' {$$ = TrCreateLeafNode (PARSEOP_BANKFIELD);}
- NameString
- NameStringItem
- TermArgItem
- ',' AccessTypeKeyword
- ',' LockRuleKeyword
- ',' UpdateRuleKeyword
- ')' '{'
- FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,7,$4,$5,$6,$8,$10,$12,$15);}
- | PARSEOP_BANKFIELD '('
- error ')' '{' error '}' {$$ = AslDoError(); yyclearin;}
- ;
-
-FieldUnitList
- : {$$ = NULL;}
- | FieldUnit
- | FieldUnitList ',' /* Allows a trailing comma at list end */
- | FieldUnitList ','
- FieldUnit {$$ = TrLinkPeerNode ($1,$3);}
- ;
-
-FieldUnit
- : FieldUnitEntry {}
- | OffsetTerm {}
- | AccessAsTerm {}
- ;
-
-FieldUnitEntry
- : ',' AmlPackageLengthTerm {$$ = TrCreateNode (PARSEOP_RESERVED_BYTES,1,$2);}
- | NameSeg ','
- AmlPackageLengthTerm {$$ = TrLinkChildNode ($1,$3);}
- ;
-
-OffsetTerm
- : PARSEOP_OFFSET '('
- AmlPackageLengthTerm
- ')' {$$ = TrCreateNode (PARSEOP_OFFSET,1,$3);}
- | PARSEOP_OFFSET '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-AccessAsTerm
- : PARSEOP_ACCESSAS '('
- AccessTypeKeyword
- OptionalAccessAttribTerm
- ')' {$$ = TrCreateNode (PARSEOP_ACCESSAS,2,$3,$4);}
- | PARSEOP_ACCESSAS '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-CreateBitFieldTerm
- : PARSEOP_CREATEBITFIELD '(' {$$ = TrCreateLeafNode (PARSEOP_CREATEBITFIELD);}
- TermArg
- TermArgItem
- NameStringItem
- ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
- | PARSEOP_CREATEBITFIELD '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-CreateByteFieldTerm
- : PARSEOP_CREATEBYTEFIELD '(' {$$ = TrCreateLeafNode (PARSEOP_CREATEBYTEFIELD);}
- TermArg
- TermArgItem
- NameStringItem
- ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
- | PARSEOP_CREATEBYTEFIELD '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-CreateDWordFieldTerm
- : PARSEOP_CREATEDWORDFIELD '(' {$$ = TrCreateLeafNode (PARSEOP_CREATEDWORDFIELD);}
- TermArg
- TermArgItem
- NameStringItem
- ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
- | PARSEOP_CREATEDWORDFIELD '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-CreateFieldTerm
- : PARSEOP_CREATEFIELD '(' {$$ = TrCreateLeafNode (PARSEOP_CREATEFIELD);}
- TermArg
- TermArgItem
- TermArgItem
- NameStringItem
- ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,TrSetNodeFlags ($7, NODE_IS_NAME_DECLARATION));}
- | PARSEOP_CREATEFIELD '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-CreateQWordFieldTerm
- : PARSEOP_CREATEQWORDFIELD '(' {$$ = TrCreateLeafNode (PARSEOP_CREATEQWORDFIELD);}
- TermArg
- TermArgItem
- NameStringItem
- ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
- | PARSEOP_CREATEQWORDFIELD '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-CreateWordFieldTerm
- : PARSEOP_CREATEWORDFIELD '(' {$$ = TrCreateLeafNode (PARSEOP_CREATEWORDFIELD);}
- TermArg
- TermArgItem
- NameStringItem
- ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
- | PARSEOP_CREATEWORDFIELD '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-DataRegionTerm
- : PARSEOP_DATATABLEREGION '(' {$$ = TrCreateLeafNode (PARSEOP_DATATABLEREGION);}
- NameString
- TermArgItem
- TermArgItem
- TermArgItem
- ')' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$6,$7);}
- | PARSEOP_DATATABLEREGION '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-DeviceTerm
- : PARSEOP_DEVICE '(' {$$ = TrCreateLeafNode (PARSEOP_DEVICE);}
- NameString
- ')' '{'
- ObjectList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
- | PARSEOP_DEVICE '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-EventTerm
- : PARSEOP_EVENT '(' {$$ = TrCreateLeafNode (PARSEOP_EVENT);}
- NameString
- ')' {$$ = TrLinkChildren ($<n>3,1,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION));}
- | PARSEOP_EVENT '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-FieldTerm
- : PARSEOP_FIELD '(' {$$ = TrCreateLeafNode (PARSEOP_FIELD);}
- NameString
- ',' AccessTypeKeyword
- ',' LockRuleKeyword
- ',' UpdateRuleKeyword
- ')' '{'
- FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$8,$10,$13);}
- | PARSEOP_FIELD '('
- error ')' '{' error '}' {$$ = AslDoError(); yyclearin;}
- ;
-
-FunctionTerm
- : PARSEOP_FUNCTION '(' {$$ = TrCreateLeafNode (PARSEOP_METHOD);}
- NameString
- OptionalParameterTypePackage
- OptionalParameterTypesPackage
- ')' '{'
- TermList '}' {$$ = TrLinkChildren ($<n>3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
- TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),
- TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL),
- TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),$5,$6,$9);}
- | PARSEOP_FUNCTION '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-IndexFieldTerm
- : PARSEOP_INDEXFIELD '(' {$$ = TrCreateLeafNode (PARSEOP_INDEXFIELD);}
- NameString
- NameStringItem
- ',' AccessTypeKeyword
- ',' LockRuleKeyword
- ',' UpdateRuleKeyword
- ')' '{'
- FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,6,$4,$5,$7,$9,$11,$14);}
- | PARSEOP_INDEXFIELD '('
- error ')' '{' error '}' {$$ = AslDoError(); yyclearin;}
- ;
-
-MethodTerm
- : PARSEOP_METHOD '(' {$$ = TrCreateLeafNode (PARSEOP_METHOD);}
- NameString
- OptionalByteConstExpr {$$ = UtCheckIntegerRange ($5, 0, 7);}
- OptionalSerializeRuleKeyword
- OptionalByteConstExpr
- OptionalParameterTypePackage
- OptionalParameterTypesPackage
- ')' '{'
- TermList '}' {$$ = TrLinkChildren ($<n>3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$7,$8,$9,$10,$13);}
- | PARSEOP_METHOD '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-MutexTerm
- : PARSEOP_MUTEX '(' {$$ = TrCreateLeafNode (PARSEOP_MUTEX);}
- NameString
- ',' ByteConstExpr
- ')' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
- | PARSEOP_MUTEX '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-OpRegionTerm
- : PARSEOP_OPERATIONREGION '(' {$$ = TrCreateLeafNode (PARSEOP_OPERATIONREGION);}
- NameString
- ',' OpRegionSpaceIdTerm
- TermArgItem
- TermArgItem
- ')' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8);}
- | PARSEOP_OPERATIONREGION '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-OpRegionSpaceIdTerm
- : RegionSpaceKeyword {}
- | ByteConst {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
- ;
-
-PowerResTerm
- : PARSEOP_POWERRESOURCE '(' {$$ = TrCreateLeafNode (PARSEOP_POWERRESOURCE);}
- NameString
- ',' ByteConstExpr
- ',' WordConstExpr
- ')' '{'
- ObjectList '}' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$8,$11);}
- | PARSEOP_POWERRESOURCE '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-ProcessorTerm
- : PARSEOP_PROCESSOR '(' {$$ = TrCreateLeafNode (PARSEOP_PROCESSOR);}
- NameString
- ',' ByteConstExpr
- OptionalDWordConstExpr
- OptionalByteConstExpr
- ')' '{'
- ObjectList '}' {$$ = TrLinkChildren ($<n>3,5,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8,$11);}
- | PARSEOP_PROCESSOR '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-ThermalZoneTerm
- : PARSEOP_THERMALZONE '(' {$$ = TrCreateLeafNode (PARSEOP_THERMALZONE);}
- NameString
- ')' '{'
- ObjectList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
- | PARSEOP_THERMALZONE '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-
-/******* Namespace modifiers *************************************************/
-
-
-AliasTerm
- : PARSEOP_ALIAS '(' {$$ = TrCreateLeafNode (PARSEOP_ALIAS);}
- NameString
- NameStringItem
- ')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($5, NODE_IS_NAME_DECLARATION));}
- | PARSEOP_ALIAS '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-NameTerm
- : PARSEOP_NAME '(' {$$ = TrCreateLeafNode (PARSEOP_NAME);}
- NameString
- ',' DataObject
- ')' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
- | PARSEOP_NAME '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-ScopeTerm
- : PARSEOP_SCOPE '(' {$$ = TrCreateLeafNode (PARSEOP_SCOPE);}
- NameString
- ')' '{'
- ObjectList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
- | PARSEOP_SCOPE '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-
-/******* Type 1 opcodes *******************************************************/
-
-
-BreakTerm
- : PARSEOP_BREAK {$$ = TrCreateNode (PARSEOP_BREAK, 0);}
- ;
-
-BreakPointTerm
- : PARSEOP_BREAKPOINT {$$ = TrCreateNode (PARSEOP_BREAKPOINT, 0);}
- ;
-
-ContinueTerm
- : PARSEOP_CONTINUE {$$ = TrCreateNode (PARSEOP_CONTINUE, 0);}
- ;
-
-FatalTerm
- : PARSEOP_FATAL '(' {$$ = TrCreateLeafNode (PARSEOP_FATAL);}
- ByteConstExpr
- ',' DWordConstExpr
- TermArgItem
- ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
- | PARSEOP_FATAL '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-IfElseTerm
- : IfTerm ElseTerm {$$ = TrLinkPeerNode ($1,$2);}
- ;
-
-IfTerm
- : PARSEOP_IF '(' {$$ = TrCreateLeafNode (PARSEOP_IF);}
- TermArg
- ')' '{'
- TermList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
-
- | PARSEOP_IF '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-ElseTerm
- : {$$ = NULL;}
- | PARSEOP_ELSE '{' {$$ = TrCreateLeafNode (PARSEOP_ELSE);}
- TermList '}' {$$ = TrLinkChildren ($<n>3,1,$4);}
-
- | PARSEOP_ELSE '{'
- error '}' {$$ = AslDoError(); yyclearin;}
-
- | PARSEOP_ELSE
- error {$$ = AslDoError(); yyclearin;}
-
- | PARSEOP_ELSEIF '(' {$$ = TrCreateLeafNode (PARSEOP_ELSE);}
- TermArg {$$ = TrCreateLeafNode (PARSEOP_IF);}
- ')' '{'
- TermList '}' {$$ = TrLinkChildren ($<n>5,2,$4,$8);}
- ElseTerm {$$ = TrLinkPeerNode ($<n>5,$11);}
- {$$ = TrLinkChildren ($<n>3,1,$<n>5);}
-
- | PARSEOP_ELSEIF '('
- error ')' {$$ = AslDoError(); yyclearin;}
-
- | PARSEOP_ELSEIF
- error {$$ = AslDoError(); yyclearin;}
- ;
-
-LoadTerm
- : PARSEOP_LOAD '(' {$$ = TrCreateLeafNode (PARSEOP_LOAD);}
- NameString
- RequiredTarget
- ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
- | PARSEOP_LOAD '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-NoOpTerm
- : PARSEOP_NOOP {$$ = TrCreateNode (PARSEOP_NOOP, 0);}
- ;
-
-NotifyTerm
- : PARSEOP_NOTIFY '(' {$$ = TrCreateLeafNode (PARSEOP_NOTIFY);}
- SuperName
- TermArgItem
- ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
- | PARSEOP_NOTIFY '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-ReleaseTerm
- : PARSEOP_RELEASE '(' {$$ = TrCreateLeafNode (PARSEOP_RELEASE);}
- SuperName
- ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
- | PARSEOP_RELEASE '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-ResetTerm
- : PARSEOP_RESET '(' {$$ = TrCreateLeafNode (PARSEOP_RESET);}
- SuperName
- ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
- | PARSEOP_RESET '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-ReturnTerm
- : PARSEOP_RETURN '(' {$$ = TrCreateLeafNode (PARSEOP_RETURN);}
- OptionalReturnArg
- ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
- | PARSEOP_RETURN {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_RETURN),1,TrCreateLeafNode (PARSEOP_ZERO));}
- | PARSEOP_RETURN '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-SignalTerm
- : PARSEOP_SIGNAL '(' {$$ = TrCreateLeafNode (PARSEOP_SIGNAL);}
- SuperName
- ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
- | PARSEOP_SIGNAL '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-SleepTerm
- : PARSEOP_SLEEP '(' {$$ = TrCreateLeafNode (PARSEOP_SLEEP);}
- TermArg
- ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
- | PARSEOP_SLEEP '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-StallTerm
- : PARSEOP_STALL '(' {$$ = TrCreateLeafNode (PARSEOP_STALL);}
- TermArg
- ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
- | PARSEOP_STALL '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-SwitchTerm
- : PARSEOP_SWITCH '(' {$$ = TrCreateLeafNode (PARSEOP_SWITCH);}
- TermArg
- ')' '{'
- CaseDefaultTermList '}'
- {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
- | PARSEOP_SWITCH '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-/*
- * Case-Default list; allow only one Default term and unlimited Case terms
- */
-
-CaseDefaultTermList
- : {$$ = NULL;}
- | CaseTerm {}
- | DefaultTerm {}
- | CaseDefaultTermList
- CaseTerm {$$ = TrLinkPeerNode ($1,$2);}
- | CaseDefaultTermList
- DefaultTerm {$$ = TrLinkPeerNode ($1,$2);}
-
-/* Original - attempts to force zero or one default term within the switch */
-
-/*
-CaseDefaultTermList
- : {$$ = NULL;}
- | CaseTermList
- DefaultTerm
- CaseTermList {$$ = TrLinkPeerNode ($1,TrLinkPeerNode ($2, $3));}
- | CaseTermList
- CaseTerm {$$ = TrLinkPeerNode ($1,$2);}
- ;
-
-CaseTermList
- : {$$ = NULL;}
- | CaseTerm {}
- | CaseTermList
- CaseTerm {$$ = TrLinkPeerNode ($1,$2);}
- ;
-*/
-
-CaseTerm
- : PARSEOP_CASE '(' {$$ = TrCreateLeafNode (PARSEOP_CASE);}
- DataObject
- ')' '{'
- TermList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
- | PARSEOP_CASE '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-DefaultTerm
- : PARSEOP_DEFAULT '{' {$$ = TrCreateLeafNode (PARSEOP_DEFAULT);}
- TermList '}' {$$ = TrLinkChildren ($<n>3,1,$4);}
- | PARSEOP_DEFAULT '{'
- error '}' {$$ = AslDoError(); yyclearin;}
- ;
-
-UnloadTerm
- : PARSEOP_UNLOAD '(' {$$ = TrCreateLeafNode (PARSEOP_UNLOAD);}
- SuperName
- ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
- | PARSEOP_UNLOAD '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-WhileTerm
- : PARSEOP_WHILE '(' {$$ = TrCreateLeafNode (PARSEOP_WHILE);}
- TermArg
- ')' '{' TermList '}'
- {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
- | PARSEOP_WHILE '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-
-/******* Type 2 opcodes *******************************************************/
-
-AcquireTerm
- : PARSEOP_ACQUIRE '(' {$$ = TrCreateLeafNode (PARSEOP_ACQUIRE);}
- SuperName
- ',' WordConstExpr
- ')' {$$ = TrLinkChildren ($<n>3,2,$4,$6);}
- | PARSEOP_ACQUIRE '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-AddTerm
- : PARSEOP_ADD '(' {$$ = TrCreateLeafNode (PARSEOP_ADD);}
- TermArg
- TermArgItem
- Target
- ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
- | PARSEOP_ADD '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-AndTerm
- : PARSEOP_AND '(' {$$ = TrCreateLeafNode (PARSEOP_AND);}
- TermArg
- TermArgItem
- Target
- ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
- | PARSEOP_AND '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-ConcatTerm
- : PARSEOP_CONCATENATE '(' {$$ = TrCreateLeafNode (PARSEOP_CONCATENATE);}
- TermArg
- TermArgItem
- Target
- ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
- | PARSEOP_CONCATENATE '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-ConcatResTerm
- : PARSEOP_CONCATENATERESTEMPLATE '(' {$$ = TrCreateLeafNode (PARSEOP_CONCATENATERESTEMPLATE);}
- TermArg
- TermArgItem
- Target
- ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
- | PARSEOP_CONCATENATERESTEMPLATE '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-CondRefOfTerm
- : PARSEOP_CONDREFOF '(' {$$ = TrCreateLeafNode (PARSEOP_CONDREFOF);}
- SuperName
- Target
- ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
- | PARSEOP_CONDREFOF '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-CopyObjectTerm
- : PARSEOP_COPYOBJECT '(' {$$ = TrCreateLeafNode (PARSEOP_COPYOBJECT);}
- TermArg
- ',' SimpleTarget
- ')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
- | PARSEOP_COPYOBJECT '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-DecTerm
- : PARSEOP_DECREMENT '(' {$$ = TrCreateLeafNode (PARSEOP_DECREMENT);}
- SuperName
- ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
- | PARSEOP_DECREMENT '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-DerefOfTerm
- : PARSEOP_DEREFOF '(' {$$ = TrCreateLeafNode (PARSEOP_DEREFOF);}
- TermArg
- ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
- | PARSEOP_DEREFOF '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-DivideTerm
- : PARSEOP_DIVIDE '(' {$$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
- TermArg
- TermArgItem
- Target
- Target
- ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
- | PARSEOP_DIVIDE '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-FindSetLeftBitTerm
- : PARSEOP_FINDSETLEFTBIT '(' {$$ = TrCreateLeafNode (PARSEOP_FINDSETLEFTBIT);}
- TermArg
- Target
- ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
- | PARSEOP_FINDSETLEFTBIT '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-FindSetRightBitTerm
- : PARSEOP_FINDSETRIGHTBIT '(' {$$ = TrCreateLeafNode (PARSEOP_FINDSETRIGHTBIT);}
- TermArg
- Target
- ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
- | PARSEOP_FINDSETRIGHTBIT '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-FromBCDTerm
- : PARSEOP_FROMBCD '(' {$$ = TrCreateLeafNode (PARSEOP_FROMBCD);}
- TermArg
- Target
- ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
- | PARSEOP_FROMBCD '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-IncTerm
- : PARSEOP_INCREMENT '(' {$$ = TrCreateLeafNode (PARSEOP_INCREMENT);}
- SuperName
- ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
- | PARSEOP_INCREMENT '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-IndexTerm
- : PARSEOP_INDEX '(' {$$ = TrCreateLeafNode (PARSEOP_INDEX);}
- TermArg
- TermArgItem
- Target
- ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
- | PARSEOP_INDEX '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-LAndTerm
- : PARSEOP_LAND '(' {$$ = TrCreateLeafNode (PARSEOP_LAND);}
- TermArg
- TermArgItem
- ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
- | PARSEOP_LAND '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-LEqualTerm
- : PARSEOP_LEQUAL '(' {$$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
- TermArg
- TermArgItem
- ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
- | PARSEOP_LEQUAL '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-LGreaterTerm
- : PARSEOP_LGREATER '(' {$$ = TrCreateLeafNode (PARSEOP_LGREATER);}
- TermArg
- TermArgItem
- ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
- | PARSEOP_LGREATER '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-LGreaterEqualTerm
- : PARSEOP_LGREATEREQUAL '(' {$$ = TrCreateLeafNode (PARSEOP_LLESS);}
- TermArg
- TermArgItem
- ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
- | PARSEOP_LGREATEREQUAL '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-LLessTerm
- : PARSEOP_LLESS '(' {$$ = TrCreateLeafNode (PARSEOP_LLESS);}
- TermArg
- TermArgItem
- ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
- | PARSEOP_LLESS '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-LLessEqualTerm
- : PARSEOP_LLESSEQUAL '(' {$$ = TrCreateLeafNode (PARSEOP_LGREATER);}
- TermArg
- TermArgItem
- ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
- | PARSEOP_LLESSEQUAL '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-LNotTerm
- : PARSEOP_LNOT '(' {$$ = TrCreateLeafNode (PARSEOP_LNOT);}
- TermArg
- ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
- | PARSEOP_LNOT '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-LNotEqualTerm
- : PARSEOP_LNOTEQUAL '(' {$$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
- TermArg
- TermArgItem
- ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
- | PARSEOP_LNOTEQUAL '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-LoadTableTerm
- : PARSEOP_LOADTABLE '(' {$$ = TrCreateLeafNode (PARSEOP_LOADTABLE);}
- TermArg
- TermArgItem
- TermArgItem
- OptionalListString
- OptionalListString
- OptionalReference
- ')' {$$ = TrLinkChildren ($<n>3,6,$4,$5,$6,$7,$8,$9);}
- | PARSEOP_LOADTABLE '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-LOrTerm
- : PARSEOP_LOR '(' {$$ = TrCreateLeafNode (PARSEOP_LOR);}
- TermArg
- TermArgItem
- ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
- | PARSEOP_LOR '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-MatchTerm
- : PARSEOP_MATCH '(' {$$ = TrCreateLeafNode (PARSEOP_MATCH);}
- TermArg
- ',' MatchOpKeyword
- TermArgItem
- ',' MatchOpKeyword
- TermArgItem
- TermArgItem
- ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$7,$9,$10,$11);}
- | PARSEOP_MATCH '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-MidTerm
- : PARSEOP_MID '(' {$$ = TrCreateLeafNode (PARSEOP_MID);}
- TermArg
- TermArgItem
- TermArgItem
- Target
- ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
- | PARSEOP_MID '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-ModTerm
- : PARSEOP_MOD '(' {$$ = TrCreateLeafNode (PARSEOP_MOD);}
- TermArg
- TermArgItem
- Target
- ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
- | PARSEOP_MOD '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-MultiplyTerm
- : PARSEOP_MULTIPLY '(' {$$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
- TermArg
- TermArgItem
- Target
- ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
- | PARSEOP_MULTIPLY '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-NAndTerm
- : PARSEOP_NAND '(' {$$ = TrCreateLeafNode (PARSEOP_NAND);}
- TermArg
- TermArgItem
- Target
- ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
- | PARSEOP_NAND '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-NOrTerm
- : PARSEOP_NOR '(' {$$ = TrCreateLeafNode (PARSEOP_NOR);}
- TermArg
- TermArgItem
- Target
- ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
- | PARSEOP_NOR '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-NotTerm
- : PARSEOP_NOT '(' {$$ = TrCreateLeafNode (PARSEOP_NOT);}
- TermArg
- Target
- ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
- | PARSEOP_NOT '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-ObjectTypeTerm
- : PARSEOP_OBJECTTYPE '(' {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE);}
- SuperName
- ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
- | PARSEOP_OBJECTTYPE '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-OrTerm
- : PARSEOP_OR '(' {$$ = TrCreateLeafNode (PARSEOP_OR);}
- TermArg
- TermArgItem
- Target
- ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
- | PARSEOP_OR '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-/*
- * In RefOf, the node isn't really a target, but we can't keep track of it after
- * we've taken a pointer to it. (hard to tell if a local becomes initialized this way.)
- */
-RefOfTerm
- : PARSEOP_REFOF '(' {$$ = TrCreateLeafNode (PARSEOP_REFOF);}
- SuperName
- ')' {$$ = TrLinkChildren ($<n>3,1,TrSetNodeFlags ($4, NODE_IS_TARGET));}
- | PARSEOP_REFOF '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-ShiftLeftTerm
- : PARSEOP_SHIFTLEFT '(' {$$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
- TermArg
- TermArgItem
- Target
- ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
- | PARSEOP_SHIFTLEFT '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-ShiftRightTerm
- : PARSEOP_SHIFTRIGHT '(' {$$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
- TermArg
- TermArgItem
- Target
- ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
- | PARSEOP_SHIFTRIGHT '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-SizeOfTerm
- : PARSEOP_SIZEOF '(' {$$ = TrCreateLeafNode (PARSEOP_SIZEOF);}
- SuperName
- ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
- | PARSEOP_SIZEOF '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-StoreTerm
- : PARSEOP_STORE '(' {$$ = TrCreateLeafNode (PARSEOP_STORE);}
- TermArg
- ',' SuperName
- ')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
- | PARSEOP_STORE '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-SubtractTerm
- : PARSEOP_SUBTRACT '(' {$$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
- TermArg
- TermArgItem
- Target
- ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
- | PARSEOP_SUBTRACT '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-TimerTerm
- : PARSEOP_TIMER '(' {$$ = TrCreateLeafNode (PARSEOP_TIMER);}
- ')' {$$ = TrLinkChildren ($<n>3,0);}
- | PARSEOP_TIMER {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_TIMER),0);}
- | PARSEOP_TIMER '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-ToBCDTerm
- : PARSEOP_TOBCD '(' {$$ = TrCreateLeafNode (PARSEOP_TOBCD);}
- TermArg
- Target
- ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
- | PARSEOP_TOBCD '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-ToBufferTerm
- : PARSEOP_TOBUFFER '(' {$$ = TrCreateLeafNode (PARSEOP_TOBUFFER);}
- TermArg
- Target
- ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
- | PARSEOP_TOBUFFER '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-ToDecimalStringTerm
- : PARSEOP_TODECIMALSTRING '(' {$$ = TrCreateLeafNode (PARSEOP_TODECIMALSTRING);}
- TermArg
- Target
- ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
- | PARSEOP_TODECIMALSTRING '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-ToHexStringTerm
- : PARSEOP_TOHEXSTRING '(' {$$ = TrCreateLeafNode (PARSEOP_TOHEXSTRING);}
- TermArg
- Target
- ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
- | PARSEOP_TOHEXSTRING '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-ToIntegerTerm
- : PARSEOP_TOINTEGER '(' {$$ = TrCreateLeafNode (PARSEOP_TOINTEGER);}
- TermArg
- Target
- ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
- | PARSEOP_TOINTEGER '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-ToStringTerm
- : PARSEOP_TOSTRING '(' {$$ = TrCreateLeafNode (PARSEOP_TOSTRING);}
- TermArg
- OptionalCount
- Target
- ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
- | PARSEOP_TOSTRING '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-ToUUIDTerm
- : PARSEOP_TOUUID '('
- StringData ')' {$$ = TrUpdateNode (PARSEOP_TOUUID, $3);}
- | PARSEOP_TOUUID '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-WaitTerm
- : PARSEOP_WAIT '(' {$$ = TrCreateLeafNode (PARSEOP_WAIT);}
- SuperName
- TermArgItem
- ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
- | PARSEOP_WAIT '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-XOrTerm
- : PARSEOP_XOR '(' {$$ = TrCreateLeafNode (PARSEOP_XOR);}
- TermArg
- TermArgItem
- Target
- ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
- | PARSEOP_XOR '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-
-/******* Keywords *************************************************************/
-
-
-ObjectTypeKeyword
- : PARSEOP_OBJECTTYPE_UNK {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
- | PARSEOP_OBJECTTYPE_INT {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_INT);}
- | PARSEOP_OBJECTTYPE_STR {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_STR);}
- | PARSEOP_OBJECTTYPE_BUF {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BUF);}
- | PARSEOP_OBJECTTYPE_PKG {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PKG);}
- | PARSEOP_OBJECTTYPE_FLD {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_FLD);}
- | PARSEOP_OBJECTTYPE_DEV {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DEV);}
- | PARSEOP_OBJECTTYPE_EVT {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_EVT);}
- | PARSEOP_OBJECTTYPE_MTH {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTH);}
- | PARSEOP_OBJECTTYPE_MTX {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTX);}
- | PARSEOP_OBJECTTYPE_OPR {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_OPR);}
- | PARSEOP_OBJECTTYPE_POW {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_POW);}
- | PARSEOP_OBJECTTYPE_PRO {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PRO);}
- | PARSEOP_OBJECTTYPE_THZ {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_THZ);}
- | PARSEOP_OBJECTTYPE_BFF {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BFF);}
- | PARSEOP_OBJECTTYPE_DDB {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DDB);}
- ;
-
-AccessTypeKeyword
- : PARSEOP_ACCESSTYPE_ANY {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_ANY);}
- | PARSEOP_ACCESSTYPE_BYTE {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BYTE);}
- | PARSEOP_ACCESSTYPE_WORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_WORD);}
- | PARSEOP_ACCESSTYPE_DWORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_DWORD);}
- | PARSEOP_ACCESSTYPE_QWORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_QWORD);}
- | PARSEOP_ACCESSTYPE_BUF {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BUF);}
- ;
-
-AccessAttribKeyword
- : PARSEOP_ACCESSATTRIB_QUICK {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_QUICK );}
- | PARSEOP_ACCESSATTRIB_SND_RCV {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_SND_RCV);}
- | PARSEOP_ACCESSATTRIB_BYTE {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BYTE);}
- | PARSEOP_ACCESSATTRIB_WORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD);}
- | PARSEOP_ACCESSATTRIB_BLOCK {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK);}
- | PARSEOP_ACCESSATTRIB_WORD_CALL {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD_CALL);}
- | PARSEOP_ACCESSATTRIB_BLOCK_CALL {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK_CALL);}
- ;
-
-LockRuleKeyword
- : PARSEOP_LOCKRULE_LOCK {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_LOCK);}
- | PARSEOP_LOCKRULE_NOLOCK {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_NOLOCK);}
- ;
-
-UpdateRuleKeyword
- : PARSEOP_UPDATERULE_PRESERVE {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_PRESERVE);}
- | PARSEOP_UPDATERULE_ONES {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ONES);}
- | PARSEOP_UPDATERULE_ZEROS {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ZEROS);}
- ;
-
-
-RegionSpaceKeyword
- : PARSEOP_REGIONSPACE_IO {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IO);}
- | PARSEOP_REGIONSPACE_MEM {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_MEM);}
- | PARSEOP_REGIONSPACE_PCI {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCI);}
- | PARSEOP_REGIONSPACE_EC {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_EC);}
- | PARSEOP_REGIONSPACE_SMBUS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_SMBUS);}
- | PARSEOP_REGIONSPACE_CMOS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_CMOS);}
- | PARSEOP_REGIONSPACE_PCIBAR {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCIBAR);}
- ;
-
-AddressSpaceKeyword
- : ByteConst {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
- | RegionSpaceKeyword {}
- | PARSEOP_ADDRESSSPACE_FFIXEDHW {$$ = TrCreateLeafNode (PARSEOP_ADDRESSSPACE_FFIXEDHW);}
- ;
-
-
-SerializeRuleKeyword
- : PARSEOP_SERIALIZERULE_SERIAL {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_SERIAL);}
- | PARSEOP_SERIALIZERULE_NOTSERIAL {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL);}
- ;
-
-MatchOpKeyword
- : PARSEOP_MATCHTYPE_MTR {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MTR);}
- | PARSEOP_MATCHTYPE_MEQ {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MEQ);}
- | PARSEOP_MATCHTYPE_MLE {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLE);}
- | PARSEOP_MATCHTYPE_MLT {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLT);}
- | PARSEOP_MATCHTYPE_MGE {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGE);}
- | PARSEOP_MATCHTYPE_MGT {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGT);}
- ;
-
-DMATypeKeyword
- : PARSEOP_DMATYPE_A {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_A);}
- | PARSEOP_DMATYPE_COMPATIBILITY {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_COMPATIBILITY);}
- | PARSEOP_DMATYPE_B {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_B);}
- | PARSEOP_DMATYPE_F {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_F);}
- ;
-
-XferTypeKeyword
- : PARSEOP_XFERTYPE_8 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8);}
- | PARSEOP_XFERTYPE_8_16 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8_16);}
- | PARSEOP_XFERTYPE_16 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_16);}
- ;
-
-ResourceTypeKeyword
- : PARSEOP_RESOURCETYPE_CONSUMER {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
- | PARSEOP_RESOURCETYPE_PRODUCER {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_PRODUCER);}
- ;
-
-MinKeyword
- : PARSEOP_MINTYPE_FIXED {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_FIXED);}
- | PARSEOP_MINTYPE_NOTFIXED {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_NOTFIXED);}
- ;
-
-MaxKeyword
- : PARSEOP_MAXTYPE_FIXED {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_FIXED);}
- | PARSEOP_MAXTYPE_NOTFIXED {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_NOTFIXED);}
- ;
-
-DecodeKeyword
- : PARSEOP_DECODETYPE_POS {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_POS);}
- | PARSEOP_DECODETYPE_SUB {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_SUB);}
- ;
-
-RangeTypeKeyword
- : PARSEOP_RANGETYPE_ISAONLY {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ISAONLY);}
- | PARSEOP_RANGETYPE_NONISAONLY {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_NONISAONLY);}
- | PARSEOP_RANGETYPE_ENTIRE {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ENTIRE);}
- ;
-
-MemTypeKeyword
- : PARSEOP_MEMTYPE_CACHEABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_CACHEABLE);}
- | PARSEOP_MEMTYPE_WRITECOMBINING {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_WRITECOMBINING);}
- | PARSEOP_MEMTYPE_PREFETCHABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_PREFETCHABLE);}
- | PARSEOP_MEMTYPE_NONCACHEABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_NONCACHEABLE);}
- ;
-
-OptionalReadWriteKeyword
- : {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
- | PARSEOP_READWRITETYPE_BOTH {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
- | PARSEOP_READWRITETYPE_READONLY {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_READONLY);}
- ;
-
-InterruptTypeKeyword
- : PARSEOP_INTTYPE_EDGE {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_EDGE);}
- | PARSEOP_INTTYPE_LEVEL {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_LEVEL);}
- ;
-
-InterruptLevel
- : PARSEOP_INTLEVEL_ACTIVEHIGH {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEHIGH);}
- | PARSEOP_INTLEVEL_ACTIVELOW {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVELOW);}
- ;
-
-ShareTypeKeyword
- : PARSEOP_SHARETYPE_SHARED {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHARED);}
- | PARSEOP_SHARETYPE_EXCLUSIVE {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVE);}
- ;
-
-IODecodeKeyword
- : PARSEOP_IODECODETYPE_16 {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_16);}
- | PARSEOP_IODECODETYPE_10 {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_10);}
- ;
-
-TypeKeyword
- : PARSEOP_TYPE_TRANSLATION {$$ = TrCreateLeafNode (PARSEOP_TYPE_TRANSLATION);}
- | PARSEOP_TYPE_STATIC {$$ = TrCreateLeafNode (PARSEOP_TYPE_STATIC);}
- ;
-
-TranslationKeyword
- : PARSEOP_TRANSLATIONTYPE_SPARSE {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_SPARSE);}
- | PARSEOP_TRANSLATIONTYPE_DENSE {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_DENSE);}
- ;
-
-AddressKeyword
- : PARSEOP_ADDRESSTYPE_MEMORY {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_MEMORY);}
- | PARSEOP_ADDRESSTYPE_RESERVED {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_RESERVED);}
- | PARSEOP_ADDRESSTYPE_NVS {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_NVS);}
- | PARSEOP_ADDRESSTYPE_ACPI {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_ACPI);}
- ;
-
-
-/******* Miscellaneous Types **************************************************/
-
-
-SuperName
- : NameString {}
- | ArgTerm {}
- | LocalTerm {}
- | DebugTerm {}
- | Type6Opcode {}
-/* | UserTerm {} */ /* Caused reduce/reduce with Type6Opcode->UserTerm */
- ;
-
-ArgTerm
- : PARSEOP_ARG0 {$$ = TrCreateLeafNode (PARSEOP_ARG0);}
- | PARSEOP_ARG1 {$$ = TrCreateLeafNode (PARSEOP_ARG1);}
- | PARSEOP_ARG2 {$$ = TrCreateLeafNode (PARSEOP_ARG2);}
- | PARSEOP_ARG3 {$$ = TrCreateLeafNode (PARSEOP_ARG3);}
- | PARSEOP_ARG4 {$$ = TrCreateLeafNode (PARSEOP_ARG4);}
- | PARSEOP_ARG5 {$$ = TrCreateLeafNode (PARSEOP_ARG5);}
- | PARSEOP_ARG6 {$$ = TrCreateLeafNode (PARSEOP_ARG6);}
- ;
-
-LocalTerm
- : PARSEOP_LOCAL0 {$$ = TrCreateLeafNode (PARSEOP_LOCAL0);}
- | PARSEOP_LOCAL1 {$$ = TrCreateLeafNode (PARSEOP_LOCAL1);}
- | PARSEOP_LOCAL2 {$$ = TrCreateLeafNode (PARSEOP_LOCAL2);}
- | PARSEOP_LOCAL3 {$$ = TrCreateLeafNode (PARSEOP_LOCAL3);}
- | PARSEOP_LOCAL4 {$$ = TrCreateLeafNode (PARSEOP_LOCAL4);}
- | PARSEOP_LOCAL5 {$$ = TrCreateLeafNode (PARSEOP_LOCAL5);}
- | PARSEOP_LOCAL6 {$$ = TrCreateLeafNode (PARSEOP_LOCAL6);}
- | PARSEOP_LOCAL7 {$$ = TrCreateLeafNode (PARSEOP_LOCAL7);}
- ;
-
-DebugTerm
- : PARSEOP_DEBUG {$$ = TrCreateLeafNode (PARSEOP_DEBUG);}
- ;
-
-
-ByteConst
- : Integer {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
- ;
-
-WordConst
- : Integer {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
- ;
-
-DWordConst
- : Integer {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
- ;
-
-QWordConst
- : Integer {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
- ;
-
-Integer
- : PARSEOP_INTEGER {$$ = TrCreateValuedLeafNode (PARSEOP_INTEGER, AslCompilerlval.i);}
- ;
-
-String
- : PARSEOP_STRING_LITERAL {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, (ACPI_NATIVE_INT) AslCompilerlval.s);}
- ;
-
-ConstTerm
- : ConstExprTerm {}
- | PARSEOP_REVISION {$$ = TrCreateLeafNode (PARSEOP_REVISION);}
- ;
-
-ByteConstExpr
- : Type3Opcode {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
- | Type2IntegerOpcode {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
- | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
- | ByteConst {}
- ;
-
-WordConstExpr
- : Type3Opcode {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
- | Type2IntegerOpcode {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
- | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
- | WordConst {}
- ;
-
-DWordConstExpr
- : Type3Opcode {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
- | Type2IntegerOpcode {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
- | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
- | DWordConst {}
- ;
-
-QWordConstExpr
- : Type3Opcode {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
- | Type2IntegerOpcode {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
- | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
- | QWordConst {}
- ;
-
-ConstExprTerm
- : PARSEOP_ZERO {$$ = TrCreateValuedLeafNode (PARSEOP_ZERO, 0);}
- | PARSEOP_ONE {$$ = TrCreateValuedLeafNode (PARSEOP_ONE, 1);}
- | PARSEOP_ONES {$$ = TrCreateValuedLeafNode (PARSEOP_ONES, ACPI_INTEGER_MAX);}
- ;
-
-/* OptionalCount must appear before ByteList or an incorrect reduction will result */
-
-OptionalCount
- : {$$ = TrCreateLeafNode (PARSEOP_ONES);} /* Placeholder is a OnesOp object */
- | ',' {$$ = TrCreateLeafNode (PARSEOP_ONES);} /* Placeholder is a OnesOp object */
- | ',' TermArg {$$ = $2;}
- ;
-
-
-BufferTerm
- : PARSEOP_BUFFER '(' {$$ = TrCreateLeafNode (PARSEOP_BUFFER);}
- OptionalTermArg
- ')' '{'
- BufferTermData '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
- | PARSEOP_BUFFER '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-BufferTermData
- : ByteList {}
- | StringData {}
- ;
-
-ByteList
- : {$$ = NULL;}
- | ByteConstExpr
- | ByteList ',' /* Allows a trailing comma at list end */
- | ByteList ','
- ByteConstExpr {$$ = TrLinkPeerNode ($1,$3);}
- ;
-
-DWordList
- : {$$ = NULL;}
- | DWordConstExpr
- | DWordList ',' /* Allows a trailing comma at list end */
- | DWordList ','
- DWordConstExpr {$$ = TrLinkPeerNode ($1,$3);}
- ;
-
-PackageTerm
- : PARSEOP_PACKAGE '(' {$$ = TrCreateLeafNode (PARSEOP_VAR_PACKAGE);}
- VarPackageLengthTerm
- ')' '{'
- PackageList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
- | PARSEOP_PACKAGE '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-VarPackageLengthTerm
- : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
- | TermArg {$$ = $1;}
- ;
-
-PackageList
- : {$$ = NULL;}
- | PackageElement
- | PackageList ',' /* Allows a trailing comma at list end */
- | PackageList ','
- PackageElement {$$ = TrLinkPeerNode ($1,$3);}
- ;
-
-PackageElement
- : DataObject {}
- | NameString {}
- ;
-
-EISAIDTerm
- : PARSEOP_EISAID '('
- StringData ')' {$$ = TrUpdateNode (PARSEOP_EISAID, $3);}
- | PARSEOP_EISAID '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-
-/******* Resources and Memory ***********************************************/
-
-
-/*
- * Note: Create two default nodes to allow conversion to a Buffer AML opcode
- * Also, insert the EndTag at the end of the template.
- */
-ResourceTemplateTerm
- : PARSEOP_RESOURCETEMPLATE '(' ')'
- '{'
- ResourceMacroList '}' {$$ = TrCreateNode (PARSEOP_RESOURCETEMPLATE,4,
- TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
- TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
- $5,
- TrCreateLeafNode (PARSEOP_ENDTAG));}
- ;
-
-UnicodeTerm
- : PARSEOP_UNICODE '(' {$$ = TrCreateLeafNode (PARSEOP_UNICODE);}
- StringData
- ')' {$$ = TrLinkChildren ($<n>3,2,0,$4);}
- | PARSEOP_UNICODE '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-ResourceMacroList
- : {$$ = NULL;}
- | ResourceMacroList
- ResourceMacroTerm {$$ = TrLinkPeerNode ($1,$2);}
- ;
-
-ResourceMacroTerm
- : DMATerm {}
- | DWordIOTerm {}
- | DWordMemoryTerm {}
- | DWordSpaceTerm {}
- | EndDependentFnTerm {}
- | ExtendedIOTerm {}
- | ExtendedMemoryTerm {}
- | ExtendedSpaceTerm {}
- | FixedIOTerm {}
- | InterruptTerm {}
- | IOTerm {}
- | IRQNoFlagsTerm {}
- | IRQTerm {}
- | Memory24Term {}
- | Memory32FixedTerm {}
- | Memory32Term {}
- | QWordIOTerm {}
- | QWordMemoryTerm {}
- | QWordSpaceTerm {}
- | RegisterTerm {}
- | StartDependentFnTerm {}
- | StartDependentFnNoPriTerm {}
- | VendorLongTerm {}
- | VendorShortTerm {}
- | WordBusNumberTerm {}
- | WordIOTerm {}
- | WordSpaceTerm {}
- ;
-
-DMATerm
- : PARSEOP_DMA '(' {$$ = TrCreateLeafNode (PARSEOP_DMA);}
- DMATypeKeyword
- OptionalBusMasterKeyword
- ',' XferTypeKeyword
- OptionalNameString_Last
- ')' '{'
- ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$5,$7,$8,$11);}
- | PARSEOP_DMA '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-DWordIOTerm
- : PARSEOP_DWORDIO '(' {$$ = TrCreateLeafNode (PARSEOP_DWORDIO);}
- OptionalResourceType_First
- OptionalMinType
- OptionalMaxType
- OptionalDecodeType
- OptionalRangeType
- ',' DWordConstExpr
- ',' DWordConstExpr
- ',' DWordConstExpr
- ',' DWordConstExpr
- ',' DWordConstExpr
- OptionalByteConstExpr
- OptionalStringData
- OptionalNameString
- OptionalType
- OptionalTranslationType_Last
- ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
- | PARSEOP_DWORDIO '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-DWordMemoryTerm
- : PARSEOP_DWORDMEMORY '(' {$$ = TrCreateLeafNode (PARSEOP_DWORDMEMORY);}
- OptionalResourceType_First
- OptionalDecodeType
- OptionalMinType
- OptionalMaxType
- OptionalMemType
- ',' OptionalReadWriteKeyword
- ',' DWordConstExpr
- ',' DWordConstExpr
- ',' DWordConstExpr
- ',' DWordConstExpr
- ',' DWordConstExpr
- OptionalByteConstExpr
- OptionalStringData
- OptionalNameString
- OptionalAddressRange
- OptionalType_Last
- ')' {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
- | PARSEOP_DWORDMEMORY '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-DWordSpaceTerm
- : PARSEOP_DWORDSPACE '(' {$$ = TrCreateLeafNode (PARSEOP_DWORDSPACE);}
- ByteConstExpr {$$ = UtCheckIntegerRange ($4, 0xC0, 0xFF);}
- OptionalResourceType
- OptionalDecodeType
- OptionalMinType
- OptionalMaxType
- ',' ByteConstExpr
- ',' DWordConstExpr
- ',' DWordConstExpr
- ',' DWordConstExpr
- ',' DWordConstExpr
- ',' DWordConstExpr
- OptionalByteConstExpr
- OptionalStringData
- OptionalNameString_Last
- ')' {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
- | PARSEOP_DWORDSPACE '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-
-EndDependentFnTerm
- : PARSEOP_ENDDEPENDENTFN '('
- ')' {$$ = TrCreateLeafNode (PARSEOP_ENDDEPENDENTFN);}
- | PARSEOP_ENDDEPENDENTFN '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-ExtendedIOTerm
- : PARSEOP_EXTENDEDIO '(' {$$ = TrCreateLeafNode (PARSEOP_EXTENDEDIO);}
- OptionalResourceType_First
- OptionalMinType
- OptionalMaxType
- OptionalDecodeType
- OptionalRangeType
- ',' QWordConstExpr
- ',' QWordConstExpr
- ',' QWordConstExpr
- ',' QWordConstExpr
- ',' QWordConstExpr
- OptionalQWordConstExpr
- OptionalNameString
- OptionalType
- OptionalTranslationType_Last
- ')' {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
- | PARSEOP_EXTENDEDIO '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-ExtendedMemoryTerm
- : PARSEOP_EXTENDEDMEMORY '(' {$$ = TrCreateLeafNode (PARSEOP_EXTENDEDMEMORY);}
- OptionalResourceType_First
- OptionalDecodeType
- OptionalMinType
- OptionalMaxType
- OptionalMemType
- ',' OptionalReadWriteKeyword
- ',' QWordConstExpr
- ',' QWordConstExpr
- ',' QWordConstExpr
- ',' QWordConstExpr
- ',' QWordConstExpr
- OptionalQWordConstExpr
- OptionalNameString
- OptionalAddressRange
- OptionalType_Last
- ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
- | PARSEOP_EXTENDEDMEMORY '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-ExtendedSpaceTerm
- : PARSEOP_EXTENDEDSPACE '(' {$$ = TrCreateLeafNode (PARSEOP_EXTENDEDSPACE);}
- ByteConstExpr {$$ = UtCheckIntegerRange ($4, 0xC0, 0xFF);}
- OptionalResourceType
- OptionalDecodeType
- OptionalMinType
- OptionalMaxType
- ',' ByteConstExpr
- ',' QWordConstExpr
- ',' QWordConstExpr
- ',' QWordConstExpr
- ',' QWordConstExpr
- ',' QWordConstExpr
- OptionalQWordConstExpr
- OptionalNameString_Last
- ')' {$$ = TrLinkChildren ($<n>3,13,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
- | PARSEOP_EXTENDEDSPACE '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-FixedIOTerm
- : PARSEOP_FIXEDIO '(' {$$ = TrCreateLeafNode (PARSEOP_FIXEDIO);}
- WordConstExpr
- ',' ByteConstExpr
- OptionalNameString_Last
- ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
- | PARSEOP_FIXEDIO '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-InterruptTerm
- : PARSEOP_INTERRUPT '(' {$$ = TrCreateLeafNode (PARSEOP_INTERRUPT);}
- OptionalResourceType_First
- ',' InterruptTypeKeyword
- ',' InterruptLevel
- OptionalShareType
- OptionalByteConstExpr
- OptionalStringData
- OptionalNameString_Last
- ')' '{'
- DWordList '}' {$$ = TrLinkChildren ($<n>3,8,$4,$6,$8,$9,$10,$11,$12,$15);}
- | PARSEOP_INTERRUPT '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-IOTerm
- : PARSEOP_IO '(' {$$ = TrCreateLeafNode (PARSEOP_IO);}
- IODecodeKeyword
- ',' WordConstExpr
- ',' WordConstExpr
- ',' ByteConstExpr
- ',' ByteConstExpr
- OptionalNameString_Last
- ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
- | PARSEOP_IO '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-IRQNoFlagsTerm
- : PARSEOP_IRQNOFLAGS '(' {$$ = TrCreateLeafNode (PARSEOP_IRQNOFLAGS);}
- OptionalNameString_First
- ')' '{'
- ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
- | PARSEOP_IRQNOFLAGS '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-IRQTerm
- : PARSEOP_IRQ '(' {$$ = TrCreateLeafNode (PARSEOP_IRQ);}
- InterruptTypeKeyword
- ',' InterruptLevel
- OptionalShareType
- OptionalNameString_Last
- ')' '{'
- ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$7,$8,$11);}
- | PARSEOP_IRQ '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-Memory24Term
- : PARSEOP_MEMORY24 '(' {$$ = TrCreateLeafNode (PARSEOP_MEMORY24);}
- OptionalReadWriteKeyword
- ',' WordConstExpr
- ',' WordConstExpr
- ',' WordConstExpr
- ',' WordConstExpr
- OptionalNameString_Last
- ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
- | PARSEOP_MEMORY24 '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-Memory32FixedTerm
- : PARSEOP_MEMORY32FIXED '(' {$$ = TrCreateLeafNode (PARSEOP_MEMORY32FIXED);}
- OptionalReadWriteKeyword
- ',' DWordConstExpr
- ',' DWordConstExpr
- OptionalNameString_Last
- ')' {$$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$9);}
- | PARSEOP_MEMORY32FIXED '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-Memory32Term
- : PARSEOP_MEMORY32 '(' {$$ = TrCreateLeafNode (PARSEOP_MEMORY32);}
- OptionalReadWriteKeyword
- ',' DWordConstExpr
- ',' DWordConstExpr
- ',' DWordConstExpr
- ',' DWordConstExpr
- OptionalNameString_Last
- ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
- | PARSEOP_MEMORY32 '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-QWordIOTerm
- : PARSEOP_QWORDIO '(' {$$ = TrCreateLeafNode (PARSEOP_QWORDIO);}
- OptionalResourceType_First
- OptionalMinType
- OptionalMaxType
- OptionalDecodeType
- OptionalRangeType
- ',' QWordConstExpr
- ',' QWordConstExpr
- ',' QWordConstExpr
- ',' QWordConstExpr
- ',' QWordConstExpr
- OptionalByteConstExpr
- OptionalStringData
- OptionalNameString
- OptionalType
- OptionalTranslationType_Last
- ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
- | PARSEOP_QWORDIO '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-QWordMemoryTerm
- : PARSEOP_QWORDMEMORY '(' {$$ = TrCreateLeafNode (PARSEOP_QWORDMEMORY);}
- OptionalResourceType_First
- OptionalDecodeType
- OptionalMinType
- OptionalMaxType
- OptionalMemType
- ',' OptionalReadWriteKeyword
- ',' QWordConstExpr
- ',' QWordConstExpr
- ',' QWordConstExpr
- ',' QWordConstExpr
- ',' QWordConstExpr
- OptionalByteConstExpr
- OptionalStringData
- OptionalNameString
- OptionalAddressRange
- OptionalType_Last
- ')' {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
- | PARSEOP_QWORDMEMORY '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-QWordSpaceTerm
- : PARSEOP_QWORDSPACE '(' {$$ = TrCreateLeafNode (PARSEOP_QWORDSPACE);}
- ByteConstExpr {$$ = UtCheckIntegerRange ($4, 0xC0, 0xFF);}
- OptionalResourceType
- OptionalDecodeType
- OptionalMinType
- OptionalMaxType
- ',' ByteConstExpr
- ',' QWordConstExpr
- ',' QWordConstExpr
- ',' QWordConstExpr
- ',' QWordConstExpr
- ',' QWordConstExpr
- OptionalByteConstExpr
- OptionalStringData
- OptionalNameString_Last
- ')' {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
- | PARSEOP_QWORDSPACE '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-RegisterTerm
- : PARSEOP_REGISTER '(' {$$ = TrCreateLeafNode (PARSEOP_REGISTER);}
- AddressSpaceKeyword
- ',' ByteConstExpr
- ',' ByteConstExpr
- ',' QWordConstExpr
- OptionalAccessSize
- OptionalNameString_Last
- ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
- | PARSEOP_REGISTER '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-StartDependentFnTerm
- : PARSEOP_STARTDEPENDENTFN '(' {$$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN);}
- ByteConstExpr
- ',' ByteConstExpr
- ')' '{'
- ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$9);}
- | PARSEOP_STARTDEPENDENTFN '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-StartDependentFnNoPriTerm
- : PARSEOP_STARTDEPENDENTFN_NOPRI '(' {$$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN_NOPRI);}
- ')' '{'
- ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,1,$6);}
- | PARSEOP_STARTDEPENDENTFN_NOPRI '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-VendorLongTerm
- : PARSEOP_VENDORLONG '(' {$$ = TrCreateLeafNode (PARSEOP_VENDORLONG);}
- OptionalNameString_First
- ')' '{'
- ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
- | PARSEOP_VENDORLONG '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-VendorShortTerm
- : PARSEOP_VENDORSHORT '(' {$$ = TrCreateLeafNode (PARSEOP_VENDORSHORT);}
- OptionalNameString_First
- ')' '{'
- ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
- | PARSEOP_VENDORSHORT '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-WordBusNumberTerm
- : PARSEOP_WORDBUSNUMBER '(' {$$ = TrCreateLeafNode (PARSEOP_WORDBUSNUMBER);}
- OptionalResourceType_First
- OptionalMinType
- OptionalMaxType
- OptionalDecodeType
- ',' WordConstExpr
- ',' WordConstExpr
- ',' WordConstExpr
- ',' WordConstExpr
- ',' WordConstExpr
- OptionalByteConstExpr
- OptionalStringData
- OptionalNameString_Last
- ')' {$$ = TrLinkChildren ($<n>3,12,$4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
- | PARSEOP_WORDBUSNUMBER '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-WordIOTerm
- : PARSEOP_WORDIO '(' {$$ = TrCreateLeafNode (PARSEOP_WORDIO);}
- OptionalResourceType_First
- OptionalMinType
- OptionalMaxType
- OptionalDecodeType
- OptionalRangeType
- ',' WordConstExpr
- ',' WordConstExpr
- ',' WordConstExpr
- ',' WordConstExpr
- ',' WordConstExpr
- OptionalByteConstExpr
- OptionalStringData
- OptionalNameString
- OptionalType
- OptionalTranslationType_Last
- ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
- | PARSEOP_WORDIO '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-WordSpaceTerm
- : PARSEOP_WORDSPACE '(' {$$ = TrCreateLeafNode (PARSEOP_WORDSPACE);}
- ByteConstExpr {$$ = UtCheckIntegerRange ($4, 0xC0, 0xFF);}
- OptionalResourceType
- OptionalDecodeType
- OptionalMinType
- OptionalMaxType
- ',' ByteConstExpr
- ',' WordConstExpr
- ',' WordConstExpr
- ',' WordConstExpr
- ',' WordConstExpr
- ',' WordConstExpr
- OptionalByteConstExpr
- OptionalStringData
- OptionalNameString_Last
- ')' {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
- | PARSEOP_WORDSPACE '('
- error ')' {$$ = AslDoError(); yyclearin;}
- ;
-
-
-/******* Object References ***********************************************/
-
-/* Allow IO, DMA, IRQ Resource macro names to also be used as identifiers */
-
-NameString
- : NameSeg {}
- | PARSEOP_NAMESTRING {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) AslCompilerlval.s);}
- | PARSEOP_IO {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IO");}
- | PARSEOP_DMA {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "DMA");}
- | PARSEOP_IRQ {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IRQ");}
- ;
-
-NameSeg
- : PARSEOP_NAMESEG {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESEG, (ACPI_NATIVE_INT) AslCompilerlval.s);}
- ;
-
-
-/******* Helper rules ****************************************************/
-
-
-AmlPackageLengthTerm
- : Integer {$$ = TrUpdateNode (PARSEOP_PACKAGE_LENGTH,(ACPI_PARSE_OBJECT *) $1);}
- ;
-
-OptionalBusMasterKeyword
- : ',' {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
- | ',' PARSEOP_BUSMASTERTYPE_MASTER {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
- | ',' PARSEOP_BUSMASTERTYPE_NOTMASTER {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_NOTMASTER);}
- ;
-
-OptionalAccessAttribTerm
- : {$$ = NULL;}
- | ',' {$$ = NULL;}
- | ',' ByteConstExpr {$$ = $2;}
- | ',' AccessAttribKeyword {$$ = $2;}
- ;
-
-OptionalAccessSize
- : {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
- | ',' {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
- | ',' ByteConstExpr {$$ = $2;}
- ;
-
-OptionalAddressRange
- : {$$ = NULL;}
- | ',' {$$ = NULL;}
- | ',' AddressKeyword {$$ = $2;}
- ;
-
-OptionalByteConstExpr
- : {$$ = NULL;}
- | ',' {$$ = NULL;}
- | ',' ByteConstExpr {$$ = $2;}
- ;
-
-OptionalDecodeType
- : ',' {$$ = NULL;}
- | ',' DecodeKeyword {$$ = $2;}
- ;
-
-OptionalDWordConstExpr
- : {$$ = NULL;}
- | ',' {$$ = NULL;}
- | ',' DWordConstExpr {$$ = $2;}
- ;
-
-OptionalListString
- : {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));} /* Placeholder is a NULL string */
- | ',' {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));} /* Placeholder is a NULL string */
- | ',' TermArg {$$ = $2;}
- ;
-
-OptionalMaxType
- : ',' {$$ = NULL;}
- | ',' MaxKeyword {$$ = $2;}
- ;
-
-OptionalMemType
- : ',' {$$ = NULL;}
- | ',' MemTypeKeyword {$$ = $2;}
- ;
-
-OptionalMinType
- : ',' {$$ = NULL;}
- | ',' MinKeyword {$$ = $2;}
- ;
-
-OptionalNameString
- : {$$ = NULL;}
- | ',' {$$ = NULL;}
- | ',' NameString {$$ = $2;}
- ;
-
-OptionalNameString_Last
- : {$$ = NULL;}
- | ',' {$$ = NULL;}
- | ',' NameString {$$ = $2;}
- ;
-
-OptionalNameString_First
- : {$$ = TrCreateLeafNode (PARSEOP_ZERO);}
- | NameString {$$ = $1;}
- ;
-
-OptionalObjectTypeKeyword
- : {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
- | ',' ObjectTypeKeyword {$$ = $2;}
- ;
-
-OptionalQWordConstExpr
- : {$$ = NULL;}
- | ',' {$$ = NULL;}
- | ',' QWordConstExpr {$$ = $2;}
- ;
-
-OptionalRangeType
- : ',' {$$ = NULL;}
- | ',' RangeTypeKeyword {$$ = $2;}
- ;
-
-OptionalReference
- : {$$ = TrCreateLeafNode (PARSEOP_ZERO);} /* Placeholder is a ZeroOp object */
- | ',' {$$ = TrCreateLeafNode (PARSEOP_ZERO);} /* Placeholder is a ZeroOp object */
- | ',' DataObject {$$ = $2;}
- | ',' NameString {$$ = $2;}
- ;
-
-OptionalResourceType_First
- : {$$ = NULL;}
- | ResourceTypeKeyword {$$ = $1;}
- ;
-
-OptionalResourceType
- : {$$ = NULL;}
- | ',' {$$ = NULL;}
- | ',' ResourceTypeKeyword {$$ = $2;}
- ;
-
-OptionalSerializeRuleKeyword
- : {$$ = NULL;}
- | ',' {$$ = NULL;}
- | ',' SerializeRuleKeyword {$$ = $2;}
- ;
-
-OptionalShareType
- : {$$ = NULL;}
- | ',' {$$ = NULL;}
- | ',' ShareTypeKeyword {$$ = $2;}
- ;
-
-OptionalStringData
- : {$$ = NULL;}
- | ',' {$$ = NULL;}
- | ',' StringData {$$ = $2;}
- ;
-
-OptionalTermArg
- : {$$ = NULL;}
- | TermArg {$$ = $1;}
- ;
-
-OptionalReturnArg
- : {$$ = TrCreateLeafNode (PARSEOP_ZERO);} /* Placeholder is a ZeroOp object */
- | TermArg {$$ = $1;}
- ;
-
-OptionalType
- : {$$ = NULL;}
- | ',' {$$ = NULL;}
- | ',' TypeKeyword {$$ = $2;}
- ;
-
-OptionalType_Last
- : {$$ = NULL;}
- | ',' {$$ = NULL;}
- | ',' TypeKeyword {$$ = $2;}
- ;
-
-OptionalTranslationType_Last
- : {$$ = NULL;}
- | ',' {$$ = NULL;}
- | ',' TranslationKeyword {$$ = $2;}
- ;
-
-
-TermArgItem
- : ',' TermArg {$$ = $2;}
- | ',' error {$$ = AslDoError (); yyclearin;}
- ;
-
-NameStringItem
- : ',' NameString {$$ = $2;}
- | ',' error {$$ = AslDoError (); yyclearin;}
- ;
-
-
-%%
-
-
-/*
- * Local support functions
- */
-
-int
-AslCompilerwrap(void)
-{
- return 1;
-}
-
-/*! [End] no source code translation !*/
-
-void *
-AslLocalAllocate (unsigned int Size)
-{
- void *Mem;
-
-
- DbgPrint (ASL_PARSE_OUTPUT, "\nAslLocalAllocate: Expanding Stack to %d\n\n", Size);
-
- Mem = ACPI_ALLOCATE_ZEROED (Size);
- if (!Mem)
- {
- AslCommonError (ASL_ERROR, ASL_MSG_MEMORY_ALLOCATION,
- Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
- Gbl_InputByteCount, Gbl_CurrentColumn,
- Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
- exit (1);
- }
-
- return (Mem);
-}
-
-ACPI_PARSE_OBJECT *
-AslDoError (void)
-{
-
-
- return (TrCreateLeafNode (PARSEOP_ERRORNODE));
-
-}
diff --git a/sys/contrib/dev/acpica/compiler/asldefine.h b/sys/contrib/dev/acpica/compiler/asldefine.h
deleted file mode 100644
index 29f3568..0000000
--- a/sys/contrib/dev/acpica/compiler/asldefine.h
+++ /dev/null
@@ -1,211 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: asldefine.h - Common defines for the iASL compiler
- * $Revision: 1.7 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ASLDEFINE_H
-#define __ASLDEFINE_H
-
-
-/*
- * Compiler versions and names
- */
-#define CompilerCreatorRevision ACPI_CA_VERSION
-
-#define IntelAcpiCA "Intel ACPI Component Architecture"
-#define CompilerId "ASL Optimizing Compiler"
-#define DisassemblerId "AML Disassembler"
-#define CompilerCopyright "Copyright (C) 2000 - 2007 Intel Corporation"
-#define CompilerCompliance "Supports ACPI Specification Revision 3.0a"
-#define CompilerName "iasl"
-#define CompilerCreatorId "INTL"
-
-
-/* Configuration constants */
-
-#define ASL_MAX_ERROR_COUNT 200
-#define ASL_NODE_CACHE_SIZE 1024
-#define ASL_STRING_CACHE_SIZE 32768
-
-#define ASL_FIRST_PARSE_OPCODE PARSEOP_ACCESSAS
-#define ASL_YYTNAME_START 3
-
-#define ASL_PARSE_OPCODE_BASE PARSEOP_ACCESSAS /* First Lex type */
-
-
-/*
- * Macros
- */
-#define ASL_RESDESC_OFFSET(m) ACPI_OFFSET (AML_RESOURCE, m)
-#define ASL_PTR_DIFF(a,b) ((UINT8 *)(b) - (UINT8 *)(a))
-#define ASL_PTR_ADD(a,b) ((UINT8 *)(a) = ((UINT8 *)(a) + (b)))
-#define ASL_GET_CHILD_NODE(a) (a)->Asl.Child
-#define ASL_GET_PEER_NODE(a) (a)->Asl.Next
-#define OP_TABLE_ENTRY(a,b,c,d) {b,d,a,c}
-
-
-/* Internal AML opcodes */
-
-#define AML_RAW_DATA_BYTE (UINT16) 0xAA01 /* write one raw byte */
-#define AML_RAW_DATA_WORD (UINT16) 0xAA02 /* write 2 raw bytes */
-#define AML_RAW_DATA_DWORD (UINT16) 0xAA04 /* write 4 raw bytes */
-#define AML_RAW_DATA_QWORD (UINT16) 0xAA08 /* write 8 raw bytes */
-#define AML_RAW_DATA_BUFFER (UINT16) 0xAA0B /* raw buffer with length */
-#define AML_RAW_DATA_CHAIN (UINT16) 0xAA0C /* chain of raw buffers */
-#define AML_PACKAGE_LENGTH (UINT16) 0xAA10
-#define AML_UNASSIGNED_OPCODE (UINT16) 0xEEEE
-#define AML_DEFAULT_ARG_OP (UINT16) 0xDDDD
-
-
-/* filename suffixes for output files */
-
-#define FILE_SUFFIX_AML_CODE "aml"
-#define FILE_SUFFIX_LISTING "lst"
-#define FILE_SUFFIX_HEX_DUMP "hex"
-#define FILE_SUFFIX_DEBUG "txt"
-#define FILE_SUFFIX_SOURCE "src"
-#define FILE_SUFFIX_NAMESPACE "nsp"
-#define FILE_SUFFIX_ASM_SOURCE "asm"
-#define FILE_SUFFIX_C_SOURCE "c"
-#define FILE_SUFFIX_DISASSEMBLY "dsl"
-#define FILE_SUFFIX_ASM_INCLUDE "inc"
-#define FILE_SUFFIX_C_INCLUDE "h"
-
-
-/* Misc */
-
-#define ASL_EXTERNAL_METHOD 255
-#define ASL_ABORT TRUE
-#define ASL_NO_ABORT FALSE
-
-
-/* Support for reserved method names */
-
-#define ACPI_VALID_RESERVED_NAME_MAX 0x80000000
-#define ACPI_NOT_RESERVED_NAME ACPI_UINT32_MAX
-#define ACPI_PREDEFINED_NAME (ACPI_UINT32_MAX - 1)
-#define ACPI_EVENT_RESERVED_NAME (ACPI_UINT32_MAX - 2)
-#define ACPI_COMPILER_RESERVED_NAME (ACPI_UINT32_MAX - 3)
-
-
-/* String to Integer conversion */
-
-#define NEGATIVE 1
-#define POSITIVE 0
-
-
-#endif /* ASLDEFINE.H */
-
diff --git a/sys/contrib/dev/acpica/compiler/aslerror.c b/sys/contrib/dev/acpica/compiler/aslerror.c
deleted file mode 100644
index 7600158..0000000
--- a/sys/contrib/dev/acpica/compiler/aslerror.c
+++ /dev/null
@@ -1,647 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: aslerror - Error handling and statistics
- * $Revision: 1.92 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define ASL_EXCEPTIONS
-#include <contrib/dev/acpica/compiler/aslcompiler.h>
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("aslerror")
-
-/* Local prototypes */
-
-static void
-AeAddToErrorLog (
- ASL_ERROR_MSG *Enode);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AeAddToErrorLog
- *
- * PARAMETERS: Enode - An error node to add to the log
- *
- * RETURN: None
- *
- * DESCRIPTION: Add a new error node to the error log. The error log is
- * ordered by the "logical" line number (cumulative line number
- * including all include files.)
- *
- ******************************************************************************/
-
-static void
-AeAddToErrorLog (
- ASL_ERROR_MSG *Enode)
-{
- ASL_ERROR_MSG *Next;
- ASL_ERROR_MSG *Prev;
-
-
- if (!Gbl_ErrorLog)
- {
- Gbl_ErrorLog = Enode;
- return;
- }
-
- /* List is sorted according to line number */
-
- if (!Gbl_ErrorLog)
- {
- Gbl_ErrorLog = Enode;
- return;
- }
-
- /* Walk error list until we find a line number greater than ours */
-
- Prev = NULL;
- Next = Gbl_ErrorLog;
-
- while ((Next) &&
- (Next->LogicalLineNumber <= Enode->LogicalLineNumber))
- {
- Prev = Next;
- Next = Next->Next;
- }
-
- /* Found our place in the list */
-
- Enode->Next = Next;
-
- if (Prev)
- {
- Prev->Next = Enode;
- }
- else
- {
- Gbl_ErrorLog = Enode;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AePrintException
- *
- * PARAMETERS: FileId - ID of output file
- * Enode - Error node to print
- * Header - Additional text before each message
- *
- * RETURN: None
- *
- * DESCRIPTION: Print the contents of an error node.
- *
- * NOTE: We don't use the FlxxxFile I/O functions here because on error
- * they abort the compiler and call this function! Since we
- * are reporting errors here, we ignore most output errors and
- * just try to get out as much as we can.
- *
- ******************************************************************************/
-
-void
-AePrintException (
- UINT32 FileId,
- ASL_ERROR_MSG *Enode,
- char *Header)
-{
- UINT8 SourceByte;
- int Actual;
- size_t RActual;
- UINT32 MsgLength;
- char *MainMessage;
- char *ExtraMessage;
- UINT32 SourceColumn;
- UINT32 ErrorColumn;
- FILE *OutputFile;
- FILE *SourceFile;
-
-
- /*
- * Only listing files have a header, and remarks/optimizations
- * are always output
- */
- if (!Header)
- {
- /* Ignore remarks if requested */
-
- switch (Enode->Level)
- {
- case ASL_REMARK:
- if (!Gbl_DisplayRemarks)
- {
- return;
- }
- break;
-
- case ASL_OPTIMIZATION:
- if (!Gbl_DisplayOptimizations)
- {
- return;
- }
- break;
-
- default:
- break;
- }
- }
-
- /* Get the file handles */
-
- OutputFile = Gbl_Files[FileId].Handle;
- SourceFile = Gbl_Files[ASL_FILE_SOURCE_OUTPUT].Handle;
-
- if (Header)
- {
- fprintf (OutputFile, "%s", Header);
- }
-
- /* Print filename and line number if present and valid */
-
- if (Enode->Filename)
- {
- if (Gbl_VerboseErrors)
- {
- fprintf (OutputFile, "%6s", Enode->Filename);
-
- if (Enode->LineNumber)
- {
- fprintf (OutputFile, "%6u: ", Enode->LineNumber);
-
- /*
- * Seek to the offset in the combined source file, read the source
- * line, and write it to the output.
- */
- Actual = fseek (SourceFile, (long) Enode->LogicalByteOffset,
- (int) SEEK_SET);
- if (Actual)
- {
- fprintf (OutputFile,
- "[*** iASL: Seek error on source code temp file ***]");
- }
- else
- {
- RActual = fread (&SourceByte, 1, 1, SourceFile);
- if (!RActual)
- {
- fprintf (OutputFile,
- "[*** iASL: Read error on source code temp file ***]");
- }
-
- else while (RActual && SourceByte && (SourceByte != '\n'))
- {
- fwrite (&SourceByte, 1, 1, OutputFile);
- RActual = fread (&SourceByte, 1, 1, SourceFile);
- }
- }
- fprintf (OutputFile, "\n");
- }
- }
- else
- {
- fprintf (OutputFile, "%s", Enode->Filename);
-
- if (Enode->LineNumber)
- {
- fprintf (OutputFile, "(%u) : ", Enode->LineNumber);
- }
- }
- }
-
- /* NULL message ID, just print the raw message */
-
- if (Enode->MessageId == 0)
- {
- fprintf (OutputFile, "%s\n", Enode->Message);
- }
- else
- {
- /* Decode the message ID */
-
- fprintf (OutputFile, "%s %4.4d -",
- AslErrorLevel[Enode->Level],
- Enode->MessageId + ((Enode->Level+1) * 1000));
-
- MainMessage = AslMessages[Enode->MessageId];
- ExtraMessage = Enode->Message;
-
- if (Enode->LineNumber)
- {
- MsgLength = strlen (MainMessage);
- if (MsgLength == 0)
- {
- MainMessage = Enode->Message;
-
- MsgLength = strlen (MainMessage);
- ExtraMessage = NULL;
- }
-
- if (Gbl_VerboseErrors)
- {
- SourceColumn = Enode->Column + Enode->FilenameLength + 6 + 2;
- ErrorColumn = ASL_ERROR_LEVEL_LENGTH + 5 + 2 + 1;
-
- if ((MsgLength + ErrorColumn) < (SourceColumn - 1))
- {
- fprintf (OutputFile, "%*s%s",
- (int) ((SourceColumn - 1) - ErrorColumn),
- MainMessage, " ^ ");
- }
- else
- {
- fprintf (OutputFile, "%*s %s",
- (int) ((SourceColumn - ErrorColumn) + 1), "^",
- MainMessage);
- }
- }
- else
- {
- fprintf (OutputFile, " %s", MainMessage);
- }
-
- /* Print the extra info message if present */
-
- if (ExtraMessage)
- {
- fprintf (OutputFile, " (%s)", ExtraMessage);
- }
-
- fprintf (OutputFile, "\n");
- if (Gbl_VerboseErrors)
- {
- fprintf (OutputFile, "\n");
- }
- }
- else
- {
- fprintf (OutputFile, " %s %s\n\n", MainMessage, ExtraMessage);
- }
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AePrintErrorLog
- *
- * PARAMETERS: FileId - Where to output the error log
- *
- * RETURN: None
- *
- * DESCRIPTION: Print the entire contents of the error log
- *
- ******************************************************************************/
-
-void
-AePrintErrorLog (
- UINT32 FileId)
-{
- ASL_ERROR_MSG *Enode = Gbl_ErrorLog;
-
-
- /* Walk the error node list */
-
- while (Enode)
- {
- AePrintException (FileId, Enode, NULL);
- Enode = Enode->Next;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AslCommonError
- *
- * PARAMETERS: Level - Seriousness (Warning/error, etc.)
- * MessageId - Index into global message buffer
- * CurrentLineNumber - Actual file line number
- * LogicalLineNumber - Cumulative line number
- * LogicalByteOffset - Byte offset in source file
- * Column - Column in current line
- * Filename - source filename
- * ExtraMessage - additional error message
- *
- * RETURN: None
- *
- * DESCRIPTION: Create a new error node and add it to the error log
- *
- ******************************************************************************/
-
-void
-AslCommonError (
- UINT8 Level,
- UINT8 MessageId,
- UINT32 CurrentLineNumber,
- UINT32 LogicalLineNumber,
- UINT32 LogicalByteOffset,
- UINT32 Column,
- char *Filename,
- char *ExtraMessage)
-{
- UINT32 MessageSize;
- char *MessageBuffer = NULL;
- ASL_ERROR_MSG *Enode;
-
-
- Enode = UtLocalCalloc (sizeof (ASL_ERROR_MSG));
-
- if (ExtraMessage)
- {
- /* Allocate a buffer for the message and a new error node */
-
- MessageSize = strlen (ExtraMessage) + 1;
- MessageBuffer = UtLocalCalloc (MessageSize);
-
- /* Keep a copy of the extra message */
-
- ACPI_STRCPY (MessageBuffer, ExtraMessage);
- }
-
- /* Initialize the error node */
-
- if (Filename)
- {
- Enode->Filename = Filename;
- Enode->FilenameLength = strlen (Filename);
- if (Enode->FilenameLength < 6)
- {
- Enode->FilenameLength = 6;
- }
- }
-
- Enode->MessageId = MessageId;
- Enode->Level = Level;
- Enode->LineNumber = CurrentLineNumber;
- Enode->LogicalLineNumber = LogicalLineNumber;
- Enode->LogicalByteOffset = LogicalByteOffset;
- Enode->Column = Column;
- Enode->Message = MessageBuffer;
-
- /* Add the new node to the error node list */
-
- AeAddToErrorLog (Enode);
-
- if (Gbl_DebugFlag)
- {
- /* stderr is a file, send error to it immediately */
-
- AePrintException (ASL_FILE_STDERR, Enode, NULL);
- }
-
- Gbl_ExceptionCount[Level]++;
- if (Gbl_ExceptionCount[ASL_ERROR] > ASL_MAX_ERROR_COUNT)
- {
- printf ("\nMaximum error count (%d) exceeded\n", ASL_MAX_ERROR_COUNT);
-
- Gbl_SourceLine = 0;
- Gbl_NextError = Gbl_ErrorLog;
- CmDoOutputFiles ();
- CmCleanupAndExit ();
- }
-
- return;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AslError
- *
- * PARAMETERS: Level - Seriousness (Warning/error, etc.)
- * MessageId - Index into global message buffer
- * Op - Parse node where error happened
- * ExtraMessage - additional error message
- *
- * RETURN: None
- *
- * DESCRIPTION: Main error reporting routine for the ASL compiler (all code
- * except the parser.)
- *
- ******************************************************************************/
-
-void
-AslError (
- UINT8 Level,
- UINT8 MessageId,
- ACPI_PARSE_OBJECT *Op,
- char *ExtraMessage)
-{
-
- switch (Level)
- {
- case ASL_WARNING2:
- case ASL_WARNING3:
- if (Gbl_WarningLevel < Level)
- {
- return;
- }
- break;
-
- default:
- break;
- }
-
-
- if (Op)
- {
- AslCommonError (Level, MessageId, Op->Asl.LineNumber,
- Op->Asl.LogicalLineNumber,
- Op->Asl.LogicalByteOffset,
- Op->Asl.Column,
- Op->Asl.Filename, ExtraMessage);
- }
- else
- {
- AslCommonError (Level, MessageId, 0,
- 0, 0, 0, NULL, ExtraMessage);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AslCoreSubsystemError
- *
- * PARAMETERS: Op - Parse node where error happened
- * Status - The ACPI CA Exception
- * ExtraMessage - additional error message
- * Abort - TRUE -> Abort compilation
- *
- * RETURN: None
- *
- * DESCRIPTION: Error reporting routine for exceptions returned by the ACPI
- * CA core subsystem.
- *
- ******************************************************************************/
-
-void
-AslCoreSubsystemError (
- ACPI_PARSE_OBJECT *Op,
- ACPI_STATUS Status,
- char *ExtraMessage,
- BOOLEAN Abort)
-{
-
- sprintf (MsgBuffer, "%s %s", AcpiFormatException (Status), ExtraMessage);
-
- if (Op)
- {
- AslCommonError (ASL_ERROR, ASL_MSG_CORE_EXCEPTION, Op->Asl.LineNumber,
- Op->Asl.LogicalLineNumber,
- Op->Asl.LogicalByteOffset,
- Op->Asl.Column,
- Op->Asl.Filename, MsgBuffer);
- }
- else
- {
- AslCommonError (ASL_ERROR, ASL_MSG_CORE_EXCEPTION, 0,
- 0, 0, 0, NULL, MsgBuffer);
- }
-
- if (Abort)
- {
- AslAbort ();
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AslCompilererror
- *
- * PARAMETERS: CompilerMessage - Error message from the parser
- *
- * RETURN: Status (0 for now)
- *
- * DESCRIPTION: Report an error situation discovered in a production
- * NOTE: don't change the name of this function, it is called
- * from the auto-generated parser.
- *
- ******************************************************************************/
-
-int
-AslCompilererror (
- char *CompilerMessage)
-{
-
- AslCommonError (ASL_ERROR, ASL_MSG_SYNTAX, Gbl_CurrentLineNumber,
- Gbl_LogicalLineNumber, Gbl_CurrentLineOffset,
- Gbl_CurrentColumn, Gbl_Files[ASL_FILE_INPUT].Filename,
- CompilerMessage);
-
- return 0;
-}
-
-
diff --git a/sys/contrib/dev/acpica/compiler/aslfiles.c b/sys/contrib/dev/acpica/compiler/aslfiles.c
deleted file mode 100644
index 9eace43..0000000
--- a/sys/contrib/dev/acpica/compiler/aslfiles.c
+++ /dev/null
@@ -1,873 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: aslfiles - file I/O suppoert
- * $Revision: 1.54 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#include <contrib/dev/acpica/compiler/aslcompiler.h>
-#include <contrib/dev/acpica/acapps.h>
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("aslfiles")
-
-/* Local prototypes */
-
-static void
-FlOpenFile (
- UINT32 FileId,
- char *Filename,
- char *Mode);
-
-static FILE *
-FlOpenLocalFile (
- char *LocalName,
- char *Mode);
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-ACPI_STATUS
-FlParseInputPathname (
- char *InputFilename);
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION: AslAbort
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Dump the error log and abort the compiler. Used for serious
- * I/O errors
- *
- ******************************************************************************/
-
-void
-AslAbort (
- void)
-{
-
- AePrintErrorLog (ASL_FILE_STDOUT);
- if (Gbl_DebugFlag)
- {
- /* Print error summary to the debug file */
-
- AePrintErrorLog (ASL_FILE_STDERR);
- }
-
- exit (1);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: FlOpenLocalFile
- *
- * PARAMETERS: LocalName - Single filename (not a pathname)
- * Mode - Open mode for fopen
- *
- * RETURN: File descriptor
- *
- * DESCRIPTION: Build a complete pathname for the input filename and open
- * the file.
- *
- ******************************************************************************/
-
-static FILE *
-FlOpenLocalFile (
- char *LocalName,
- char *Mode)
-{
-
- strcpy (StringBuffer, Gbl_DirectoryPath);
- strcat (StringBuffer, LocalName);
-
- DbgPrint (ASL_PARSE_OUTPUT, "FlOpenLocalFile: %s\n", StringBuffer);
- return (fopen (StringBuffer, (const char *) Mode));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: FlFileError
- *
- * PARAMETERS: FileId - Index into file info array
- * ErrorId - Index into error message array
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode errno to an error message and add the entire error
- * to the error log.
- *
- ******************************************************************************/
-
-void
-FlFileError (
- UINT32 FileId,
- UINT8 ErrorId)
-{
-
- sprintf (MsgBuffer, "\"%s\" (%s)", Gbl_Files[FileId].Filename,
- strerror (errno));
- AslCommonError (ASL_ERROR, ErrorId, 0, 0, 0, 0, NULL, MsgBuffer);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: FlOpenFile
- *
- * PARAMETERS: FileId - Index into file info array
- * Filename - file pathname to open
- * Mode - Open mode for fopen
- *
- * RETURN: None
- *
- * DESCRIPTION: Open a file.
- * NOTE: Aborts compiler on any error.
- *
- ******************************************************************************/
-
-static void
-FlOpenFile (
- UINT32 FileId,
- char *Filename,
- char *Mode)
-{
- FILE *File;
-
-
- File = fopen (Filename, Mode);
-
- Gbl_Files[FileId].Filename = Filename;
- Gbl_Files[FileId].Handle = File;
-
- if (!File)
- {
- FlFileError (FileId, ASL_MSG_OPEN);
- AslAbort ();
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: FlReadFile
- *
- * PARAMETERS: FileId - Index into file info array
- * Buffer - Where to place the data
- * Length - Amount to read
- *
- * RETURN: Status. AE_ERROR indicates EOF.
- *
- * DESCRIPTION: Read data from an open file.
- * NOTE: Aborts compiler on any error.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-FlReadFile (
- UINT32 FileId,
- void *Buffer,
- UINT32 Length)
-{
- UINT32 Actual;
-
-
- /* Read and check for error */
-
- Actual = fread (Buffer, 1, Length, Gbl_Files[FileId].Handle);
- if (Actual != Length)
- {
- if (feof (Gbl_Files[FileId].Handle))
- {
- /* End-of-file, just return error */
-
- return (AE_ERROR);
- }
-
- FlFileError (FileId, ASL_MSG_READ);
- AslAbort ();
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: FlWriteFile
- *
- * PARAMETERS: FileId - Index into file info array
- * Buffer - Data to write
- * Length - Amount of data to write
- *
- * RETURN: None
- *
- * DESCRIPTION: Write data to an open file.
- * NOTE: Aborts compiler on any error.
- *
- ******************************************************************************/
-
-void
-FlWriteFile (
- UINT32 FileId,
- void *Buffer,
- UINT32 Length)
-{
- UINT32 Actual;
-
-
- /* Write and check for error */
-
- Actual = fwrite ((char *) Buffer, 1, Length, Gbl_Files[FileId].Handle);
- if (Actual != Length)
- {
- FlFileError (FileId, ASL_MSG_WRITE);
- AslAbort ();
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: FlPrintFile
- *
- * PARAMETERS: FileId - Index into file info array
- * Format - Printf format string
- * ... - Printf arguments
- *
- * RETURN: None
- *
- * DESCRIPTION: Formatted write to an open file.
- * NOTE: Aborts compiler on any error.
- *
- ******************************************************************************/
-
-void
-FlPrintFile (
- UINT32 FileId,
- char *Format,
- ...)
-{
- INT32 Actual;
- va_list Args;
-
-
- va_start (Args, Format);
-
- Actual = vfprintf (Gbl_Files[FileId].Handle, Format, Args);
- if (Actual == -1)
- {
- FlFileError (FileId, ASL_MSG_WRITE);
- AslAbort ();
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: FlSeekFile
- *
- * PARAMETERS: FileId - Index into file info array
- * Offset - Absolute byte offset in file
- *
- * RETURN: None
- *
- * DESCRIPTION: Seek to absolute offset
- * NOTE: Aborts compiler on any error.
- *
- ******************************************************************************/
-
-void
-FlSeekFile (
- UINT32 FileId,
- long Offset)
-{
- int Error;
-
-
- Error = fseek (Gbl_Files[FileId].Handle, Offset, SEEK_SET);
- if (Error)
- {
- FlFileError (FileId, ASL_MSG_SEEK);
- AslAbort ();
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: FlCloseFile
- *
- * PARAMETERS: FileId - Index into file info array
- *
- * RETURN: None
- *
- * DESCRIPTION: Close an open file. Aborts compiler on error
- *
- ******************************************************************************/
-
-void
-FlCloseFile (
- UINT32 FileId)
-{
- int Error;
-
-
- if (!Gbl_Files[FileId].Handle)
- {
- return;
- }
-
- Error = fclose (Gbl_Files[FileId].Handle);
- Gbl_Files[FileId].Handle = NULL;
-
- if (Error)
- {
- FlFileError (FileId, ASL_MSG_CLOSE);
- AslAbort ();
- }
-
- return;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: FlSetLineNumber
- *
- * PARAMETERS: Op - Parse node for the LINE asl statement
- *
- * RETURN: None.
- *
- * DESCRIPTION: Set the current line number
- *
- ******************************************************************************/
-
-void
-FlSetLineNumber (
- ACPI_PARSE_OBJECT *Op)
-{
-
- Gbl_CurrentLineNumber = (UINT32) Op->Asl.Value.Integer;
- Gbl_LogicalLineNumber = (UINT32) Op->Asl.Value.Integer;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: FlOpenIncludeFile
- *
- * PARAMETERS: Op - Parse node for the INCLUDE ASL statement
- *
- * RETURN: None.
- *
- * DESCRIPTION: Open an include file and push it on the input file stack.
- *
- ******************************************************************************/
-
-void
-FlOpenIncludeFile (
- ACPI_PARSE_OBJECT *Op)
-{
- FILE *IncFile;
-
-
- /* Op must be valid */
-
- if (!Op)
- {
- AslCommonError (ASL_ERROR, ASL_MSG_INCLUDE_FILE_OPEN,
- Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
- Gbl_InputByteCount, Gbl_CurrentColumn,
- Gbl_Files[ASL_FILE_INPUT].Filename, " - Null parse node");
-
- return;
- }
-
- /*
- * Flush out the "include ()" statement on this line, start
- * the actual include file on the next line
- */
- ResetCurrentLineBuffer ();
- FlPrintFile (ASL_FILE_SOURCE_OUTPUT, "\n");
- Gbl_CurrentLineOffset++;
-
- /* Prepend the directory pathname and open the include file */
-
- DbgPrint (ASL_PARSE_OUTPUT, "\nOpen include file: path %s\n\n",
- Op->Asl.Value.String);
- IncFile = FlOpenLocalFile (Op->Asl.Value.String, "r");
- if (!IncFile)
- {
- sprintf (MsgBuffer, "%s (%s)", Op->Asl.Value.String, strerror (errno));
- AslError (ASL_ERROR, ASL_MSG_INCLUDE_FILE_OPEN, Op, MsgBuffer);
- return;
- }
-
- /* Push the include file on the open input file stack */
-
- AslPushInputFileStack (IncFile, Op->Asl.Value.String);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: FlOpenInputFile
- *
- * PARAMETERS: InputFilename - The user-specified ASL source file to be
- * compiled
- *
- * RETURN: Status
- *
- * DESCRIPTION: Open the specified input file, and save the directory path to
- * the file so that include files can be opened in
- * the same directory.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-FlOpenInputFile (
- char *InputFilename)
-{
-
- /* Open the input ASL file, text mode */
-
- FlOpenFile (ASL_FILE_INPUT, InputFilename, "r");
- AslCompilerin = Gbl_Files[ASL_FILE_INPUT].Handle;
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: FlOpenAmlOutputFile
- *
- * PARAMETERS: FilenamePrefix - The user-specified ASL source file
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create the output filename (*.AML) and open the file. The file
- * is created in the same directory as the parent input file.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-FlOpenAmlOutputFile (
- char *FilenamePrefix)
-{
- char *Filename;
-
-
- /* Output filename usually comes from the ASL itself */
-
- Filename = Gbl_Files[ASL_FILE_AML_OUTPUT].Filename;
- if (!Filename)
- {
- /* Create the output AML filename */
-
- Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_AML_CODE);
- if (!Filename)
- {
- AslCommonError (ASL_ERROR, ASL_MSG_OUTPUT_FILENAME,
- 0, 0, 0, 0, NULL, NULL);
- return (AE_ERROR);
- }
- }
-
- /* Open the output AML file in binary mode */
-
- FlOpenFile (ASL_FILE_AML_OUTPUT, Filename, "w+b");
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: FlOpenMiscOutputFiles
- *
- * PARAMETERS: FilenamePrefix - The user-specified ASL source file
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create and open the various output files needed, depending on
- * the command line options
- *
- ******************************************************************************/
-
-ACPI_STATUS
-FlOpenMiscOutputFiles (
- char *FilenamePrefix)
-{
- char *Filename;
-
-
- /* Create/Open a combined source output file */
-
- Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_SOURCE);
- if (!Filename)
- {
- AslCommonError (ASL_ERROR, ASL_MSG_LISTING_FILENAME,
- 0, 0, 0, 0, NULL, NULL);
- return (AE_ERROR);
- }
-
- /*
- * Open the source output file, binary mode (so that LF does not get
- * expanded to CR/LF on some systems, messing up our seek
- * calculations.)
- */
- FlOpenFile (ASL_FILE_SOURCE_OUTPUT, Filename, "w+b");
-
- /* Create/Open a listing output file if asked */
-
- if (Gbl_ListingFlag)
- {
- Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_LISTING);
- if (!Filename)
- {
- AslCommonError (ASL_ERROR, ASL_MSG_LISTING_FILENAME,
- 0, 0, 0, 0, NULL, NULL);
- return (AE_ERROR);
- }
-
- /* Open the listing file, text mode */
-
- FlOpenFile (ASL_FILE_LISTING_OUTPUT, Filename, "w+");
-
- AslCompilerSignon (ASL_FILE_LISTING_OUTPUT);
- AslCompilerFileHeader (ASL_FILE_LISTING_OUTPUT);
- }
-
- /* Create/Open a assembly code source output file if asked */
-
- if (Gbl_AsmOutputFlag)
- {
- Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_ASM_SOURCE);
- if (!Filename)
- {
- AslCommonError (ASL_ERROR, ASL_MSG_LISTING_FILENAME,
- 0, 0, 0, 0, NULL, NULL);
- return (AE_ERROR);
- }
-
- /* Open the assembly code source file, text mode */
-
- FlOpenFile (ASL_FILE_ASM_SOURCE_OUTPUT, Filename, "w+");
-
- AslCompilerSignon (ASL_FILE_ASM_SOURCE_OUTPUT);
- AslCompilerFileHeader (ASL_FILE_ASM_SOURCE_OUTPUT);
- }
-
- /* Create/Open a C code source output file if asked */
-
- if (Gbl_C_OutputFlag)
- {
- Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_C_SOURCE);
- if (!Filename)
- {
- AslCommonError (ASL_ERROR, ASL_MSG_LISTING_FILENAME,
- 0, 0, 0, 0, NULL, NULL);
- return (AE_ERROR);
- }
-
- /* Open the C code source file, text mode */
-
- FlOpenFile (ASL_FILE_C_SOURCE_OUTPUT, Filename, "w+");
-
- FlPrintFile (ASL_FILE_C_SOURCE_OUTPUT, "/*\n");
- AslCompilerSignon (ASL_FILE_C_SOURCE_OUTPUT);
- AslCompilerFileHeader (ASL_FILE_C_SOURCE_OUTPUT);
- }
-
- /* Create/Open a assembly include output file if asked */
-
- if (Gbl_AsmIncludeOutputFlag)
- {
- Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_ASM_INCLUDE);
- if (!Filename)
- {
- AslCommonError (ASL_ERROR, ASL_MSG_LISTING_FILENAME,
- 0, 0, 0, 0, NULL, NULL);
- return (AE_ERROR);
- }
-
- /* Open the assembly include file, text mode */
-
- FlOpenFile (ASL_FILE_ASM_INCLUDE_OUTPUT, Filename, "w+");
-
- AslCompilerSignon (ASL_FILE_ASM_INCLUDE_OUTPUT);
- AslCompilerFileHeader (ASL_FILE_ASM_INCLUDE_OUTPUT);
- }
-
- /* Create/Open a C include output file if asked */
-
- if (Gbl_C_IncludeOutputFlag)
- {
- Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_C_INCLUDE);
- if (!Filename)
- {
- AslCommonError (ASL_ERROR, ASL_MSG_LISTING_FILENAME,
- 0, 0, 0, 0, NULL, NULL);
- return (AE_ERROR);
- }
-
- /* Open the C include file, text mode */
-
- FlOpenFile (ASL_FILE_C_INCLUDE_OUTPUT, Filename, "w+");
-
- FlPrintFile (ASL_FILE_C_INCLUDE_OUTPUT, "/*\n");
- AslCompilerSignon (ASL_FILE_C_INCLUDE_OUTPUT);
- AslCompilerFileHeader (ASL_FILE_C_INCLUDE_OUTPUT);
- }
-
- /* Create/Open a hex output file if asked */
-
- if (Gbl_HexOutputFlag)
- {
- Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_HEX_DUMP);
- if (!Filename)
- {
- AslCommonError (ASL_ERROR, ASL_MSG_LISTING_FILENAME,
- 0, 0, 0, 0, NULL, NULL);
- return (AE_ERROR);
- }
-
- /* Open the hex file, text mode */
-
- FlOpenFile (ASL_FILE_HEX_OUTPUT, Filename, "w+");
-
- AslCompilerSignon (ASL_FILE_HEX_OUTPUT);
- AslCompilerFileHeader (ASL_FILE_HEX_OUTPUT);
- }
-
- /* Create a namespace output file if asked */
-
- if (Gbl_NsOutputFlag)
- {
- Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_NAMESPACE);
- if (!Filename)
- {
- AslCommonError (ASL_ERROR, ASL_MSG_LISTING_FILENAME,
- 0, 0, 0, 0, NULL, NULL);
- return (AE_ERROR);
- }
-
- /* Open the namespace file, text mode */
-
- FlOpenFile (ASL_FILE_NAMESPACE_OUTPUT, Filename, "w+");
-
- AslCompilerSignon (ASL_FILE_NAMESPACE_OUTPUT);
- AslCompilerFileHeader (ASL_FILE_NAMESPACE_OUTPUT);
- }
-
- /* Create/Open a debug output file if asked */
-
- if (Gbl_DebugFlag)
- {
- Filename = FlGenerateFilename (FilenamePrefix, FILE_SUFFIX_DEBUG);
- if (!Filename)
- {
- AslCommonError (ASL_ERROR, ASL_MSG_DEBUG_FILENAME,
- 0, 0, 0, 0, NULL, NULL);
- return (AE_ERROR);
- }
-
- /* Open the debug file as STDERR, text mode */
-
- /* TBD: hide this behind a FlReopenFile function */
-
- Gbl_Files[ASL_FILE_DEBUG_OUTPUT].Filename = Filename;
- Gbl_Files[ASL_FILE_DEBUG_OUTPUT].Handle =
- freopen (Filename, "w+t", stderr);
-
- AslCompilerSignon (ASL_FILE_DEBUG_OUTPUT);
- AslCompilerFileHeader (ASL_FILE_DEBUG_OUTPUT);
- }
-
- return (AE_OK);
-}
-
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-/*******************************************************************************
- *
- * FUNCTION: FlParseInputPathname
- *
- * PARAMETERS: InputFilename - The user-specified ASL source file to be
- * compiled
- *
- * RETURN: Status
- *
- * DESCRIPTION: Split the input path into a directory and filename part
- * 1) Directory part used to open include files
- * 2) Filename part used to generate output filenames
- *
- ******************************************************************************/
-
-ACPI_STATUS
-FlParseInputPathname (
- char *InputFilename)
-{
- char *Substring;
-
-
- if (!InputFilename)
- {
- return (AE_OK);
- }
-
- /* Get the path to the input filename's directory */
-
- Gbl_DirectoryPath = strdup (InputFilename);
- if (!Gbl_DirectoryPath)
- {
- return (AE_NO_MEMORY);
- }
-
- Substring = strrchr (Gbl_DirectoryPath, '\\');
- if (!Substring)
- {
- Substring = strrchr (Gbl_DirectoryPath, '/');
- if (!Substring)
- {
- Substring = strrchr (Gbl_DirectoryPath, ':');
- }
- }
-
- if (!Substring)
- {
- Gbl_DirectoryPath[0] = 0;
- if (Gbl_UseDefaultAmlFilename)
- {
- Gbl_OutputFilenamePrefix = strdup (InputFilename);
- }
- }
- else
- {
- if (Gbl_UseDefaultAmlFilename)
- {
- Gbl_OutputFilenamePrefix = strdup (Substring + 1);
- }
- *(Substring+1) = 0;
- }
-
- return (AE_OK);
-}
-#endif
-
-
diff --git a/sys/contrib/dev/acpica/compiler/aslfold.c b/sys/contrib/dev/acpica/compiler/aslfold.c
deleted file mode 100644
index d744021..0000000
--- a/sys/contrib/dev/acpica/compiler/aslfold.c
+++ /dev/null
@@ -1,564 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: aslfold - Constant folding
- * $Revision: 1.20 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/compiler/aslcompiler.h>
-#include "aslcompiler.y.h"
-#include <contrib/dev/acpica/amlcode.h>
-
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/acparser.h>
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("aslfold")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-OpcAmlEvaluationWalk1 (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-static ACPI_STATUS
-OpcAmlEvaluationWalk2 (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-static ACPI_STATUS
-OpcAmlCheckForConstant (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpcAmlEvaluationWalk1
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Descending callback for AML execution of constant subtrees
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-OpcAmlEvaluationWalk1 (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- ACPI_WALK_STATE *WalkState = Context;
- ACPI_STATUS Status;
- ACPI_PARSE_OBJECT *OutOp;
-
-
- WalkState->Op = Op;
- WalkState->Opcode = Op->Common.AmlOpcode;
- WalkState->OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-
- /* Copy child pointer to Arg for compatibility with Interpreter */
-
- if (Op->Asl.Child)
- {
- Op->Common.Value.Arg = Op->Asl.Child;
- }
-
- /* Call AML dispatcher */
-
- Status = AcpiDsExecBeginOp (WalkState, &OutOp);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Constant interpretation failed - %s\n",
- AcpiFormatException (Status));
- }
-
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpcAmlEvaluationWalk2
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Ascending callback for AML execution of constant subtrees
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-OpcAmlEvaluationWalk2 (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- ACPI_WALK_STATE *WalkState = Context;
- ACPI_STATUS Status;
-
-
- WalkState->Op = Op;
- WalkState->Opcode = Op->Common.AmlOpcode;
- WalkState->OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-
- /* Copy child pointer to Arg for compatibility with Interpreter */
-
- if (Op->Asl.Child)
- {
- Op->Common.Value.Arg = Op->Asl.Child;
- }
-
- /* Call AML dispatcher */
-
- Status = AcpiDsExecEndOp (WalkState);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Constant interpretation failed - %s\n",
- AcpiFormatException (Status));
- }
-
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpcAmlCheckForConstant
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Check one Op for a type 3/4/5 AML opcode
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-OpcAmlCheckForConstant (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- ACPI_WALK_STATE *WalkState = Context;
-
-
- WalkState->Op = Op;
- WalkState->Opcode = Op->Common.AmlOpcode;
- WalkState->OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-
- DbgPrint (ASL_PARSE_OUTPUT, "[%.4d] Opcode: %12.12s ",
- Op->Asl.LogicalLineNumber, Op->Asl.ParseOpName);
-
- if (!(WalkState->OpInfo->Flags & AML_CONSTANT))
- {
- /* The opcode is not a Type 3/4/5 opcode */
-
- if (Op->Asl.CompileFlags & NODE_IS_TARGET)
- {
- DbgPrint (ASL_PARSE_OUTPUT,
- "**** Valid Target, cannot reduce ****\n");
- }
- else
- {
- DbgPrint (ASL_PARSE_OUTPUT,
- "**** Not a Type 3/4/5 opcode ****\n");
- }
-
- if (WalkState->WalkType == ACPI_WALK_CONST_OPTIONAL)
- {
- /*
- * We are looking at at normal expression to see if it can be
- * reduced. It can't. No error
- */
- return (AE_TYPE);
- }
-
- /*
- * This is an expression that MUST reduce to a constant, and it
- * can't be reduced. This is an error
- */
- if (Op->Asl.CompileFlags & NODE_IS_TARGET)
- {
- AslError (ASL_ERROR, ASL_MSG_INVALID_TARGET, Op,
- Op->Asl.ParseOpName);
- }
- else
- {
- AslError (ASL_ERROR, ASL_MSG_INVALID_CONSTANT_OP, Op,
- Op->Asl.ParseOpName);
- }
-
- return (AE_TYPE);
- }
-
- /* Debug output */
-
- DbgPrint (ASL_PARSE_OUTPUT, "TYPE_345");
-
- if (Op->Asl.CompileFlags & NODE_IS_TARGET)
- {
- DbgPrint (ASL_PARSE_OUTPUT, " TARGET");
- }
- if (Op->Asl.CompileFlags & NODE_IS_TERM_ARG)
- {
- DbgPrint (ASL_PARSE_OUTPUT, " TERMARG");
- }
- DbgPrint (ASL_PARSE_OUTPUT, "\n");
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpcAmlConstantWalk
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Reduce an Op and its subtree to a constant if possible
- *
- ******************************************************************************/
-
-ACPI_STATUS
-OpcAmlConstantWalk (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- ACPI_WALK_STATE *WalkState;
- ACPI_STATUS Status = AE_OK;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_PARSE_OBJECT *RootOp;
- ACPI_PARSE_OBJECT *OriginalParentOp;
- UINT8 WalkType;
-
-
- /*
- * Only interested in subtrees that could possibly contain
- * expressions that can be evaluated at this time
- */
- if ((!(Op->Asl.CompileFlags & NODE_COMPILE_TIME_CONST)) ||
- (Op->Asl.CompileFlags & NODE_IS_TARGET))
- {
- return (AE_OK);
- }
-
- /* Set the walk type based on the reduction used for this op */
-
- if (Op->Asl.CompileFlags & NODE_IS_TERM_ARG)
- {
- /* Op is a TermArg, constant folding is merely optional */
-
- if (!Gbl_FoldConstants)
- {
- return (AE_CTRL_DEPTH);
- }
-
- WalkType = ACPI_WALK_CONST_OPTIONAL;
- }
- else
- {
- /* Op is a DataObject, the expression MUST reduced to a constant */
-
- WalkType = ACPI_WALK_CONST_REQUIRED;
- }
-
- /* Create a new walk state */
-
- WalkState = AcpiDsCreateWalkState (0, NULL, NULL, NULL);
- if (!WalkState)
- {
- return AE_NO_MEMORY;
- }
-
- WalkState->NextOp = NULL;
- WalkState->Params = NULL;
- WalkState->CallerReturnDesc = &ObjDesc;
- WalkState->WalkType = WalkType;
-
- /*
- * Examine the entire subtree -- all nodes must be constants
- * or type 3/4/5 opcodes
- */
- Status = TrWalkParseTree (Op, ASL_WALK_VISIT_DOWNWARD,
- OpcAmlCheckForConstant, NULL, WalkState);
-
- /*
- * Did we find an entire subtree that contains all constants and type 3/4/5
- * opcodes? (Only AE_OK or AE_TYPE returned from above)
- */
- if (Status == AE_TYPE)
- {
- /* Subtree cannot be reduced to a constant */
-
- if (WalkState->WalkType == ACPI_WALK_CONST_OPTIONAL)
- {
- AcpiDsDeleteWalkState (WalkState);
- return (AE_OK);
- }
-
- /* Don't descend any further, and use a default "constant" value */
-
- Status = AE_CTRL_DEPTH;
- }
- else
- {
- /* Subtree can be reduced */
-
- /* Allocate a new temporary root for this subtree */
-
- RootOp = TrAllocateNode (PARSEOP_INTEGER);
- if (!RootOp)
- {
- return (AE_NO_MEMORY);
- }
-
- RootOp->Common.AmlOpcode = AML_INT_EVAL_SUBTREE_OP;
-
- OriginalParentOp = Op->Common.Parent;
- Op->Common.Parent = RootOp;
-
- /* Hand off the subtree to the AML interpreter */
-
- Status = TrWalkParseTree (Op, ASL_WALK_VISIT_TWICE,
- OpcAmlEvaluationWalk1, OpcAmlEvaluationWalk2, WalkState);
- Op->Common.Parent = OriginalParentOp;
-
- /* TBD: we really *should* release the RootOp node */
-
- if (ACPI_SUCCESS (Status))
- {
- TotalFolds++;
-
- /* Get the final result */
-
- Status = AcpiDsResultPop (&ObjDesc, WalkState);
- }
- }
-
- if (ACPI_FAILURE (Status))
- {
- /* We could not resolve the subtree for some reason */
-
- AslCoreSubsystemError (Op, Status,
- "Failure during constant evaluation", FALSE);
- AslError (ASL_ERROR, ASL_MSG_CONSTANT_EVALUATION, Op,
- Op->Asl.ParseOpName);
-
- /* Set the subtree value to ZERO anyway. Eliminates further errors */
-
- Op->Asl.ParseOpcode = PARSEOP_INTEGER;
- Op->Common.Value.Integer = 0;
- OpcSetOptimalIntegerSize (Op);
- }
- else
- {
- AslError (ASL_OPTIMIZATION, ASL_MSG_CONSTANT_FOLDED, Op,
- Op->Asl.ParseOpName);
-
- /*
- * Because we know we executed type 3/4/5 opcodes above, we know that
- * the result must be either an Integer, String, or Buffer.
- */
- switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
- {
- case ACPI_TYPE_INTEGER:
-
- Op->Asl.ParseOpcode = PARSEOP_INTEGER;
- Op->Common.Value.Integer = ObjDesc->Integer.Value;
- OpcSetOptimalIntegerSize (Op);
-
- DbgPrint (ASL_PARSE_OUTPUT,
- "Constant expression reduced to (INTEGER) %8.8X%8.8X\n",
- ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
- break;
-
-
- case ACPI_TYPE_STRING:
-
- Op->Asl.ParseOpcode = PARSEOP_STRING_LITERAL;
- Op->Common.AmlOpcode = AML_STRING_OP;
- Op->Asl.AmlLength = ACPI_STRLEN (ObjDesc->String.Pointer) + 1;
- Op->Common.Value.String = ObjDesc->String.Pointer;
-
- DbgPrint (ASL_PARSE_OUTPUT,
- "Constant expression reduced to (STRING) %s\n",
- Op->Common.Value.String);
-
- break;
-
-
- case ACPI_TYPE_BUFFER:
-
- Op->Asl.ParseOpcode = PARSEOP_BUFFER;
- Op->Common.AmlOpcode = AML_BUFFER_OP;
- Op->Asl.CompileFlags = NODE_AML_PACKAGE;
- UtSetParseOpName (Op);
-
- /* Child node is the buffer length */
-
- RootOp = TrAllocateNode (PARSEOP_INTEGER);
-
- RootOp->Asl.AmlOpcode = AML_DWORD_OP;
- RootOp->Asl.Value.Integer = ObjDesc->Buffer.Length;
- RootOp->Asl.Parent = Op;
-
- (void) OpcSetOptimalIntegerSize (RootOp);
-
- Op->Asl.Child = RootOp;
- Op = RootOp;
- UtSetParseOpName (Op);
-
- /* Peer to the child is the raw buffer data */
-
- RootOp = TrAllocateNode (PARSEOP_RAW_DATA);
- RootOp->Asl.AmlOpcode = AML_RAW_DATA_BUFFER;
- RootOp->Asl.AmlLength = ObjDesc->Buffer.Length;
- RootOp->Asl.Value.String = (char *) ObjDesc->Buffer.Pointer;
- RootOp->Asl.Parent = Op->Asl.Parent;
-
- Op->Asl.Next = RootOp;
- Op = RootOp;
-
- DbgPrint (ASL_PARSE_OUTPUT,
- "Constant expression reduced to (BUFFER) length %X\n",
- ObjDesc->Buffer.Length);
- break;
-
-
- default:
- printf ("Unsupported return type: %s\n",
- AcpiUtGetObjectTypeName (ObjDesc));
- break;
- }
- }
-
- UtSetParseOpName (Op);
- Op->Asl.Child = NULL;
-
- AcpiDsDeleteWalkState (WalkState);
-
- return (AE_CTRL_DEPTH);
-}
-
diff --git a/sys/contrib/dev/acpica/compiler/aslglobal.h b/sys/contrib/dev/acpica/compiler/aslglobal.h
deleted file mode 100644
index 07e8a46..0000000
--- a/sys/contrib/dev/acpica/compiler/aslglobal.h
+++ /dev/null
@@ -1,278 +0,0 @@
-
-
-/******************************************************************************
- *
- * Module Name: aslglobal.h - Global variable definitions
- * $Revision: 1.56 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ASLGLOBAL_H
-#define __ASLGLOBAL_H
-
-
-/*
- * Global variables. Defined in aslmain.c only, externed in all other files
- */
-
-#undef ASL_EXTERN
-
-#ifdef _DECLARE_GLOBALS
-#define ASL_EXTERN
-#define ASL_INIT_GLOBAL(a,b) (a)=(b)
-#else
-#define ASL_EXTERN extern
-#define ASL_INIT_GLOBAL(a,b) (a)
-#endif
-
-
-/*
- * Parser and other externals
- */
-extern int yydebug;
-extern FILE *AslCompilerin;
-extern int AslCompilerdebug;
-extern const ASL_MAPPING_ENTRY AslKeywordMapping[];
-extern char *AslCompilertext;
-extern char hex[];
-
-#define ASL_LINE_BUFFER_SIZE 512
-#define ASL_MSG_BUFFER_SIZE 4096
-#define HEX_TABLE_LINE_SIZE 8
-#define HEX_LISTING_LINE_SIZE 16
-
-
-/* Source code buffers and pointers for error reporting */
-
-ASL_EXTERN char Gbl_CurrentLineBuffer[ASL_LINE_BUFFER_SIZE];
-ASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_CurrentColumn, 0);
-ASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_CurrentLineNumber, 1);
-ASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_LogicalLineNumber, 1);
-ASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_CurrentLineOffset, 0);
-ASL_EXTERN char ASL_INIT_GLOBAL (*Gbl_LineBufPtr, Gbl_CurrentLineBuffer);
-
-
-/* Exception reporting */
-
-ASL_EXTERN ASL_ERROR_MSG ASL_INIT_GLOBAL (*Gbl_ErrorLog,NULL);
-ASL_EXTERN ASL_ERROR_MSG ASL_INIT_GLOBAL (*Gbl_NextError,NULL);
-extern UINT32 Gbl_ExceptionCount[];
-
-
-/* Option flags */
-
-ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_Acpi2, FALSE);
-ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_UseDefaultAmlFilename, TRUE);
-ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_NsOutputFlag, FALSE);
-ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_DebugFlag, FALSE);
-ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_AsmOutputFlag, FALSE);
-ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_C_OutputFlag, FALSE);
-ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_AsmIncludeOutputFlag, FALSE);
-ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_C_IncludeOutputFlag, FALSE);
-ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_ListingFlag, FALSE);
-ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_IgnoreErrors, FALSE);
-ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_SourceOutputFlag, FALSE);
-ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_ParseOnlyFlag, FALSE);
-ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_CompileTimesFlag, FALSE);
-ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_FoldConstants, TRUE);
-ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_VerboseErrors, TRUE);
-ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_DisasmFlag, FALSE);
-ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_GetAllTables, FALSE);
-ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_IntegerOptimizationFlag, TRUE);
-ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_ReferenceOptimizationFlag, TRUE);
-ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_DisplayRemarks, TRUE);
-ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_DisplayOptimizations, FALSE);
-ASL_EXTERN UINT8 ASL_INIT_GLOBAL (Gbl_WarningLevel, ASL_WARNING);
-
-
-#define HEX_OUTPUT_NONE 0
-#define HEX_OUTPUT_C 1
-#define HEX_OUTPUT_ASM 2
-ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_HexOutputFlag, HEX_OUTPUT_NONE);
-
-
-/* Files */
-
-ASL_EXTERN ASL_FILE_INFO Gbl_Files [ASL_NUM_FILES];
-
-ASL_EXTERN char *Gbl_DirectoryPath;
-ASL_EXTERN char ASL_INIT_GLOBAL (*Gbl_ExternalFilename, NULL);
-ASL_EXTERN char ASL_INIT_GLOBAL (*Gbl_IncludeFilename, NULL);
-ASL_EXTERN char ASL_INIT_GLOBAL (*Gbl_OutputFilenamePrefix, NULL);
-ASL_EXTERN char *Gbl_CurrentInputFilename;
-
-ASL_EXTERN BOOLEAN ASL_INIT_GLOBAL (Gbl_HasIncludeFiles, FALSE);
-
-
-/* Statistics */
-
-ASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_InputByteCount, 0);
-ASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_NsLookupCount, 0);
-ASL_EXTERN UINT32 ASL_INIT_GLOBAL (TotalKeywords, 0);
-ASL_EXTERN UINT32 ASL_INIT_GLOBAL (TotalNamedObjects, 0);
-ASL_EXTERN UINT32 ASL_INIT_GLOBAL (TotalExecutableOpcodes, 0);
-ASL_EXTERN UINT32 ASL_INIT_GLOBAL (TotalParseNodes, 0);
-ASL_EXTERN UINT32 ASL_INIT_GLOBAL (TotalMethods, 0);
-ASL_EXTERN UINT32 ASL_INIT_GLOBAL (TotalAllocations, 0);
-ASL_EXTERN UINT32 ASL_INIT_GLOBAL (TotalAllocated, 0);
-ASL_EXTERN UINT32 ASL_INIT_GLOBAL (TotalFolds, 0);
-
-
-/* Misc */
-
-ASL_EXTERN UINT8 ASL_INIT_GLOBAL (Gbl_RevisionOverride, 0);
-ASL_EXTERN UINT8 ASL_INIT_GLOBAL (Gbl_TempCount, 0);
-ASL_EXTERN ACPI_PARSE_OBJECT ASL_INIT_GLOBAL (*RootNode, NULL);
-ASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_TableLength, 0);
-ASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_SourceLine, 0);
-ASL_EXTERN ASL_LISTING_NODE ASL_INIT_GLOBAL (*Gbl_ListingNode, NULL);
-ASL_EXTERN ACPI_PARSE_OBJECT ASL_INIT_GLOBAL (*Gbl_NodeCacheNext, NULL);
-ASL_EXTERN ACPI_PARSE_OBJECT ASL_INIT_GLOBAL (*Gbl_NodeCacheLast, NULL);
-ASL_EXTERN char ASL_INIT_GLOBAL (*Gbl_StringCacheNext, NULL);
-ASL_EXTERN char ASL_INIT_GLOBAL (*Gbl_StringCacheLast, NULL);
-ASL_EXTERN ACPI_PARSE_OBJECT *Gbl_FirstLevelInsertionNode;
-
-
-ASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_CurrentHexColumn, 0);
-ASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_CurrentAmlOffset, 0);
-ASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_CurrentLine, 0);
-ASL_EXTERN UINT8 ASL_INIT_GLOBAL (Gbl_HexBytesWereWritten, FALSE);
-ASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_NumNamespaceObjects, 0);
-ASL_EXTERN UINT32 ASL_INIT_GLOBAL (Gbl_ReservedMethods, 0);
-ASL_EXTERN char ASL_INIT_GLOBAL (*Gbl_TableSignature, "NO_SIG");
-ASL_EXTERN char ASL_INIT_GLOBAL (*Gbl_TableId, "NO_ID");
-ASL_EXTERN FILE *AcpiGbl_DebugFile; /* Placeholder for oswinxf only */
-
-
-/* Static structures */
-
-ASL_EXTERN ASL_ANALYSIS_WALK_INFO AnalysisWalkInfo;
-ASL_EXTERN ACPI_TABLE_HEADER TableHeader;
-extern const ASL_RESERVED_INFO ReservedMethods[];
-
-/* Event timing */
-
-#define ASL_NUM_EVENTS 19
-ASL_EXTERN ASL_EVENT_INFO AslGbl_Events[ASL_NUM_EVENTS];
-ASL_EXTERN UINT8 AslGbl_NextEvent;
-ASL_EXTERN UINT8 AslGbl_NamespaceEvent;
-
-/* Scratch buffers */
-
-ASL_EXTERN UINT8 Gbl_AmlBuffer[HEX_LISTING_LINE_SIZE];
-ASL_EXTERN char MsgBuffer[ASL_MSG_BUFFER_SIZE];
-ASL_EXTERN char StringBuffer[ASL_MSG_BUFFER_SIZE];
-ASL_EXTERN char StringBuffer2[ASL_MSG_BUFFER_SIZE];
-
-#endif /* __ASLGLOBAL_H */
-
diff --git a/sys/contrib/dev/acpica/compiler/asllength.c b/sys/contrib/dev/acpica/compiler/asllength.c
deleted file mode 100644
index 056aaeb..0000000
--- a/sys/contrib/dev/acpica/compiler/asllength.c
+++ /dev/null
@@ -1,531 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: asllength - Tree walk to determine package and opcode lengths
- * $Revision: 1.37 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/compiler/aslcompiler.h>
-#include "aslcompiler.y.h"
-#include <contrib/dev/acpica/amlcode.h>
-
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("asllength")
-
-/* Local prototypes */
-
-static UINT8
-CgGetPackageLenByteCount (
- ACPI_PARSE_OBJECT *Op,
- UINT32 PackageLength);
-
-static void
-CgGenerateAmlOpcodeLength (
- ACPI_PARSE_OBJECT *Op);
-
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-void
-LnAdjustLengthToRoot (
- ACPI_PARSE_OBJECT *Op,
- UINT32 LengthDelta);
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION: LnInitLengthsWalk
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Walk callback to initialize (and re-initialize) the node
- * subtree length(s) to zero. The Subtree lengths are bubbled
- * up to the root node in order to get a total AML length.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-LnInitLengthsWalk (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
-
- Op->Asl.AmlSubtreeLength = 0;
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LnPackageLengthWalk
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Walk callback to calculate the total AML length.
- * 1) Calculate the AML lengths (opcode, package length, etc.) for
- * THIS node.
- * 2) Bubbble up all of these lengths to the parent node by summing
- * them all into the parent subtree length.
- *
- * Note: The SubtreeLength represents the total AML length of all child nodes
- * in all subtrees under a given node. Therefore, once this walk is
- * complete, the Root Node subtree length is the AML length of the entire
- * tree (and thus, the entire ACPI table)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-LnPackageLengthWalk (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
-
- /* Generate the AML lengths for this node */
-
- CgGenerateAmlLengths (Op);
-
- /* Bubble up all lengths (this node and all below it) to the parent */
-
- if ((Op->Asl.Parent) &&
- (Op->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG))
- {
- Op->Asl.Parent->Asl.AmlSubtreeLength += (Op->Asl.AmlLength +
- Op->Asl.AmlOpcodeLength +
- Op->Asl.AmlPkgLenBytes +
- Op->Asl.AmlSubtreeLength);
- }
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: CgGetPackageLenByteCount
- *
- * PARAMETERS: Op - Parse node
- * PackageLength - Length to be encoded
- *
- * RETURN: Required length of the package length encoding
- *
- * DESCRIPTION: Calculate the number of bytes required to encode the given
- * package length.
- *
- ******************************************************************************/
-
-static UINT8
-CgGetPackageLenByteCount (
- ACPI_PARSE_OBJECT *Op,
- UINT32 PackageLength)
-{
-
- /*
- * Determine the number of bytes required to encode the package length
- * Note: the package length includes the number of bytes used to encode
- * the package length, so we must account for this also.
- */
- if (PackageLength <= (0x0000003F - 1))
- {
- return (1);
- }
- else if (PackageLength <= (0x00000FFF - 2))
- {
- return (2);
- }
- else if (PackageLength <= (0x000FFFFF - 3))
- {
- return (3);
- }
- else if (PackageLength <= (0x0FFFFFFF - 4))
- {
- return (4);
- }
- else
- {
- /* Fatal error - the package length is too large to encode */
-
- AslError (ASL_ERROR, ASL_MSG_ENCODING_LENGTH, Op, NULL);
- }
-
- return (0);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: CgGenerateAmlOpcodeLength
- *
- * PARAMETERS: Op - Parse node whose AML opcode lengths will be
- * calculated
- *
- * RETURN: None.
- *
- * DESCRIPTION: Calculate the AmlOpcodeLength, AmlPkgLenBytes, and AmlLength
- * fields for this node.
- *
- ******************************************************************************/
-
-static void
-CgGenerateAmlOpcodeLength (
- ACPI_PARSE_OBJECT *Op)
-{
-
- /* Check for two-byte opcode */
-
- if (Op->Asl.AmlOpcode > 0x00FF)
- {
- Op->Asl.AmlOpcodeLength = 2;
- }
- else
- {
- Op->Asl.AmlOpcodeLength = 1;
- }
-
- /* Does this opcode have an associated "PackageLength" field? */
-
- Op->Asl.AmlPkgLenBytes = 0;
- if (Op->Asl.CompileFlags & NODE_AML_PACKAGE)
- {
- Op->Asl.AmlPkgLenBytes = CgGetPackageLenByteCount (
- Op, Op->Asl.AmlSubtreeLength);
- }
-
- /* Data opcode lengths are easy */
-
- switch (Op->Asl.AmlOpcode)
- {
- case AML_BYTE_OP:
-
- Op->Asl.AmlLength = 1;
- break;
-
- case AML_WORD_OP:
-
- Op->Asl.AmlLength = 2;
- break;
-
- case AML_DWORD_OP:
-
- Op->Asl.AmlLength = 4;
- break;
-
- case AML_QWORD_OP:
-
- Op->Asl.AmlLength = 8;
- break;
-
- default:
- /* All data opcodes must be above */
- break;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: CgGenerateAmlLengths
- *
- * PARAMETERS: Op - Parse node
- *
- * RETURN: None.
- *
- * DESCRIPTION: Generate internal length fields based on the AML opcode or
- * parse opcode.
- *
- ******************************************************************************/
-
-void
-CgGenerateAmlLengths (
- ACPI_PARSE_OBJECT *Op)
-{
- char *Buffer;
- ACPI_STATUS Status;
-
-
- switch (Op->Asl.AmlOpcode)
- {
- case AML_RAW_DATA_BYTE:
-
- Op->Asl.AmlOpcodeLength = 0;
- Op->Asl.AmlLength = 1;
- return;
-
- case AML_RAW_DATA_WORD:
-
- Op->Asl.AmlOpcodeLength = 0;
- Op->Asl.AmlLength = 2;
- return;
-
- case AML_RAW_DATA_DWORD:
-
- Op->Asl.AmlOpcodeLength = 0;
- Op->Asl.AmlLength = 4;
- return;
-
- case AML_RAW_DATA_QWORD:
-
- Op->Asl.AmlOpcodeLength = 0;
- Op->Asl.AmlLength = 8;
- return;
-
- case AML_RAW_DATA_BUFFER:
-
- /* Aml length is/was set by creator */
-
- Op->Asl.AmlOpcodeLength = 0;
- return;
-
- case AML_RAW_DATA_CHAIN:
-
- /* Aml length is/was set by creator */
-
- Op->Asl.AmlOpcodeLength = 0;
- return;
-
- default:
- break;
- }
-
- switch (Op->Asl.ParseOpcode)
- {
- case PARSEOP_DEFINITIONBLOCK:
-
- Gbl_TableLength = sizeof (ACPI_TABLE_HEADER) +
- Op->Asl.AmlSubtreeLength;
- break;
-
- case PARSEOP_NAMESEG:
-
- Op->Asl.AmlOpcodeLength = 0;
- Op->Asl.AmlLength = 4;
- Op->Asl.ExternalName = Op->Asl.Value.String;
- break;
-
- case PARSEOP_NAMESTRING:
- case PARSEOP_METHODCALL:
-
- if (Op->Asl.CompileFlags & NODE_NAME_INTERNALIZED)
- {
- break;
- }
-
- Op->Asl.AmlOpcodeLength = 0;
- Status = UtInternalizeName (Op->Asl.Value.String, &Buffer);
- if (ACPI_FAILURE (Status))
- {
- DbgPrint (ASL_DEBUG_OUTPUT,
- "Failure from internalize name %X\n", Status);
- break;
- }
-
- Op->Asl.ExternalName = Op->Asl.Value.String;
- Op->Asl.Value.String = Buffer;
- Op->Asl.CompileFlags |= NODE_NAME_INTERNALIZED;
-
- Op->Asl.AmlLength = strlen (Buffer);
-
- /*
- * Check for single backslash reference to root,
- * make it a null terminated string in the AML
- */
- if (Op->Asl.AmlLength == 1)
- {
- Op->Asl.AmlLength = 2;
- }
- break;
-
- case PARSEOP_STRING_LITERAL:
-
- Op->Asl.AmlOpcodeLength = 1;
-
- /* Get null terminator */
-
- Op->Asl.AmlLength = strlen (Op->Asl.Value.String) + 1;
- break;
-
- case PARSEOP_PACKAGE_LENGTH:
-
- Op->Asl.AmlOpcodeLength = 0;
- Op->Asl.AmlPkgLenBytes = CgGetPackageLenByteCount (Op,
- (UINT32) Op->Asl.Value.Integer);
- break;
-
- case PARSEOP_RAW_DATA:
-
- Op->Asl.AmlOpcodeLength = 0;
- break;
-
- case PARSEOP_DEFAULT_ARG:
- case PARSEOP_EXTERNAL:
- case PARSEOP_INCLUDE:
- case PARSEOP_INCLUDE_END:
-
- /* Ignore the "default arg" nodes, they are extraneous at this point */
-
- break;
-
- default:
-
- CgGenerateAmlOpcodeLength (Op);
- break;
- }
-}
-
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-/*******************************************************************************
- *
- * FUNCTION: LnAdjustLengthToRoot
- *
- * PARAMETERS: Op - Node whose Length was changed
- *
- * RETURN: None.
- *
- * DESCRIPTION: Change the Subtree length of the given node, and bubble the
- * change all the way up to the root node. This allows for
- * last second changes to a package length (for example, if the
- * package length encoding gets shorter or longer.)
- *
- ******************************************************************************/
-
-void
-LnAdjustLengthToRoot (
- ACPI_PARSE_OBJECT *SubtreeOp,
- UINT32 LengthDelta)
-{
- ACPI_PARSE_OBJECT *Op;
-
-
- /* Adjust all subtree lengths up to the root */
-
- Op = SubtreeOp->Asl.Parent;
- while (Op)
- {
- Op->Asl.AmlSubtreeLength -= LengthDelta;
- Op = Op->Asl.Parent;
- }
-
- /* Adjust the global table length */
-
- Gbl_TableLength -= LengthDelta;
-}
-#endif
-
-
diff --git a/sys/contrib/dev/acpica/compiler/asllisting.c b/sys/contrib/dev/acpica/compiler/asllisting.c
deleted file mode 100644
index 31f70b8..0000000
--- a/sys/contrib/dev/acpica/compiler/asllisting.c
+++ /dev/null
@@ -1,1494 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: asllisting - Listing file generation
- * $Revision: 1.63 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/compiler/aslcompiler.h>
-#include "aslcompiler.y.h"
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("aslisting")
-
-/* Local prototypes */
-
-static void
-LsDumpAscii (
- UINT32 FileId,
- UINT32 Count,
- UINT8 *Buffer);
-
-static void
-LsDumpAsciiInComment (
- UINT32 FileId,
- UINT32 Count,
- UINT8 *Buffer);
-
-static ACPI_STATUS
-LsAmlListingWalk (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-static void
-LsGenerateListing (
- UINT32 FileId);
-
-static void
-LsPushNode (
- char *Filename);
-
-static ASL_LISTING_NODE *
-LsPopNode (
- void);
-
-static void
-LsCheckException (
- UINT32 LineNumber,
- UINT32 FileId);
-
-static void
-LsFlushListingBuffer (
- UINT32 FileId);
-
-static void
-LsWriteListingHexBytes (
- UINT8 *Buffer,
- UINT32 Length,
- UINT32 FileId);
-
-static UINT32
-LsWriteOneSourceLine (
- UINT32 FileId);
-
-static void
-LsFinishSourceListing (
- UINT32 FileId);
-
-static void
-LsWriteSourceLines (
- UINT32 ToLineNumber,
- UINT32 ToLogicalLineNumber,
- UINT32 FileId);
-
-static void
-LsWriteNodeToListing (
- ACPI_PARSE_OBJECT *Op,
- UINT32 FileId);
-
-static void
-LsDoHexOutputC (
- void);
-
-static void
-LsDoHexOutputAsm (
- void);
-
-
-/*******************************************************************************
- *
- * FUNCTION: LsTreeWriteWalk
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- *
- * RETURN: None.
- *
- * DESCRIPTION: Dump entire parse tree, for compiler debug only
- *
- ******************************************************************************/
-
-ACPI_STATUS
-LsTreeWriteWalk (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
-
- /* Debug output */
-
- DbgPrint (ASL_TREE_OUTPUT,
- "%5.5d [%2d]", Op->Asl.LogicalLineNumber, Level);
- UtPrintFormattedName (Op->Asl.ParseOpcode, Level);
-
-
- DbgPrint (ASL_TREE_OUTPUT, "\n");
- return (AE_OK);
-}
-
-
-void
-LsDumpParseTree (
- void)
-{
-
- if (!Gbl_DebugFlag)
- {
- return;
- }
-
- DbgPrint (ASL_TREE_OUTPUT, "\nOriginal parse tree from parser:\n\n");
- TrWalkParseTree (RootNode, ASL_WALK_VISIT_DOWNWARD,
- LsTreeWriteWalk, NULL, NULL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LsDumpAscii
- *
- * PARAMETERS: FileId - ID of current listing file
- * Count - Number of bytes to convert
- * Buffer - Buffer of bytes to convert
- *
- * RETURN: None.
- *
- * DESCRIPTION: Convert hex bytes to ascii
- *
- ******************************************************************************/
-
-static void
-LsDumpAscii (
- UINT32 FileId,
- UINT32 Count,
- UINT8 *Buffer)
-{
- UINT8 BufChar;
- UINT32 i;
-
-
- FlPrintFile (FileId, " \"");
- for (i = 0; i < Count; i++)
- {
- BufChar = Buffer[i];
- if (isprint (BufChar))
- {
- FlPrintFile (FileId, "%c", BufChar);
- }
- else
- {
- /* Not a printable character, just put out a dot */
-
- FlPrintFile (FileId, ".");
- }
- }
- FlPrintFile (FileId, "\"");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LsDumpAsciiInComment
- *
- * PARAMETERS: FileId - ID of current listing file
- * Count - Number of bytes to convert
- * Buffer - Buffer of bytes to convert
- *
- * RETURN: None.
- *
- * DESCRIPTION: Convert hex bytes to ascii
- *
- ******************************************************************************/
-
-static void
-LsDumpAsciiInComment (
- UINT32 FileId,
- UINT32 Count,
- UINT8 *Buffer)
-{
- UINT8 BufChar = 0;
- UINT8 LastChar;
- UINT32 i;
-
-
- FlPrintFile (FileId, " \"");
- for (i = 0; i < Count; i++)
- {
- LastChar = BufChar;
- BufChar = Buffer[i];
-
- if (isprint (BufChar))
- {
- /* Handle embedded C comment sequences */
-
- if (((LastChar == '*') && (BufChar == '/')) ||
- ((LastChar == '/') && (BufChar == '*')))
- {
- /* Insert a space to break the sequence */
-
- FlPrintFile (FileId, ".", BufChar);
- }
-
- FlPrintFile (FileId, "%c", BufChar);
- }
- else
- {
- /* Not a printable character, just put out a dot */
-
- FlPrintFile (FileId, ".");
- }
- }
- FlPrintFile (FileId, "\"");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LsAmlListingWalk
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Process one node during a listing file generation.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-LsAmlListingWalk (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- UINT8 FileByte;
- UINT32 i;
- UINT32 FileId = (UINT32) ACPI_TO_INTEGER (Context);
-
-
- LsWriteNodeToListing (Op, FileId);
-
- if (Op->Asl.CompileFlags & NODE_IS_RESOURCE_DATA)
- {
- /* Buffer is a resource template, don't dump the data all at once */
-
- return (AE_OK);
- }
-
- /* Write the hex bytes to the listing file(s) (if requested) */
-
- for (i = 0; i < Op->Asl.FinalAmlLength; i++)
- {
- if (ACPI_FAILURE (FlReadFile (ASL_FILE_AML_OUTPUT, &FileByte, 1)))
- {
- FlFileError (ASL_FILE_AML_OUTPUT, ASL_MSG_READ);
- AslAbort ();
- }
- LsWriteListingHexBytes (&FileByte, 1, FileId);
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LsGenerateListing
- *
- * PARAMETERS: FileId - ID of listing file
- *
- * RETURN: None
- *
- * DESCRIPTION: Generate a listing file. This can be one of the several types
- * of "listings" supported.
- *
- ******************************************************************************/
-
-static void
-LsGenerateListing (
- UINT32 FileId)
-{
-
- /* Start at the beginning of both the source and AML files */
-
- FlSeekFile (ASL_FILE_SOURCE_OUTPUT, 0);
- FlSeekFile (ASL_FILE_AML_OUTPUT, 0);
- Gbl_SourceLine = 0;
- Gbl_CurrentHexColumn = 0;
- LsPushNode (Gbl_Files[ASL_FILE_INPUT].Filename);
-
- /* Process all parse nodes */
-
- TrWalkParseTree (RootNode, ASL_WALK_VISIT_DOWNWARD, LsAmlListingWalk,
- NULL, (void *) ACPI_TO_POINTER (FileId));
-
- /* Final processing */
-
- LsFinishSourceListing (FileId);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LsDoListings
- *
- * PARAMETERS: None.
- *
- * RETURN: None
- *
- * DESCRIPTION: Generate all requested listing files.
- *
- ******************************************************************************/
-
-void
-LsDoListings (
- void)
-{
-
- if (Gbl_C_OutputFlag)
- {
- LsGenerateListing (ASL_FILE_C_SOURCE_OUTPUT);
- }
-
- if (Gbl_ListingFlag)
- {
- LsGenerateListing (ASL_FILE_LISTING_OUTPUT);
- }
-
- if (Gbl_AsmOutputFlag)
- {
- LsGenerateListing (ASL_FILE_ASM_SOURCE_OUTPUT);
- }
-
- if (Gbl_C_IncludeOutputFlag)
- {
- LsGenerateListing (ASL_FILE_C_INCLUDE_OUTPUT);
- }
-
- if (Gbl_AsmIncludeOutputFlag)
- {
- LsGenerateListing (ASL_FILE_ASM_INCLUDE_OUTPUT);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LsPushNode
- *
- * PARAMETERS: Filename - Pointer to the include filename
- *
- * RETURN: None
- *
- * DESCRIPTION: Push a listing node on the listing/include file stack. This
- * stack enables tracking of include files (infinitely nested)
- * and resumption of the listing of the parent file when the
- * include file is finished.
- *
- ******************************************************************************/
-
-static void
-LsPushNode (
- char *Filename)
-{
- ASL_LISTING_NODE *Lnode;
-
-
- /* Create a new node */
-
- Lnode = UtLocalCalloc (sizeof (ASL_LISTING_NODE));
-
- /* Initialize */
-
- Lnode->Filename = Filename;
- Lnode->LineNumber = 0;
-
- /* Link (push) */
-
- Lnode->Next = Gbl_ListingNode;
- Gbl_ListingNode = Lnode;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LsPopNode
- *
- * PARAMETERS: None
- *
- * RETURN: List head after current head is popped off
- *
- * DESCRIPTION: Pop the current head of the list, free it, and return the
- * next node on the stack (the new current node).
- *
- ******************************************************************************/
-
-static ASL_LISTING_NODE *
-LsPopNode (
- void)
-{
- ASL_LISTING_NODE *Lnode;
-
-
- /* Just grab the node at the head of the list */
-
- Lnode = Gbl_ListingNode;
- if ((!Lnode) ||
- (!Lnode->Next))
- {
- AslError (ASL_ERROR, ASL_MSG_COMPILER_INTERNAL, NULL,
- "Could not pop empty listing stack");
- return Gbl_ListingNode;
- }
-
- Gbl_ListingNode = Lnode->Next;
- ACPI_FREE (Lnode);
-
- /* New "Current" node is the new head */
-
- return (Gbl_ListingNode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LsCheckException
- *
- * PARAMETERS: LineNumber - Current logical (cumulative) line #
- * FileId - ID of output listing file
- *
- * RETURN: None
- *
- * DESCRIPTION: Check if there is an exception for this line, and if there is,
- * put it in the listing immediately. Handles multiple errors
- * per line. Gbl_NextError points to the next error in the
- * sorted (by line #) list of compile errors/warnings.
- *
- ******************************************************************************/
-
-static void
-LsCheckException (
- UINT32 LineNumber,
- UINT32 FileId)
-{
-
- if ((!Gbl_NextError) ||
- (LineNumber < Gbl_NextError->LogicalLineNumber ))
- {
- return;
- }
-
- /* Handle multiple errors per line */
-
- if (FileId == ASL_FILE_LISTING_OUTPUT)
- {
- while (Gbl_NextError &&
- (LineNumber >= Gbl_NextError->LogicalLineNumber))
- {
- AePrintException (FileId, Gbl_NextError, "\n[****iasl****]\n");
-
- Gbl_NextError = Gbl_NextError->Next;
- }
-
- FlPrintFile (FileId, "\n");
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LsFlushListingBuffer
- *
- * PARAMETERS: FileId - ID of the listing file
- *
- * RETURN: None
- *
- * DESCRIPTION: Flush out the current contents of the 16-byte hex AML code
- * buffer. Usually called at the termination of a single line
- * of source code or when the buffer is full.
- *
- ******************************************************************************/
-
-static void
-LsFlushListingBuffer (
- UINT32 FileId)
-{
- UINT32 i;
-
-
- if (Gbl_CurrentHexColumn == 0)
- {
- return;
- }
-
- /* Write the hex bytes */
-
- switch (FileId)
- {
- case ASL_FILE_LISTING_OUTPUT:
-
- for (i = 0; i < Gbl_CurrentHexColumn; i++)
- {
- FlPrintFile (FileId, "%2.2X ", Gbl_AmlBuffer[i]);
- }
-
- for (i = 0; i < ((HEX_LISTING_LINE_SIZE - Gbl_CurrentHexColumn) * 3); i++)
- {
- FlWriteFile (FileId, ".", 1);
- }
-
- /* Write the ASCII character associated with each of the bytes */
-
- LsDumpAscii (FileId, Gbl_CurrentHexColumn, Gbl_AmlBuffer);
- break;
-
-
- case ASL_FILE_ASM_SOURCE_OUTPUT:
-
- for (i = 0; i < Gbl_CurrentHexColumn; i++)
- {
- if (i > 0)
- {
- FlPrintFile (FileId, ",");
- }
- FlPrintFile (FileId, "0%2.2Xh", Gbl_AmlBuffer[i]);
- }
-
- for (i = 0; i < ((HEX_LISTING_LINE_SIZE - Gbl_CurrentHexColumn) * 5); i++)
- {
- FlWriteFile (FileId, " ", 1);
- }
-
- FlPrintFile (FileId, " ;%8.8X",
- Gbl_CurrentAmlOffset - HEX_LISTING_LINE_SIZE);
-
- /* Write the ASCII character associated with each of the bytes */
-
- LsDumpAscii (FileId, Gbl_CurrentHexColumn, Gbl_AmlBuffer);
- break;
-
-
- case ASL_FILE_C_SOURCE_OUTPUT:
-
- for (i = 0; i < Gbl_CurrentHexColumn; i++)
- {
- FlPrintFile (FileId, "0x%2.2X,", Gbl_AmlBuffer[i]);
- }
-
- for (i = 0; i < ((HEX_LISTING_LINE_SIZE - Gbl_CurrentHexColumn) * 5); i++)
- {
- FlWriteFile (FileId, " ", 1);
- }
-
- FlPrintFile (FileId, " /* %8.8X",
- Gbl_CurrentAmlOffset - HEX_LISTING_LINE_SIZE);
-
- /* Write the ASCII character associated with each of the bytes */
-
- LsDumpAsciiInComment (FileId, Gbl_CurrentHexColumn, Gbl_AmlBuffer);
- FlPrintFile (FileId, " */");
- break;
-
- default:
- /* No other types supported */
- return;
- }
-
- FlPrintFile (FileId, "\n");
-
- Gbl_CurrentHexColumn = 0;
- Gbl_HexBytesWereWritten = TRUE;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LsWriteListingHexBytes
- *
- * PARAMETERS: Buffer - AML code buffer
- * Length - Number of AML bytes to write
- * FileId - ID of current listing file.
- *
- * RETURN: None
- *
- * DESCRIPTION: Write the contents of the AML buffer to the listing file via
- * the listing buffer. The listing buffer is flushed every 16
- * AML bytes.
- *
- ******************************************************************************/
-
-static void
-LsWriteListingHexBytes (
- UINT8 *Buffer,
- UINT32 Length,
- UINT32 FileId)
-{
- UINT32 i;
-
-
- /* Transfer all requested bytes */
-
- for (i = 0; i < Length; i++)
- {
- /* Print line header when buffer is empty */
-
- if (Gbl_CurrentHexColumn == 0)
- {
- if (Gbl_HasIncludeFiles)
- {
- FlPrintFile (FileId, "%*s", 10, " ");
- }
-
- switch (FileId)
- {
- case ASL_FILE_LISTING_OUTPUT:
-
- FlPrintFile (FileId, "%8.8X....", Gbl_CurrentAmlOffset);
- break;
-
- case ASL_FILE_ASM_SOURCE_OUTPUT:
-
- FlPrintFile (FileId, " db ");
- break;
-
- case ASL_FILE_C_SOURCE_OUTPUT:
-
- FlPrintFile (FileId, " ");
- break;
-
- default:
- /* No other types supported */
- return;
- }
- }
-
- /* Transfer AML byte and update counts */
-
- Gbl_AmlBuffer[Gbl_CurrentHexColumn] = Buffer[i];
-
- Gbl_CurrentHexColumn++;
- Gbl_CurrentAmlOffset++;
-
- /* Flush buffer when it is full */
-
- if (Gbl_CurrentHexColumn >= HEX_LISTING_LINE_SIZE)
- {
- LsFlushListingBuffer (FileId);
- }
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LsWriteOneSourceLine
- *
- * PARAMETERS: FileID - ID of current listing file
- *
- * RETURN: FALSE on EOF (input source file), TRUE otherwise
- *
- * DESCRIPTION: Read one line from the input source file and echo it to the
- * listing file, prefixed with the line number, and if the source
- * file contains include files, prefixed with the current filename
- *
- ******************************************************************************/
-
-static UINT32
-LsWriteOneSourceLine (
- UINT32 FileId)
-{
- UINT8 FileByte;
-
-
- Gbl_SourceLine++;
- Gbl_ListingNode->LineNumber++;
-
- if (FileId == ASL_FILE_C_SOURCE_OUTPUT)
- {
- FlPrintFile (FileId, " *");
- }
- if (FileId == ASL_FILE_ASM_SOURCE_OUTPUT)
- {
- FlPrintFile (FileId, "; ");
- }
-
- if (Gbl_HasIncludeFiles)
- {
- /*
- * This file contains "include" statements, print the current
- * filename and line number within the current file
- */
- FlPrintFile (FileId, "%12s %5d....",
- Gbl_ListingNode->Filename, Gbl_ListingNode->LineNumber);
- }
- else
- {
- /* No include files, just print the line number */
-
- FlPrintFile (FileId, "%8d....", Gbl_SourceLine);
- }
-
- /* Read one line (up to a newline or EOF) */
-
- while (FlReadFile (ASL_FILE_SOURCE_OUTPUT, &FileByte, 1) == AE_OK)
- {
- if (FileId == ASL_FILE_C_SOURCE_OUTPUT)
- {
- if (FileByte == '/')
- {
- FileByte = '*';
- }
- }
-
- FlWriteFile (FileId, &FileByte, 1);
- if (FileByte == '\n')
- {
- /*
- * Check if an error occurred on this source line during the compile.
- * If so, we print the error message after the source line.
- */
- LsCheckException (Gbl_SourceLine, FileId);
- return (1);
- }
- }
-
- /* EOF on the input file was reached */
-
- return (0);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LsFinishSourceListing
- *
- * PARAMETERS: FileId - ID of current listing file.
- *
- * RETURN: None
- *
- * DESCRIPTION: Cleanup routine for the listing file. Flush the hex AML
- * listing buffer, and flush out any remaining lines in the
- * source input file.
- *
- ******************************************************************************/
-
-static void
-LsFinishSourceListing (
- UINT32 FileId)
-{
-
- if ((FileId == ASL_FILE_ASM_INCLUDE_OUTPUT) ||
- (FileId == ASL_FILE_C_INCLUDE_OUTPUT))
- {
- return;
- }
-
- LsFlushListingBuffer (FileId);
- Gbl_CurrentAmlOffset = 0;
-
- /* Flush any remaining text in the source file */
-
- if (FileId == ASL_FILE_C_SOURCE_OUTPUT)
- {
- FlPrintFile (FileId, " /*\n");
- }
-
- while (LsWriteOneSourceLine (FileId))
- { ; }
-
- if (FileId == ASL_FILE_C_SOURCE_OUTPUT)
- {
- FlPrintFile (FileId, "\n */\n };\n");
- }
-
- FlPrintFile (FileId, "\n");
-
- if (FileId == ASL_FILE_LISTING_OUTPUT)
- {
- /* Print a summary of the compile exceptions */
-
- FlPrintFile (FileId, "\n\nSummary of errors and warnings\n\n");
- AePrintErrorLog (FileId);
- FlPrintFile (FileId, "\n\n");
- UtDisplaySummary (FileId);
- FlPrintFile (FileId, "\n\n");
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LsWriteSourceLines
- *
- * PARAMETERS: ToLineNumber -
- * ToLogicalLineNumber - Write up to this source line number
- * FileId - ID of current listing file
- *
- * RETURN: None
- *
- * DESCRIPTION: Read then write source lines to the listing file until we have
- * reached the specified logical (cumulative) line number. This
- * automatically echos out comment blocks and other non-AML
- * generating text until we get to the actual AML-generating line
- * of ASL code specified by the logical line number.
- *
- ******************************************************************************/
-
-static void
-LsWriteSourceLines (
- UINT32 ToLineNumber,
- UINT32 ToLogicalLineNumber,
- UINT32 FileId)
-{
-
- if ((FileId == ASL_FILE_ASM_INCLUDE_OUTPUT) ||
- (FileId == ASL_FILE_C_INCLUDE_OUTPUT))
- {
- return;
- }
-
- Gbl_CurrentLine = ToLogicalLineNumber;
-
- /* Flush any hex bytes remaining from the last opcode */
-
- LsFlushListingBuffer (FileId);
-
- /* Read lines and write them as long as we are not caught up */
-
- if (Gbl_SourceLine < Gbl_CurrentLine)
- {
- /*
- * If we just completed writing some AML hex bytes, output a linefeed
- * to add some whitespace for readability.
- */
- if (Gbl_HexBytesWereWritten)
- {
- FlPrintFile (FileId, "\n");
- Gbl_HexBytesWereWritten = FALSE;
- }
-
- if (FileId == ASL_FILE_C_SOURCE_OUTPUT)
- {
- FlPrintFile (FileId, " /*\n");
- }
-
- /* Write one line at a time until we have reached the target line # */
-
- while ((Gbl_SourceLine < Gbl_CurrentLine) &&
- LsWriteOneSourceLine (FileId))
- { ; }
-
- if (FileId == ASL_FILE_C_SOURCE_OUTPUT)
- {
- FlPrintFile (FileId, " */");
- }
- FlPrintFile (FileId, "\n");
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LsWriteNodeToListing
- *
- * PARAMETERS: Op - Parse node to write to the listing file.
- * FileId - ID of current listing file
- *
- * RETURN: None.
- *
- * DESCRIPTION: Write "a node" to the listing file. This means to
- * 1) Write out all of the source text associated with the node
- * 2) Write out all of the AML bytes associated with the node
- * 3) Write any compiler exceptions associated with the node
- *
- ******************************************************************************/
-
-static void
-LsWriteNodeToListing (
- ACPI_PARSE_OBJECT *Op,
- UINT32 FileId)
-{
- const ACPI_OPCODE_INFO *OpInfo;
- UINT32 OpClass;
- char *Pathname;
- UINT32 Length;
- UINT32 i;
-
-
- OpInfo = AcpiPsGetOpcodeInfo (Op->Asl.AmlOpcode);
- OpClass = OpInfo->Class;
-
- /* TBD: clean this up with a single flag that says:
- * I start a named output block
- */
- if (FileId == ASL_FILE_C_SOURCE_OUTPUT)
- {
- switch (Op->Asl.ParseOpcode)
- {
- case PARSEOP_DEFINITIONBLOCK:
- case PARSEOP_METHODCALL:
- case PARSEOP_INCLUDE:
- case PARSEOP_INCLUDE_END:
- case PARSEOP_DEFAULT_ARG:
-
- break;
-
- default:
- switch (OpClass)
- {
- case AML_CLASS_NAMED_OBJECT:
- switch (Op->Asl.AmlOpcode)
- {
- case AML_SCOPE_OP:
- case AML_ALIAS_OP:
- break;
-
- default:
- if (Op->Asl.ExternalName)
- {
- LsFlushListingBuffer (FileId);
- FlPrintFile (FileId, " };\n");
- }
- break;
- }
- break;
-
- default:
- /* Don't care about other objects */
- break;
- }
- break;
- }
- }
-
- /* These cases do not have a corresponding AML opcode */
-
- switch (Op->Asl.ParseOpcode)
- {
- case PARSEOP_DEFINITIONBLOCK:
-
- LsWriteSourceLines (Op->Asl.EndLine, Op->Asl.EndLogicalLine, FileId);
-
- /* Use the table Signature and TableId to build a unique name */
-
- if (FileId == ASL_FILE_ASM_SOURCE_OUTPUT)
- {
- FlPrintFile (FileId,
- "%s_%s_Header \\\n",
- Gbl_TableSignature, Gbl_TableId);
- }
- if (FileId == ASL_FILE_C_SOURCE_OUTPUT)
- {
- FlPrintFile (FileId,
- " unsigned char %s_%s_Header [] =\n {\n",
- Gbl_TableSignature, Gbl_TableId);
- }
- if (FileId == ASL_FILE_ASM_INCLUDE_OUTPUT)
- {
- FlPrintFile (FileId,
- "extrn %s_%s_Header : byte\n",
- Gbl_TableSignature, Gbl_TableId);
- }
- if (FileId == ASL_FILE_C_INCLUDE_OUTPUT)
- {
- FlPrintFile (FileId,
- "extern unsigned char %s_%s_Header [];\n",
- Gbl_TableSignature, Gbl_TableId);
- }
- return;
-
-
- case PARSEOP_METHODCALL:
-
- LsWriteSourceLines (Op->Asl.LineNumber, Op->Asl.LogicalLineNumber,
- FileId);
- return;
-
-
- case PARSEOP_INCLUDE:
-
- /* Flush everything up to and including the include source line */
-
- LsWriteSourceLines (Op->Asl.LineNumber, Op->Asl.LogicalLineNumber,
- FileId);
-
- /* Create a new listing node and push it */
-
- LsPushNode (Op->Asl.Child->Asl.Value.String);
- return;
-
-
- case PARSEOP_INCLUDE_END:
-
- /* Flush out the rest of the include file */
-
- LsWriteSourceLines (Op->Asl.LineNumber, Op->Asl.LogicalLineNumber,
- FileId);
-
- /* Pop off this listing node and go back to the parent file */
-
- (void) LsPopNode ();
- return;
-
-
- case PARSEOP_DEFAULT_ARG:
-
- if (Op->Asl.CompileFlags & NODE_IS_RESOURCE_DESC)
- {
- LsWriteSourceLines (Op->Asl.LineNumber, Op->Asl.EndLogicalLine,
- FileId);
- }
- return;
-
-
- default:
- /* All other opcodes have an AML opcode */
- break;
- }
-
- /*
- * Otherwise, we look at the AML opcode because we can
- * switch on the opcode type, getting an entire class
- * at once
- */
- switch (OpClass)
- {
- case AML_CLASS_ARGUMENT: /* argument type only */
- case AML_CLASS_INTERNAL:
-
- break;
-
-
- case AML_CLASS_NAMED_OBJECT:
-
- switch (Op->Asl.AmlOpcode)
- {
- case AML_FIELD_OP:
- case AML_INDEX_FIELD_OP:
- case AML_BANK_FIELD_OP:
-
- /*
- * For fields, we want to dump all the AML after the
- * entire definition
- */
- LsWriteSourceLines (Op->Asl.EndLine, Op->Asl.EndLogicalLine,
- FileId);
- break;
-
- case AML_NAME_OP:
-
- if (Op->Asl.CompileFlags & NODE_IS_RESOURCE_DESC)
- {
- LsWriteSourceLines (Op->Asl.LineNumber, Op->Asl.LogicalLineNumber,
- FileId);
- }
- else
- {
- /*
- * For fields, we want to dump all the AML after the
- * entire definition
- */
- LsWriteSourceLines (Op->Asl.EndLine, Op->Asl.EndLogicalLine,
- FileId);
- }
- break;
-
- default:
- LsWriteSourceLines (Op->Asl.LineNumber, Op->Asl.LogicalLineNumber,
- FileId);
- break;
- }
-
- switch (Op->Asl.AmlOpcode)
- {
- case AML_SCOPE_OP:
- case AML_ALIAS_OP:
-
- /* These opcodes do not declare a new object, ignore them */
-
- break;
-
- default:
-
- /* All other named object opcodes come here */
-
- switch (FileId)
- {
- case ASL_FILE_ASM_SOURCE_OUTPUT:
- case ASL_FILE_C_SOURCE_OUTPUT:
- case ASL_FILE_ASM_INCLUDE_OUTPUT:
- case ASL_FILE_C_INCLUDE_OUTPUT:
-
- /*
- * For named objects, we will create a valid symbol so that the
- * AML code can be referenced from C or ASM
- */
- if (Op->Asl.ExternalName)
- {
- /* Get the full pathname associated with this node */
-
- Pathname = AcpiNsGetExternalPathname (Op->Asl.Node);
- Length = strlen (Pathname);
- if (Length >= 4)
- {
- /* Convert all dots in the path to underscores */
-
- for (i = 0; i < Length; i++)
- {
- if (Pathname[i] == '.')
- {
- Pathname[i] = '_';
- }
- }
-
- /* Create the appropriate symbol in the output file */
-
- if (FileId == ASL_FILE_ASM_SOURCE_OUTPUT)
- {
- FlPrintFile (FileId,
- "%s_%s_%s \\\n",
- Gbl_TableSignature, Gbl_TableId, &Pathname[1]);
- }
- if (FileId == ASL_FILE_C_SOURCE_OUTPUT)
- {
- FlPrintFile (FileId,
- " unsigned char %s_%s_%s [] =\n {\n",
- Gbl_TableSignature, Gbl_TableId, &Pathname[1]);
- }
- if (FileId == ASL_FILE_ASM_INCLUDE_OUTPUT)
- {
- FlPrintFile (FileId,
- "extrn %s_%s_%s : byte\n",
- Gbl_TableSignature, Gbl_TableId, &Pathname[1]);
- }
- if (FileId == ASL_FILE_C_INCLUDE_OUTPUT)
- {
- FlPrintFile (FileId,
- "extern unsigned char %s_%s_%s [];\n",
- Gbl_TableSignature, Gbl_TableId, &Pathname[1]);
- }
- }
- ACPI_FREE (Pathname);
- }
- break;
-
- default:
- /* Nothing to do for listing file */
- break;
- }
- }
- break;
-
- case AML_CLASS_EXECUTE:
- case AML_CLASS_CREATE:
- default:
-
- if ((Op->Asl.ParseOpcode == PARSEOP_BUFFER) &&
- (Op->Asl.CompileFlags & NODE_IS_RESOURCE_DESC))
- {
- return;
- }
-
- LsWriteSourceLines (Op->Asl.LineNumber, Op->Asl.LogicalLineNumber,
- FileId);
- break;
-
- case AML_CLASS_UNKNOWN:
- break;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LsDoHexOutput
- *
- * PARAMETERS: None
- *
- * RETURN: None.
- *
- * DESCRIPTION: Create the hex output file.
- *
- ******************************************************************************/
-
-void
-LsDoHexOutput (
- void)
-{
-
- switch (Gbl_HexOutputFlag)
- {
- case HEX_OUTPUT_C:
-
- LsDoHexOutputC ();
- break;
-
- case HEX_OUTPUT_ASM:
-
- LsDoHexOutputAsm ();
- break;
-
- default:
- /* No other output types supported */
- break;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LsDoHexOutputC
- *
- * PARAMETERS: None
- *
- * RETURN: None.
- *
- * DESCRIPTION: Create the hex output file. This is the same data as the AML
- * output file, but formatted into hex/ascii bytes suitable for
- * inclusion into a C source file.
- *
- ******************************************************************************/
-
-static void
-LsDoHexOutputC (
- void)
-{
- UINT32 j;
- UINT8 FileByte[HEX_TABLE_LINE_SIZE];
- UINT8 Buffer[4];
- UINT32 Offset = 0;
-
-
- FlPrintFile (ASL_FILE_HEX_OUTPUT, " * C source code output\n *\n */\n");
- FlPrintFile (ASL_FILE_HEX_OUTPUT, "unsigned char AmlCode[] =\n{\n");
-
- /* Start at the beginning of the AML file */
-
- FlSeekFile (ASL_FILE_AML_OUTPUT, 0);
-
- /* Process all AML bytes in the AML file */
-
- j = 0;
- while (FlReadFile (ASL_FILE_AML_OUTPUT, &FileByte[j], 1) == AE_OK)
- {
- if (j == 0)
- {
- FlPrintFile (ASL_FILE_HEX_OUTPUT, " ");
- }
-
- /* Convert each AML byte to hex */
-
- UtConvertByteToHex (FileByte[j], Buffer);
- FlWriteFile (ASL_FILE_HEX_OUTPUT, Buffer, 4);
- FlPrintFile (ASL_FILE_HEX_OUTPUT, ",");
-
- /* An occasional linefeed improves readability */
-
- Offset++;
- j++;
-
- if (j >= HEX_TABLE_LINE_SIZE)
- {
- /* End of line, emit the ascii dump of the entire line */
-
- FlPrintFile (ASL_FILE_HEX_OUTPUT,
- " /* %8.8X", Offset - HEX_TABLE_LINE_SIZE);
-
- /* Write the ASCII character associated with each of the bytes */
-
- LsDumpAsciiInComment (ASL_FILE_HEX_OUTPUT,
- HEX_TABLE_LINE_SIZE, FileByte);
- FlPrintFile (ASL_FILE_HEX_OUTPUT, " */\n");
-
- /* Start new line */
-
- j = 0;
- }
- }
-
- FlPrintFile (ASL_FILE_HEX_OUTPUT, "\n};\n");
- FlCloseFile (ASL_FILE_HEX_OUTPUT);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LsDoHexOutputAsm
- *
- * PARAMETERS: None
- *
- * RETURN: None.
- *
- * DESCRIPTION: Create the hex output file. This is the same data as the AML
- * output file, but formatted into hex/ascii bytes suitable for
- * inclusion into a ASM source file.
- *
- ******************************************************************************/
-
-static void
-LsDoHexOutputAsm (
- void)
-{
- UINT32 j;
- UINT8 FileByte[HEX_TABLE_LINE_SIZE];
- UINT8 Buffer[4];
- UINT32 Offset = 0;
- BOOLEAN DoComma = FALSE;
-
-
- FlPrintFile (ASL_FILE_HEX_OUTPUT, "; Assembly code source output\n;\n");
-
- /* Start at the beginning of the AML file */
-
- FlSeekFile (ASL_FILE_AML_OUTPUT, 0);
-
- /* Process all AML bytes in the AML file */
-
- j = 0;
- while (FlReadFile (ASL_FILE_AML_OUTPUT, &FileByte[j], 1) == AE_OK)
- {
- if (j == 0)
- {
- FlPrintFile (ASL_FILE_HEX_OUTPUT, " db ");
- }
- else if (DoComma)
- {
- FlPrintFile (ASL_FILE_HEX_OUTPUT, ",");
- DoComma = FALSE;
- }
-
- /* Convert each AML byte to hex */
-
- UtConvertByteToAsmHex (FileByte[j], Buffer);
- FlWriteFile (ASL_FILE_HEX_OUTPUT, Buffer, 4);
-
- /* An occasional linefeed improves readability */
-
- Offset++;
- j++;
- if (j >= HEX_TABLE_LINE_SIZE)
- {
- FlPrintFile (ASL_FILE_HEX_OUTPUT,
- " ;%8.8X", Offset - HEX_TABLE_LINE_SIZE);
-
- /* Write the ASCII character associated with each of the bytes */
-
- LsDumpAscii (ASL_FILE_HEX_OUTPUT, HEX_TABLE_LINE_SIZE, FileByte);
- FlPrintFile (ASL_FILE_HEX_OUTPUT, "\n");
- j = 0;
- }
- else
- {
- DoComma = TRUE;
- }
- }
-
- FlPrintFile (ASL_FILE_HEX_OUTPUT, "\n");
- FlCloseFile (ASL_FILE_HEX_OUTPUT);
-}
-
-
diff --git a/sys/contrib/dev/acpica/compiler/aslload.c b/sys/contrib/dev/acpica/compiler/aslload.c
deleted file mode 100644
index ebbc487..0000000
--- a/sys/contrib/dev/acpica/compiler/aslload.c
+++ /dev/null
@@ -1,826 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dswload - Dispatcher namespace load callbacks
- * $Revision: 1.77 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __ASLLOAD_C__
-
-#include <contrib/dev/acpica/compiler/aslcompiler.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-#include "aslcompiler.y.h"
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("aslload")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-LdLoadFieldElements (
- ACPI_PARSE_OBJECT *Op,
- ACPI_WALK_STATE *WalkState);
-
-static ACPI_STATUS
-LdLoadResourceElements (
- ACPI_PARSE_OBJECT *Op,
- ACPI_WALK_STATE *WalkState);
-
-static ACPI_STATUS
-LdNamespace1Begin (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-static ACPI_STATUS
-LdNamespace1End (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-
-/*******************************************************************************
- *
- * FUNCTION: LdLoadNamespace
- *
- * PARAMETERS: RootOp - Root of the parse tree
- *
- * RETURN: Status
- *
- * DESCRIPTION: Perform a walk of the parse tree that in turn loads all of the
- * named ASL/AML objects into the namespace. The namespace is
- * constructed in order to resolve named references and references
- * to named fields within resource templates/descriptors.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-LdLoadNamespace (
- ACPI_PARSE_OBJECT *RootOp)
-{
- ACPI_WALK_STATE *WalkState;
-
-
- DbgPrint (ASL_DEBUG_OUTPUT, "\nCreating namespace\n\n");
-
- /* Create a new walk state */
-
- WalkState = AcpiDsCreateWalkState (0, NULL, NULL, NULL);
- if (!WalkState)
- {
- return AE_NO_MEMORY;
- }
-
- /* Perform the walk of the parse tree */
-
- TrWalkParseTree (RootOp, ASL_WALK_VISIT_TWICE, LdNamespace1Begin,
- LdNamespace1End, WalkState);
-
- /* Dump the namespace if debug is enabled */
-
- AcpiNsDumpTables (ACPI_NS_ALL, ACPI_UINT32_MAX);
- return AE_OK;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LdLoadFieldElements
- *
- * PARAMETERS: Op - Parent node (Field)
- * WalkState - Current walk state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Enter the named elements of the field (children of the parent)
- * into the namespace.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-LdLoadFieldElements (
- ACPI_PARSE_OBJECT *Op,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_PARSE_OBJECT *Child = NULL;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
-
-
- /* Get the first named field element */
-
- switch (Op->Asl.AmlOpcode)
- {
- case AML_BANK_FIELD_OP:
-
- Child = UtGetArg (Op, 6);
- break;
-
- case AML_INDEX_FIELD_OP:
-
- Child = UtGetArg (Op, 5);
- break;
-
- case AML_FIELD_OP:
-
- Child = UtGetArg (Op, 4);
- break;
-
- default:
- /* No other opcodes should arrive here */
- return (AE_BAD_PARAMETER);
- }
-
- /* Enter all elements into the namespace */
-
- while (Child)
- {
- switch (Child->Asl.AmlOpcode)
- {
- case AML_INT_RESERVEDFIELD_OP:
- case AML_INT_ACCESSFIELD_OP:
-
- break;
-
- default:
-
- Status = AcpiNsLookup (WalkState->ScopeInfo,
- Child->Asl.Value.String,
- ACPI_TYPE_LOCAL_REGION_FIELD,
- ACPI_IMODE_LOAD_PASS1,
- ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE |
- ACPI_NS_ERROR_IF_FOUND,
- NULL, &Node);
- if (ACPI_FAILURE (Status))
- {
- if (Status != AE_ALREADY_EXISTS)
- {
- AslError (ASL_ERROR, ASL_MSG_CORE_EXCEPTION, Child,
- Child->Asl.Value.String);
- return (Status);
- }
-
- /*
- * The name already exists in this scope
- * But continue processing the elements
- */
- AslError (ASL_ERROR, ASL_MSG_NAME_EXISTS, Child,
- Child->Asl.Value.String);
- }
- else
- {
- Child->Asl.Node = Node;
- Node->Op = Child;
- }
- break;
- }
- Child = Child->Asl.Next;
- }
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LdLoadResourceElements
- *
- * PARAMETERS: Op - Parent node (Resource Descriptor)
- * WalkState - Current walk state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Enter the named elements of the resource descriptor (children
- * of the parent) into the namespace.
- *
- * NOTE: In the real AML namespace, these named elements never exist. But
- * we simply use the namespace here as a symbol table so we can look
- * them up as they are referenced.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-LdLoadResourceElements (
- ACPI_PARSE_OBJECT *Op,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_PARSE_OBJECT *InitializerOp = NULL;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
-
-
- /*
- * Enter the resource name into the namespace. Name must not already exist.
- * This opens a scope, so later field names are guaranteed to be new/unique.
- */
- Status = AcpiNsLookup (WalkState->ScopeInfo, Op->Asl.Namepath,
- ACPI_TYPE_LOCAL_RESOURCE, ACPI_IMODE_LOAD_PASS1,
- ACPI_NS_NO_UPSEARCH | ACPI_NS_ERROR_IF_FOUND,
- WalkState, &Node);
- if (ACPI_FAILURE (Status))
- {
- if (Status == AE_ALREADY_EXISTS)
- {
- /* Actual node causing the error was saved in ParentMethod */
-
- AslError (ASL_ERROR, ASL_MSG_NAME_EXISTS,
- (ACPI_PARSE_OBJECT *) Op->Asl.ParentMethod, Op->Asl.Namepath);
- return (AE_OK);
- }
- return (Status);
- }
-
- Node->Value = (UINT32) Op->Asl.Value.Integer;
- Node->Op = Op;
-
- /*
- * Now enter the predefined fields, for easy lookup when referenced
- * by the source ASL
- */
- InitializerOp = ASL_GET_CHILD_NODE (Op);
- while (InitializerOp)
- {
-
- if (InitializerOp->Asl.ExternalName)
- {
- Status = AcpiNsLookup (WalkState->ScopeInfo,
- InitializerOp->Asl.ExternalName,
- ACPI_TYPE_LOCAL_RESOURCE_FIELD,
- ACPI_IMODE_LOAD_PASS1,
- ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE,
- NULL, &Node);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- /*
- * Store the field offset in the namespace node so it
- * can be used when the field is referenced
- */
- Node->Value = (UINT32) InitializerOp->Asl.Value.Integer;
- InitializerOp->Asl.Node = Node;
- Node->Op = InitializerOp;
-
- /* Pass thru the field type (Bitfield or Bytefield) */
-
- if (InitializerOp->Asl.CompileFlags & NODE_IS_BIT_OFFSET)
- {
- Node->Flags |= ANOBJ_IS_BIT_OFFSET;
- }
- }
- InitializerOp = ASL_GET_PEER_NODE (InitializerOp);
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LdNamespace1Begin
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Descending callback used during the parse tree walk. If this
- * is a named AML opcode, enter into the namespace
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-LdNamespace1Begin (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- ACPI_WALK_STATE *WalkState = (ACPI_WALK_STATE *) Context;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
- ACPI_OBJECT_TYPE ObjectType;
- ACPI_OBJECT_TYPE ActualObjectType = ACPI_TYPE_ANY;
- char *Path;
- UINT32 Flags = ACPI_NS_NO_UPSEARCH;
- ACPI_PARSE_OBJECT *Arg;
- UINT32 i;
- BOOLEAN ForceNewScope = FALSE;
-
-
- ACPI_FUNCTION_NAME (LdNamespace1Begin);
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Op %p [%s]\n",
- Op, Op->Asl.ParseOpName));
-
-
- /*
- * We are only interested in opcodes that have an associated name
- * (or multiple names)
- */
- switch (Op->Asl.AmlOpcode)
- {
- case AML_BANK_FIELD_OP:
- case AML_INDEX_FIELD_OP:
- case AML_FIELD_OP:
-
- Status = LdLoadFieldElements (Op, WalkState);
- return (Status);
-
- default:
-
- /* All other opcodes go below */
- break;
- }
-
- /* Check if this object has already been installed in the namespace */
-
- if (Op->Asl.Node)
- {
- return (AE_OK);
- }
-
- Path = Op->Asl.Namepath;
- if (!Path)
- {
- return (AE_OK);
- }
-
- /* Map the raw opcode into an internal object type */
-
- switch (Op->Asl.ParseOpcode)
- {
- case PARSEOP_NAME:
-
- Arg = Op->Asl.Child; /* Get the NameSeg/NameString node */
- Arg = Arg->Asl.Next; /* First peer is the object to be associated with the name */
-
- /*
- * If this name refers to a ResourceTemplate, we will need to open
- * a new scope so that the resource subfield names can be entered into
- * the namespace underneath this name
- */
- if (Op->Asl.CompileFlags & NODE_IS_RESOURCE_DESC)
- {
- ForceNewScope = TRUE;
- }
-
- /* Get the data type associated with the named object, not the name itself */
-
- /* Log2 loop to convert from Btype (binary) to Etype (encoded) */
-
- ObjectType = 1;
- for (i = 1; i < Arg->Asl.AcpiBtype; i *= 2)
- {
- ObjectType++;
- }
- break;
-
-
- case PARSEOP_EXTERNAL:
-
- /*
- * "External" simply enters a name and type into the namespace.
- * We must be careful to not open a new scope, however, no matter
- * what type the external name refers to (e.g., a method)
- *
- * first child is name, next child is ObjectType
- */
- ActualObjectType = (UINT8) Op->Asl.Child->Asl.Next->Asl.Value.Integer;
- ObjectType = ACPI_TYPE_ANY;
-
- /*
- * We will mark every new node along the path as "External". This
- * allows some or all of the nodes to be created later in the ASL
- * code. Handles cases like this:
- *
- * External (\_SB_.PCI0.ABCD, IntObj)
- * Scope (_SB_)
- * {
- * Device (PCI0)
- * {
- * }
- * }
- * Method (X)
- * {
- * Store (\_SB_.PCI0.ABCD, Local0)
- * }
- */
- Flags |= ACPI_NS_EXTERNAL;
- break;
-
- case PARSEOP_DEFAULT_ARG:
-
- if (Op->Asl.CompileFlags == NODE_IS_RESOURCE_DESC)
- {
- Status = LdLoadResourceElements (Op, WalkState);
- goto Exit;
- }
-
- ObjectType = AslMapNamedOpcodeToDataType (Op->Asl.AmlOpcode);
- break;
-
-
- case PARSEOP_SCOPE:
-
- /*
- * The name referenced by Scope(Name) must already exist at this point.
- * In other words, forward references for Scope() are not supported.
- * The only real reason for this is that the MS interpreter cannot
- * handle this case. Perhaps someday this case can go away.
- */
- Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ACPI_TYPE_ANY,
- ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT,
- WalkState, &(Node));
- if (ACPI_FAILURE (Status))
- {
- if (Status == AE_NOT_FOUND)
- {
- /* The name was not found, go ahead and create it */
-
- Status = AcpiNsLookup (WalkState->ScopeInfo, Path,
- ACPI_TYPE_LOCAL_SCOPE,
- ACPI_IMODE_LOAD_PASS1, Flags,
- WalkState, &(Node));
-
- /*
- * However, this is an error -- primarily because the MS
- * interpreter can't handle a forward reference from the
- * Scope() operator.
- */
- AslError (ASL_ERROR, ASL_MSG_NOT_FOUND, Op,
- Op->Asl.ExternalName);
- AslError (ASL_ERROR, ASL_MSG_SCOPE_FWD_REF, Op,
- Op->Asl.ExternalName);
- goto FinishNode;
- }
-
- AslCoreSubsystemError (Op, Status, "Failure from lookup\n", FALSE);
- goto Exit;
- }
-
- /* We found a node with this name, now check the type */
-
- switch (Node->Type)
- {
- case ACPI_TYPE_LOCAL_SCOPE:
- case ACPI_TYPE_DEVICE:
- case ACPI_TYPE_POWER:
- case ACPI_TYPE_PROCESSOR:
- case ACPI_TYPE_THERMAL:
-
- /* These are acceptable types - they all open a new scope */
- break;
-
- case ACPI_TYPE_INTEGER:
- case ACPI_TYPE_STRING:
- case ACPI_TYPE_BUFFER:
-
- /*
- * These types we will allow, but we will change the type.
- * This enables some existing code of the form:
- *
- * Name (DEB, 0)
- * Scope (DEB) { ... }
- *
- * Which is used to workaround the fact that the MS interpreter
- * does not allow Scope() forward references.
- */
- sprintf (MsgBuffer, "%s [%s], changing type to [Scope]",
- Op->Asl.ExternalName, AcpiUtGetTypeName (Node->Type));
- AslError (ASL_REMARK, ASL_MSG_SCOPE_TYPE, Op, MsgBuffer);
-
- /* Switch the type to scope, open the new scope */
-
- Node->Type = ACPI_TYPE_LOCAL_SCOPE;
- Status = AcpiDsScopeStackPush (Node, ACPI_TYPE_LOCAL_SCOPE,
- WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- break;
-
- default:
-
- /* All other types are an error */
-
- sprintf (MsgBuffer, "%s [%s]", Op->Asl.ExternalName,
- AcpiUtGetTypeName (Node->Type));
- AslError (ASL_ERROR, ASL_MSG_SCOPE_TYPE, Op, MsgBuffer);
-
- /*
- * However, switch the type to be an actual scope so
- * that compilation can continue without generating a whole
- * cascade of additional errors. Open the new scope.
- */
- Node->Type = ACPI_TYPE_LOCAL_SCOPE;
- Status = AcpiDsScopeStackPush (Node, ACPI_TYPE_LOCAL_SCOPE,
- WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- break;
- }
-
- Status = AE_OK;
- goto FinishNode;
-
-
- default:
-
- ObjectType = AslMapNamedOpcodeToDataType (Op->Asl.AmlOpcode);
- break;
- }
-
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Loading name: %s, (%s)\n",
- Op->Asl.ExternalName, AcpiUtGetTypeName (ObjectType)));
-
- /* The name must not already exist */
-
- Flags |= ACPI_NS_ERROR_IF_FOUND;
-
- /*
- * Enter the named type into the internal namespace. We enter the name
- * as we go downward in the parse tree. Any necessary subobjects that
- * involve arguments to the opcode must be created as we go back up the
- * parse tree later.
- */
- Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType,
- ACPI_IMODE_LOAD_PASS1, Flags, WalkState, &Node);
- if (ACPI_FAILURE (Status))
- {
- if (Status == AE_ALREADY_EXISTS)
- {
- /* The name already exists in this scope */
-
- if (Node->Type == ACPI_TYPE_LOCAL_SCOPE)
- {
- /* Allow multiple references to the same scope */
-
- Node->Type = (UINT8) ObjectType;
- Status = AE_OK;
- }
- else if (Node->Flags & ANOBJ_IS_EXTERNAL)
- {
- /*
- * Allow one create on an object or segment that was
- * previously declared External
- */
- Node->Flags &= ~ANOBJ_IS_EXTERNAL;
- Node->Type = (UINT8) ObjectType;
-
- /* Just retyped a node, probably will need to open a scope */
-
- if (AcpiNsOpensScope (ObjectType))
- {
- Status = AcpiDsScopeStackPush (Node, ObjectType, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
- Status = AE_OK;
- }
- else
- {
- /* Valid error, object already exists */
-
- AslError (ASL_ERROR, ASL_MSG_NAME_EXISTS, Op,
- Op->Asl.ExternalName);
- Status = AE_OK;
- goto Exit;
- }
- }
- else
- {
- AslCoreSubsystemError (Op, Status,
- "Failure from lookup %s\n", FALSE);
- goto Exit;
- }
- }
-
- if (ForceNewScope)
- {
- Status = AcpiDsScopeStackPush (Node, ObjectType, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
-FinishNode:
- /*
- * Point the parse node to the new namespace node, and point
- * the Node back to the original Parse node
- */
- Op->Asl.Node = Node;
- Node->Op = Op;
-
- /* Set the actual data type if appropriate (EXTERNAL term only) */
-
- if (ActualObjectType != ACPI_TYPE_ANY)
- {
- Node->Type = (UINT8) ActualObjectType;
- Node->Value = ASL_EXTERNAL_METHOD;
- }
-
- if (Op->Asl.ParseOpcode == PARSEOP_METHOD)
- {
- /*
- * Get the method argument count from "Extra" and save
- * it in the namespace node
- */
- Node->Value = (UINT32) Op->Asl.Extra;
- }
-
-Exit:
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LdNamespace1End
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Ascending callback used during the loading of the namespace,
- * We only need to worry about managing the scope stack here.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-LdNamespace1End (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- ACPI_WALK_STATE *WalkState = (ACPI_WALK_STATE *) Context;
- ACPI_OBJECT_TYPE ObjectType;
- BOOLEAN ForceNewScope = FALSE;
-
-
- ACPI_FUNCTION_NAME (LdNamespace1End);
-
-
- /* We are only interested in opcodes that have an associated name */
-
- if (!Op->Asl.Namepath)
- {
- return (AE_OK);
- }
-
- /* Get the type to determine if we should pop the scope */
-
- if ((Op->Asl.ParseOpcode == PARSEOP_DEFAULT_ARG) &&
- (Op->Asl.CompileFlags == NODE_IS_RESOURCE_DESC))
- {
- /* TBD: Merge into AcpiDsMapNamedOpcodeToDataType */
-
- ObjectType = ACPI_TYPE_LOCAL_RESOURCE;
- }
- else
- {
- ObjectType = AslMapNamedOpcodeToDataType (Op->Asl.AmlOpcode);
- }
-
- /* Pop scope that was pushed for Resource Templates */
-
- if (Op->Asl.ParseOpcode == PARSEOP_NAME)
- {
- if (Op->Asl.CompileFlags & NODE_IS_RESOURCE_DESC)
- {
- ForceNewScope = TRUE;
- }
- }
-
- /* Pop the scope stack */
-
- if (ForceNewScope || AcpiNsOpensScope (ObjectType))
- {
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "(%s): Popping scope for Op [%s] %p\n",
- AcpiUtGetTypeName (ObjectType), Op->Asl.ParseOpName, Op));
-
- (void) AcpiDsScopeStackPop (WalkState);
- }
-
- return (AE_OK);
-}
-
-
diff --git a/sys/contrib/dev/acpica/compiler/asllookup.c b/sys/contrib/dev/acpica/compiler/asllookup.c
deleted file mode 100644
index a970f12..0000000
--- a/sys/contrib/dev/acpica/compiler/asllookup.c
+++ /dev/null
@@ -1,1370 +0,0 @@
-/******************************************************************************
- *
- * Module Name: asllookup- Namespace lookup
- * $Revision: 1.103 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/compiler/aslcompiler.h>
-#include "aslcompiler.y.h"
-
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acdispat.h>
-
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("asllookup")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-LsCompareOneNamespaceObject (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *Context,
- void **ReturnValue);
-
-static ACPI_STATUS
-LsDoOneNamespaceObject (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *Context,
- void **ReturnValue);
-
-static BOOLEAN
-LkObjectExists (
- char *Name);
-
-static void
-LkCheckFieldRange (
- ACPI_PARSE_OBJECT *Op,
- UINT32 RegionBitLength,
- UINT32 FieldBitOffset,
- UINT32 FieldBitLength,
- UINT32 AccessBitWidth);
-
-static ACPI_STATUS
-LkNamespaceLocateBegin (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-static ACPI_STATUS
-LkNamespaceLocateEnd (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-static ACPI_STATUS
-LkIsObjectUsed (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *Context,
- void **ReturnValue);
-
-
-/*******************************************************************************
- *
- * FUNCTION: LsDoOneNamespaceObject
- *
- * PARAMETERS: ACPI_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Dump a namespace object to the namespace output file.
- * Called during the walk of the namespace to dump all objects.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-LsDoOneNamespaceObject (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *Context,
- void **ReturnValue)
-{
- ACPI_NAMESPACE_NODE *Node = (ACPI_NAMESPACE_NODE *) ObjHandle;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_PARSE_OBJECT *Op;
-
-
- Gbl_NumNamespaceObjects++;
-
- FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, "%5d [%d] %*s %4.4s - %s",
- Gbl_NumNamespaceObjects, Level, (Level * 3), " ",
- &Node->Name,
- AcpiUtGetTypeName (Node->Type));
-
- Op = Node->Op;
- ObjDesc = ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, Node->Object);
-
- if (!Op)
- {
- FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, "\n");
- return (AE_OK);
- }
-
-
- if ((ObjDesc) &&
- (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) == ACPI_DESC_TYPE_OPERAND))
- {
- switch (Node->Type)
- {
- case ACPI_TYPE_INTEGER:
-
- FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT,
- " [Initial Value 0x%8.8X%8.8X]",
- ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
- break;
-
-
- case ACPI_TYPE_STRING:
-
- FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT,
- " [Initial Value \"%s\"]",
- ObjDesc->String.Pointer);
- break;
-
- default:
- /* Nothing to do for other types */
- break;
- }
-
- }
- else
- {
- switch (Node->Type)
- {
- case ACPI_TYPE_INTEGER:
-
- if (Op->Asl.ParseOpcode == PARSEOP_NAME)
- {
- Op = Op->Asl.Child;
- }
- if ((Op->Asl.ParseOpcode == PARSEOP_NAMESEG) ||
- (Op->Asl.ParseOpcode == PARSEOP_NAMESTRING))
- {
- Op = Op->Asl.Next;
- }
- FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT,
- " [Initial Value 0x%8.8X%8.8X]",
- ACPI_FORMAT_UINT64 (Op->Asl.Value.Integer));
- break;
-
-
- case ACPI_TYPE_STRING:
-
- if (Op->Asl.ParseOpcode == PARSEOP_NAME)
- {
- Op = Op->Asl.Child;
- }
- if ((Op->Asl.ParseOpcode == PARSEOP_NAMESEG) ||
- (Op->Asl.ParseOpcode == PARSEOP_NAMESTRING))
- {
- Op = Op->Asl.Next;
- }
- FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT,
- " [Initial Value \"%s\"]",
- Op->Asl.Value.String);
- break;
-
-
- case ACPI_TYPE_LOCAL_REGION_FIELD:
-
- if ((Op->Asl.ParseOpcode == PARSEOP_NAMESEG) ||
- (Op->Asl.ParseOpcode == PARSEOP_NAMESTRING))
- {
- Op = Op->Asl.Child;
- }
- FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT,
- " [Offset 0x%04X Length 0x%04X bits]",
- Op->Asl.Parent->Asl.ExtraValue, (UINT32) Op->Asl.Value.Integer);
- break;
-
-
- case ACPI_TYPE_BUFFER_FIELD:
-
- switch (Op->Asl.ParseOpcode)
- {
- case PARSEOP_CREATEBYTEFIELD:
- FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, " [BYTE ( 8 bit)]");
- break;
-
- case PARSEOP_CREATEDWORDFIELD:
- FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, " [DWORD (32 bit)]");
- break;
-
- case PARSEOP_CREATEQWORDFIELD:
- FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, " [QWORD (64 bit)]");
- break;
-
- case PARSEOP_CREATEWORDFIELD:
- FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, " [WORD (16 bit)]");
- break;
-
- case PARSEOP_CREATEBITFIELD:
- FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, " [BIT ( 1 bit)]");
- break;
-
- case PARSEOP_CREATEFIELD:
- FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, " [Arbitrary Bit Field]");
- break;
-
- default:
- break;
-
- }
- break;
-
-
- case ACPI_TYPE_PACKAGE:
-
- if (Op->Asl.ParseOpcode == PARSEOP_NAME)
- {
- Op = Op->Asl.Child;
- }
- if ((Op->Asl.ParseOpcode == PARSEOP_NAMESEG) ||
- (Op->Asl.ParseOpcode == PARSEOP_NAMESTRING))
- {
- Op = Op->Asl.Next;
- }
- Op = Op->Asl.Child;
-
- if ((Op->Asl.ParseOpcode == PARSEOP_BYTECONST) ||
- (Op->Asl.ParseOpcode == PARSEOP_RAW_DATA))
- {
- FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT,
- " [Initial Length 0x%.2X elements]",
- Op->Asl.Value.Integer);
- }
- break;
-
-
- case ACPI_TYPE_BUFFER:
-
- if (Op->Asl.ParseOpcode == PARSEOP_NAME)
- {
- Op = Op->Asl.Child;
- }
- if ((Op->Asl.ParseOpcode == PARSEOP_NAMESEG) ||
- (Op->Asl.ParseOpcode == PARSEOP_NAMESTRING))
- {
- Op = Op->Asl.Next;
- }
- Op = Op->Asl.Child;
-
- if (Op && (Op->Asl.ParseOpcode == PARSEOP_INTEGER))
- {
- FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT,
- " [Initial Length 0x%.2X bytes]",
- Op->Asl.Value.Integer);
- }
- break;
-
-
- case ACPI_TYPE_METHOD:
-
- FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT,
- " [Code Length 0x%.4X bytes]",
- Op->Asl.AmlSubtreeLength);
- break;
-
-
- case ACPI_TYPE_LOCAL_RESOURCE:
-
- FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT,
- " [Desc Offset 0x%.4X Bytes]", Node->Value);
- break;
-
-
- case ACPI_TYPE_LOCAL_RESOURCE_FIELD:
-
- if (Node->Flags & 0x80)
- {
- FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT,
- " [Field Offset 0x%.4X Bits 0x%.4X Bytes]",
- Node->Value, Node->Value / 8);
- }
- else
- {
- FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT,
- " [Field Offset 0x%.4X Bytes]", Node->Value);
- }
- break;
-
-
- default:
- /* Nothing to do for other types */
- break;
- }
- }
-
- FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, "\n");
- return (AE_OK);
-}
-
-
-void
-LsSetupNsList (void * Handle)
-{
-
- Gbl_NsOutputFlag = TRUE;
- Gbl_Files[ASL_FILE_NAMESPACE_OUTPUT].Handle = Handle;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LsDisplayNamespace
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Walk the namespace an display information about each node
- * in the tree. Information is written to the optional
- * namespace output file.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-LsDisplayNamespace (
- void)
-{
- ACPI_STATUS Status;
-
-
- if (!Gbl_NsOutputFlag)
- {
- return (AE_OK);
- }
-
- Gbl_NumNamespaceObjects = 0;
-
- /* File header */
-
- FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, "Contents of ACPI Namespace\n\n");
- FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, "Count Depth Name - Type\n\n");
-
- /* Walk entire namespace from the root */
-
- Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT,
- ACPI_UINT32_MAX, FALSE, LsDoOneNamespaceObject,
- NULL, NULL);
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LsCompareOneNamespaceObject
- *
- * PARAMETERS: ACPI_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Compare name of one object.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-LsCompareOneNamespaceObject (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *Context,
- void **ReturnValue)
-{
- ACPI_NAMESPACE_NODE *Node = (ACPI_NAMESPACE_NODE *) ObjHandle;
-
-
- /* Simply check the name */
-
- if (*((UINT32 *) (Context)) == Node->Name.Integer)
- {
- /* Abort walk if we found one instance */
-
- return (AE_CTRL_TRUE);
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LkObjectExists
- *
- * PARAMETERS: Name - 4 char ACPI name
- *
- * RETURN: TRUE if name exists in namespace
- *
- * DESCRIPTION: Walk the namespace to find an object
- *
- ******************************************************************************/
-
-static BOOLEAN
-LkObjectExists (
- char *Name)
-{
- ACPI_STATUS Status;
-
-
- /* Walk entire namespace from the supplied root */
-
- Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT,
- ACPI_UINT32_MAX, FALSE, LsCompareOneNamespaceObject,
- Name, NULL);
- if (Status == AE_CTRL_TRUE)
- {
- /* At least one instance of the name was found */
-
- return (TRUE);
- }
-
- return (FALSE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LkGetNameOp
- *
- * PARAMETERS: Op - Current Op
- *
- * RETURN: NameOp associated with the input op
- *
- * DESCRIPTION: Find the name declaration op associated with the operator
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT *
-LkGetNameOp (
- ACPI_PARSE_OBJECT *Op)
-{
- const ACPI_OPCODE_INFO *OpInfo;
- ACPI_PARSE_OBJECT *NameOp = Op;
-
-
- OpInfo = AcpiPsGetOpcodeInfo (Op->Asl.AmlOpcode);
-
-
- /* Get the NamePath from the appropriate place */
-
- if (OpInfo->Flags & AML_NAMED)
- {
- /* For nearly all NAMED operators, the name reference is the first child */
-
- NameOp = Op->Asl.Child;
- if (Op->Asl.AmlOpcode == AML_ALIAS_OP)
- {
- /*
- * ALIAS is the only oddball opcode, the name declaration
- * (alias name) is the second operand
- */
- NameOp = Op->Asl.Child->Asl.Next;
- }
- }
- else if (OpInfo->Flags & AML_CREATE)
- {
- /* Name must appear as the last parameter */
-
- NameOp = Op->Asl.Child;
- while (!(NameOp->Asl.CompileFlags & NODE_IS_NAME_DECLARATION))
- {
- NameOp = NameOp->Asl.Next;
- }
- }
-
- return (NameOp);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LkIsObjectUsed
- *
- * PARAMETERS: ACPI_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Check for an unreferenced namespace object and emit a warning.
- * We have to be careful, because some types and names are
- * typically or always unreferenced, we don't want to issue
- * excessive warnings.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-LkIsObjectUsed (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *Context,
- void **ReturnValue)
-{
- ACPI_NAMESPACE_NODE *Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, ObjHandle);
-
-
- /* Referenced flag is set during the namespace xref */
-
- if (Node->Flags & ANOBJ_IS_REFERENCED)
- {
- return (AE_OK);
- }
-
- /*
- * Ignore names that start with an underscore,
- * these are the reserved ACPI names and are typically not referenced,
- * they are called by the host OS.
- */
- if (Node->Name.Ascii[0] == '_')
- {
- return (AE_OK);
- }
-
- /* There are some types that are typically not referenced, ignore them */
-
- switch (Node->Type)
- {
- case ACPI_TYPE_DEVICE:
- case ACPI_TYPE_PROCESSOR:
- case ACPI_TYPE_POWER:
- case ACPI_TYPE_LOCAL_RESOURCE:
- return (AE_OK);
-
- default:
- break;
- }
-
- /* All others are valid unreferenced namespace objects */
-
- if (Node->Op)
- {
- AslError (ASL_WARNING2, ASL_MSG_NOT_REFERENCED, LkGetNameOp (Node->Op), NULL);
- }
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LkFindUnreferencedObjects
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Namespace walk to find objects that are not referenced in any
- * way. Must be called after the namespace has been cross
- * referenced.
- *
- ******************************************************************************/
-
-void
-LkFindUnreferencedObjects (
- void)
-{
-
- /* Walk entire namespace from the supplied root */
-
- (void) AcpiNsWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT,
- ACPI_UINT32_MAX, FALSE, LkIsObjectUsed,
- NULL, NULL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LkCrossReferenceNamespace
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Perform a cross reference check of the parse tree against the
- * namespace. Every named referenced within the parse tree
- * should be get resolved with a namespace lookup. If not, the
- * original reference in the ASL code is invalid -- i.e., refers
- * to a non-existent object.
- *
- * NOTE: The ASL "External" operator causes the name to be inserted into the
- * namespace so that references to the external name will be resolved
- * correctly here.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-LkCrossReferenceNamespace (
- void)
-{
- ACPI_WALK_STATE *WalkState;
-
-
- DbgPrint (ASL_DEBUG_OUTPUT, "\nCross referencing namespace\n\n");
-
- /*
- * Create a new walk state for use when looking up names
- * within the namespace (Passed as context to the callbacks)
- */
- WalkState = AcpiDsCreateWalkState (0, NULL, NULL, NULL);
- if (!WalkState)
- {
- return AE_NO_MEMORY;
- }
-
- /* Walk the entire parse tree */
-
- TrWalkParseTree (RootNode, ASL_WALK_VISIT_TWICE, LkNamespaceLocateBegin,
- LkNamespaceLocateEnd, WalkState);
- return AE_OK;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LkCheckFieldRange
- *
- * PARAMETERS: RegionBitLength - Length of entire parent region
- * FieldBitOffset - Start of the field unit (within region)
- * FieldBitLength - Entire length of field unit
- * AccessBitWidth - Access width of the field unit
- *
- * RETURN: None
- *
- * DESCRIPTION: Check one field unit to make sure it fits in the parent
- * op region.
- *
- * Note: AccessBitWidth must be either 8,16,32, or 64
- *
- ******************************************************************************/
-
-static void
-LkCheckFieldRange (
- ACPI_PARSE_OBJECT *Op,
- UINT32 RegionBitLength,
- UINT32 FieldBitOffset,
- UINT32 FieldBitLength,
- UINT32 AccessBitWidth)
-{
- UINT32 FieldEndBitOffset;
-
-
- /*
- * Check each field unit against the region size. The entire
- * field unit (start offset plus length) must fit within the
- * region.
- */
- FieldEndBitOffset = FieldBitOffset + FieldBitLength;
-
- if (FieldEndBitOffset > RegionBitLength)
- {
- /* Field definition itself is beyond the end-of-region */
-
- AslError (ASL_ERROR, ASL_MSG_FIELD_UNIT_OFFSET, Op, NULL);
- return;
- }
-
- /*
- * Now check that the field plus AccessWidth doesn't go beyond
- * the end-of-region. Assumes AccessBitWidth is a power of 2
- */
- FieldEndBitOffset = ACPI_ROUND_UP (FieldEndBitOffset, AccessBitWidth);
-
- if (FieldEndBitOffset > RegionBitLength)
- {
- /* Field definition combined with the access is beyond EOR */
-
- AslError (ASL_ERROR, ASL_MSG_FIELD_UNIT_ACCESS_WIDTH, Op, NULL);
- }
-}
-
-/*******************************************************************************
- *
- * FUNCTION: LkNamespaceLocateBegin
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Descending callback used during cross-reference. For named
- * object references, attempt to locate the name in the
- * namespace.
- *
- * NOTE: ASL references to named fields within resource descriptors are
- * resolved to integer values here. Therefore, this step is an
- * important part of the code generation. We don't know that the
- * name refers to a resource descriptor until now.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-LkNamespaceLocateBegin (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- ACPI_WALK_STATE *WalkState = (ACPI_WALK_STATE *) Context;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
- ACPI_OBJECT_TYPE ObjectType;
- char *Path;
- UINT8 PassedArgs;
- ACPI_PARSE_OBJECT *NextOp;
- ACPI_PARSE_OBJECT *OwningOp;
- ACPI_PARSE_OBJECT *SpaceIdOp;
- UINT32 MinimumLength;
- UINT32 Temp;
- const ACPI_OPCODE_INFO *OpInfo;
- UINT32 Flags;
-
-
- ACPI_FUNCTION_TRACE_PTR (LkNamespaceLocateBegin, Op);
-
- /*
- * If this node is the actual declaration of a name
- * [such as the XXXX name in "Method (XXXX)"],
- * we are not interested in it here. We only care about names that are
- * references to other objects within the namespace and the parent objects
- * of name declarations
- */
- if (Op->Asl.CompileFlags & NODE_IS_NAME_DECLARATION)
- {
- return (AE_OK);
- }
-
- /* We are only interested in opcodes that have an associated name */
-
- OpInfo = AcpiPsGetOpcodeInfo (Op->Asl.AmlOpcode);
-
- if ((!(OpInfo->Flags & AML_NAMED)) &&
- (!(OpInfo->Flags & AML_CREATE)) &&
- (Op->Asl.ParseOpcode != PARSEOP_NAMESTRING) &&
- (Op->Asl.ParseOpcode != PARSEOP_NAMESEG) &&
- (Op->Asl.ParseOpcode != PARSEOP_METHODCALL))
- {
- return (AE_OK);
- }
-
- /*
- * We must enable the "search-to-root" for single NameSegs, but
- * we have to be very careful about opening up scopes
- */
- Flags = ACPI_NS_SEARCH_PARENT;
- if ((Op->Asl.ParseOpcode == PARSEOP_NAMESTRING) ||
- (Op->Asl.ParseOpcode == PARSEOP_NAMESEG) ||
- (Op->Asl.ParseOpcode == PARSEOP_METHODCALL))
- {
- /*
- * These are name references, do not push the scope stack
- * for them.
- */
- Flags |= ACPI_NS_DONT_OPEN_SCOPE;
- }
-
- /* Get the NamePath from the appropriate place */
-
- if (OpInfo->Flags & AML_NAMED)
- {
- /* For nearly all NAMED operators, the name reference is the first child */
-
- Path = Op->Asl.Child->Asl.Value.String;
- if (Op->Asl.AmlOpcode == AML_ALIAS_OP)
- {
- /*
- * ALIAS is the only oddball opcode, the name declaration
- * (alias name) is the second operand
- */
- Path = Op->Asl.Child->Asl.Next->Asl.Value.String;
- }
- }
- else if (OpInfo->Flags & AML_CREATE)
- {
- /* Name must appear as the last parameter */
-
- NextOp = Op->Asl.Child;
- while (!(NextOp->Asl.CompileFlags & NODE_IS_NAME_DECLARATION))
- {
- NextOp = NextOp->Asl.Next;
- }
- Path = NextOp->Asl.Value.String;
- }
- else
- {
- Path = Op->Asl.Value.String;
- }
-
- ObjectType = AslMapNamedOpcodeToDataType (Op->Asl.AmlOpcode);
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "Type=%s\n", AcpiUtGetTypeName (ObjectType)));
-
- /*
- * Lookup the name in the namespace. Name must exist at this point, or it
- * is an invalid reference.
- *
- * The namespace is also used as a lookup table for references to resource
- * descriptors and the fields within them.
- */
- Gbl_NsLookupCount++;
-
- Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType,
- ACPI_IMODE_EXECUTE, Flags, WalkState, &(Node));
- if (ACPI_FAILURE (Status))
- {
- if (Status == AE_NOT_FOUND)
- {
- /*
- * We didn't find the name reference by path -- we can qualify this
- * a little better before we print an error message
- */
- if (strlen (Path) == ACPI_NAME_SIZE)
- {
- /* A simple, one-segment ACPI name */
-
- if (LkObjectExists (Path))
- {
- /*
- * There exists such a name, but we couldn't get to it
- * from this scope
- */
- AslError (ASL_ERROR, ASL_MSG_NOT_REACHABLE, Op,
- Op->Asl.ExternalName);
- }
- else
- {
- /* The name doesn't exist, period */
-
- if ((Op->Asl.Parent) &&
- (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_CONDREFOF))
- {
- /* Ignore not found if parent is CondRefOf */
-
- return (AE_OK);
- }
-
- AslError (ASL_ERROR, ASL_MSG_NOT_EXIST,
- Op, Op->Asl.ExternalName);
- }
- }
- else
- {
- /* Check for a fully qualified path */
-
- if (Path[0] == AML_ROOT_PREFIX)
- {
- /* Gave full path, the object does not exist */
-
- if ((Op->Asl.Parent) &&
- (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_CONDREFOF))
- {
- /* Ignore not found if parent is CondRefOf */
-
- return (AE_OK);
- }
-
- AslError (ASL_ERROR, ASL_MSG_NOT_EXIST, Op,
- Op->Asl.ExternalName);
- }
- else
- {
- /*
- * We can't tell whether it doesn't exist or just
- * can't be reached.
- */
- AslError (ASL_ERROR, ASL_MSG_NOT_FOUND, Op,
- Op->Asl.ExternalName);
- }
- }
-
- Status = AE_OK;
- }
- return (Status);
- }
-
- /* Check for a reference vs. name declaration */
-
- if (!(OpInfo->Flags & AML_NAMED) &&
- !(OpInfo->Flags & AML_CREATE))
- {
- /* This node has been referenced, mark it for reference check */
-
- Node->Flags |= ANOBJ_IS_REFERENCED;
- }
-
- /* Attempt to optimize the NamePath */
-
- OptOptimizeNamePath (Op, OpInfo->Flags, WalkState, Path, Node);
-
- /*
- * 1) Dereference an alias (A name reference that is an alias)
- * Aliases are not nested, the alias always points to the final object
- */
- if ((Op->Asl.ParseOpcode != PARSEOP_ALIAS) &&
- (Node->Type == ACPI_TYPE_LOCAL_ALIAS))
- {
- /* This node points back to the original PARSEOP_ALIAS */
-
- NextOp = Node->Op;
-
- /* The first child is the alias target op */
-
- NextOp = NextOp->Asl.Child;
-
- /* That in turn points back to original target alias node */
-
- if (NextOp->Asl.Node)
- {
- Node = NextOp->Asl.Node;
- }
-
- /* Else - forward reference to alias, will be resolved later */
- }
-
- /* 2) Check for a reference to a resource descriptor */
-
- if ((Node->Type == ACPI_TYPE_LOCAL_RESOURCE_FIELD) ||
- (Node->Type == ACPI_TYPE_LOCAL_RESOURCE))
- {
- /*
- * This was a reference to a field within a resource descriptor. Extract
- * the associated field offset (either a bit or byte offset depending on
- * the field type) and change the named reference into an integer for
- * AML code generation
- */
- Temp = Node->Value;
- if (Node->Flags & ANOBJ_IS_BIT_OFFSET)
- {
- Op->Asl.CompileFlags |= NODE_IS_BIT_OFFSET;
- }
-
- /* Perform BitOffset <--> ByteOffset conversion if necessary */
-
- switch (Op->Asl.Parent->Asl.AmlOpcode)
- {
- case AML_CREATE_FIELD_OP:
-
- /* We allow a Byte offset to Bit Offset conversion for this op */
-
- if (!(Op->Asl.CompileFlags & NODE_IS_BIT_OFFSET))
- {
- /* Simply multiply byte offset times 8 to get bit offset */
-
- Temp = ACPI_MUL_8 (Temp);
- }
- break;
-
-
- case AML_CREATE_BIT_FIELD_OP:
-
- /* This op requires a Bit Offset */
-
- if (!(Op->Asl.CompileFlags & NODE_IS_BIT_OFFSET))
- {
- AslError (ASL_ERROR, ASL_MSG_BYTES_TO_BITS, Op, NULL);
- }
- break;
-
-
- case AML_CREATE_BYTE_FIELD_OP:
- case AML_CREATE_WORD_FIELD_OP:
- case AML_CREATE_DWORD_FIELD_OP:
- case AML_CREATE_QWORD_FIELD_OP:
- case AML_INDEX_OP:
-
- /* These Ops require Byte offsets */
-
- if (Op->Asl.CompileFlags & NODE_IS_BIT_OFFSET)
- {
- AslError (ASL_ERROR, ASL_MSG_BITS_TO_BYTES, Op, NULL);
- }
- break;
-
-
- default:
- /* Nothing to do for other opcodes */
- break;
- }
-
- /* Now convert this node to an integer whose value is the field offset */
-
- Op->Asl.AmlLength = 0;
- Op->Asl.ParseOpcode = PARSEOP_INTEGER;
- Op->Asl.Value.Integer = (UINT64) Temp;
- Op->Asl.CompileFlags |= NODE_IS_RESOURCE_FIELD;
-
- OpcGenerateAmlOpcode (Op);
- }
-
- /* 3) Check for a method invocation */
-
- else if ((((Op->Asl.ParseOpcode == PARSEOP_NAMESTRING) || (Op->Asl.ParseOpcode == PARSEOP_NAMESEG)) &&
- (Node->Type == ACPI_TYPE_METHOD) &&
- (Op->Asl.Parent) &&
- (Op->Asl.Parent->Asl.ParseOpcode != PARSEOP_METHOD)) ||
-
- (Op->Asl.ParseOpcode == PARSEOP_METHODCALL))
- {
-
- /*
- * A reference to a method within one of these opcodes is not an
- * invocation of the method, it is simply a reference to the method.
- */
- if ((Op->Asl.Parent) &&
- ((Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_REFOF) ||
- (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_DEREFOF) ||
- (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_OBJECTTYPE)))
- {
- return (AE_OK);
- }
- /*
- * There are two types of method invocation:
- * 1) Invocation with arguments -- the parser recognizes this
- * as a METHODCALL.
- * 2) Invocation with no arguments --the parser cannot determine that
- * this is a method invocation, therefore we have to figure it out
- * here.
- */
- if (Node->Type != ACPI_TYPE_METHOD)
- {
- sprintf (MsgBuffer, "%s is a %s",
- Op->Asl.ExternalName, AcpiUtGetTypeName (Node->Type));
-
- AslError (ASL_ERROR, ASL_MSG_NOT_METHOD, Op, MsgBuffer);
- return (AE_OK);
- }
-
- /* Save the method node in the caller's op */
-
- Op->Asl.Node = Node;
- if (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_CONDREFOF)
- {
- return (AE_OK);
- }
-
- /*
- * This is a method invocation, with or without arguments.
- * Count the number of arguments, each appears as a child
- * under the parent node
- */
- Op->Asl.ParseOpcode = PARSEOP_METHODCALL;
- UtSetParseOpName (Op);
-
- PassedArgs = 0;
- NextOp = Op->Asl.Child;
-
- while (NextOp)
- {
- PassedArgs++;
- NextOp = NextOp->Asl.Next;
- }
-
- if (Node->Value != ASL_EXTERNAL_METHOD)
- {
- /*
- * Check the parsed arguments with the number expected by the
- * method declaration itself
- */
- if (PassedArgs != Node->Value)
- {
- sprintf (MsgBuffer, "%s requires %d", Op->Asl.ExternalName,
- Node->Value);
-
- if (PassedArgs < Node->Value)
- {
- AslError (ASL_ERROR, ASL_MSG_ARG_COUNT_LO, Op, MsgBuffer);
- }
- else
- {
- AslError (ASL_ERROR, ASL_MSG_ARG_COUNT_HI, Op, MsgBuffer);
- }
- }
- }
- }
-
- /* 4) Check for an ASL Field definition */
-
- else if ((Op->Asl.Parent) &&
- ((Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_FIELD) ||
- (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_BANKFIELD)))
- {
- /*
- * Offset checking for fields. If the parent operation region has a
- * constant length (known at compile time), we can check fields
- * defined in that region against the region length. This will catch
- * fields and field units that cannot possibly fit within the region.
- *
- * Note: Index fields do not directly reference an operation region,
- * thus they are not included in this check.
- */
- if (Op == Op->Asl.Parent->Asl.Child)
- {
- /*
- * This is the first child of the field node, which is
- * the name of the region. Get the parse node for the
- * region -- which contains the length of the region.
- */
- OwningOp = Node->Op;
- Op->Asl.Parent->Asl.ExtraValue =
- ACPI_MUL_8 ((UINT32) OwningOp->Asl.Value.Integer);
-
- /* Examine the field access width */
-
- switch ((UINT8) Op->Asl.Parent->Asl.Value.Integer)
- {
- case AML_FIELD_ACCESS_ANY:
- case AML_FIELD_ACCESS_BYTE:
- case AML_FIELD_ACCESS_BUFFER:
- default:
- MinimumLength = 1;
- break;
-
- case AML_FIELD_ACCESS_WORD:
- MinimumLength = 2;
- break;
-
- case AML_FIELD_ACCESS_DWORD:
- MinimumLength = 4;
- break;
-
- case AML_FIELD_ACCESS_QWORD:
- MinimumLength = 8;
- break;
- }
-
- /*
- * Is the region at least as big as the access width?
- * Note: DataTableRegions have 0 length
- */
- if (((UINT32) OwningOp->Asl.Value.Integer) &&
- ((UINT32) OwningOp->Asl.Value.Integer < MinimumLength))
- {
- AslError (ASL_ERROR, ASL_MSG_FIELD_ACCESS_WIDTH, Op, NULL);
- }
-
- /*
- * Check EC/CMOS/SMBUS fields to make sure that the correct
- * access type is used (BYTE for EC/CMOS, BUFFER for SMBUS)
- */
- SpaceIdOp = OwningOp->Asl.Child->Asl.Next;
- switch ((UINT32) SpaceIdOp->Asl.Value.Integer)
- {
- case REGION_EC:
- case REGION_CMOS:
-
- if ((UINT8) Op->Asl.Parent->Asl.Value.Integer != AML_FIELD_ACCESS_BYTE)
- {
- AslError (ASL_ERROR, ASL_MSG_REGION_BYTE_ACCESS, Op, NULL);
- }
- break;
-
- case REGION_SMBUS:
-
- if ((UINT8) Op->Asl.Parent->Asl.Value.Integer != AML_FIELD_ACCESS_BUFFER)
- {
- AslError (ASL_ERROR, ASL_MSG_REGION_BUFFER_ACCESS, Op, NULL);
- }
- break;
-
- default:
-
- /* Nothing to do for other address spaces */
- break;
- }
- }
- else
- {
- /*
- * This is one element of the field list. Check to make sure
- * that it does not go beyond the end of the parent operation region.
- *
- * In the code below:
- * Op->Asl.Parent->Asl.ExtraValue - Region Length (bits)
- * Op->Asl.ExtraValue - Field start offset (bits)
- * Op->Asl.Child->Asl.Value.Integer32 - Field length (bits)
- * Op->Asl.Child->Asl.ExtraValue - Field access width (bits)
- */
- if (Op->Asl.Parent->Asl.ExtraValue && Op->Asl.Child)
- {
- LkCheckFieldRange (Op,
- Op->Asl.Parent->Asl.ExtraValue,
- Op->Asl.ExtraValue,
- (UINT32) Op->Asl.Child->Asl.Value.Integer,
- Op->Asl.Child->Asl.ExtraValue);
- }
- }
- }
-
- Op->Asl.Node = Node;
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: LkNamespaceLocateEnd
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Ascending callback used during cross reference. We only
- * need to worry about scope management here.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-LkNamespaceLocateEnd (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- ACPI_WALK_STATE *WalkState = (ACPI_WALK_STATE *) Context;
- const ACPI_OPCODE_INFO *OpInfo;
-
-
- ACPI_FUNCTION_TRACE (LkNamespaceLocateEnd);
-
-
- /* We are only interested in opcodes that have an associated name */
-
- OpInfo = AcpiPsGetOpcodeInfo (Op->Asl.AmlOpcode);
- if (!(OpInfo->Flags & AML_NAMED))
- {
- return (AE_OK);
- }
-
- /* Not interested in name references, we did not open a scope for them */
-
- if ((Op->Asl.ParseOpcode == PARSEOP_NAMESTRING) ||
- (Op->Asl.ParseOpcode == PARSEOP_NAMESEG) ||
- (Op->Asl.ParseOpcode == PARSEOP_METHODCALL))
- {
- return (AE_OK);
- }
-
- /* Pop the scope stack if necessary */
-
- if (AcpiNsOpensScope (AslMapNamedOpcodeToDataType (Op->Asl.AmlOpcode)))
- {
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "%s: Popping scope for Op %p\n",
- AcpiUtGetTypeName (OpInfo->ObjectType), Op));
-
- (void) AcpiDsScopeStackPop (WalkState);
- }
-
- return (AE_OK);
-}
-
-
diff --git a/sys/contrib/dev/acpica/compiler/aslmain.c b/sys/contrib/dev/acpica/compiler/aslmain.c
deleted file mode 100644
index 6fe94b4..0000000
--- a/sys/contrib/dev/acpica/compiler/aslmain.c
+++ /dev/null
@@ -1,868 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: aslmain - compiler main and utilities
- * $Revision: 1.96 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define _DECLARE_GLOBALS
-
-#include <contrib/dev/acpica/compiler/aslcompiler.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/actables.h>
-#include <contrib/dev/acpica/acapps.h>
-
-#ifdef _DEBUG
-#include <crtdbg.h>
-#endif
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("aslmain")
-
-BOOLEAN AslToFile = TRUE;
-BOOLEAN DoCompile = TRUE;
-BOOLEAN DoSignon = TRUE;
-
-char hex[] =
-{
- '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
-};
-
-/* Local prototypes */
-
-static void
-Options (
- void);
-
-static void
-HelpMessage (
- void);
-
-static void
-Usage (
- void);
-
-static void
-AslInitialize (
- void);
-
-static void
-AslCommandLine (
- int argc,
- char **argv);
-
-#ifdef _DEBUG
-#include <crtdbg.h>
-#endif
-
-/*******************************************************************************
- *
- * FUNCTION: Options
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Display option help message
- *
- ******************************************************************************/
-
-static void
-Options (
- void)
-{
-
- printf ("General Output:\n");
- printf (" -p <prefix> Specify filename prefix for all output files (including .aml)\n");
- printf (" -vi Less verbose errors and warnings for use with IDEs\n");
- printf (" -vo Enable optimization comments\n");
- printf (" -vr Disable remarks\n");
- printf (" -vs Disable signon\n");
- printf (" -w<1|2|3> Set warning reporting level\n");
-
- printf ("\nAML Output Files:\n");
- printf (" -s<a|c> Create AML in assembler or C source file (*.asm or *.c)\n");
- printf (" -i<a|c> Create assembler or C include file (*.inc or *.h)\n");
- printf (" -t<a|c> Create AML in assembler or C hex table (*.hex)\n");
-
- printf ("\nAML Code Generation:\n");
- printf (" -oa Disable all optimizations (compatibility mode)\n");
- printf (" -of Disable constant folding\n");
- printf (" -oi Disable integer optimization to Zero/One/Ones\n");
- printf (" -on Disable named reference string optimization\n");
- printf (" -r<Revision> Override table header Revision (1-255)\n");
-
- printf ("\nListings:\n");
- printf (" -l Create mixed listing file (ASL source and AML) (*.lst)\n");
- printf (" -ln Create namespace file (*.nsp)\n");
- printf (" -ls Create combined source file (expanded includes) (*.src)\n");
-
- printf ("\nAML Disassembler:\n");
- printf (" -d [file] Disassemble or decode binary ACPI table to file (*.dsl)\n");
- printf (" -dc [file] Disassemble AML and immediately compile it\n");
- printf (" (Obtain DSDT from current system if no input file)\n");
- printf (" -e [file] Include ACPI table for external symbol resolution\n");
- printf (" -2 Emit ACPI 2.0 compatible ASL code\n");
- printf (" -g Get ACPI tables and write to files (*.dat)\n");
-
- printf ("\nHelp:\n");
- printf (" -h Additional help and compiler debug options\n");
- printf (" -hc Display operators allowed in constant expressions\n");
- printf (" -hr Display ACPI reserved method names\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: HelpMessage
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Display help message
- *
- ******************************************************************************/
-
-static void
-HelpMessage (
- void)
-{
-
- printf ("AML output filename generation:\n");
- printf (" Output filenames are generated by appending an extension to a common\n");
- printf (" filename prefix. The filename prefix is obtained via one of the\n");
- printf (" following methods (in priority order):\n");
- printf (" 1) The -p option specifies the prefix\n");
- printf (" 2) The prefix of the AMLFileName in the ASL Definition Block\n");
- printf (" 3) The prefix of the input filename\n");
- printf ("\n");
-
- Options ();
-
- printf ("\nCompiler/Disassembler Debug Options:\n");
- printf (" -b<p|t|b> Create compiler debug/trace file (*.txt)\n");
- printf (" Types: Parse/Tree/Both\n");
- printf (" -f Ignore errors, force creation of AML output file(s)\n");
- printf (" -c Parse only, no output generation\n");
- printf (" -ot Display compile times\n");
- printf (" -x<level> Set debug level for trace output\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: Usage
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Display usage and option message
- *
- ******************************************************************************/
-
-static void
-Usage (
- void)
-{
-
- printf ("Usage: %s [Options] [InputFile]\n\n", CompilerName);
- Options ();
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AslInitialize
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Initialize compiler globals
- *
- ******************************************************************************/
-
-static void
-AslInitialize (
- void)
-{
- UINT32 i;
-
-
-#ifdef _DEBUG
- _CrtSetDbgFlag (_CRTDBG_CHECK_ALWAYS_DF | _CrtSetDbgFlag(0));
-#endif
-
- AcpiDbgLevel = 0;
-
- for (i = 0; i < ASL_NUM_FILES; i++)
- {
- Gbl_Files[i].Handle = NULL;
- Gbl_Files[i].Filename = NULL;
- }
-
- Gbl_Files[ASL_FILE_STDOUT].Handle = stdout;
- Gbl_Files[ASL_FILE_STDOUT].Filename = "STDOUT";
-
- Gbl_Files[ASL_FILE_STDERR].Handle = stderr;
- Gbl_Files[ASL_FILE_STDERR].Filename = "STDERR";
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AslCommandLine
- *
- * PARAMETERS: argc/argv
- *
- * RETURN: None
- *
- * DESCRIPTION: Command line processing
- *
- ******************************************************************************/
-
-static void
-AslCommandLine (
- int argc,
- char **argv)
-{
- BOOLEAN BadCommandLine = FALSE;
- ACPI_NATIVE_INT j;
-
-
- /* Minimum command line contains at least one option or an input file */
-
- if (argc < 2)
- {
- AslCompilerSignon (ASL_FILE_STDOUT);
- Usage ();
- exit (1);
- }
-
- /* Get the command line options */
-
- while ((j = AcpiGetopt (argc, argv, "2b:cd^e:fgh^i^l^o:p:r:s:t:v:w:x:")) != EOF) switch (j)
- {
- case '2':
- Gbl_Acpi2 = TRUE;
- break;
-
-
- case 'b':
-
- switch (AcpiGbl_Optarg[0])
- {
- case 'b':
- AslCompilerdebug = 1; /* same as yydebug */
- break;
-
- case 'p':
- AslCompilerdebug = 1; /* same as yydebug */
- break;
-
- case 't':
- break;
-
- default:
- printf ("Unknown option: -b%s\n", AcpiGbl_Optarg);
- BadCommandLine = TRUE;
- break;
- }
-
- /* Produce debug output file */
-
- Gbl_DebugFlag = TRUE;
- break;
-
-
- case 'c':
-
- /* Parse only */
-
- Gbl_ParseOnlyFlag = TRUE;
- break;
-
-
- case 'd':
- switch (AcpiGbl_Optarg[0])
- {
- case '^':
- DoCompile = FALSE;
- break;
-
- case 'c':
- break;
-
- default:
- printf ("Unknown option: -d%s\n", AcpiGbl_Optarg);
- BadCommandLine = TRUE;
- break;
- }
-
- Gbl_DisasmFlag = TRUE;
- break;
-
-
- case 'e':
- Gbl_ExternalFilename = AcpiGbl_Optarg;
- break;
-
-
- case 'f':
-
- /* Ignore errors and force creation of aml file */
-
- Gbl_IgnoreErrors = TRUE;
- break;
-
-
- case 'g':
-
- /* Get all ACPI tables */
-
- Gbl_GetAllTables = TRUE;
- DoCompile = FALSE;
- break;
-
-
- case 'h':
-
- switch (AcpiGbl_Optarg[0])
- {
- case '^':
- HelpMessage ();
- exit (0);
-
- case 'c':
- UtDisplayConstantOpcodes ();
- exit (0);
-
- case 'r':
- /* reserved names */
-
- MpDisplayReservedNames ();
- exit (0);
-
- default:
- printf ("Unknown option: -h%s\n", AcpiGbl_Optarg);
- BadCommandLine = TRUE;
- break;
- }
- break;
-
-
- case 'i':
-
- switch (AcpiGbl_Optarg[0])
- {
- case 'a':
-
- /* Produce assembly code include file */
-
- Gbl_AsmIncludeOutputFlag = TRUE;
- break;
-
- case 'c':
-
- /* Produce C include file */
-
- Gbl_C_IncludeOutputFlag = TRUE;
- break;
-
- default:
- printf ("Unknown option: -s%s\n", AcpiGbl_Optarg);
- BadCommandLine = TRUE;
- break;
- }
- break;
-
-
- case 'l':
-
- switch (AcpiGbl_Optarg[0])
- {
- case '^':
- /* Produce listing file (Mixed source/aml) */
-
- Gbl_ListingFlag = TRUE;
- break;
-
- case 'n':
- /* Produce namespace file */
-
- Gbl_NsOutputFlag = TRUE;
- break;
-
- case 's':
- /* Produce combined source file */
-
- Gbl_SourceOutputFlag = TRUE;
- break;
-
- default:
- printf ("Unknown option: -l%s\n", AcpiGbl_Optarg);
- BadCommandLine = TRUE;
- break;
- }
- break;
-
-
- case 'o':
-
- switch (AcpiGbl_Optarg[0])
- {
- case 'a':
-
- /* Disable all optimizations */
-
- Gbl_FoldConstants = FALSE;
- Gbl_IntegerOptimizationFlag = FALSE;
- Gbl_ReferenceOptimizationFlag = FALSE;
- break;
-
- case 'f':
-
- /* Disable folding on "normal" expressions */
-
- Gbl_FoldConstants = FALSE;
- break;
-
- case 'i':
-
- /* Disable integer optimization to constants */
-
- Gbl_IntegerOptimizationFlag = FALSE;
- break;
-
- case 'n':
-
- /* Disable named reference optimization */
-
- Gbl_ReferenceOptimizationFlag = FALSE;
- break;
-
- case 't':
-
- /* Display compile time(s) */
-
- Gbl_CompileTimesFlag = TRUE;
- break;
-
- default:
- printf ("Unknown option: -c%s\n", AcpiGbl_Optarg);
- BadCommandLine = TRUE;
- break;
- }
- break;
-
-
- case 'p':
-
- /* Override default AML output filename */
-
- Gbl_OutputFilenamePrefix = AcpiGbl_Optarg;
- Gbl_UseDefaultAmlFilename = FALSE;
- break;
-
-
- case 'r':
- Gbl_RevisionOverride = (UINT8) strtoul (AcpiGbl_Optarg, NULL, 0);
- break;
-
-
- case 's':
-
- switch (AcpiGbl_Optarg[0])
- {
- case 'a':
-
- /* Produce assembly code output file */
-
- Gbl_AsmOutputFlag = TRUE;
- break;
-
- case 'c':
-
- /* Produce C hex output file */
-
- Gbl_C_OutputFlag = TRUE;
- break;
-
- default:
- printf ("Unknown option: -s%s\n", AcpiGbl_Optarg);
- BadCommandLine = TRUE;
- break;
- }
- break;
-
-
- case 't':
-
- /* Produce hex table output file */
-
- switch (AcpiGbl_Optarg[0])
- {
- case 'a':
- Gbl_HexOutputFlag = HEX_OUTPUT_ASM;
- break;
-
- case 'c':
- Gbl_HexOutputFlag = HEX_OUTPUT_C;
- break;
-
- default:
- printf ("Unknown option: -t%s\n", AcpiGbl_Optarg);
- BadCommandLine = TRUE;
- break;
- }
- break;
-
-
- case 'v':
-
- switch (AcpiGbl_Optarg[0])
- {
- case 'i':
- /* Less verbose error messages */
-
- Gbl_VerboseErrors = FALSE;
- break;
-
- case 'o':
- Gbl_DisplayOptimizations = TRUE;
- break;
-
- case 'r':
- Gbl_DisplayRemarks = FALSE;
- break;
-
- case 's':
- DoSignon = FALSE;
- break;
-
- default:
- printf ("Unknown option: -v%s\n", AcpiGbl_Optarg);
- BadCommandLine = TRUE;
- break;
- }
- break;
-
-
- case 'w': /* Set warning levels */
-
- switch (AcpiGbl_Optarg[0])
- {
- case '1':
- Gbl_WarningLevel = ASL_WARNING;
- break;
-
- case '2':
- Gbl_WarningLevel = ASL_WARNING2;
- break;
-
- case '3':
- Gbl_WarningLevel = ASL_WARNING3;
- break;
-
- default:
- printf ("Unknown option: -w%s\n", AcpiGbl_Optarg);
- BadCommandLine = TRUE;
- break;
- }
- break;
-
-
- case 'x':
-
- AcpiDbgLevel = strtoul (AcpiGbl_Optarg, NULL, 16);
- break;
-
-
- default:
-
- BadCommandLine = TRUE;
- break;
- }
-
- /* Next parameter must be the input filename */
-
- Gbl_Files[ASL_FILE_INPUT].Filename = argv[AcpiGbl_Optind];
-
- if (!Gbl_Files[ASL_FILE_INPUT].Filename &&
- !Gbl_DisasmFlag &&
- !Gbl_GetAllTables)
- {
- printf ("Missing input filename\n");
- BadCommandLine = TRUE;
- }
-
- if (DoSignon)
- {
- AslCompilerSignon (ASL_FILE_STDOUT);
- }
-
- /* Abort if anything went wrong on the command line */
-
- if (BadCommandLine)
- {
- printf ("\n");
- Usage ();
- exit (1);
- }
-
- if ((AcpiGbl_Optind + 1) < argc)
- {
- printf ("Warning: extra arguments (%d) after input filename are ignored\n\n",
- argc - AcpiGbl_Optind - 1);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: main
- *
- * PARAMETERS: Standard argc/argv
- *
- * RETURN: Program termination code
- *
- * DESCRIPTION: C main routine for the Asl Compiler. Handle command line
- * options and begin the compile.
- *
- ******************************************************************************/
-
-int ACPI_SYSTEM_XFACE
-main (
- int argc,
- char **argv)
-{
- ACPI_STATUS Status;
- char *Prefix;
-
-
-#ifdef _DEBUG
- _CrtSetDbgFlag (_CRTDBG_CHECK_ALWAYS_DF | _CRTDBG_LEAK_CHECK_DF |
- _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG));
-#endif
-
- /* Init and command line */
-
- AslInitialize ();
- AslCommandLine (argc, argv);
-
- /*
- * If -p not specified, we will use the input filename as the
- * output filename prefix
- */
- Status = FlSplitInputPathname (Gbl_Files[ASL_FILE_INPUT].Filename,
- &Gbl_DirectoryPath, &Prefix);
- if (ACPI_FAILURE (Status))
- {
- return -1;
- }
-
- if (Gbl_UseDefaultAmlFilename)
- {
- Gbl_OutputFilenamePrefix = Prefix;
- }
-
- /* AML Disassembly (Optional) */
-
- if (Gbl_DisasmFlag || Gbl_GetAllTables)
- {
- /* ACPI CA subsystem initialization */
-
- Status = AdInitialize ();
- if (ACPI_FAILURE (Status))
- {
- return -1;
- }
-
- Status = AcpiAllocateRootTable (4);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not initialize ACPI Table Manager, %s\n",
- AcpiFormatException (Status));
- return -1;
- }
-
- /* This is where the disassembly happens */
-
- AcpiGbl_DbOpt_disasm = TRUE;
- Status = AdAmlDisassemble (AslToFile,
- Gbl_Files[ASL_FILE_INPUT].Filename,
- Gbl_OutputFilenamePrefix,
- &Gbl_Files[ASL_FILE_INPUT].Filename,
- Gbl_GetAllTables);
- if (ACPI_FAILURE (Status))
- {
- return -1;
- }
-
- /*
- * Gbl_Files[ASL_FILE_INPUT].Filename was replaced with the
- * .DSL disassembly file, which can now be compiled if requested
- */
- if (DoCompile)
- {
- AcpiOsPrintf ("\nCompiling \"%s\"\n",
- Gbl_Files[ASL_FILE_INPUT].Filename);
- }
- }
-
- /*
- * ASL Compilation (Optional)
- */
- if (DoCompile)
- {
- /*
- * If -p not specified, we will use the input filename as the
- * output filename prefix
- */
- Status = FlSplitInputPathname (Gbl_Files[ASL_FILE_INPUT].Filename,
- &Gbl_DirectoryPath, &Prefix);
- if (ACPI_FAILURE (Status))
- {
- return -1;
- }
-
- if (Gbl_UseDefaultAmlFilename)
- {
- Gbl_OutputFilenamePrefix = Prefix;
- }
-
- /* ACPI CA subsystem initialization (Must be re-initialized) */
-
- Status = AcpiOsInitialize ();
- AcpiUtInitGlobals ();
- Status = AcpiUtMutexInitialize ();
- if (ACPI_FAILURE (Status))
- {
- return -1;
- }
-
- Status = AcpiNsRootInitialize ();
- if (ACPI_FAILURE (Status))
- {
- return -1;
- }
- Status = CmDoCompile ();
- }
-
- return (0);
-}
-
-
diff --git a/sys/contrib/dev/acpica/compiler/aslmap.c b/sys/contrib/dev/acpica/compiler/aslmap.c
deleted file mode 100644
index 5384d0b..0000000
--- a/sys/contrib/dev/acpica/compiler/aslmap.c
+++ /dev/null
@@ -1,750 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: aslmap - parser to AML opcode mapping table
- * $Revision: 1.87 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/compiler/aslcompiler.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acparser.h>
-
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("aslmap")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AslMapNamedOpcodeToDataType
- *
- * PARAMETERS: Opcode - The Named AML opcode to map
- *
- * RETURN: The ACPI type associated with the named opcode
- *
- * DESCRIPTION: Convert a raw Named AML opcode to the associated data type.
- * Named opcodes are a subset of the AML opcodes.
- *
- ******************************************************************************/
-
-ACPI_OBJECT_TYPE
-AslMapNamedOpcodeToDataType (
- UINT16 Opcode)
-{
- const ACPI_OPCODE_INFO *OpInfo;
-
-
- /*
- * There are some differences from the opcode table types, we
- * catch them here.
- */
- OpInfo = AcpiPsGetOpcodeInfo (Opcode);
-
- if (Opcode == AML_INT_NAMEPATH_OP)
- {
- return (ACPI_TYPE_ANY);
- }
-
- if (Opcode == AML_INT_METHODCALL_OP)
- {
- return (ACPI_TYPE_ANY);
- }
-
- if (OpInfo->Flags & AML_NSOBJECT)
- {
- return (OpInfo->ObjectType);
- }
-
- return (ACPI_TYPE_ANY);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: MpDisplayReservedNames
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Print the table above
- *
- ******************************************************************************/
-
-void
-MpDisplayReservedNames (
- void)
-{
- UINT32 i;
-
- printf ("Reserved name information\n\n");
-
- for (i = 0; ReservedMethods[i].Name; i++)
- {
- printf ("%s ", ReservedMethods[i].Name);
-
- if (ReservedMethods[i].Flags & ASL_RSVD_SCOPE)
- {
- printf ("Reserved scope name\n");
- }
- else if (ReservedMethods[i].Flags & ASL_RSVD_RESOURCE_NAME)
- {
- printf ("Resource data type reserved field name\n");
- }
- else
- {
- printf ("Method with %d arguments, ",
- ReservedMethods[i].NumArguments);
-
- if (ReservedMethods[i].Flags & ASL_RSVD_RETURN_VALUE)
- {
- printf ("must return a value\n");
- }
- else
- {
- printf ("no return value\n");
- }
- }
- }
-}
-
-
-/*******************************************************************************
- *
- * DATA STRUCTURE: ReservedMethods
- *
- * DESCRIPTION: Contains all reserved methods and names as defined in the
- * ACPI specification. Used during the analysis phase to
- * ensure that reserved methods have the required number of
- * arguments and the proper return type.
- *
- * Each entry in the table contains the following items:
- *
- * Name - The ACPI reserved name
- * Args - Number of arguments to the method
- * Flags - Whether this method must return a value or not
- *
- ******************************************************************************/
-
-const ASL_RESERVED_INFO ReservedMethods[] = {
- {"_AC0", 0, ASL_RSVD_RETURN_VALUE},
- {"_AC1", 0, ASL_RSVD_RETURN_VALUE},
- {"_AC2", 0, ASL_RSVD_RETURN_VALUE},
- {"_AC3", 0, ASL_RSVD_RETURN_VALUE},
- {"_AC4", 0, ASL_RSVD_RETURN_VALUE},
- {"_AC5", 0, ASL_RSVD_RETURN_VALUE},
- {"_AC6", 0, ASL_RSVD_RETURN_VALUE},
- {"_AC7", 0, ASL_RSVD_RETURN_VALUE},
- {"_AC8", 0, ASL_RSVD_RETURN_VALUE},
- {"_AC9", 0, ASL_RSVD_RETURN_VALUE},
- {"_ADR", 0, ASL_RSVD_RETURN_VALUE},
- {"_AL0", 0, ASL_RSVD_RETURN_VALUE},
- {"_AL1", 0, ASL_RSVD_RETURN_VALUE},
- {"_AL2", 0, ASL_RSVD_RETURN_VALUE},
- {"_AL3", 0, ASL_RSVD_RETURN_VALUE},
- {"_AL4", 0, ASL_RSVD_RETURN_VALUE},
- {"_AL5", 0, ASL_RSVD_RETURN_VALUE},
- {"_AL6", 0, ASL_RSVD_RETURN_VALUE},
- {"_AL7", 0, ASL_RSVD_RETURN_VALUE},
- {"_AL8", 0, ASL_RSVD_RETURN_VALUE},
- {"_AL9", 0, ASL_RSVD_RETURN_VALUE},
- {"_ALC", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_ALI", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_ALN", 0, ASL_RSVD_RESOURCE_NAME},
- {"_ALP", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_ALR", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_ALT", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_ASI", 0, ASL_RSVD_RESOURCE_NAME},
- {"_BAS", 0, ASL_RSVD_RESOURCE_NAME},
- {"_BBN", 0, ASL_RSVD_RETURN_VALUE},
- {"_BCL", 0, ASL_RSVD_RETURN_VALUE},
- {"_BCM", 1, 0},
- {"_BDN", 0, ASL_RSVD_RETURN_VALUE},
- {"_BFS", 1, 0},
- {"_BIF", 0, ASL_RSVD_RETURN_VALUE},
- {"_BLT", 3, 0}, /* Acpi 3.0 */
- {"_BM_", 0, ASL_RSVD_RESOURCE_NAME},
- {"_BMC", 1, 0}, /* Acpi 3.0 */
- {"_BMD", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_BQC", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_BST", 0, ASL_RSVD_RETURN_VALUE},
- {"_BTM", 1, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_BTP", 1, 0},
- {"_CBA", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_CID", 0, ASL_RSVD_RETURN_VALUE},
- {"_CRS", 0, ASL_RSVD_RETURN_VALUE},
- {"_CRT", 0, ASL_RSVD_RETURN_VALUE},
- {"_CSD", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_CST", 0, ASL_RSVD_RETURN_VALUE},
- {"_DCK", 1, ASL_RSVD_RETURN_VALUE},
- {"_DCS", 0, ASL_RSVD_RETURN_VALUE},
- {"_DDC", 1, ASL_RSVD_RETURN_VALUE},
- {"_DDN", 0, 0},
- {"_DEC", 0, ASL_RSVD_RESOURCE_NAME},
- {"_DGS", 0, ASL_RSVD_RETURN_VALUE},
- {"_DIS", 0, 0},
- {"_DMA", 0, ASL_RSVD_RETURN_VALUE},
- {"_DOD", 0, ASL_RSVD_RETURN_VALUE},
- {"_DOS", 1, 0},
- {"_DSM", 4, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_DSS", 1, 0},
- {"_DSW", 3, 0}, /* Acpi 3.0 */
- {"_EC_", 0, ASL_RSVD_RETURN_VALUE},
- {"_EDL", 0, ASL_RSVD_RETURN_VALUE},
- {"_EJ0", 1, 0},
- {"_EJ1", 1, 0},
- {"_EJ2", 1, 0},
- {"_EJ3", 1, 0},
- {"_EJ4", 1, 0},
- {"_EJD", 0, ASL_RSVD_RETURN_VALUE},
- {"_ERR", 3, ASL_RSVD_RETURN_VALUE},
- {"_FDE", 0, ASL_RSVD_RETURN_VALUE},
- {"_FDI", 0, ASL_RSVD_RETURN_VALUE},
- {"_FDM", 1, 0},
- {"_FIX", 0, ASL_RSVD_RETURN_VALUE},
- {"_GL_", 0, ASL_RSVD_RETURN_VALUE},
- {"_GLK", 0, ASL_RSVD_RETURN_VALUE},
- {"_GPD", 0, ASL_RSVD_RETURN_VALUE},
- {"_GPE", 0, ASL_RSVD_RETURN_VALUE},
- {"_GRA", 0, ASL_RSVD_RESOURCE_NAME},
- {"_GSB", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_GTF", 0, ASL_RSVD_RETURN_VALUE},
- {"_GTM", 0, ASL_RSVD_RETURN_VALUE},
- {"_GTS", 1, 0},
- {"_HE_", 0, ASL_RSVD_RESOURCE_NAME},
- {"_HID", 0, ASL_RSVD_RETURN_VALUE},
- {"_HOT", 0, ASL_RSVD_RETURN_VALUE},
- {"_HPP", 0, ASL_RSVD_RETURN_VALUE},
- {"_HPX", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_IFT", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_INI", 0, 0},
- {"_INT", 0, ASL_RSVD_RESOURCE_NAME},
- {"_IRC", 0, 0},
- {"_LCK", 1, 0},
- {"_LEN", 0, ASL_RSVD_RESOURCE_NAME},
- {"_LID", 0, ASL_RSVD_RETURN_VALUE},
- {"_LL_", 0, ASL_RSVD_RESOURCE_NAME},
- {"_MAF", 0, ASL_RSVD_RESOURCE_NAME},
- {"_MAT", 0, ASL_RSVD_RETURN_VALUE},
- {"_MAX", 0, ASL_RSVD_RESOURCE_NAME},
- {"_MEM", 0, ASL_RSVD_RESOURCE_NAME},
- {"_MIF", 0, ASL_RSVD_RESOURCE_NAME},
- {"_MIN", 0, ASL_RSVD_RESOURCE_NAME},
- {"_MLS", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_MSG", 1, 0},
- {"_OFF", 0, 0},
- {"_ON_", 0, 0},
- {"_OS_", 0, ASL_RSVD_RETURN_VALUE},
- {"_OSC", 4, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_OSI", 1, ASL_RSVD_RETURN_VALUE},
- {"_OST", 3, 0}, /* Acpi 3.0 */
- {"_PCL", 0, ASL_RSVD_RETURN_VALUE},
- {"_PCT", 0, ASL_RSVD_RETURN_VALUE},
- {"_PDC", 1, 0},
- {"_PIC", 1, 0},
- {"_PLD", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_PPC", 0, ASL_RSVD_RETURN_VALUE},
- {"_PPE", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_PR0", 0, ASL_RSVD_RETURN_VALUE},
- {"_PR1", 0, ASL_RSVD_RETURN_VALUE},
- {"_PR2", 0, ASL_RSVD_RETURN_VALUE},
- {"_PRS", 0, ASL_RSVD_RETURN_VALUE},
- {"_PRT", 0, ASL_RSVD_RETURN_VALUE},
- {"_PRW", 0, ASL_RSVD_RETURN_VALUE},
- {"_PS0", 0, 0},
- {"_PS1", 0, 0},
- {"_PS2", 0, 0},
- {"_PS3", 0, 0},
- {"_PSC", 0, ASL_RSVD_RETURN_VALUE},
- {"_PSD", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_PSL", 0, ASL_RSVD_RETURN_VALUE},
- {"_PSR", 0, ASL_RSVD_RETURN_VALUE},
- {"_PSS", 0, ASL_RSVD_RETURN_VALUE},
- {"_PSV", 0, ASL_RSVD_RETURN_VALUE},
- {"_PSW", 1, 0},
- {"_PTC", 0, ASL_RSVD_RETURN_VALUE},
- {"_PTS", 1, 0},
- {"_PXM", 0, ASL_RSVD_RETURN_VALUE},
- {"_RBO", 0, ASL_RSVD_RESOURCE_NAME},
- {"_RBW", 0, ASL_RSVD_RESOURCE_NAME},
- {"_REG", 2, 0},
- {"_REV", 0, ASL_RSVD_RETURN_VALUE},
- {"_RMV", 0, ASL_RSVD_RETURN_VALUE},
- {"_RNG", 0, ASL_RSVD_RESOURCE_NAME},
- {"_ROM", 2, ASL_RSVD_RETURN_VALUE},
- {"_RT_", 0, ASL_RSVD_RESOURCE_NAME}, /* Acpi 3.0 */
- {"_RTV", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_RW_", 0, ASL_RSVD_RESOURCE_NAME},
- {"_S0_", 0, ASL_RSVD_RETURN_VALUE},
- {"_S1_", 0, ASL_RSVD_RETURN_VALUE},
- {"_S2_", 0, ASL_RSVD_RETURN_VALUE},
- {"_S3_", 0, ASL_RSVD_RETURN_VALUE},
- {"_S4_", 0, ASL_RSVD_RETURN_VALUE},
- {"_S5_", 0, ASL_RSVD_RETURN_VALUE},
- {"_S1D", 0, ASL_RSVD_RETURN_VALUE},
- {"_S2D", 0, ASL_RSVD_RETURN_VALUE},
- {"_S3D", 0, ASL_RSVD_RETURN_VALUE},
- {"_S4D", 0, ASL_RSVD_RETURN_VALUE},
- {"_S0W", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_S1W", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_S2W", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_S3W", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_S4W", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_SB_", 0, ASL_RSVD_SCOPE},
- {"_SBS", 0, ASL_RSVD_RETURN_VALUE},
- {"_SCP", 1, 0},
- {"_SDD", 1, 0}, /* Acpi 3.0 */
- {"_SEG", 0, ASL_RSVD_RETURN_VALUE},
- {"_SHR", 0, ASL_RSVD_RESOURCE_NAME},
- {"_SI_", 0, ASL_RSVD_SCOPE},
- {"_SIZ", 0, ASL_RSVD_RESOURCE_NAME},
- {"_SLI", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_SPD", 1, ASL_RSVD_RETURN_VALUE},
- {"_SRS", 1, 0},
- {"_SRV", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_SST", 1, 0},
- {"_STA", 0, ASL_RSVD_RETURN_VALUE},
- {"_STM", 3, 0},
- {"_STR", 0, ASL_RSVD_RETURN_VALUE},
- {"_SUN", 0, ASL_RSVD_RETURN_VALUE},
- {"_SWS", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_TC1", 0, ASL_RSVD_RETURN_VALUE},
- {"_TC2", 0, ASL_RSVD_RETURN_VALUE},
- {"_TDL", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0b */
- {"_TMP", 0, ASL_RSVD_RETURN_VALUE},
- {"_TPC", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_TPT", 1, 0}, /* Acpi 3.0 */
- {"_TRA", 0, ASL_RSVD_RESOURCE_NAME},
- {"_TRS", 0, ASL_RSVD_RESOURCE_NAME},
- {"_TRT", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_TSD", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_TSF", 0, ASL_RSVD_RESOURCE_NAME}, /* Acpi 3.0 */
- {"_TSP", 0, ASL_RSVD_RETURN_VALUE},
- {"_TSS", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_TST", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_TTP", 0, ASL_RSVD_RESOURCE_NAME},
- {"_TTS", 1, 0}, /* Acpi 3.0 */
- {"_TYP", 0, ASL_RSVD_RESOURCE_NAME},
- {"_TZ_", 0, ASL_RSVD_SCOPE},
- {"_TZD", 0, ASL_RSVD_RETURN_VALUE},
- {"_TZM", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_TZP", 0, ASL_RSVD_RETURN_VALUE},
- {"_UID", 0, ASL_RSVD_RETURN_VALUE},
- {"_UPC", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_UPD", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_UPP", 0, ASL_RSVD_RETURN_VALUE}, /* Acpi 3.0 */
- {"_VPO", 0, ASL_RSVD_RETURN_VALUE},
- {"_WAK", 1, ASL_RSVD_RETURN_VALUE},
- {"_WDG", 0, ASL_RSVD_RETURN_VALUE}, /* MS Extension */
- {"_WED", 1, ASL_RSVD_RETURN_VALUE}, /* MS Extension */
- {NULL, 0, 0},
-};
-
-
-/*******************************************************************************
- *
- * DATA STRUCTURE: AslKeywordMapping
- *
- * DESCRIPTION: Maps the ParseOpcode to the actual AML opcode. The parse
- * opcodes are generated from Bison, and this table must
- * track any additions to them.
- *
- * Each entry in the table contains the following items:
- *
- * AML opcode - Opcode that is written to the AML file
- * Value - Value of the object to be written (if applicable)
- * Flags - 1) Whether this opcode opens an AML "package".
- *
- ******************************************************************************/
-/*
- * TBD:
- * AccessAttrib
- * AccessType
- * AMlop for DMA?
- * ObjectType keywords
- * Register
- */
-
-const ASL_MAPPING_ENTRY AslKeywordMapping [] =
-{
-/*! [Begin] no source code translation (keep the table structure) */
-
-
-/* ACCESSAS */ OP_TABLE_ENTRY (AML_INT_ACCESSFIELD_OP, 0, 0, 0),
-/* ACCESSATTRIB_BLOCK */ OP_TABLE_ENTRY (AML_BYTE_OP, AML_FIELD_ATTRIB_SMB_BLOCK, 0, 0),
-/* ACCESSATTRIB_BLOCK_CALL */ OP_TABLE_ENTRY (AML_BYTE_OP, AML_FIELD_ATTRIB_SMB_BLOCK_CALL,0, 0),
-/* ACCESSATTRIB_BYTE */ OP_TABLE_ENTRY (AML_BYTE_OP, AML_FIELD_ATTRIB_SMB_BYTE, 0, 0),
-/* ACCESSATTRIB_WORD_CALL */ OP_TABLE_ENTRY (AML_BYTE_OP, AML_FIELD_ATTRIB_SMB_WORD_CALL, 0, 0),
-/* ACCESSATTRIB_QUICK */ OP_TABLE_ENTRY (AML_BYTE_OP, AML_FIELD_ATTRIB_SMB_QUICK, 0, 0),
-/* ACCESSATTRIB_SND_RCV */ OP_TABLE_ENTRY (AML_BYTE_OP, AML_FIELD_ATTRIB_SMB_SEND_RCV, 0, 0),
-/* ACCESSATTRIB_WORD */ OP_TABLE_ENTRY (AML_BYTE_OP, AML_FIELD_ATTRIB_SMB_WORD, 0, 0),
-/* ACCESSTYPE_ANY */ OP_TABLE_ENTRY (AML_BYTE_OP, AML_FIELD_ACCESS_ANY, 0, 0),
-/* ACCESSTYPE_BUF */ OP_TABLE_ENTRY (AML_BYTE_OP, AML_FIELD_ACCESS_BUFFER, 0, 0),
-/* ACCESSTYPE_BYTE */ OP_TABLE_ENTRY (AML_BYTE_OP, AML_FIELD_ACCESS_BYTE, 0, 0),
-/* ACCESSTYPE_DWORD */ OP_TABLE_ENTRY (AML_BYTE_OP, AML_FIELD_ACCESS_DWORD, 0, 0),
-/* ACCESSTYPE_QWORD */ OP_TABLE_ENTRY (AML_BYTE_OP, AML_FIELD_ACCESS_QWORD, 0, 0),
-/* ACCESSTYPE_WORD */ OP_TABLE_ENTRY (AML_BYTE_OP, AML_FIELD_ACCESS_WORD, 0, 0),
-/* ACQUIRE */ OP_TABLE_ENTRY (AML_ACQUIRE_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* ADD */ OP_TABLE_ENTRY (AML_ADD_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* ADDRESSSPACE_FFIXEDHW */ OP_TABLE_ENTRY (AML_BYTE_OP, REGION_FIXED_HW, 0, 0),
-/* ADDRESSTYPE_ACPI */ OP_TABLE_ENTRY (AML_BYTE_OP, 2, 0, 0),
-/* ADDRESSTYPE_MEMORY */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* ADDRESSTYPE_NVS */ OP_TABLE_ENTRY (AML_BYTE_OP, 3, 0, 0),
-/* ADDRESSTYPE_RESERVED */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0),
-/* ALIAS */ OP_TABLE_ENTRY (AML_ALIAS_OP, 0, 0, 0),
-/* AND */ OP_TABLE_ENTRY (AML_BIT_AND_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* ARG0 */ OP_TABLE_ENTRY (AML_ARG0, 0, 0, ACPI_BTYPE_OBJECTS_AND_REFS),
-/* ARG1 */ OP_TABLE_ENTRY (AML_ARG1, 0, 0, ACPI_BTYPE_OBJECTS_AND_REFS),
-/* ARG2 */ OP_TABLE_ENTRY (AML_ARG2, 0, 0, ACPI_BTYPE_OBJECTS_AND_REFS),
-/* ARG3 */ OP_TABLE_ENTRY (AML_ARG3, 0, 0, ACPI_BTYPE_OBJECTS_AND_REFS),
-/* ARG4 */ OP_TABLE_ENTRY (AML_ARG4, 0, 0, ACPI_BTYPE_OBJECTS_AND_REFS),
-/* ARG5 */ OP_TABLE_ENTRY (AML_ARG5, 0, 0, ACPI_BTYPE_OBJECTS_AND_REFS),
-/* ARG6 */ OP_TABLE_ENTRY (AML_ARG6, 0, 0, ACPI_BTYPE_OBJECTS_AND_REFS),
-/* BANKFIELD */ OP_TABLE_ENTRY (AML_BANK_FIELD_OP, 0, NODE_AML_PACKAGE, 0),
-/* BREAK */ OP_TABLE_ENTRY (AML_BREAK_OP, 0, 0, 0),
-/* BREAKPOINT */ OP_TABLE_ENTRY (AML_BREAK_POINT_OP, 0, 0, 0),
-/* BUFFER */ OP_TABLE_ENTRY (AML_BUFFER_OP, 0, NODE_AML_PACKAGE, ACPI_BTYPE_BUFFER),
-/* BUSMASTERTYPE_MASTER */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0),
-/* BUSMASTERTYPE_NOTMASTER */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* BYTECONST */ OP_TABLE_ENTRY (AML_RAW_DATA_BYTE, 0, 0, ACPI_BTYPE_INTEGER),
-/* CASE */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
-/* CONCATENATE */ OP_TABLE_ENTRY (AML_CONCAT_OP, 0, 0, ACPI_BTYPE_COMPUTE_DATA),
-/* CONCATENATERESTEMPLATE */ OP_TABLE_ENTRY (AML_CONCAT_RES_OP, 0, 0, ACPI_BTYPE_BUFFER),
-/* CONDREFOF */ OP_TABLE_ENTRY (AML_COND_REF_OF_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* CONTINUE */ OP_TABLE_ENTRY (AML_CONTINUE_OP, 0, 0, 0),
-/* COPY */ OP_TABLE_ENTRY (AML_COPY_OP, 0, 0, ACPI_BTYPE_DATA_REFERENCE),
-/* CREATEBITFIELD */ OP_TABLE_ENTRY (AML_CREATE_BIT_FIELD_OP, 0, 0, 0),
-/* CREATEBYTEFIELD */ OP_TABLE_ENTRY (AML_CREATE_BYTE_FIELD_OP, 0, 0, 0),
-/* CREATEDWORDFIELD */ OP_TABLE_ENTRY (AML_CREATE_DWORD_FIELD_OP, 0, 0, 0),
-/* CREATEFIELD */ OP_TABLE_ENTRY (AML_CREATE_FIELD_OP, 0, 0, 0),
-/* CREATEQWORDFIELD */ OP_TABLE_ENTRY (AML_CREATE_QWORD_FIELD_OP, 0, 0, 0),
-/* CREATEWORDFIELD */ OP_TABLE_ENTRY (AML_CREATE_WORD_FIELD_OP, 0, 0, 0),
-/* DATATABLEREGION */ OP_TABLE_ENTRY (AML_DATA_REGION_OP, 0, 0, 0),
-/* DEBUG */ OP_TABLE_ENTRY (AML_DEBUG_OP, 0, 0, ACPI_BTYPE_DEBUG_OBJECT),
-/* DECODETYPE_POS */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* DECODETYPE_SUB */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0),
-/* DECREMENT */ OP_TABLE_ENTRY (AML_DECREMENT_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* DEFAULT */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
-/* DEFAULT_ARG */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
-/* DEFINITIONBLOCK */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
-/* DEREFOF */ OP_TABLE_ENTRY (AML_DEREF_OF_OP, 0, 0, ACPI_BTYPE_DATA_REFERENCE | ACPI_BTYPE_STRING),
-/* DEVICE */ OP_TABLE_ENTRY (AML_DEVICE_OP, 0, NODE_AML_PACKAGE, 0),
-/* DIVIDE */ OP_TABLE_ENTRY (AML_DIVIDE_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* DMA */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
-/* DMATYPE_A */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0),
-/* DMATYPE_COMPATIBILITY */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* DMATYPE_B */ OP_TABLE_ENTRY (AML_BYTE_OP, 2, 0, 0),
-/* DMATYPE_F */ OP_TABLE_ENTRY (AML_BYTE_OP, 3, 0, 0),
-/* DWORDCONST */ OP_TABLE_ENTRY (AML_RAW_DATA_DWORD, 0, 0, ACPI_BTYPE_INTEGER),
-/* DWORDIO */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
-/* DWORDMEMORY */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
-/* DWORDSPACE */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* EISAID */ OP_TABLE_ENTRY (AML_DWORD_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* ELSE */ OP_TABLE_ENTRY (AML_ELSE_OP, 0, NODE_AML_PACKAGE, 0),
-/* ELSEIF */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, NODE_AML_PACKAGE, 0),
-/* ENDDEPENDENTFN */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
-/* ENDTAG */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
-/* ERRORNODE */ OP_TABLE_ENTRY (AML_NOOP_OP, 0, 0, 0),
-/* EVENT */ OP_TABLE_ENTRY (AML_EVENT_OP, 0, 0, 0),
-/* EXTENDEDIO */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* EXTENDEDMEMORY */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* EXTENDEDSPACE */ OP_TABLE_ENTRY (AML_RAW_DATA_QWORD, 0, 0, ACPI_BTYPE_INTEGER),
-/* EXTERNAL */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
-/* FATAL */ OP_TABLE_ENTRY (AML_FATAL_OP, 0, 0, 0),
-/* FIELD */ OP_TABLE_ENTRY (AML_FIELD_OP, 0, NODE_AML_PACKAGE, 0),
-/* FINDSETLEFTBIT */ OP_TABLE_ENTRY (AML_FIND_SET_LEFT_BIT_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* FINDSETRIGHTBIT */ OP_TABLE_ENTRY (AML_FIND_SET_RIGHT_BIT_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* FIXEDIO */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
-/* FROMBCD */ OP_TABLE_ENTRY (AML_FROM_BCD_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* FUNCTION */ OP_TABLE_ENTRY (AML_METHOD_OP, 0, NODE_AML_PACKAGE, 0),
-/* IF */ OP_TABLE_ENTRY (AML_IF_OP, 0, NODE_AML_PACKAGE, 0),
-/* INCLUDE */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
-/* INCLUDE_CSTYLE */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
-/* INCLUDE_END */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
-/* INCREMENT */ OP_TABLE_ENTRY (AML_INCREMENT_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* INDEX */ OP_TABLE_ENTRY (AML_INDEX_OP, 0, 0, ACPI_BTYPE_REFERENCE),
-/* INDEXFIELD */ OP_TABLE_ENTRY (AML_INDEX_FIELD_OP, 0, NODE_AML_PACKAGE, 0),
-/* INTEGER */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* INTERRUPT */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
-/* INTLEVEL_ACTIVEHIGH */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* INTLEVEL_ACTIVELOW */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0),
-/* INTTYPE_EDGE */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0),
-/* INTTYPE_LEVEL */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* IO */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
-/* IODECODETYPE_10 */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* IODECODETYPE_16 */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0),
-/* IRQ */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
-/* IRQNOFLAGS */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
-/* LAND */ OP_TABLE_ENTRY (AML_LAND_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* LEQUAL */ OP_TABLE_ENTRY (AML_LEQUAL_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* LGREATER */ OP_TABLE_ENTRY (AML_LGREATER_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* LGREATEREQUAL */ OP_TABLE_ENTRY (AML_LGREATEREQUAL_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* LINE */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
-/* LLESS */ OP_TABLE_ENTRY (AML_LLESS_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* LLESSEQUAL */ OP_TABLE_ENTRY (AML_LLESSEQUAL_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* LNOT */ OP_TABLE_ENTRY (AML_LNOT_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* LNOTEQUAL */ OP_TABLE_ENTRY (AML_LNOTEQUAL_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* LOAD */ OP_TABLE_ENTRY (AML_LOAD_OP, 0, 0, 0),
-/* LOADTABLE */ OP_TABLE_ENTRY (AML_LOAD_TABLE_OP, 0, 0, ACPI_BTYPE_DDB_HANDLE),
-/* LOCAL0 */ OP_TABLE_ENTRY (AML_LOCAL0, 0, 0, ACPI_BTYPE_OBJECTS_AND_REFS),
-/* LOCAL1 */ OP_TABLE_ENTRY (AML_LOCAL1, 0, 0, ACPI_BTYPE_OBJECTS_AND_REFS),
-/* LOCAL2 */ OP_TABLE_ENTRY (AML_LOCAL2, 0, 0, ACPI_BTYPE_OBJECTS_AND_REFS),
-/* LOCAL3 */ OP_TABLE_ENTRY (AML_LOCAL3, 0, 0, ACPI_BTYPE_OBJECTS_AND_REFS),
-/* LOCAL4 */ OP_TABLE_ENTRY (AML_LOCAL4, 0, 0, ACPI_BTYPE_OBJECTS_AND_REFS),
-/* LOCAL5 */ OP_TABLE_ENTRY (AML_LOCAL5, 0, 0, ACPI_BTYPE_OBJECTS_AND_REFS),
-/* LOCAL6 */ OP_TABLE_ENTRY (AML_LOCAL6, 0, 0, ACPI_BTYPE_OBJECTS_AND_REFS),
-/* LOCAL7 */ OP_TABLE_ENTRY (AML_LOCAL7, 0, 0, ACPI_BTYPE_OBJECTS_AND_REFS),
-/* LOCKRULE_LOCK */ OP_TABLE_ENTRY (AML_BYTE_OP, AML_FIELD_LOCK_ALWAYS, 0, 0),
-/* LOCKRULE_NOLOCK */ OP_TABLE_ENTRY (AML_BYTE_OP, AML_FIELD_LOCK_NEVER, 0, 0),
-/* LOR */ OP_TABLE_ENTRY (AML_LOR_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* MATCH */ OP_TABLE_ENTRY (AML_MATCH_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* MATCHTYPE_MEQ */ OP_TABLE_ENTRY (AML_RAW_DATA_BYTE, MATCH_MEQ, 0, ACPI_BTYPE_INTEGER),
-/* MATCHTYPE_MGE */ OP_TABLE_ENTRY (AML_RAW_DATA_BYTE, MATCH_MGE, 0, ACPI_BTYPE_INTEGER),
-/* MATCHTYPE_MGT */ OP_TABLE_ENTRY (AML_RAW_DATA_BYTE, MATCH_MGT, 0, ACPI_BTYPE_INTEGER),
-/* MATCHTYPE_MLE */ OP_TABLE_ENTRY (AML_RAW_DATA_BYTE, MATCH_MLE, 0, ACPI_BTYPE_INTEGER),
-/* MATCHTYPE_MLT */ OP_TABLE_ENTRY (AML_RAW_DATA_BYTE, MATCH_MLT, 0, ACPI_BTYPE_INTEGER),
-/* MATCHTYPE_MTR */ OP_TABLE_ENTRY (AML_RAW_DATA_BYTE, MATCH_MTR, 0, ACPI_BTYPE_INTEGER),
-/* MAXTYPE_FIXED */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0),
-/* MAXTYPE_NOTFIXED */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* MEMORY24 */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
-/* MEMORY32 */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
-/* MEMORY32FIXED */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
-/* MEMTYPE_CACHEABLE */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0),
-/* MEMTYPE_NONCACHEABLE */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* MEMTYPE_PREFETCHABLE */ OP_TABLE_ENTRY (AML_BYTE_OP, 3, 0, 0),
-/* MEMTYPE_WRITECOMBINING */ OP_TABLE_ENTRY (AML_BYTE_OP, 2, 0, 0),
-/* METHOD */ OP_TABLE_ENTRY (AML_METHOD_OP, 0, NODE_AML_PACKAGE, 0),
-/* METHODCALL */ OP_TABLE_ENTRY (AML_INT_METHODCALL_OP, 0, 0, ACPI_BTYPE_OBJECTS_AND_REFS),
-/* MID */ OP_TABLE_ENTRY (AML_MID_OP, 0, 0, ACPI_BTYPE_STRING | ACPI_BTYPE_BUFFER),
-/* MINTYPE_FIXED */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0),
-/* MINTYPE_NOTFIXED */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* MOD */ OP_TABLE_ENTRY (AML_MOD_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* MULTIPLY */ OP_TABLE_ENTRY (AML_MULTIPLY_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* MUTEX */ OP_TABLE_ENTRY (AML_MUTEX_OP, 0, 0, 0),
-/* NAME */ OP_TABLE_ENTRY (AML_NAME_OP, 0, 0, 0),
-/* NAMESEG */ OP_TABLE_ENTRY (AML_INT_NAMEPATH_OP, 0, 0, 0),
-/* NAMESTRING */ OP_TABLE_ENTRY (AML_INT_NAMEPATH_OP, 0, 0, 0),
-/* NAND */ OP_TABLE_ENTRY (AML_BIT_NAND_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* NOOP */ OP_TABLE_ENTRY (AML_NOOP_OP, 0, 0, 0),
-/* NOR */ OP_TABLE_ENTRY (AML_BIT_NOR_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* NOT */ OP_TABLE_ENTRY (AML_BIT_NOT_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* NOTIFY */ OP_TABLE_ENTRY (AML_NOTIFY_OP, 0, 0, 0),
-/* OBJECTTYPE */ OP_TABLE_ENTRY (AML_TYPE_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* OBJECTTYPE_BFF */ OP_TABLE_ENTRY (AML_BYTE_OP, ACPI_TYPE_BUFFER_FIELD, 0, 0),
-/* OBJECTTYPE_BUF */ OP_TABLE_ENTRY (AML_BYTE_OP, ACPI_TYPE_BUFFER, 0, 0),
-/* OBJECTTYPE_DDB */ OP_TABLE_ENTRY (AML_BYTE_OP, ACPI_TYPE_DDB_HANDLE, 0, 0),
-/* OBJECTTYPE_DEV */ OP_TABLE_ENTRY (AML_BYTE_OP, ACPI_TYPE_DEVICE, 0, 0),
-/* OBJECTTYPE_EVT */ OP_TABLE_ENTRY (AML_BYTE_OP, ACPI_TYPE_EVENT, 0, 0),
-/* OBJECTTYPE_FLD */ OP_TABLE_ENTRY (AML_BYTE_OP, ACPI_TYPE_FIELD_UNIT, 0, 0),
-/* OBJECTTYPE_INT */ OP_TABLE_ENTRY (AML_BYTE_OP, ACPI_TYPE_INTEGER, 0, 0),
-/* OBJECTTYPE_MTH */ OP_TABLE_ENTRY (AML_BYTE_OP, ACPI_TYPE_METHOD, 0, 0),
-/* OBJECTTYPE_MTX */ OP_TABLE_ENTRY (AML_BYTE_OP, ACPI_TYPE_MUTEX, 0, 0),
-/* OBJECTTYPE_OPR */ OP_TABLE_ENTRY (AML_BYTE_OP, ACPI_TYPE_REGION, 0, 0),
-/* OBJECTTYPE_PKG */ OP_TABLE_ENTRY (AML_BYTE_OP, ACPI_TYPE_PACKAGE, 0, 0),
-/* OBJECTTYPE_POW */ OP_TABLE_ENTRY (AML_BYTE_OP, ACPI_TYPE_POWER, 0, 0),
-/* OBJECTTYPE_PRO */ OP_TABLE_ENTRY (AML_BYTE_OP, ACPI_TYPE_PROCESSOR, 0, 0),
-/* OBJECTTYPE_STR */ OP_TABLE_ENTRY (AML_BYTE_OP, ACPI_TYPE_STRING, 0, 0),
-/* OBJECTTYPE_THZ */ OP_TABLE_ENTRY (AML_BYTE_OP, ACPI_TYPE_THERMAL, 0, 0),
-/* OBJECTTYPE_UNK */ OP_TABLE_ENTRY (AML_BYTE_OP, ACPI_TYPE_ANY, 0, 0),
-/* OFFSET */ OP_TABLE_ENTRY (AML_INT_RESERVEDFIELD_OP, 0, 0, 0),
-/* ONE */ OP_TABLE_ENTRY (AML_ONE_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* ONES */ OP_TABLE_ENTRY (AML_ONES_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* OPERATIONREGION */ OP_TABLE_ENTRY (AML_REGION_OP, 0, 0, 0),
-/* OR */ OP_TABLE_ENTRY (AML_BIT_OR_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* PACKAGE */ OP_TABLE_ENTRY (AML_PACKAGE_OP, 0, NODE_AML_PACKAGE, ACPI_BTYPE_PACKAGE),
-/* PACKAGEP_LENGTH */ OP_TABLE_ENTRY (AML_PACKAGE_LENGTH, 0, NODE_AML_PACKAGE, 0),
-/* POWERRESOURCE */ OP_TABLE_ENTRY (AML_POWER_RES_OP, 0, NODE_AML_PACKAGE, 0),
-/* PROCESSOR */ OP_TABLE_ENTRY (AML_PROCESSOR_OP, 0, NODE_AML_PACKAGE, 0),
-/* QWORDCONST */ OP_TABLE_ENTRY (AML_RAW_DATA_QWORD, 0, 0, ACPI_BTYPE_INTEGER),
-/* QWORDIO */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* QWORDMEMORY */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* QWORDSPACE */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* RANGE_TYPE_ENTIRE */ OP_TABLE_ENTRY (AML_BYTE_OP, 3, 0, 0),
-/* RANGE_TYPE_ISAONLY */ OP_TABLE_ENTRY (AML_BYTE_OP, 2, 0, 0),
-/* RANGE_TYPE_NONISAONLY */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0),
-/* RAW_DATA */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* READWRITETYPE_BOTH */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0),
-/* READWRITETYPE_READONLY */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* REFOF */ OP_TABLE_ENTRY (AML_REF_OF_OP, 0, 0, ACPI_BTYPE_REFERENCE),
-/* REGIONSPACE_CMOS */ OP_TABLE_ENTRY (AML_RAW_DATA_BYTE, REGION_CMOS, 0, 0),
-/* REGIONSPACE_EC */ OP_TABLE_ENTRY (AML_RAW_DATA_BYTE, REGION_EC, 0, 0),
-/* REGIONSPACE_IO */ OP_TABLE_ENTRY (AML_RAW_DATA_BYTE, REGION_IO, 0, 0),
-/* REGIONSPACE_MEM */ OP_TABLE_ENTRY (AML_RAW_DATA_BYTE, REGION_MEMORY, 0, 0),
-/* REGIONSPACE_PCI */ OP_TABLE_ENTRY (AML_RAW_DATA_BYTE, REGION_PCI_CONFIG, 0, 0),
-/* REGIONSPACE_PCIBAR */ OP_TABLE_ENTRY (AML_RAW_DATA_BYTE, REGION_PCI_BAR, 0, 0),
-/* REGIONSPACE_SMBUS */ OP_TABLE_ENTRY (AML_RAW_DATA_BYTE, REGION_SMBUS, 0, 0),
-/* REGISTER */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* RELEASE */ OP_TABLE_ENTRY (AML_RELEASE_OP, 0, 0, 0),
-/* RESERVED_BYTES */ OP_TABLE_ENTRY (AML_INT_RESERVEDFIELD_OP, 0, 0, 0),
-/* RESET */ OP_TABLE_ENTRY (AML_RESET_OP, 0, 0, 0),
-/* RESOURCETEMPLATE */ OP_TABLE_ENTRY (AML_BUFFER_OP, 0, 0, ACPI_BTYPE_BUFFER),
-/* RESOURCETYPE_CONSUMER */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0),
-/* RESOURCETYPE_PRODUCER */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* RETURN */ OP_TABLE_ENTRY (AML_RETURN_OP, 0, 0, 0),
-/* REVISION */ OP_TABLE_ENTRY (AML_REVISION_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* SCOPE */ OP_TABLE_ENTRY (AML_SCOPE_OP, 0, NODE_AML_PACKAGE, 0),
-/* SERIALIZERULE_NOTSERIAL */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* SERIALIZERULE_SERIAL */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0),
-/* SHARETYPE_EXCLUSIVE */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* SHARETYPE_SHARED */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0),
-/* SHIFTLEFT */ OP_TABLE_ENTRY (AML_SHIFT_LEFT_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* SHIFTRIGHT */ OP_TABLE_ENTRY (AML_SHIFT_RIGHT_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* SIGNAL */ OP_TABLE_ENTRY (AML_SIGNAL_OP, 0, 0, 0),
-/* SIZEOF */ OP_TABLE_ENTRY (AML_SIZE_OF_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* SLEEP */ OP_TABLE_ENTRY (AML_SLEEP_OP, 0, 0, 0),
-/* STALL */ OP_TABLE_ENTRY (AML_STALL_OP, 0, 0, 0),
-/* STARTDEPENDENTFN */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* STARTDEPENDENTFN_NOPRI */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* STORE */ OP_TABLE_ENTRY (AML_STORE_OP, 0, 0, ACPI_BTYPE_DATA_REFERENCE),
-/* STRING_LITERAL */ OP_TABLE_ENTRY (AML_STRING_OP, 0, 0, ACPI_BTYPE_STRING),
-/* SUBTRACT */ OP_TABLE_ENTRY (AML_SUBTRACT_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* SWITCH */ OP_TABLE_ENTRY (AML_DEFAULT_ARG_OP, 0, 0, 0),
-/* THERMALZONE */ OP_TABLE_ENTRY (AML_THERMAL_ZONE_OP, 0, NODE_AML_PACKAGE, 0),
-/* TIMER */ OP_TABLE_ENTRY (AML_TIMER_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* TOBCD */ OP_TABLE_ENTRY (AML_TO_BCD_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* TOBUFFER */ OP_TABLE_ENTRY (AML_TO_BUFFER_OP, 0, 0, ACPI_BTYPE_BUFFER),
-/* TODECIMALSTRING */ OP_TABLE_ENTRY (AML_TO_DECSTRING_OP, 0, 0, ACPI_BTYPE_STRING),
-/* TOHEXSTRING */ OP_TABLE_ENTRY (AML_TO_HEXSTRING_OP, 0, 0, ACPI_BTYPE_STRING),
-/* TOINTEGER */ OP_TABLE_ENTRY (AML_TO_INTEGER_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* TOSTRING */ OP_TABLE_ENTRY (AML_TO_STRING_OP, 0, 0, ACPI_BTYPE_STRING),
-/* TOUUID */ OP_TABLE_ENTRY (AML_DWORD_OP, 0, NODE_AML_PACKAGE, ACPI_BTYPE_INTEGER),
-/* TRANSLATIONTYPE_DENSE */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* TRANSLATIONTYPE_SPARSE */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0),
-/* TYPE_STATIC */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* TYPE_TRANSLATION */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0),
-/* UNICODE */ OP_TABLE_ENTRY (AML_BUFFER_OP, 0, NODE_AML_PACKAGE, 0),
-/* UNLOAD */ OP_TABLE_ENTRY (AML_UNLOAD_OP, 0, 0, 0),
-/* UPDATERULE_ONES */ OP_TABLE_ENTRY (AML_BYTE_OP, AML_FIELD_UPDATE_WRITE_AS_ONES, 0, 0),
-/* UPDATERULE_PRESERVE */ OP_TABLE_ENTRY (AML_BYTE_OP, AML_FIELD_UPDATE_PRESERVE, 0, 0),
-/* UPDATERULE_ZEROS */ OP_TABLE_ENTRY (AML_BYTE_OP, AML_FIELD_UPDATE_WRITE_AS_ZEROS,0, 0),
-/* VAR_PACKAGE */ OP_TABLE_ENTRY (AML_VAR_PACKAGE_OP, 0, NODE_AML_PACKAGE, ACPI_BTYPE_PACKAGE),
-/* VENDORLONG */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* VENDORSHORT */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* WAIT */ OP_TABLE_ENTRY (AML_WAIT_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* WHILE */ OP_TABLE_ENTRY (AML_WHILE_OP, 0, NODE_AML_PACKAGE, 0),
-/* WORDBUSNUMBER */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* WORDCONST */ OP_TABLE_ENTRY (AML_RAW_DATA_WORD, 0, 0, ACPI_BTYPE_INTEGER),
-/* WORDIO */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* WORDSPACE */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* XFERTYPE_8 */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0),
-/* XFERTYPE_8_16 */ OP_TABLE_ENTRY (AML_BYTE_OP, 1, 0, 0),
-/* XFERTYPE_16 */ OP_TABLE_ENTRY (AML_BYTE_OP, 2, 0, 0),
-/* XOR */ OP_TABLE_ENTRY (AML_BIT_XOR_OP, 0, 0, ACPI_BTYPE_INTEGER),
-/* ZERO */ OP_TABLE_ENTRY (AML_ZERO_OP, 0, 0, ACPI_BTYPE_INTEGER),
-
-/*! [End] no source code translation !*/
-
-};
-
-
diff --git a/sys/contrib/dev/acpica/compiler/aslopcodes.c b/sys/contrib/dev/acpica/compiler/aslopcodes.c
deleted file mode 100644
index ae91dc8..0000000
--- a/sys/contrib/dev/acpica/compiler/aslopcodes.c
+++ /dev/null
@@ -1,812 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: aslopcode - AML opcode generation
- * $Revision: 1.74 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/compiler/aslcompiler.h>
-#include "aslcompiler.y.h"
-#include <contrib/dev/acpica/amlcode.h>
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("aslopcodes")
-
-
-/* UUID support */
-
-static UINT8 OpcMapToUUID[16] =
-{
- 6,4,2,0,11,9,16,14,19,21,24,26,28,30,32,34
-};
-
-/* Local prototypes */
-
-static void
-OpcDoAccessAs (
- ACPI_PARSE_OBJECT *Op);
-
-static void
-OpcDoUnicode (
- ACPI_PARSE_OBJECT *Op);
-
-static void
-OpcDoEisaId (
- ACPI_PARSE_OBJECT *Op);
-
-static void
-OpcDoUuId (
- ACPI_PARSE_OBJECT *Op);
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpcAmlOpcodeUpdateWalk
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Opcode update walk, ascending callback
- *
- ******************************************************************************/
-
-ACPI_STATUS
-OpcAmlOpcodeUpdateWalk (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
-
- /*
- * Handle the Package() case where the actual opcode cannot be determined
- * until the PackageLength operand has been folded and minimized.
- * (PackageOp versus VarPackageOp)
- *
- * This is (as of ACPI 3.0) the only case where the AML opcode can change
- * based upon the value of a parameter.
- *
- * The parser always inserts a VarPackage opcode, which can possibly be
- * optimized to a Package opcode.
- */
- if (Op->Asl.ParseOpcode == PARSEOP_VAR_PACKAGE)
- {
- OpnDoPackage (Op);
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpcAmlOpcodeWalk
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Parse tree walk to generate both the AML opcodes and the AML
- * operands.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-OpcAmlOpcodeWalk (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
-
- TotalParseNodes++;
-
- OpcGenerateAmlOpcode (Op);
- OpnGenerateAmlOperands (Op);
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpcGetIntegerWidth
- *
- * PARAMETERS: Op - DEFINITION BLOCK op
- *
- * RETURN: none
- *
- * DESCRIPTION: Extract integer width from the table revision
- *
- ******************************************************************************/
-
-void
-OpcGetIntegerWidth (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *Child;
-
-
- if (!Op)
- {
- return;
- }
-
- if (Gbl_RevisionOverride)
- {
- AcpiUtSetIntegerWidth (Gbl_RevisionOverride);
- }
- else
- {
- Child = Op->Asl.Child;
- Child = Child->Asl.Next;
- Child = Child->Asl.Next;
-
- /* Use the revision to set the integer width */
-
- AcpiUtSetIntegerWidth ((UINT8) Child->Asl.Value.Integer);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpcSetOptimalIntegerSize
- *
- * PARAMETERS: Op - A parse tree node
- *
- * RETURN: Integer width, in bytes. Also sets the node AML opcode to the
- * optimal integer AML prefix opcode.
- *
- * DESCRIPTION: Determine the optimal AML encoding of an integer. All leading
- * zeros can be truncated to squeeze the integer into the
- * minimal number of AML bytes.
- *
- ******************************************************************************/
-
-UINT32
-OpcSetOptimalIntegerSize (
- ACPI_PARSE_OBJECT *Op)
-{
-
-#if 0
- /*
- * TBD: - we don't want to optimize integers in the block header, but the
- * code below does not work correctly.
- */
- if (Op->Asl.Parent &&
- Op->Asl.Parent->Asl.Parent &&
- (Op->Asl.Parent->Asl.Parent->Asl.ParseOpcode == PARSEOP_DEFINITIONBLOCK))
- {
- return 0;
- }
-#endif
-
- /*
- * Check for the special AML integers first - Zero, One, Ones.
- * These are single-byte opcodes that are the smallest possible
- * representation of an integer.
- *
- * This optimization is optional.
- */
- if (Gbl_IntegerOptimizationFlag)
- {
- switch (Op->Asl.Value.Integer)
- {
- case 0:
-
- Op->Asl.AmlOpcode = AML_ZERO_OP;
- AslError (ASL_OPTIMIZATION, ASL_MSG_INTEGER_OPTIMIZATION,
- Op, "Zero");
- return 1;
-
- case 1:
-
- Op->Asl.AmlOpcode = AML_ONE_OP;
- AslError (ASL_OPTIMIZATION, ASL_MSG_INTEGER_OPTIMIZATION,
- Op, "One");
- return 1;
-
- case ACPI_UINT32_MAX:
-
- /* Check for table integer width (32 or 64) */
-
- if (AcpiGbl_IntegerByteWidth == 4)
- {
- Op->Asl.AmlOpcode = AML_ONES_OP;
- AslError (ASL_OPTIMIZATION, ASL_MSG_INTEGER_OPTIMIZATION,
- Op, "Ones");
- return 1;
- }
- break;
-
- case ACPI_INTEGER_MAX:
-
- /* Check for table integer width (32 or 64) */
-
- if (AcpiGbl_IntegerByteWidth == 8)
- {
- Op->Asl.AmlOpcode = AML_ONES_OP;
- AslError (ASL_OPTIMIZATION, ASL_MSG_INTEGER_OPTIMIZATION,
- Op, "Ones");
- return 1;
- }
- break;
-
- default:
- break;
- }
- }
-
- /* Find the best fit using the various AML integer prefixes */
-
- if (Op->Asl.Value.Integer <= ACPI_UINT8_MAX)
- {
- Op->Asl.AmlOpcode = AML_BYTE_OP;
- return 1;
- }
- if (Op->Asl.Value.Integer <= ACPI_UINT16_MAX)
- {
- Op->Asl.AmlOpcode = AML_WORD_OP;
- return 2;
- }
- if (Op->Asl.Value.Integer <= ACPI_UINT32_MAX)
- {
- Op->Asl.AmlOpcode = AML_DWORD_OP;
- return 4;
- }
- else
- {
- if (AcpiGbl_IntegerByteWidth == 4)
- {
- AslError (ASL_WARNING, ASL_MSG_INTEGER_LENGTH,
- Op, NULL);
-
- if (!Gbl_IgnoreErrors)
- {
- /* Truncate the integer to 32-bit */
- Op->Asl.AmlOpcode = AML_DWORD_OP;
- return 4;
- }
- }
-
- Op->Asl.AmlOpcode = AML_QWORD_OP;
- return 8;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpcDoAccessAs
- *
- * PARAMETERS: Op - Parse node
- *
- * RETURN: None
- *
- * DESCRIPTION: Implement the ACCESS_AS ASL keyword.
- *
- ******************************************************************************/
-
-static void
-OpcDoAccessAs (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *Next;
-
-
- Op->Asl.AmlOpcodeLength = 1;
- Next = Op->Asl.Child;
-
- /* First child is the access type */
-
- Next->Asl.AmlOpcode = AML_RAW_DATA_BYTE;
- Next->Asl.ParseOpcode = PARSEOP_RAW_DATA;
-
- /* Second child is the optional access attribute */
-
- Next = Next->Asl.Next;
- if (Next->Asl.ParseOpcode == PARSEOP_DEFAULT_ARG)
- {
- Next->Asl.Value.Integer = 0;
- }
- Next->Asl.AmlOpcode = AML_RAW_DATA_BYTE;
- Next->Asl.ParseOpcode = PARSEOP_RAW_DATA;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpcDoUnicode
- *
- * PARAMETERS: Op - Parse node
- *
- * RETURN: None
- *
- * DESCRIPTION: Implement the UNICODE ASL "macro". Convert the input string
- * to a unicode buffer. There is no Unicode AML opcode.
- *
- * Note: The Unicode string is 16 bits per character, no leading signature,
- * with a 16-bit terminating NULL.
- *
- ******************************************************************************/
-
-static void
-OpcDoUnicode (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *InitializerOp;
- UINT32 Length;
- UINT32 Count;
- UINT32 i;
- UINT8 *AsciiString;
- UINT16 *UnicodeString;
- ACPI_PARSE_OBJECT *BufferLengthOp;
-
-
- /* Change op into a buffer object */
-
- Op->Asl.CompileFlags &= ~NODE_COMPILE_TIME_CONST;
- Op->Asl.ParseOpcode = PARSEOP_BUFFER;
- UtSetParseOpName (Op);
-
- /* Buffer Length is first, followed by the string */
-
- BufferLengthOp = Op->Asl.Child;
- InitializerOp = BufferLengthOp->Asl.Next;
-
- AsciiString = (UINT8 *) InitializerOp->Asl.Value.String;
-
- /* Create a new buffer for the Unicode string */
-
- Count = strlen (InitializerOp->Asl.Value.String) + 1;
- Length = Count * sizeof (UINT16);
- UnicodeString = UtLocalCalloc (Length);
-
- /* Convert to Unicode string (including null terminator) */
-
- for (i = 0; i < Count; i++)
- {
- UnicodeString[i] = (UINT16) AsciiString[i];
- }
-
- /*
- * Just set the buffer size node to be the buffer length, regardless
- * of whether it was previously an integer or a default_arg placeholder
- */
- BufferLengthOp->Asl.ParseOpcode = PARSEOP_INTEGER;
- BufferLengthOp->Asl.AmlOpcode = AML_DWORD_OP;
- BufferLengthOp->Asl.Value.Integer = Length;
- UtSetParseOpName (BufferLengthOp);
-
- (void) OpcSetOptimalIntegerSize (BufferLengthOp);
-
- /* The Unicode string is a raw data buffer */
-
- InitializerOp->Asl.Value.Buffer = (UINT8 *) UnicodeString;
- InitializerOp->Asl.AmlOpcode = AML_RAW_DATA_BUFFER;
- InitializerOp->Asl.AmlLength = Length;
- InitializerOp->Asl.ParseOpcode = PARSEOP_RAW_DATA;
- InitializerOp->Asl.Child = NULL;
- UtSetParseOpName (InitializerOp);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpcDoEisaId
- *
- * PARAMETERS: Op - Parse node
- *
- * RETURN: None
- *
- * DESCRIPTION: Convert a string EISA ID to numeric representation. See the
- * Pnp BIOS Specification for details. Here is an excerpt:
- *
- * A seven character ASCII representation of the product
- * identifier compressed into a 32-bit identifier. The seven
- * character ID consists of a three character manufacturer code,
- * a three character hexadecimal product identifier, and a one
- * character hexadecimal revision number. The manufacturer code
- * is a 3 uppercase character code that is compressed into 3 5-bit
- * values as follows:
- * 1) Find hex ASCII value for each letter
- * 2) Subtract 40h from each ASCII value
- * 3) Retain 5 least signficant bits for each letter by
- * discarding upper 3 bits because they are always 0.
- * 4) Compressed code = concatenate 0 and the 3 5-bit values
- *
- * The format of the compressed product identifier is as follows:
- * Byte 0: Bit 7 - Reserved (0)
- * Bits 6-2: - 1st character of compressed mfg code
- * Bits 1-0 - Upper 2 bits of 2nd character of mfg code
- * Byte 1: Bits 7-5 - Lower 3 bits of 2nd character of mfg code
- * Bits 4-0 - 3rd character of mfg code
- * Byte 2: Bits 7-4 - 1st hex digit of product number
- * Bits 3-0 - 2nd hex digit of product number
- * Byte 3: Bits 7-4 - 3st hex digit of product number
- * Bits 3-0 - Hex digit of the revision number
- *
- ******************************************************************************/
-
-static void
-OpcDoEisaId (
- ACPI_PARSE_OBJECT *Op)
-{
- UINT32 EisaId = 0;
- UINT32 BigEndianId;
- char *InString;
- ACPI_STATUS Status = AE_OK;
- ACPI_NATIVE_UINT i;
-
-
- InString = (char *) Op->Asl.Value.String;
-
- /*
- * The EISAID string must be exactly 7 characters and of the form
- * "UUUXXXX" -- 3 uppercase letters and 4 hex digits (e.g., "PNP0001")
- */
- if (ACPI_STRLEN (InString) != 7)
- {
- Status = AE_BAD_PARAMETER;
- }
- else
- {
- /* Check all 7 characters for correct format */
-
- for (i = 0; i < 7; i++)
- {
- /* First 3 characters must be uppercase letters */
-
- if (i < 3)
- {
- if (!isupper (InString[i]))
- {
- Status = AE_BAD_PARAMETER;
- }
- }
-
- /* Last 4 characters must be hex digits */
-
- else if (!isxdigit (InString[i]))
- {
- Status = AE_BAD_PARAMETER;
- }
- }
- }
-
- if (ACPI_FAILURE (Status))
- {
- AslError (ASL_ERROR, ASL_MSG_INVALID_EISAID, Op, Op->Asl.Value.String);
- }
- else
- {
- /* Create ID big-endian first (bits are contiguous) */
-
- BigEndianId =
- (UINT32) (InString[0] - 0x40) << 26 |
- (UINT32) (InString[1] - 0x40) << 21 |
- (UINT32) (InString[2] - 0x40) << 16 |
-
- (UtHexCharToValue (InString[3])) << 12 |
- (UtHexCharToValue (InString[4])) << 8 |
- (UtHexCharToValue (InString[5])) << 4 |
- UtHexCharToValue (InString[6]);
-
- /* Swap to little-endian to get final ID (see function header) */
-
- EisaId = AcpiUtDwordByteSwap (BigEndianId);
- }
-
- /*
- * Morph the Op into an integer, regardless of whether there
- * was an error in the EISAID string
- */
- Op->Asl.Value.Integer = EisaId;
-
- Op->Asl.CompileFlags &= ~NODE_COMPILE_TIME_CONST;
- Op->Asl.ParseOpcode = PARSEOP_INTEGER;
- (void) OpcSetOptimalIntegerSize (Op);
-
- /* Op is now an integer */
-
- UtSetParseOpName (Op);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpcDoUiId
- *
- * PARAMETERS: Op - Parse node
- *
- * RETURN: None
- *
- * DESCRIPTION: Convert UUID string to 16-byte buffer
- *
- ******************************************************************************/
-
-static void
-OpcDoUuId (
- ACPI_PARSE_OBJECT *Op)
-{
- char *InString;
- char *Buffer;
- ACPI_STATUS Status = AE_OK;
- ACPI_NATIVE_UINT i;
- ACPI_PARSE_OBJECT *NewOp;
-
-
- InString = (char *) Op->Asl.Value.String;
-
- if (ACPI_STRLEN (InString) != 36)
- {
- Status = AE_BAD_PARAMETER;
- }
- else
- {
- /* Check all 36 characters for correct format */
-
- for (i = 0; i < 36; i++)
- {
- if ((i == 8) || (i == 13) || (i == 18) || (i == 23))
- {
- if (InString[i] != '-')
- {
- Status = AE_BAD_PARAMETER;
- }
- }
- else
- {
- if (!isxdigit (InString[i]))
- {
- Status = AE_BAD_PARAMETER;
- }
- }
- }
- }
-
- Buffer = UtLocalCalloc (16);
-
- if (ACPI_FAILURE (Status))
- {
- AslError (ASL_ERROR, ASL_MSG_INVALID_UUID, Op, Op->Asl.Value.String);
- }
- else for (i = 0; i < 16; i++)
- {
- Buffer[i] = (char) (UtHexCharToValue (InString[OpcMapToUUID[i]]) << 4);
- Buffer[i] |= (char) UtHexCharToValue (InString[OpcMapToUUID[i] + 1]);
- }
-
- /* Change Op to a Buffer */
-
- Op->Asl.ParseOpcode = PARSEOP_BUFFER;
- Op->Common.AmlOpcode = AML_BUFFER_OP;
-
- /* Disable further optimization */
-
- Op->Asl.CompileFlags &= ~NODE_COMPILE_TIME_CONST;
- UtSetParseOpName (Op);
-
- /* Child node is the buffer length */
-
- NewOp = TrAllocateNode (PARSEOP_INTEGER);
-
- NewOp->Asl.AmlOpcode = AML_BYTE_OP;
- NewOp->Asl.Value.Integer = 16;
- NewOp->Asl.Parent = Op;
-
- Op->Asl.Child = NewOp;
- Op = NewOp;
-
- /* Peer to the child is the raw buffer data */
-
- NewOp = TrAllocateNode (PARSEOP_RAW_DATA);
- NewOp->Asl.AmlOpcode = AML_RAW_DATA_BUFFER;
- NewOp->Asl.AmlLength = 16;
- NewOp->Asl.Value.String = (char *) Buffer;
- NewOp->Asl.Parent = Op->Asl.Parent;
-
- Op->Asl.Next = NewOp;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpcGenerateAmlOpcode
- *
- * PARAMETERS: Op - Parse node
- *
- * RETURN: None
- *
- * DESCRIPTION: Generate the AML opcode associated with the node and its
- * parse (lex/flex) keyword opcode. Essentially implements
- * a mapping between the parse opcodes and the actual AML opcodes.
- *
- ******************************************************************************/
-
-void
-OpcGenerateAmlOpcode (
- ACPI_PARSE_OBJECT *Op)
-{
-
- UINT16 Index;
-
-
- Index = (UINT16) (Op->Asl.ParseOpcode - ASL_PARSE_OPCODE_BASE);
-
- Op->Asl.AmlOpcode = AslKeywordMapping[Index].AmlOpcode;
- Op->Asl.AcpiBtype = AslKeywordMapping[Index].AcpiBtype;
- Op->Asl.CompileFlags |= AslKeywordMapping[Index].Flags;
-
- if (!Op->Asl.Value.Integer)
- {
- Op->Asl.Value.Integer = AslKeywordMapping[Index].Value;
- }
-
- /* Special handling for some opcodes */
-
- switch (Op->Asl.ParseOpcode)
- {
- case PARSEOP_INTEGER:
- /*
- * Set the opcode based on the size of the integer
- */
- (void) OpcSetOptimalIntegerSize (Op);
- break;
-
- case PARSEOP_OFFSET:
-
- Op->Asl.AmlOpcodeLength = 1;
- break;
-
- case PARSEOP_ACCESSAS:
-
- OpcDoAccessAs (Op);
- break;
-
- case PARSEOP_EISAID:
-
- OpcDoEisaId (Op);
- break;
-
- case PARSEOP_TOUUID:
-
- OpcDoUuId (Op);
- break;
-
- case PARSEOP_UNICODE:
-
- OpcDoUnicode (Op);
- break;
-
- case PARSEOP_INCLUDE:
-
- Op->Asl.Child->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
- Gbl_HasIncludeFiles = TRUE;
- break;
-
- case PARSEOP_EXTERNAL:
-
- Op->Asl.Child->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
- Op->Asl.Child->Asl.Next->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
- break;
-
- default:
- /* Nothing to do for other opcodes */
- break;
- }
-
- return;
-}
-
-
diff --git a/sys/contrib/dev/acpica/compiler/asloperands.c b/sys/contrib/dev/acpica/compiler/asloperands.c
deleted file mode 100644
index 8f4500e..0000000
--- a/sys/contrib/dev/acpica/compiler/asloperands.c
+++ /dev/null
@@ -1,1230 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: asloperands - AML operand processing
- * $Revision: 1.61 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/compiler/aslcompiler.h>
-#include "aslcompiler.y.h"
-#include <contrib/dev/acpica/amlcode.h>
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("asloperands")
-
-/* Local prototypes */
-
-static void
-OpnDoField (
- ACPI_PARSE_OBJECT *Op);
-
-static void
-OpnDoBankField (
- ACPI_PARSE_OBJECT *Op);
-
-static void
-OpnDoBuffer (
- ACPI_PARSE_OBJECT *Op);
-
-static void
-OpnDoDefinitionBlock (
- ACPI_PARSE_OBJECT *Op);
-
-static void
-OpnDoFieldCommon (
- ACPI_PARSE_OBJECT *FieldOp,
- ACPI_PARSE_OBJECT *Op);
-
-static void
-OpnDoIndexField (
- ACPI_PARSE_OBJECT *Op);
-
-static void
-OpnDoLoadTable (
- ACPI_PARSE_OBJECT *Op);
-
-static void
-OpnDoMethod (
- ACPI_PARSE_OBJECT *Op);
-
-static void
-OpnDoMutex (
- ACPI_PARSE_OBJECT *Op);
-
-static void
-OpnDoRegion (
- ACPI_PARSE_OBJECT *Op);
-
-static void
-OpnAttachNameToNode (
- ACPI_PARSE_OBJECT *Op);
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpnDoMutex
- *
- * PARAMETERS: Op - The parent parse node
- *
- * RETURN: None
- *
- * DESCRIPTION: Construct the operands for the MUTEX ASL keyword.
- *
- ******************************************************************************/
-
-static void
-OpnDoMutex (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *Next;
-
-
- Next = Op->Asl.Child;
- Next = Next->Asl.Next;
-
- if (Next->Asl.Value.Integer > 15)
- {
- AslError (ASL_ERROR, ASL_MSG_SYNC_LEVEL, Next, NULL);
- }
- return;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpnDoMethod
- *
- * PARAMETERS: Op - The parent parse node
- *
- * RETURN: None
- *
- * DESCRIPTION: Construct the operands for the METHOD ASL keyword.
- *
- ******************************************************************************/
-
-static void
-OpnDoMethod (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *Next;
-
- /* Optional arguments for this opcode with defaults */
-
- UINT8 NumArgs = 0;
- UINT8 Serialized = 0;
- UINT8 Concurrency = 0;
- UINT8 MethodFlags;
-
-
- /* Opcode and package length first */
- /* Method name */
-
- Next = Op->Asl.Child;
-
- /* Num args */
-
- Next = Next->Asl.Next;
- if (Next->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
- {
- NumArgs = (UINT8) Next->Asl.Value.Integer;
- Next->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
- }
-
- /* Serialized Flag */
-
- Next = Next->Asl.Next;
- if (Next->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
- {
- Serialized = (UINT8) Next->Asl.Value.Integer;
- Next->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
- }
-
- /* Concurrency value (valid values are 0-15) */
-
- Next = Next->Asl.Next;
- if (Next->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
- {
- if (Next->Asl.Value.Integer > 15)
- {
- AslError (ASL_ERROR, ASL_MSG_SYNC_LEVEL, Next, NULL);
- }
- Concurrency = (UINT8) Next->Asl.Value.Integer;
- }
-
- /* Put the bits in their proper places */
-
- MethodFlags = (UINT8) ((NumArgs & 0x7) |
- ((Serialized & 0x1) << 3) |
- ((Concurrency & 0xF) << 4));
-
- /* Use the last node for the combined flags byte */
-
- Next->Asl.Value.Integer = MethodFlags;
- Next->Asl.AmlOpcode = AML_RAW_DATA_BYTE;
- Next->Asl.AmlLength = 1;
- Next->Asl.ParseOpcode = PARSEOP_RAW_DATA;
-
- /* Save the arg count in the first node */
-
- Op->Asl.Extra = NumArgs;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpnDoFieldCommon
- *
- * PARAMETERS: FieldOp - Node for an ASL field
- * Op - The parent parse node
- *
- * RETURN: None
- *
- * DESCRIPTION: Construct the AML operands for the various field keywords,
- * FIELD, BANKFIELD, INDEXFIELD
- *
- ******************************************************************************/
-
-static void
-OpnDoFieldCommon (
- ACPI_PARSE_OBJECT *FieldOp,
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *Next;
- ACPI_PARSE_OBJECT *PkgLengthNode;
- UINT32 CurrentBitOffset;
- UINT32 NewBitOffset;
- UINT8 AccessType;
- UINT8 LockRule;
- UINT8 UpdateRule;
- UINT8 FieldFlags;
- UINT32 MinimumLength;
-
-
- /* AccessType -- not optional, so no need to check for DEFAULT_ARG */
-
- AccessType = (UINT8) Op->Asl.Value.Integer;
- Op->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
-
- /* Set the access type in the parent (field) node for use later */
-
- FieldOp->Asl.Value.Integer = AccessType;
-
- /* LockRule -- not optional, so no need to check for DEFAULT_ARG */
-
- Next = Op->Asl.Next;
- LockRule = (UINT8) Next->Asl.Value.Integer;
- Next->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
-
- /* UpdateRule -- not optional, so no need to check for DEFAULT_ARG */
-
- Next = Next->Asl.Next;
- UpdateRule = (UINT8) Next->Asl.Value.Integer;
-
- /*
- * Generate the flags byte. The various fields are already
- * in the right bit position via translation from the
- * keywords by the parser.
- */
- FieldFlags = (UINT8) (AccessType | LockRule | UpdateRule);
-
- /* Use the previous node to be the FieldFlags node */
-
- /* Set the node to RAW_DATA */
-
- Next->Asl.Value.Integer = FieldFlags;
- Next->Asl.AmlOpcode = AML_RAW_DATA_BYTE;
- Next->Asl.AmlLength = 1;
- Next->Asl.ParseOpcode = PARSEOP_RAW_DATA;
-
- /* Process the FieldUnitList */
-
- Next = Next->Asl.Next;
- CurrentBitOffset = 0;
-
- while (Next)
- {
- /* Save the offset of this field unit */
-
- Next->Asl.ExtraValue = CurrentBitOffset;
-
- switch (Next->Asl.ParseOpcode)
- {
- case PARSEOP_ACCESSAS:
-
- PkgLengthNode = Next->Asl.Child;
- AccessType = (UINT8) PkgLengthNode->Asl.Value.Integer;
-
- /* Nothing additional to do */
- break;
-
-
- case PARSEOP_OFFSET:
-
- /* New offset into the field */
-
- PkgLengthNode = Next->Asl.Child;
- NewBitOffset = ((UINT32) PkgLengthNode->Asl.Value.Integer) * 8;
-
- /*
- * Examine the specified offset in relation to the
- * current offset counter.
- */
- if (NewBitOffset < CurrentBitOffset)
- {
- /*
- * Not allowed to specify a backwards offset!
- * Issue error and ignore this node.
- */
- AslError (ASL_ERROR, ASL_MSG_BACKWARDS_OFFSET, PkgLengthNode,
- NULL);
- Next->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
- PkgLengthNode->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
- }
- else if (NewBitOffset == CurrentBitOffset)
- {
- /*
- * Offset is redundant; we don't need to output an
- * offset opcode. Just set these nodes to default
- */
- Next->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
- PkgLengthNode->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
- }
- else
- {
- /*
- * Valid new offset - set the value to be inserted into the AML
- * and update the offset counter.
- */
- PkgLengthNode->Asl.Value.Integer =
- NewBitOffset - CurrentBitOffset;
- CurrentBitOffset = NewBitOffset;
- }
- break;
-
-
- case PARSEOP_NAMESEG:
- case PARSEOP_RESERVED_BYTES:
-
- /* Named or reserved field entry */
-
- PkgLengthNode = Next->Asl.Child;
- NewBitOffset = (UINT32) PkgLengthNode->Asl.Value.Integer;
- CurrentBitOffset += NewBitOffset;
-
- /* Save the current AccessAs value for error checking later */
-
- switch (AccessType)
- {
- case AML_FIELD_ACCESS_ANY:
- case AML_FIELD_ACCESS_BYTE:
- case AML_FIELD_ACCESS_BUFFER:
- default:
- MinimumLength = 8;
- break;
-
- case AML_FIELD_ACCESS_WORD:
- MinimumLength = 16;
- break;
-
- case AML_FIELD_ACCESS_DWORD:
- MinimumLength = 32;
- break;
-
- case AML_FIELD_ACCESS_QWORD:
- MinimumLength = 64;
- break;
- }
-
- PkgLengthNode->Asl.ExtraValue = MinimumLength;
- break;
-
- default:
- /* All supported field opcodes must appear above */
- break;
- }
-
- /* Move on to next entry in the field list */
-
- Next = Next->Asl.Next;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpnDoField
- *
- * PARAMETERS: Op - The parent parse node
- *
- * RETURN: None
- *
- * DESCRIPTION: Construct the AML operands for the FIELD ASL keyword
- *
- ******************************************************************************/
-
-static void
-OpnDoField (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *Next;
-
-
- /* Opcode is parent node */
- /* First child is field name */
-
- Next = Op->Asl.Child;
-
- /* Second child is the AccessType */
-
- OpnDoFieldCommon (Op, Next->Asl.Next);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpnDoIndexField
- *
- * PARAMETERS: Op - The parent parse node
- *
- * RETURN: None
- *
- * DESCRIPTION: Construct the AML operands for the INDEXFIELD ASL keyword
- *
- ******************************************************************************/
-
-static void
-OpnDoIndexField (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *Next;
-
-
- /* Opcode is parent node */
- /* First child is the index name */
-
- Next = Op->Asl.Child;
-
- /* Second child is the data name */
-
- Next = Next->Asl.Next;
-
- /* Third child is the AccessType */
-
- OpnDoFieldCommon (Op, Next->Asl.Next);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpnDoBankField
- *
- * PARAMETERS: Op - The parent parse node
- *
- * RETURN: None
- *
- * DESCRIPTION: Construct the AML operands for the BANKFIELD ASL keyword
- *
- ******************************************************************************/
-
-static void
-OpnDoBankField (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *Next;
-
-
- /* Opcode is parent node */
- /* First child is the region name */
-
- Next = Op->Asl.Child;
-
- /* Second child is the bank name */
-
- Next = Next->Asl.Next;
-
- /* Third child is the bank value */
-
- Next = Next->Asl.Next;
-
- /* Fourth child is the AccessType */
-
- OpnDoFieldCommon (Op, Next->Asl.Next);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpnDoRegion
- *
- * PARAMETERS: Op - The parent parse node
- *
- * RETURN: None
- *
- * DESCRIPTION: Tries to get the length of the region. Can only do this at
- * compile time if the length is a constant.
- *
- ******************************************************************************/
-
-static void
-OpnDoRegion (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *Next;
-
-
- /* Opcode is parent node */
- /* First child is the region name */
-
- Next = Op->Asl.Child;
-
- /* Second child is the space ID*/
-
- Next = Next->Asl.Next;
-
- /* Third child is the region offset */
-
- Next = Next->Asl.Next;
-
- /* Fourth child is the region length */
-
- Next = Next->Asl.Next;
- if (Next->Asl.ParseOpcode == PARSEOP_INTEGER)
- {
- Op->Asl.Value.Integer = Next->Asl.Value.Integer;
- }
- else
- {
- Op->Asl.Value.Integer = ACPI_INTEGER_MAX;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpnDoBuffer
- *
- * PARAMETERS: Op - The parent parse node
- *
- * RETURN: None
- *
- * DESCRIPTION: Construct the AML operands for the BUFFER ASL keyword. We
- * build a single raw byte buffer from the initialization nodes,
- * each parse node contains a buffer byte.
- *
- ******************************************************************************/
-
-static void
-OpnDoBuffer (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *InitializerOp;
- ACPI_PARSE_OBJECT *BufferLengthOp;
-
- /* Optional arguments for this opcode with defaults */
-
- UINT32 BufferLength = 0;
-
-
- /* Opcode and package length first */
- /* Buffer Length is next, followed by the initializer list */
-
- BufferLengthOp = Op->Asl.Child;
- InitializerOp = BufferLengthOp->Asl.Next;
-
- /*
- * If the BufferLength is not an INTEGER or was not specified in the ASL
- * (DEFAULT_ARG), it is a TermArg that is
- * evaluated at run-time, and we are therefore finished.
- */
- if ((BufferLengthOp->Asl.ParseOpcode != PARSEOP_INTEGER) &&
- (BufferLengthOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG))
- {
- return;
- }
-
- /*
- * We want to count the number of items in the initializer list, because if
- * it is larger than the buffer length, we will define the buffer size
- * to be the size of the initializer list (as per the ACPI Specification)
- */
- switch (InitializerOp->Asl.ParseOpcode)
- {
- case PARSEOP_INTEGER:
- case PARSEOP_BYTECONST:
- case PARSEOP_WORDCONST:
- case PARSEOP_DWORDCONST:
-
- /* The peer list contains the byte list (if any...) */
-
- while (InitializerOp)
- {
- /* For buffers, this is a list of raw bytes */
-
- InitializerOp->Asl.AmlOpcode = AML_RAW_DATA_BYTE;
- InitializerOp->Asl.AmlLength = 1;
- InitializerOp->Asl.ParseOpcode = PARSEOP_RAW_DATA;
-
- BufferLength++;
- InitializerOp = ASL_GET_PEER_NODE (InitializerOp);
- }
- break;
-
-
- case PARSEOP_STRING_LITERAL:
-
- /*
- * Only one initializer, the string. Buffer must be big enough to hold
- * the string plus the null termination byte
- */
- BufferLength = strlen (InitializerOp->Asl.Value.String) + 1;
-
- InitializerOp->Asl.AmlOpcode = AML_RAW_DATA_BUFFER;
- InitializerOp->Asl.AmlLength = BufferLength;
- InitializerOp->Asl.ParseOpcode = PARSEOP_RAW_DATA;
- break;
-
-
- case PARSEOP_RAW_DATA:
-
- /* Buffer nodes are already initialized (e.g. Unicode operator) */
- return;
-
-
- case PARSEOP_DEFAULT_ARG:
- break;
-
-
- default:
- AslError (ASL_ERROR, ASL_MSG_INVALID_OPERAND, InitializerOp,
- "Unknown buffer initializer opcode");
- printf ("Unknown buffer initializer opcode [%s]\n",
- UtGetOpName (InitializerOp->Asl.ParseOpcode));
- return;
- }
-
- /* Check if initializer list is longer than the buffer length */
-
- if (BufferLengthOp->Asl.Value.Integer > BufferLength)
- {
- BufferLength = (UINT32) BufferLengthOp->Asl.Value.Integer;
- }
-
- if (!BufferLength)
- {
- /* No length AND no items -- issue notice */
-
- AslError (ASL_REMARK, ASL_MSG_BUFFER_LENGTH, BufferLengthOp, NULL);
-
- /* But go ahead and put the buffer length of zero into the AML */
- }
-
- /*
- * Just set the buffer size node to be the buffer length, regardless
- * of whether it was previously an integer or a default_arg placeholder
- */
- BufferLengthOp->Asl.ParseOpcode = PARSEOP_INTEGER;
- BufferLengthOp->Asl.AmlOpcode = AML_DWORD_OP;
- BufferLengthOp->Asl.Value.Integer = BufferLength;
-
- (void) OpcSetOptimalIntegerSize (BufferLengthOp);
-
- /* Remaining nodes are handled via the tree walk */
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpnDoPackage
- *
- * PARAMETERS: Op - The parent parse node
- *
- * RETURN: None
- *
- * DESCRIPTION: Construct the AML operands for the PACKAGE ASL keyword. NOTE:
- * can only be called after constants have been folded, to ensure
- * that the PackageLength operand has been fully reduced.
- *
- ******************************************************************************/
-
-void
-OpnDoPackage (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *InitializerOp;
- ACPI_PARSE_OBJECT *PackageLengthOp;
- UINT32 PackageLength = 0;
-
-
- /* Opcode and package length first, followed by the initializer list */
-
- PackageLengthOp = Op->Asl.Child;
- InitializerOp = PackageLengthOp->Asl.Next;
-
- /* Count the number of items in the initializer list */
-
- if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
- {
- /* The peer list contains the byte list (if any...) */
-
- while (InitializerOp)
- {
- PackageLength++;
- InitializerOp = InitializerOp->Asl.Next;
- }
- }
-
- /* If package length is a constant, compare to the initializer list */
-
- if ((PackageLengthOp->Asl.ParseOpcode == PARSEOP_INTEGER) ||
- (PackageLengthOp->Asl.ParseOpcode == PARSEOP_QWORDCONST))
- {
- if (PackageLengthOp->Asl.Value.Integer >= PackageLength)
- {
- /* Allow package to be longer than the initializer list */
-
- PackageLength = (UINT32) PackageLengthOp->Asl.Value.Integer;
- }
- else
- {
- /*
- * Initializer list is longer than the package length. This
- * is an error as per the ACPI spec.
- */
- AslError (ASL_ERROR, ASL_MSG_LIST_LENGTH,
- PackageLengthOp->Asl.Next, NULL);
- }
- }
-
- if (PackageLengthOp->Asl.ParseOpcode == PARSEOP_DEFAULT_ARG)
- {
- /*
- * This is the case if the PackageLength was left empty - Package()
- * The package length becomes the length of the initializer list
- */
- Op->Asl.Child->Asl.ParseOpcode = PARSEOP_INTEGER;
- Op->Asl.Child->Asl.Value.Integer = PackageLength;
-
- /* Set the AML opcode */
-
- (void) OpcSetOptimalIntegerSize (Op->Asl.Child);
- }
-
- /* If not a variable-length package, check for a zero package length */
-
- if ((PackageLengthOp->Asl.ParseOpcode == PARSEOP_INTEGER) ||
- (PackageLengthOp->Asl.ParseOpcode == PARSEOP_QWORDCONST) ||
- (PackageLengthOp->Asl.ParseOpcode == PARSEOP_DEFAULT_ARG))
- {
- if (!PackageLength)
- {
- /* No length AND no initializer list -- issue a remark */
-
- AslError (ASL_REMARK, ASL_MSG_PACKAGE_LENGTH,
- PackageLengthOp, NULL);
-
- /* But go ahead and put the buffer length of zero into the AML */
- }
- }
-
- /*
- * If the PackageLength is a constant <= 255, we can change the
- * AML opcode from VarPackage to a simple (ACPI 1.0) Package opcode.
- */
- if ((Op->Asl.Child->Asl.ParseOpcode == PARSEOP_INTEGER) &&
- (Op->Asl.Child->Asl.Value.Integer <= 255))
- {
- Op->Asl.AmlOpcode = AML_PACKAGE_OP;
- Op->Asl.ParseOpcode = PARSEOP_PACKAGE;
-
- /*
- * Just set the package size node to be the package length, regardless
- * of whether it was previously an integer or a default_arg placeholder
- */
- PackageLengthOp->Asl.AmlOpcode = AML_RAW_DATA_BYTE;
- PackageLengthOp->Asl.AmlLength = 1;
- PackageLengthOp->Asl.ParseOpcode = PARSEOP_RAW_DATA;
- PackageLengthOp->Asl.Value.Integer = PackageLength;
- }
-
- /* Remaining nodes are handled via the tree walk */
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpnDoLoadTable
- *
- * PARAMETERS: Op - The parent parse node
- *
- * RETURN: None
- *
- * DESCRIPTION: Construct the AML operands for the LOADTABLE ASL keyword.
- *
- ******************************************************************************/
-
-static void
-OpnDoLoadTable (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *Next;
-
-
- /* Opcode is parent node */
- /* First child is the table signature */
-
- Next = Op->Asl.Child;
-
- /* Second child is the OEM ID*/
-
- Next = Next->Asl.Next;
-
- /* Third child is the OEM table ID */
-
- Next = Next->Asl.Next;
-
- /* Fourth child is the RootPath string */
-
- Next = Next->Asl.Next;
- if (Next->Asl.ParseOpcode == PARSEOP_ZERO)
- {
- Next->Asl.ParseOpcode = PARSEOP_STRING_LITERAL;
- Next->Asl.Value.String = "\\";
- Next->Asl.AmlLength = 2;
- OpcGenerateAmlOpcode (Next);
- }
-
-#ifdef ASL_FUTURE_IMPLEMENTATION
-
- /* TBD: NOT IMPLEMENTED */
- /* Fifth child is the [optional] ParameterPathString */
- /* Sixth child is the [optional] ParameterData */
-
- Next = Next->Asl.Next;
- if (Next->Asl.ParseOpcode == DEFAULT_ARG)
- {
- Next->Asl.AmlLength = 1;
- Next->Asl.ParseOpcode = ZERO;
- OpcGenerateAmlOpcode (Next);
- }
-
-
- Next = Next->Asl.Next;
- if (Next->Asl.ParseOpcode == DEFAULT_ARG)
- {
- Next->Asl.AmlLength = 1;
- Next->Asl.ParseOpcode = ZERO;
- OpcGenerateAmlOpcode (Next);
- }
-#endif
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpnDoDefinitionBlock
- *
- * PARAMETERS: Op - The parent parse node
- *
- * RETURN: None
- *
- * DESCRIPTION: Construct the AML operands for the DEFINITIONBLOCK ASL keyword
- *
- ******************************************************************************/
-
-static void
-OpnDoDefinitionBlock (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *Child;
- ACPI_SIZE Length;
- ACPI_NATIVE_UINT i;
-
-
- /*
- * These nodes get stuffed into the table header. They are special
- * cased when the table is written to the output file.
- *
- * Mark all of these nodes as non-usable so they won't get output
- * as AML opcodes!
- */
-
- /* Get AML filename. Use it if non-null */
-
- Child = Op->Asl.Child;
- if (Child->Asl.Value.Buffer &&
- *Child->Asl.Value.Buffer &&
- (Gbl_UseDefaultAmlFilename))
- {
- Gbl_OutputFilenamePrefix = (char *) Child->Asl.Value.Buffer;
- }
- Child->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
-
- /* Signature */
-
- Child = Child->Asl.Next;
- Child->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
- if (Child->Asl.Value.String)
- {
- Gbl_TableSignature = Child->Asl.Value.String;
- if (ACPI_STRLEN (Gbl_TableSignature) != 4)
- {
- AslError (ASL_ERROR, ASL_MSG_TABLE_SIGNATURE, Child,
- "Length not exactly 4");
- }
-
- for (i = 0; i < 4; i++)
- {
- if (!isalnum (Gbl_TableSignature[i]))
- {
- AslError (ASL_ERROR, ASL_MSG_TABLE_SIGNATURE, Child,
- "Contains non-alphanumeric characters");
- }
- }
- }
-
- /* Revision */
-
- Child = Child->Asl.Next;
- Child->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
- /*
- * We used the revision to set the integer width earlier
- */
-
- /* OEMID */
-
- Child = Child->Asl.Next;
- Child->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
-
- /* OEM TableID */
-
- Child = Child->Asl.Next;
- Child->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
- if (Child->Asl.Value.String)
- {
- Length = ACPI_STRLEN (Child->Asl.Value.String);
- Gbl_TableId = AcpiOsAllocate (Length + 1);
- ACPI_STRCPY (Gbl_TableId, Child->Asl.Value.String);
-
- for (i = 0; i < Length; i++)
- {
- if (Gbl_TableId[i] == ' ')
- {
- Gbl_TableId[i] = 0;
- break;
- }
- }
- }
-
- /* OEM Revision */
-
- Child = Child->Asl.Next;
- Child->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: UtGetArg
- *
- * PARAMETERS: Op - Get an argument for this op
- * Argn - Nth argument to get
- *
- * RETURN: The argument (as an Op object). NULL if argument does not exist
- *
- * DESCRIPTION: Get the specified op's argument (peer)
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT *
-UtGetArg (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Argn)
-{
- ACPI_PARSE_OBJECT *Arg = NULL;
-
-
- /* Get the requested argument object */
-
- Arg = Op->Asl.Child;
- while (Arg && Argn)
- {
- Argn--;
- Arg = Arg->Asl.Next;
- }
-
- return (Arg);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpnAttachNameToNode
- *
- * PARAMETERS: Op - The parent parse node
- *
- * RETURN: None
- *
- * DESCRIPTION: For the named ASL/AML operators, get the actual name from the
- * argument list and attach it to the parent node so that we
- * can get to it quickly later.
- *
- ******************************************************************************/
-
-static void
-OpnAttachNameToNode (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *Child = NULL;
-
-
- if (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL)
- {
- Child = UtGetArg (Op, 0);
- }
- else switch (Op->Asl.AmlOpcode)
- {
- case AML_DATA_REGION_OP:
- case AML_DEVICE_OP:
- case AML_EVENT_OP:
- case AML_METHOD_OP:
- case AML_MUTEX_OP:
- case AML_REGION_OP:
- case AML_POWER_RES_OP:
- case AML_PROCESSOR_OP:
- case AML_THERMAL_ZONE_OP:
- case AML_NAME_OP:
- case AML_SCOPE_OP:
-
- Child = UtGetArg (Op, 0);
- break;
-
- case AML_ALIAS_OP:
-
- Child = UtGetArg (Op, 1);
- break;
-
- case AML_CREATE_BIT_FIELD_OP:
- case AML_CREATE_BYTE_FIELD_OP:
- case AML_CREATE_WORD_FIELD_OP:
- case AML_CREATE_DWORD_FIELD_OP:
- case AML_CREATE_QWORD_FIELD_OP:
-
- Child = UtGetArg (Op, 2);
- break;
-
- case AML_CREATE_FIELD_OP:
-
- Child = UtGetArg (Op, 3);
- break;
-
- case AML_BANK_FIELD_OP:
- case AML_INDEX_FIELD_OP:
- case AML_FIELD_OP:
-
- return;
-
- default:
- return;
- }
-
- if (Child)
- {
- UtAttachNamepathToOwner (Op, Child);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OpnGenerateAmlOperands
- *
- * PARAMETERS: Op - The parent parse node
- *
- * RETURN: None
- *
- * DESCRIPTION: Prepare nodes to be output as AML data and operands. The more
- * complex AML opcodes require processing of the child nodes
- * (arguments/operands).
- *
- ******************************************************************************/
-
-void
-OpnGenerateAmlOperands (
- ACPI_PARSE_OBJECT *Op)
-{
-
-
- if (Op->Asl.AmlOpcode == AML_RAW_DATA_BYTE)
- {
- return;
- }
-
- switch (Op->Asl.ParseOpcode)
- {
- case PARSEOP_DEFINITIONBLOCK:
- OpnDoDefinitionBlock (Op);
- break;
-
- case PARSEOP_METHOD:
- OpnDoMethod (Op);
- break;
-
- case PARSEOP_MUTEX:
- OpnDoMutex (Op);
- break;
-
- case PARSEOP_FIELD:
- OpnDoField (Op);
- break;
-
- case PARSEOP_INDEXFIELD:
- OpnDoIndexField (Op);
- break;
-
- case PARSEOP_BANKFIELD:
- OpnDoBankField (Op);
- break;
-
- case PARSEOP_BUFFER:
- OpnDoBuffer (Op);
- break;
-
- case PARSEOP_LOADTABLE:
- OpnDoLoadTable (Op);
- break;
-
- case PARSEOP_OPERATIONREGION:
- OpnDoRegion (Op);
- break;
-
- case PARSEOP_RESOURCETEMPLATE:
- RsDoResourceTemplate (Op);
- break;
-
- case PARSEOP_NAMESEG:
- case PARSEOP_NAMESTRING:
- case PARSEOP_METHODCALL:
- case PARSEOP_STRING_LITERAL:
- break;
-
- default:
- break;
- }
-
- /* TBD: move */
-
- OpnAttachNameToNode (Op);
-}
-
-
diff --git a/sys/contrib/dev/acpica/compiler/aslopt.c b/sys/contrib/dev/acpica/compiler/aslopt.c
deleted file mode 100644
index 2ea9aea..0000000
--- a/sys/contrib/dev/acpica/compiler/aslopt.c
+++ /dev/null
@@ -1,869 +0,0 @@
-/******************************************************************************
- *
- * Module Name: aslopt- Compiler optimizations
- * $Revision: 1.26 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/compiler/aslcompiler.h>
-#include "aslcompiler.y.h"
-
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("aslopt")
-
-
-static UINT32 OptTotal = 0;
-
-/* Local prototypes */
-
-static ACPI_STATUS
-OptSearchToRoot (
- ACPI_PARSE_OBJECT *Op,
- ACPI_WALK_STATE *WalkState,
- ACPI_NAMESPACE_NODE *CurrentNode,
- ACPI_NAMESPACE_NODE *TargetNode,
- ACPI_BUFFER *TargetPath,
- char **NewPath);
-
-static ACPI_STATUS
-OptBuildShortestPath (
- ACPI_PARSE_OBJECT *Op,
- ACPI_WALK_STATE *WalkState,
- ACPI_NAMESPACE_NODE *CurrentNode,
- ACPI_NAMESPACE_NODE *TargetNode,
- ACPI_BUFFER *CurrentPath,
- ACPI_BUFFER *TargetPath,
- ACPI_SIZE AmlNameStringLength,
- UINT8 IsDeclaration,
- char **ReturnNewPath);
-
-static ACPI_STATUS
-OptOptimizeNameDeclaration (
- ACPI_PARSE_OBJECT *Op,
- ACPI_WALK_STATE *WalkState,
- ACPI_NAMESPACE_NODE *CurrentNode,
- ACPI_NAMESPACE_NODE *TargetNode,
- char *AmlNameString,
- char **NewPath);
-
-
-/*******************************************************************************
- *
- * FUNCTION: OptSearchToRoot
- *
- * PARAMETERS: Op - Current parser op
- * WalkState - Current state
- * CurrentNode - Where we are in the namespace
- * TargetNode - Node to which we are referring
- * TargetPath - External full path to the target node
- * NewPath - Where the optimized path is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Attempt to optimize a reference to a single 4-character ACPI
- * name utilizing the search-to-root name resolution algorithm
- * that is used by AML interpreters.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-OptSearchToRoot (
- ACPI_PARSE_OBJECT *Op,
- ACPI_WALK_STATE *WalkState,
- ACPI_NAMESPACE_NODE *CurrentNode,
- ACPI_NAMESPACE_NODE *TargetNode,
- ACPI_BUFFER *TargetPath,
- char **NewPath)
-{
- ACPI_NAMESPACE_NODE *Node;
- ACPI_GENERIC_STATE ScopeInfo;
- ACPI_STATUS Status;
- char *Path;
-
-
- ACPI_FUNCTION_NAME (OptSearchToRoot);
-
-
- /*
- * Check if search-to-root can be utilized. Use the last NameSeg of
- * the NamePath and 1) See if can be found and 2) If found, make
- * sure that it is the same node that we want. If there is another
- * name in the search path before the one we want, the nodes will
- * not match, and we cannot use this optimization.
- */
- Path = &(((char *) TargetPath->Pointer)[TargetPath->Length -
- ACPI_NAME_SIZE]),
- ScopeInfo.Scope.Node = CurrentNode;
-
- /* Lookup the NameSeg using SEARCH_PARENT (search-to-root) */
-
- Status = AcpiNsLookup (&ScopeInfo, Path, ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE,
- ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE,
- WalkState, &(Node));
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- /*
- * We found the name, but we must check to make sure that the node
- * matches. Otherwise, there is another identical name in the search
- * path that precludes the use of this optimization.
- */
- if (Node != TargetNode)
- {
- /*
- * This means that another object with the same name was found first,
- * and we cannot use this optimization.
- */
- return (AE_NOT_FOUND);
- }
-
- /* Found the node, we can use this optimization */
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OPTIMIZATIONS,
- "NAMESEG: %-24s", Path));
-
- /* We must allocate a new string for the name (TargetPath gets deleted) */
-
- *NewPath = ACPI_ALLOCATE_ZEROED (ACPI_NAME_SIZE + 1);
- ACPI_STRCPY (*NewPath, Path);
-
- if (ACPI_STRNCMP (*NewPath, "_T_", 3))
- {
- AslError (ASL_OPTIMIZATION, ASL_MSG_SINGLE_NAME_OPTIMIZATION, Op,
- *NewPath);
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OptBuildShortestPath
- *
- * PARAMETERS: Op - Current parser op
- * WalkState - Current state
- * CurrentNode - Where we are in the namespace
- * TargetNode - Node to which we are referring
- * CurrentPath - External full path to the current node
- * TargetPath - External full path to the target node
- * AmlNameStringLength - Length of the original namepath
- * IsDeclaration - TRUE for declaration, FALSE for reference
- * ReturnNewPath - Where the optimized path is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Build an optimal NamePath using carats
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-OptBuildShortestPath (
- ACPI_PARSE_OBJECT *Op,
- ACPI_WALK_STATE *WalkState,
- ACPI_NAMESPACE_NODE *CurrentNode,
- ACPI_NAMESPACE_NODE *TargetNode,
- ACPI_BUFFER *CurrentPath,
- ACPI_BUFFER *TargetPath,
- ACPI_SIZE AmlNameStringLength,
- UINT8 IsDeclaration,
- char **ReturnNewPath)
-{
- UINT32 NumCommonSegments;
- UINT32 MaxCommonSegments;
- ACPI_NATIVE_UINT Index;
- UINT32 NumCarats;
- ACPI_NATIVE_UINT i;
- char *NewPath;
- char *NewPathExternal;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_GENERIC_STATE ScopeInfo;
- ACPI_STATUS Status;
- BOOLEAN SubPath = FALSE;
-
-
- ACPI_FUNCTION_NAME (OptBuildShortestPath);
-
-
- ScopeInfo.Scope.Node = CurrentNode;
-
- /*
- * Determine the maximum number of NameSegs that the Target and Current paths
- * can possibly have in common. (To optimize, we have to have at least 1)
- *
- * Note: The external NamePath string lengths are always a multiple of 5
- * (ACPI_NAME_SIZE + separator)
- */
- MaxCommonSegments = TargetPath->Length / ACPI_PATH_SEGMENT_LENGTH;
- if (CurrentPath->Length < TargetPath->Length)
- {
- MaxCommonSegments = CurrentPath->Length / ACPI_PATH_SEGMENT_LENGTH;
- }
-
- /*
- * Determine how many NameSegs the two paths have in common.
- * (Starting from the root)
- */
- for (NumCommonSegments = 0;
- NumCommonSegments < MaxCommonSegments;
- NumCommonSegments++)
- {
- /* Compare two single NameSegs */
-
- if (ACPI_STRNCMP (
- &((char *) TargetPath->Pointer)[(NumCommonSegments *
- ACPI_PATH_SEGMENT_LENGTH) + 1],
- &((char *) CurrentPath->Pointer)[(NumCommonSegments *
- ACPI_PATH_SEGMENT_LENGTH) + 1],
- ACPI_NAME_SIZE))
- {
- /* Mismatch */
-
- break;
- }
- }
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OPTIMIZATIONS, " COMMON: %d",
- NumCommonSegments));
-
- /* There must be at least 1 common NameSeg in order to optimize */
-
- if (NumCommonSegments == 0)
- {
- return (AE_NOT_FOUND);
- }
-
- if (NumCommonSegments == MaxCommonSegments)
- {
- if (CurrentPath->Length == TargetPath->Length)
- {
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OPTIMIZATIONS, " SAME PATH"));
- return (AE_NOT_FOUND);
- }
- else
- {
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OPTIMIZATIONS, " SUBPATH"));
- SubPath = TRUE;
- }
- }
-
- /* Determine how many prefix Carats are required */
-
- NumCarats = (CurrentPath->Length / ACPI_PATH_SEGMENT_LENGTH) -
- NumCommonSegments;
-
- /*
- * Construct a new target string
- */
- NewPathExternal = ACPI_ALLOCATE_ZEROED (
- TargetPath->Length + NumCarats + 1);
-
- /* Insert the Carats into the Target string */
-
- for (i = 0; i < NumCarats; i++)
- {
- NewPathExternal[i] = '^';
- }
-
- /*
- * Copy only the necessary (optimal) segments from the original
- * target string
- */
- Index = (NumCommonSegments * ACPI_PATH_SEGMENT_LENGTH) + 1;
-
- /* Special handling for exact subpath in a name declaration */
-
- if (IsDeclaration && SubPath && (CurrentPath->Length > TargetPath->Length))
- {
- /*
- * The current path is longer than the target, and the target is a
- * subpath of the current path. We must include one more NameSeg of
- * the target path
- */
- Index -= ACPI_PATH_SEGMENT_LENGTH;
-
- /* Special handling for Scope() operator */
-
- if (Op->Asl.AmlOpcode == AML_SCOPE_OP)
- {
- NewPathExternal[i] = '^';
- i++;
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OPTIMIZATIONS, "(EXTRA ^)"));
- }
- }
-
- /* Make sure we haven't gone off the end of the target path */
-
- if (Index > TargetPath->Length)
- {
- Index = TargetPath->Length;
- }
-
- ACPI_STRCPY (&NewPathExternal[i], &((char *) TargetPath->Pointer)[Index]);
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OPTIMIZATIONS, " %-24s", NewPathExternal));
-
- /*
- * Internalize the new target string and check it against the original
- * string to make sure that this is in fact an optimization. If the
- * original string is already optimal, there is no point in continuing.
- */
- Status = AcpiNsInternalizeName (NewPathExternal, &NewPath);
- if (ACPI_FAILURE (Status))
- {
- AslCoreSubsystemError (Op, Status, "Internalizing new NamePath",
- ASL_NO_ABORT);
- ACPI_FREE (NewPathExternal);
- return (Status);
- }
-
- if (ACPI_STRLEN (NewPath) >= AmlNameStringLength)
- {
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OPTIMIZATIONS,
- " NOT SHORTER (New %u old %u)",
- ACPI_STRLEN (NewPath), AmlNameStringLength));
- ACPI_FREE (NewPathExternal);
- return (AE_NOT_FOUND);
- }
-
- /*
- * Check to make sure that the optimization finds the node we are
- * looking for. This is simply a sanity check on the new
- * path that has been created.
- */
- Status = AcpiNsLookup (&ScopeInfo, NewPath,
- ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE,
- ACPI_NS_DONT_OPEN_SCOPE, WalkState, &(Node));
- if (ACPI_SUCCESS (Status))
- {
- /* Found the namepath, but make sure the node is correct */
-
- if (Node == TargetNode)
- {
- /* The lookup matched the node, accept this optimization */
-
- AslError (ASL_OPTIMIZATION, ASL_MSG_NAME_OPTIMIZATION,
- Op, NewPathExternal);
- *ReturnNewPath = NewPath;
- }
- else
- {
- /* Node is not correct, do not use this optimization */
-
- Status = AE_NOT_FOUND;
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OPTIMIZATIONS, " ***** WRONG NODE"));
- AslError (ASL_WARNING, ASL_MSG_COMPILER_INTERNAL, Op,
- "Not using optimized name - found wrong node");
- }
- }
- else
- {
- /* The lookup failed, we obviously cannot use this optimization */
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OPTIMIZATIONS, " ***** NOT FOUND"));
- AslError (ASL_WARNING, ASL_MSG_COMPILER_INTERNAL, Op,
- "Not using optimized name - did not find node");
- }
-
- ACPI_FREE (NewPathExternal);
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OptOptimizeNameDeclaration
- *
- * PARAMETERS: Op - Current parser op
- * WalkState - Current state
- * CurrentNode - Where we are in the namespace
- * AmlNameString - Unoptimized namepath
- * NewPath - Where the optimized path is returned
- *
- * RETURN: Status. AE_OK If path is optimized
- *
- * DESCRIPTION: Perform a simple optimization of removing an extraneous
- * backslash prefix if we are already at the root scope.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-OptOptimizeNameDeclaration (
- ACPI_PARSE_OBJECT *Op,
- ACPI_WALK_STATE *WalkState,
- ACPI_NAMESPACE_NODE *CurrentNode,
- ACPI_NAMESPACE_NODE *TargetNode,
- char *AmlNameString,
- char **NewPath)
-{
- ACPI_STATUS Status;
- char *NewPathExternal;
- ACPI_GENERIC_STATE ScopeInfo;
- ACPI_NAMESPACE_NODE *Node;
-
-
- ACPI_FUNCTION_TRACE (OptOptimizeNameDeclaration);
-
-
- if (((CurrentNode == AcpiGbl_RootNode) ||
- (Op->Common.Parent->Asl.ParseOpcode == PARSEOP_DEFINITIONBLOCK)) &&
- (AmlNameString[0] == '\\'))
- {
- /*
- * The current scope is the root, and the namepath has a root prefix
- * that is therefore extraneous. Remove it.
- */
- *NewPath = &AmlNameString[1];
-
- /* Debug output */
-
- Status = AcpiNsExternalizeName (ACPI_UINT32_MAX, *NewPath,
- NULL, &NewPathExternal);
- if (ACPI_FAILURE (Status))
- {
- AslCoreSubsystemError (Op, Status, "Externalizing NamePath",
- ASL_NO_ABORT);
- return (Status);
- }
-
- /*
- * Check to make sure that the optimization finds the node we are
- * looking for. This is simply a sanity check on the new
- * path that has been created.
- */
- ScopeInfo.Scope.Node = CurrentNode;
- Status = AcpiNsLookup (&ScopeInfo, *NewPath,
- ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE,
- ACPI_NS_DONT_OPEN_SCOPE, WalkState, &(Node));
- if (ACPI_SUCCESS (Status))
- {
- /* Found the namepath, but make sure the node is correct */
-
- if (Node == TargetNode)
- {
- /* The lookup matched the node, accept this optimization */
-
- AslError (ASL_OPTIMIZATION, ASL_MSG_NAME_OPTIMIZATION,
- Op, NewPathExternal);
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OPTIMIZATIONS,
- "AT ROOT: %-24s", NewPathExternal));
- }
- else
- {
- /* Node is not correct, do not use this optimization */
-
- Status = AE_NOT_FOUND;
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OPTIMIZATIONS,
- " ***** WRONG NODE"));
- AslError (ASL_WARNING, ASL_MSG_COMPILER_INTERNAL, Op,
- "Not using optimized name - found wrong node");
- }
- }
- else
- {
- /* The lookup failed, we obviously cannot use this optimization */
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OPTIMIZATIONS,
- " ***** NOT FOUND"));
- AslError (ASL_WARNING, ASL_MSG_COMPILER_INTERNAL, Op,
- "Not using optimized name - did not find node");
- }
-
- ACPI_FREE (NewPathExternal);
- return (Status);
- }
-
- /* Could not optimize */
-
- return (AE_NOT_FOUND);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: OptOptimizeNamePath
- *
- * PARAMETERS: Op - Current parser op
- * Flags - Opcode info flags
- * WalkState - Current state
- * AmlNameString - Unoptimized namepath
- * TargetNode - Node to which AmlNameString refers
- *
- * RETURN: None. If path is optimized, the Op is updated with new path
- *
- * DESCRIPTION: Optimize a Named Declaration or Reference to the minimal length.
- * Must take into account both the current location in the
- * namespace and the actual reference path.
- *
- ******************************************************************************/
-
-void
-OptOptimizeNamePath (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Flags,
- ACPI_WALK_STATE *WalkState,
- char *AmlNameString,
- ACPI_NAMESPACE_NODE *TargetNode)
-{
- ACPI_STATUS Status;
- ACPI_BUFFER TargetPath;
- ACPI_BUFFER CurrentPath;
- ACPI_SIZE AmlNameStringLength;
- ACPI_NAMESPACE_NODE *CurrentNode;
- char *ExternalNameString;
- char *NewPath = NULL;
- ACPI_SIZE HowMuchShorter;
- ACPI_PARSE_OBJECT *NextOp;
-
-
- ACPI_FUNCTION_TRACE (OptOptimizeNamePath);
-
-
- /* This is an optional optimization */
-
- if (!Gbl_ReferenceOptimizationFlag)
- {
- return_VOID;
- }
-
- /* Various required items */
-
- if (!TargetNode || !WalkState || !AmlNameString || !Op->Common.Parent)
- {
- return_VOID;
- }
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OPTIMIZATIONS, "%5d [%12.12s] [%12.12s] ",
- Op->Asl.LogicalLineNumber,
- AcpiPsGetOpcodeName (Op->Common.Parent->Common.AmlOpcode),
- AcpiPsGetOpcodeName (Op->Common.AmlOpcode)));
-
- if (!(Flags & (AML_NAMED | AML_CREATE)))
- {
- if (Op->Asl.CompileFlags & NODE_IS_NAME_DECLARATION)
- {
- /* We don't want to fuss with actual name declaration nodes here */
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OPTIMIZATIONS,
- "******* NAME DECLARATION\n"));
- return_VOID;
- }
- }
-
- /*
- * The original path must be longer than one NameSeg (4 chars) for there
- * to be any possibility that it can be optimized to a shorter string
- */
- AmlNameStringLength = ACPI_STRLEN (AmlNameString);
- if (AmlNameStringLength <= ACPI_NAME_SIZE)
- {
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OPTIMIZATIONS,
- "NAMESEG %4.4s\n", AmlNameString));
- return_VOID;
- }
-
- /*
- * We need to obtain the node that represents the current scope -- where
- * we are right now in the namespace. We will compare this path
- * against the Namepath, looking for commonality.
- */
- CurrentNode = AcpiGbl_RootNode;
- if (WalkState->ScopeInfo)
- {
- CurrentNode = WalkState->ScopeInfo->Scope.Node;
- }
-
- if (Flags & (AML_NAMED | AML_CREATE))
- {
- /* This is the declaration of a new name */
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OPTIMIZATIONS, "NAME"));
-
- /*
- * The node of interest is the parent of this node
- * (the containing scope)
- */
- CurrentNode = Op->Asl.Parent->Asl.Node;
- if (!CurrentNode)
- {
- CurrentNode = AcpiGbl_RootNode;
- }
- }
- else
- {
- /* This is a reference to an existing named object */
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OPTIMIZATIONS, "REF "));
- }
-
- /*
- * Obtain the full paths to the two nodes that we are interested in
- * (Target and current namespace location) in external
- * format -- something we can easily manipulate
- */
- TargetPath.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
- Status = AcpiNsHandleToPathname (TargetNode, &TargetPath);
- if (ACPI_FAILURE (Status))
- {
- AslCoreSubsystemError (Op, Status, "Getting Target NamePath",
- ASL_NO_ABORT);
- return_VOID;
- }
- TargetPath.Length--; /* Subtract one for null terminator */
-
- /* CurrentPath is the path to this scope (where we are in the namespace) */
-
- CurrentPath.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
- Status = AcpiNsHandleToPathname (CurrentNode, &CurrentPath);
- if (ACPI_FAILURE (Status))
- {
- AslCoreSubsystemError (Op, Status, "Getting Current NamePath",
- ASL_NO_ABORT);
- return_VOID;
- }
- CurrentPath.Length--; /* Subtract one for null terminator */
-
- /* Debug output only */
-
- Status = AcpiNsExternalizeName (ACPI_UINT32_MAX, AmlNameString,
- NULL, &ExternalNameString);
- if (ACPI_FAILURE (Status))
- {
- AslCoreSubsystemError (Op, Status, "Externalizing NamePath",
- ASL_NO_ABORT);
- return_VOID;
- }
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OPTIMIZATIONS,
- "%37s (%2u) ==> %-32s(%2u) %-32s",
- (char *) CurrentPath.Pointer, CurrentPath.Length,
- (char *) TargetPath.Pointer, TargetPath.Length, ExternalNameString));
-
- ACPI_FREE (ExternalNameString);
-
- /*
- * Attempt an optmization depending on the type of namepath
- */
- if (Flags & (AML_NAMED | AML_CREATE))
- {
- /*
- * This is a named opcode and the namepath is a name declaration, not
- * a reference.
- */
- Status = OptOptimizeNameDeclaration (Op, WalkState, CurrentNode,
- TargetNode, AmlNameString, &NewPath);
- if (ACPI_FAILURE (Status))
- {
- /*
- * 2) now attempt to
- * optimize the namestring with carats (up-arrow)
- */
- Status = OptBuildShortestPath (Op, WalkState, CurrentNode,
- TargetNode, &CurrentPath, &TargetPath,
- AmlNameStringLength, 1, &NewPath);
- }
- }
- else
- {
- /*
- * This is a reference to an existing named object
- *
- * 1) Check if search-to-root can be utilized using the last
- * NameSeg of the NamePath
- */
- Status = OptSearchToRoot (Op, WalkState, CurrentNode,
- TargetNode, &TargetPath, &NewPath);
- if (ACPI_FAILURE (Status))
- {
- /*
- * 2) Search-to-root could not be used, now attempt to
- * optimize the namestring with carats (up-arrow)
- */
- Status = OptBuildShortestPath (Op, WalkState, CurrentNode,
- TargetNode, &CurrentPath, &TargetPath,
- AmlNameStringLength, 0, &NewPath);
- }
- }
-
- /*
- * Success from above indicates that the NamePath was successfully
- * optimized. We need to update the parse op with the new name
- */
- if (ACPI_SUCCESS (Status))
- {
- HowMuchShorter = (AmlNameStringLength - ACPI_STRLEN (NewPath));
- OptTotal += HowMuchShorter;
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OPTIMIZATIONS, " REDUCED %2u (%u)",
- HowMuchShorter, OptTotal));
-
- if (Flags & AML_NAMED)
- {
- if (Op->Asl.AmlOpcode == AML_ALIAS_OP)
- {
- /*
- * ALIAS is the only oddball opcode, the name declaration
- * (alias name) is the second operand
- */
- Op->Asl.Child->Asl.Next->Asl.Value.String = NewPath;
- Op->Asl.Child->Asl.Next->Asl.AmlLength = ACPI_STRLEN (NewPath);
- }
- else
- {
- Op->Asl.Child->Asl.Value.String = NewPath;
- Op->Asl.Child->Asl.AmlLength = ACPI_STRLEN (NewPath);
- }
- }
- else if (Flags & AML_CREATE)
- {
- /* Name must appear as the last parameter */
-
- NextOp = Op->Asl.Child;
- while (!(NextOp->Asl.CompileFlags & NODE_IS_NAME_DECLARATION))
- {
- NextOp = NextOp->Asl.Next;
- }
- /* Update the parse node with the new NamePath */
-
- NextOp->Asl.Value.String = NewPath;
- NextOp->Asl.AmlLength = ACPI_STRLEN (NewPath);
- }
- else
- {
- /* Update the parse node with the new NamePath */
-
- Op->Asl.Value.String = NewPath;
- Op->Asl.AmlLength = ACPI_STRLEN (NewPath);
- }
- }
- else
- {
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OPTIMIZATIONS, " ALREADY OPTIMAL"));
- }
-
- /* Cleanup path buffers */
-
- ACPI_FREE (TargetPath.Pointer);
- ACPI_FREE (CurrentPath.Pointer);
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OPTIMIZATIONS, "\n"));
- return_VOID;
-}
-
diff --git a/sys/contrib/dev/acpica/compiler/aslresource.c b/sys/contrib/dev/acpica/compiler/aslresource.c
deleted file mode 100644
index c33637e..0000000
--- a/sys/contrib/dev/acpica/compiler/aslresource.c
+++ /dev/null
@@ -1,760 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: aslresource - Resource templates and descriptors
- * $Revision: 1.43 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/compiler/aslcompiler.h>
-#include "aslcompiler.y.h"
-#include <contrib/dev/acpica/amlcode.h>
-
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("aslresource")
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsAllocateResourceNode
- *
- * PARAMETERS: Size - Size of node in bytes
- *
- * RETURN: The allocated node - aborts on allocation failure
- *
- * DESCRIPTION: Allocate a resource description node and the resource
- * descriptor itself (the nodes are used to link descriptors).
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsAllocateResourceNode (
- UINT32 Size)
-{
- ASL_RESOURCE_NODE *Rnode;
-
-
- /* Allocate the node */
-
- Rnode = UtLocalCalloc (sizeof (ASL_RESOURCE_NODE));
-
- /* Allocate the resource descriptor itself */
-
- Rnode->Buffer = UtLocalCalloc (Size);
- Rnode->BufferLength = Size;
-
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsCreateBitField
- *
- * PARAMETERS: Op - Resource field node
- * Name - Name of the field (Used only to reference
- * the field in the ASL, not in the AML)
- * ByteOffset - Offset from the field start
- * BitOffset - Additional bit offset
- *
- * RETURN: None, sets fields within the input node
- *
- * DESCRIPTION: Utility function to generate a named bit field within a
- * resource descriptor. Mark a node as 1) a field in a resource
- * descriptor, and 2) set the value to be a BIT offset
- *
- ******************************************************************************/
-
-void
-RsCreateBitField (
- ACPI_PARSE_OBJECT *Op,
- char *Name,
- UINT32 ByteOffset,
- UINT32 BitOffset)
-{
-
- Op->Asl.ExternalName = Name;
- Op->Asl.Value.Integer = ((ACPI_INTEGER) ByteOffset * 8) + BitOffset;
- Op->Asl.CompileFlags |= (NODE_IS_RESOURCE_FIELD | NODE_IS_BIT_OFFSET);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsCreateByteField
- *
- * PARAMETERS: Op - Resource field node
- * Name - Name of the field (Used only to reference
- * the field in the ASL, not in the AML)
- * ByteOffset - Offset from the field start
- *
- * RETURN: None, sets fields within the input node
- *
- * DESCRIPTION: Utility function to generate a named byte field within a
- * resource descriptor. Mark a node as 1) a field in a resource
- * descriptor, and 2) set the value to be a BYTE offset
- *
- ******************************************************************************/
-
-void
-RsCreateByteField (
- ACPI_PARSE_OBJECT *Op,
- char *Name,
- UINT32 ByteOffset)
-{
-
- Op->Asl.ExternalName = Name;
- Op->Asl.Value.Integer = ByteOffset;
- Op->Asl.CompileFlags |= NODE_IS_RESOURCE_FIELD;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsSetFlagBits
- *
- * PARAMETERS: *Flags - Pointer to the flag byte
- * Op - Flag initialization node
- * Position - Bit position within the flag byte
- * Default - Used if the node is DEFAULT.
- *
- * RETURN: Sets bits within the *Flags output byte.
- *
- * DESCRIPTION: Set a bit in a cumulative flags word from an initialization
- * node. Will use a default value if the node is DEFAULT, meaning
- * that no value was specified in the ASL. Used to merge multiple
- * keywords into a single flags byte.
- *
- ******************************************************************************/
-
-void
-RsSetFlagBits (
- UINT8 *Flags,
- ACPI_PARSE_OBJECT *Op,
- UINT8 Position,
- UINT8 DefaultBit)
-{
-
- if (Op->Asl.ParseOpcode == PARSEOP_DEFAULT_ARG)
- {
- /* Use the default bit */
-
- *Flags |= (DefaultBit << Position);
- }
- else
- {
- /* Use the bit specified in the initialization node */
-
- *Flags |= (((UINT8) Op->Asl.Value.Integer) << Position);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsCompleteNodeAndGetNext
- *
- * PARAMETERS: Op - Resource node to be completed
- *
- * RETURN: The next peer to the input node.
- *
- * DESCRIPTION: Mark the current node completed and return the next peer.
- * The node ParseOpcode is set to DEFAULT_ARG, meaning that
- * this node is to be ignored from now on.
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT *
-RsCompleteNodeAndGetNext (
- ACPI_PARSE_OBJECT *Op)
-{
-
- /* Mark this node unused */
-
- Op->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
-
- /* Move on to the next peer node in the initializer list */
-
- return (ASL_GET_PEER_NODE (Op));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsCheckListForDuplicates
- *
- * PARAMETERS: Op - First op in the initializer list
- *
- * RETURN: None
- *
- * DESCRIPTION: Check an initializer list for duplicate values. Emits an error
- * if any duplicates are found.
- *
- ******************************************************************************/
-
-void
-RsCheckListForDuplicates (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *NextValueOp = Op;
- ACPI_PARSE_OBJECT *NextOp;
- UINT32 Value;
-
-
- if (!Op)
- {
- return;
- }
-
- /* Search list once for each value in the list */
-
- while (NextValueOp)
- {
- Value = (UINT32) NextValueOp->Asl.Value.Integer;
-
- /* Compare this value to all remaining values in the list */
-
- NextOp = ASL_GET_PEER_NODE (NextValueOp);
- while (NextOp)
- {
- if (NextOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
- {
- /* Compare values */
-
- if (Value == (UINT32) NextOp->Asl.Value.Integer)
- {
- /* Emit error only once per duplicate node */
-
- if (!(NextOp->Asl.CompileFlags & NODE_IS_DUPLICATE))
- {
- NextOp->Asl.CompileFlags |= NODE_IS_DUPLICATE;
- AslError (ASL_ERROR, ASL_MSG_DUPLICATE_ITEM,
- NextOp, NULL);
- }
- }
- }
-
- NextOp = ASL_GET_PEER_NODE (NextOp);
- }
-
- NextValueOp = ASL_GET_PEER_NODE (NextValueOp);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoOneResourceDescriptor
- *
- * PARAMETERS: DescriptorTypeOp - Parent parse node of the descriptor
- * CurrentByteOffset - Offset in the resource descriptor
- * buffer.
- *
- * RETURN: A valid resource node for the descriptor
- *
- * DESCRIPTION: Dispatches the processing of one resource descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoOneResourceDescriptor (
- ACPI_PARSE_OBJECT *DescriptorTypeOp,
- UINT32 CurrentByteOffset,
- UINT8 *State)
-{
- ASL_RESOURCE_NODE *Rnode = NULL;
-
-
- /* Construct the resource */
-
- switch (DescriptorTypeOp->Asl.ParseOpcode)
- {
- case PARSEOP_DMA:
- Rnode = RsDoDmaDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_DWORDIO:
- Rnode = RsDoDwordIoDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_DWORDMEMORY:
- Rnode = RsDoDwordMemoryDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_DWORDSPACE:
- Rnode = RsDoDwordSpaceDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_ENDDEPENDENTFN:
- switch (*State)
- {
- case ACPI_RSTATE_NORMAL:
- AslError (ASL_ERROR, ASL_MSG_MISSING_STARTDEPENDENT,
- DescriptorTypeOp, NULL);
- break;
-
- case ACPI_RSTATE_START_DEPENDENT:
- AslError (ASL_ERROR, ASL_MSG_DEPENDENT_NESTING,
- DescriptorTypeOp, NULL);
- break;
-
- case ACPI_RSTATE_DEPENDENT_LIST:
- default:
- break;
- }
-
- *State = ACPI_RSTATE_NORMAL;
- Rnode = RsDoEndDependentDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_ENDTAG:
- Rnode = RsDoEndTagDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_EXTENDEDIO:
- Rnode = RsDoExtendedIoDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_EXTENDEDMEMORY:
- Rnode = RsDoExtendedMemoryDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_EXTENDEDSPACE:
- Rnode = RsDoExtendedSpaceDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_FIXEDIO:
- Rnode = RsDoFixedIoDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_INTERRUPT:
- Rnode = RsDoInterruptDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_IO:
- Rnode = RsDoIoDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_IRQ:
- Rnode = RsDoIrqDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_IRQNOFLAGS:
- Rnode = RsDoIrqNoFlagsDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_MEMORY24:
- Rnode = RsDoMemory24Descriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_MEMORY32:
- Rnode = RsDoMemory32Descriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_MEMORY32FIXED:
- Rnode = RsDoMemory32FixedDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_QWORDIO:
- Rnode = RsDoQwordIoDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_QWORDMEMORY:
- Rnode = RsDoQwordMemoryDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_QWORDSPACE:
- Rnode = RsDoQwordSpaceDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_REGISTER:
- Rnode = RsDoGeneralRegisterDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_STARTDEPENDENTFN:
- switch (*State)
- {
- case ACPI_RSTATE_START_DEPENDENT:
- AslError (ASL_ERROR, ASL_MSG_DEPENDENT_NESTING,
- DescriptorTypeOp, NULL);
- break;
-
- case ACPI_RSTATE_NORMAL:
- case ACPI_RSTATE_DEPENDENT_LIST:
- default:
- break;
- }
-
- *State = ACPI_RSTATE_START_DEPENDENT;
- Rnode = RsDoStartDependentDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- *State = ACPI_RSTATE_DEPENDENT_LIST;
- break;
-
- case PARSEOP_STARTDEPENDENTFN_NOPRI:
- switch (*State)
- {
- case ACPI_RSTATE_START_DEPENDENT:
- AslError (ASL_ERROR, ASL_MSG_DEPENDENT_NESTING,
- DescriptorTypeOp, NULL);
- break;
-
- case ACPI_RSTATE_NORMAL:
- case ACPI_RSTATE_DEPENDENT_LIST:
- default:
- break;
- }
-
- *State = ACPI_RSTATE_START_DEPENDENT;
- Rnode = RsDoStartDependentNoPriDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- *State = ACPI_RSTATE_DEPENDENT_LIST;
- break;
-
- case PARSEOP_VENDORLONG:
- Rnode = RsDoVendorLargeDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_VENDORSHORT:
- Rnode = RsDoVendorSmallDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_WORDBUSNUMBER:
- Rnode = RsDoWordBusNumberDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_WORDIO:
- Rnode = RsDoWordIoDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_WORDSPACE:
- Rnode = RsDoWordSpaceDescriptor (DescriptorTypeOp,
- CurrentByteOffset);
- break;
-
- case PARSEOP_DEFAULT_ARG:
- /* Just ignore any of these, they are used as fillers/placeholders */
- break;
-
- default:
- printf ("Unknown resource descriptor type [%s]\n",
- DescriptorTypeOp->Asl.ParseOpName);
- break;
- }
-
- /*
- * Mark original node as unused, but head of a resource descriptor.
- * This allows the resource to be installed in the namespace so that
- * references to the descriptor can be resolved.
- */
- DescriptorTypeOp->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;
- DescriptorTypeOp->Asl.CompileFlags = NODE_IS_RESOURCE_DESC;
- DescriptorTypeOp->Asl.Value.Integer = CurrentByteOffset;
-
- if (Rnode)
- {
- DescriptorTypeOp->Asl.FinalAmlLength = Rnode->BufferLength;
- }
-
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsLinkDescriptorChain
- *
- * PARAMETERS: PreviousRnode - Pointer to the node that will be previous
- * to the linked node, At exit, set to the
- * last node in the new chain.
- * Rnode - Resource node to link into the list
- *
- * RETURN: Cumulative buffer byte offset of the new segment of chain
- *
- * DESCRIPTION: Link a descriptor chain at the end of an existing chain.
- *
- ******************************************************************************/
-
-UINT32
-RsLinkDescriptorChain (
- ASL_RESOURCE_NODE **PreviousRnode,
- ASL_RESOURCE_NODE *Rnode)
-{
- ASL_RESOURCE_NODE *LastRnode;
- UINT32 CurrentByteOffset;
-
-
- /* Anything to do? */
-
- if (!Rnode)
- {
- return 0;
- }
-
- /* Point the previous node to the new node */
-
- (*PreviousRnode)->Next = Rnode;
- CurrentByteOffset = Rnode->BufferLength;
-
- /* Walk to the end of the chain headed by Rnode */
-
- LastRnode = Rnode;
- while (LastRnode->Next)
- {
- LastRnode = LastRnode->Next;
- CurrentByteOffset += LastRnode->BufferLength;
- }
-
- /* Previous node becomes the last node in the chain */
-
- *PreviousRnode = LastRnode;
- return CurrentByteOffset;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoResourceTemplate
- *
- * PARAMETERS: Op - Parent of a resource template list
- *
- * RETURN: None. Sets input node to point to a list of AML code
- *
- * DESCRIPTION: Merge a list of resource descriptors into a single AML buffer,
- * in preparation for output to the AML output file.
- *
- ******************************************************************************/
-
-void
-RsDoResourceTemplate (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *BufferLengthOp;
- ACPI_PARSE_OBJECT *BufferOp;
- ACPI_PARSE_OBJECT *DescriptorTypeOp;
- ACPI_PARSE_OBJECT *LastOp = NULL;
- UINT32 CurrentByteOffset = 0;
- ASL_RESOURCE_NODE HeadRnode;
- ASL_RESOURCE_NODE *PreviousRnode;
- ASL_RESOURCE_NODE *Rnode;
- UINT8 State;
-
-
- /* Mark parent as containing a resource template */
-
- if (Op->Asl.Parent)
- {
- Op->Asl.Parent->Asl.CompileFlags |= NODE_IS_RESOURCE_DESC;
- }
-
- /* ResourceTemplate Opcode is first (Op) */
- /* Buffer Length node is first child */
-
- BufferLengthOp = ASL_GET_CHILD_NODE (Op);
-
- /* Buffer Op is first peer */
-
- BufferOp = ASL_GET_PEER_NODE (BufferLengthOp);
-
- /* First Descriptor type is next */
-
- DescriptorTypeOp = ASL_GET_PEER_NODE (BufferOp);
-
- /*
- * Process all resource descriptors in the list
- * Note: It is assumed that the EndTag node has been automatically
- * inserted at the end of the template by the parser.
- */
- State = ACPI_RSTATE_NORMAL;
- PreviousRnode = &HeadRnode;
- while (DescriptorTypeOp)
- {
- DescriptorTypeOp->Asl.CompileFlags |= NODE_IS_RESOURCE_DESC;
- Rnode = RsDoOneResourceDescriptor (DescriptorTypeOp, CurrentByteOffset,
- &State);
-
- /*
- * Update current byte offset to indicate the number of bytes from the
- * start of the buffer. Buffer can include multiple descriptors, we
- * must keep track of the offset of not only each descriptor, but each
- * element (field) within each descriptor as well.
- */
- CurrentByteOffset += RsLinkDescriptorChain (&PreviousRnode, Rnode);
-
- /* Get the next descriptor in the list */
-
- LastOp = DescriptorTypeOp;
- DescriptorTypeOp = ASL_GET_PEER_NODE (DescriptorTypeOp);
- }
-
- if (State == ACPI_RSTATE_DEPENDENT_LIST)
- {
- if (LastOp)
- {
- LastOp = LastOp->Asl.Parent;
- }
- AslError (ASL_ERROR, ASL_MSG_MISSING_ENDDEPENDENT, LastOp, NULL);
- }
-
- /*
- * Transform the nodes into the following
- *
- * Op -> AML_BUFFER_OP
- * First Child -> BufferLength
- * Second Child -> Descriptor Buffer (raw byte data)
- */
- Op->Asl.ParseOpcode = PARSEOP_BUFFER;
- Op->Asl.AmlOpcode = AML_BUFFER_OP;
- Op->Asl.CompileFlags = NODE_AML_PACKAGE | NODE_IS_RESOURCE_DESC;
-
- BufferLengthOp->Asl.ParseOpcode = PARSEOP_INTEGER;
- BufferLengthOp->Asl.Value.Integer = CurrentByteOffset;
- (void) OpcSetOptimalIntegerSize (BufferLengthOp);
-
- BufferOp->Asl.ParseOpcode = PARSEOP_RAW_DATA;
- BufferOp->Asl.AmlOpcode = AML_RAW_DATA_CHAIN;
- BufferOp->Asl.AmlOpcodeLength = 0;
- BufferOp->Asl.AmlLength = CurrentByteOffset;
- BufferOp->Asl.Value.Buffer = (UINT8 *) HeadRnode.Next;
- BufferOp->Asl.CompileFlags |= NODE_IS_RESOURCE_DATA;
-
- return;
-}
-
-
diff --git a/sys/contrib/dev/acpica/compiler/aslrestype1.c b/sys/contrib/dev/acpica/compiler/aslrestype1.c
deleted file mode 100644
index e317436..0000000
--- a/sys/contrib/dev/acpica/compiler/aslrestype1.c
+++ /dev/null
@@ -1,1186 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: aslrestype1 - Short (type1) resource templates and descriptors
- * $Revision: 1.40 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/compiler/aslcompiler.h>
-#include "aslcompiler.y.h"
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("aslrestype1")
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoEndTagDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a short "EndDependentFn" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoEndTagDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ASL_RESOURCE_NODE *Rnode;
-
-
- Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_END_TAG));
-
- Descriptor = Rnode->Buffer;
- Descriptor->EndTag.DescriptorType = ACPI_RESOURCE_NAME_END_TAG |
- ASL_RDESC_END_TAG_SIZE;
- Descriptor->EndTag.Checksum = 0;
-
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoDmaDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a short "DMA" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoDmaDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT32 i;
- UINT8 DmaChannelMask = 0;
- UINT8 DmaChannels = 0;
-
-
- InitializerOp = Op->Asl.Child;
- Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_DMA));
-
- Descriptor = Rnode->Buffer;
- Descriptor->Dma.DescriptorType = ACPI_RESOURCE_NAME_DMA |
- ASL_RDESC_DMA_SIZE;
-
- /* Process all child initialization nodes */
-
- for (i = 0; InitializerOp; i++)
- {
- switch (i)
- {
- case 0: /* DMA type */
-
- RsSetFlagBits (&Descriptor->Dma.Flags, InitializerOp, 5, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_DMATYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Dma.Flags), 5);
- break;
-
- case 1: /* Bus Master */
-
- RsSetFlagBits (&Descriptor->Dma.Flags, InitializerOp, 2, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_BUSMASTER,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Dma.Flags), 2);
- break;
-
- case 2: /* Xfer Type (transfer width) */
-
- RsSetFlagBits (&Descriptor->Dma.Flags, InitializerOp, 0, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_XFERTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Dma.Flags), 0);
- break;
-
- case 3: /* Name */
-
- UtAttachNamepathToOwner (Op, InitializerOp);
- break;
-
- default:
-
- /* All DMA channel bytes are handled here, after flags and name */
-
- if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
- {
- /* Up to 8 channels can be specified in the list */
-
- DmaChannels++;
- if (DmaChannels > 8)
- {
- AslError (ASL_ERROR, ASL_MSG_DMA_LIST,
- InitializerOp, NULL);
- return (Rnode);
- }
-
- /* Only DMA channels 0-7 are allowed (mask is 8 bits) */
-
- if (InitializerOp->Asl.Value.Integer > 7)
- {
- AslError (ASL_ERROR, ASL_MSG_DMA_CHANNEL,
- InitializerOp, NULL);
- }
-
- /* Build the mask */
-
- DmaChannelMask |=
- (1 << ((UINT8) InitializerOp->Asl.Value.Integer));
- }
-
- if (i == 4) /* case 4: First DMA byte */
- {
- /* Check now for duplicates in list */
-
- RsCheckListForDuplicates (InitializerOp);
-
- /* Create a named field at the start of the list */
-
- RsCreateByteField (InitializerOp, ACPI_RESTAG_DMA,
- CurrentByteOffset +
- ASL_RESDESC_OFFSET (Dma.DmaChannelMask));
- }
- break;
- }
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
- /* Now we can set the channel mask */
-
- Descriptor->Dma.DmaChannelMask = DmaChannelMask;
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoEndDependentDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a short "EndDependentFn" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoEndDependentDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ASL_RESOURCE_NODE *Rnode;
-
-
- Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_END_DEPENDENT));
-
- Descriptor = Rnode->Buffer;
- Descriptor->EndDpf.DescriptorType = ACPI_RESOURCE_NAME_END_DEPENDENT |
- ASL_RDESC_END_DEPEND_SIZE;
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoFixedIoDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a short "FixedIO" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoFixedIoDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT32 i;
-
-
- InitializerOp = Op->Asl.Child;
- Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_FIXED_IO));
-
- Descriptor = Rnode->Buffer;
- Descriptor->Io.DescriptorType = ACPI_RESOURCE_NAME_FIXED_IO |
- ASL_RDESC_FIXED_IO_SIZE;
-
- /* Process all child initialization nodes */
-
- for (i = 0; InitializerOp; i++)
- {
- switch (i)
- {
- case 0: /* Base Address */
-
- Descriptor->FixedIo.Address =
- (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_BASEADDRESS,
- CurrentByteOffset + ASL_RESDESC_OFFSET (FixedIo.Address));
- break;
-
- case 1: /* Length */
-
- Descriptor->FixedIo.AddressLength =
- (UINT8) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (FixedIo.AddressLength));
- break;
-
- case 2: /* Name */
-
- UtAttachNamepathToOwner (Op, InitializerOp);
- break;
-
- default:
-
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_LIST, InitializerOp, NULL);
- break;
- }
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoIoDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a short "IO" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoIoDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT32 i;
-
-
- InitializerOp = Op->Asl.Child;
- Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_IO));
-
- Descriptor = Rnode->Buffer;
- Descriptor->Io.DescriptorType = ACPI_RESOURCE_NAME_IO |
- ASL_RDESC_IO_SIZE;
-
- /* Process all child initialization nodes */
-
- for (i = 0; InitializerOp; i++)
- {
- switch (i)
- {
- case 0: /* Decode size */
-
- RsSetFlagBits (&Descriptor->Io.Flags, InitializerOp, 0, 1);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_DECODE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Io.Flags), 0);
- break;
-
- case 1: /* Min Address */
-
- Descriptor->Io.Minimum =
- (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Io.Minimum));
- break;
-
- case 2: /* Max Address */
-
- Descriptor->Io.Maximum =
- (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Io.Maximum));
- break;
-
- case 3: /* Alignment */
-
- Descriptor->Io.Alignment =
- (UINT8) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_ALIGNMENT,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Io.Alignment));
- break;
-
- case 4: /* Length */
-
- Descriptor->Io.AddressLength =
- (UINT8) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Io.AddressLength));
- break;
-
- case 5: /* Name */
-
- UtAttachNamepathToOwner (Op, InitializerOp);
- break;
-
- default:
-
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_LIST, InitializerOp, NULL);
- break;
- }
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoIrqDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a short "IRQ" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoIrqDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT32 Interrupts = 0;
- UINT16 IrqMask = 0;
- UINT32 i;
-
-
- InitializerOp = Op->Asl.Child;
- Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_IRQ));
-
- /* Length = 3 (with flag byte) */
-
- Descriptor = Rnode->Buffer;
- Descriptor->Irq.DescriptorType = ACPI_RESOURCE_NAME_IRQ |
- (ASL_RDESC_IRQ_SIZE + 0x01);
-
- /* Process all child initialization nodes */
-
- for (i = 0; InitializerOp; i++)
- {
- switch (i)
- {
- case 0: /* Interrupt Type (or Mode - edge/level) */
-
- RsSetFlagBits (&Descriptor->Irq.Flags, InitializerOp, 0, 1);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_INTERRUPTTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Irq.Flags), 0);
- break;
-
- case 1: /* Interrupt Level (or Polarity - Active high/low) */
-
- RsSetFlagBits (&Descriptor->Irq.Flags, InitializerOp, 3, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_INTERRUPTLEVEL,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Irq.Flags), 3);
- break;
-
- case 2: /* Share Type - Default: exclusive (0) */
-
- RsSetFlagBits (&Descriptor->Irq.Flags, InitializerOp, 4, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_INTERRUPTSHARE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Irq.Flags), 4);
- break;
-
- case 3: /* Name */
-
- UtAttachNamepathToOwner (Op, InitializerOp);
- break;
-
- default:
-
- /* All IRQ bytes are handled here, after the flags and name */
-
- if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
- {
- /* Up to 16 interrupts can be specified in the list */
-
- Interrupts++;
- if (Interrupts > 16)
- {
- AslError (ASL_ERROR, ASL_MSG_INTERRUPT_LIST,
- InitializerOp, NULL);
- return (Rnode);
- }
-
- /* Only interrupts 0-15 are allowed (mask is 16 bits) */
-
- if (InitializerOp->Asl.Value.Integer > 15)
- {
- AslError (ASL_ERROR, ASL_MSG_INTERRUPT_NUMBER,
- InitializerOp, NULL);
- }
- else
- {
- IrqMask |= (1 << (UINT8) InitializerOp->Asl.Value.Integer);
- }
- }
-
- /* Case 4: First IRQ value in list */
-
- if (i == 4)
- {
- /* Check now for duplicates in list */
-
- RsCheckListForDuplicates (InitializerOp);
-
- /* Create a named field at the start of the list */
-
- RsCreateByteField (InitializerOp, ACPI_RESTAG_INTERRUPT,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Irq.IrqMask));
- }
- break;
- }
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
- /* Now we can set the channel mask */
-
- Descriptor->Irq.IrqMask = IrqMask;
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoIrqNoFlagsDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a short "IRQNoFlags" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoIrqNoFlagsDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT16 IrqMask = 0;
- UINT32 Interrupts = 0;
- UINT32 i;
-
-
- InitializerOp = Op->Asl.Child;
- Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_IRQ_NOFLAGS));
-
- Descriptor = Rnode->Buffer;
- Descriptor->Irq.DescriptorType = ACPI_RESOURCE_NAME_IRQ |
- ASL_RDESC_IRQ_SIZE;
-
- /* Process all child initialization nodes */
-
- for (i = 0; InitializerOp; i++)
- {
- switch (i)
- {
- case 0: /* Name */
-
- UtAttachNamepathToOwner (Op, InitializerOp);
- break;
-
- default:
-
- /* IRQ bytes are handled here, after the flags and name */
-
- if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
- {
- /* Up to 16 interrupts can be specified in the list */
-
- Interrupts++;
- if (Interrupts > 16)
- {
- AslError (ASL_ERROR, ASL_MSG_INTERRUPT_LIST,
- InitializerOp, NULL);
- return (Rnode);
- }
-
- /* Only interrupts 0-15 are allowed (mask is 16 bits) */
-
- if (InitializerOp->Asl.Value.Integer > 15)
- {
- AslError (ASL_ERROR, ASL_MSG_INTERRUPT_NUMBER,
- InitializerOp, NULL);
- }
- else
- {
- IrqMask |= (1 << ((UINT8) InitializerOp->Asl.Value.Integer));
- }
- }
-
- /* Case 1: First IRQ value in list */
-
- if (i == 1)
- {
- /* Check now for duplicates in list */
-
- RsCheckListForDuplicates (InitializerOp);
-
- /* Create a named field at the start of the list */
-
- RsCreateByteField (InitializerOp, ACPI_RESTAG_INTERRUPT,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Irq.IrqMask));
- }
- break;
- }
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
- /* Now we can set the interrupt mask */
-
- Descriptor->Irq.IrqMask = IrqMask;
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoMemory24Descriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a short "Memory24" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoMemory24Descriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT32 i;
-
-
- InitializerOp = Op->Asl.Child;
- Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_MEMORY24));
-
- Descriptor = Rnode->Buffer;
- Descriptor->Memory24.DescriptorType = ACPI_RESOURCE_NAME_MEMORY24;
- Descriptor->Memory24.ResourceLength = 9;
-
- /* Process all child initialization nodes */
-
- for (i = 0; InitializerOp; i++)
- {
- switch (i)
- {
- case 0: /* Read/Write type */
-
- RsSetFlagBits (&Descriptor->Memory24.Flags, InitializerOp, 0, 1);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_READWRITETYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Flags), 0);
- break;
-
- case 1: /* Min Address */
-
- Descriptor->Memory24.Minimum = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Minimum));
- break;
-
- case 2: /* Max Address */
-
- Descriptor->Memory24.Maximum = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Maximum));
- break;
-
- case 3: /* Alignment */
-
- Descriptor->Memory24.Alignment = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_ALIGNMENT,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Alignment));
- break;
-
- case 4: /* Length */
-
- Descriptor->Memory24.AddressLength = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.AddressLength));
- break;
-
- case 5: /* Name */
-
- UtAttachNamepathToOwner (Op, InitializerOp);
- break;
-
- default:
-
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_LIST, InitializerOp, NULL);
- break;
- }
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoMemory32Descriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a short "Memory32" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoMemory32Descriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT32 i;
-
-
- InitializerOp = Op->Asl.Child;
- Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_MEMORY32));
-
- Descriptor = Rnode->Buffer;
- Descriptor->Memory32.DescriptorType = ACPI_RESOURCE_NAME_MEMORY32;
- Descriptor->Memory32.ResourceLength = 17;
-
- /* Process all child initialization nodes */
-
- for (i = 0; InitializerOp; i++)
- {
- switch (i)
- {
- case 0: /* Read/Write type */
-
- RsSetFlagBits (&Descriptor->Memory32.Flags, InitializerOp, 0, 1);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_READWRITETYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Flags), 0);
- break;
-
- case 1: /* Min Address */
-
- Descriptor->Memory32.Minimum = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Minimum));
- break;
-
- case 2: /* Max Address */
-
- Descriptor->Memory32.Maximum = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Maximum));
- break;
-
- case 3: /* Alignment */
-
- Descriptor->Memory32.Alignment = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_ALIGNMENT,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Alignment));
- break;
-
- case 4: /* Length */
-
- Descriptor->Memory32.AddressLength = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.AddressLength));
- break;
-
- case 5: /* Name */
-
- UtAttachNamepathToOwner (Op, InitializerOp);
- break;
-
- default:
-
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_LIST, InitializerOp, NULL);
- break;
- }
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoMemory32FixedDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a short "Memory32Fixed" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoMemory32FixedDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT32 i;
-
-
- InitializerOp = Op->Asl.Child;
- Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_FIXED_MEMORY32));
-
- Descriptor = Rnode->Buffer;
- Descriptor->FixedMemory32.DescriptorType = ACPI_RESOURCE_NAME_FIXED_MEMORY32;
- Descriptor->FixedMemory32.ResourceLength = 9;
-
- /* Process all child initialization nodes */
-
- for (i = 0; InitializerOp; i++)
- {
- switch (i)
- {
- case 0: /* Read/Write type */
-
- RsSetFlagBits (&Descriptor->FixedMemory32.Flags, InitializerOp, 0, 1);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_READWRITETYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (FixedMemory32.Flags), 0);
- break;
-
- case 1: /* Address */
-
- Descriptor->FixedMemory32.Address = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_BASEADDRESS,
- CurrentByteOffset + ASL_RESDESC_OFFSET (FixedMemory32.Address));
- break;
-
- case 2: /* Length */
-
- Descriptor->FixedMemory32.AddressLength = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (FixedMemory32.AddressLength));
- break;
-
- case 3: /* Name */
-
- UtAttachNamepathToOwner (Op, InitializerOp);
- break;
-
- default:
-
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_LIST, InitializerOp, NULL);
- break;
- }
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoStartDependentDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a short "StartDependentFn" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoStartDependentDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- ASL_RESOURCE_NODE *PreviousRnode;
- ASL_RESOURCE_NODE *NextRnode;
- UINT32 i;
- UINT8 State;
-
-
- InitializerOp = Op->Asl.Child;
- Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_START_DEPENDENT));
-
- PreviousRnode = Rnode;
- Descriptor = Rnode->Buffer;
-
- /* Descriptor has priority byte */
-
- Descriptor->StartDpf.DescriptorType = ACPI_RESOURCE_NAME_START_DEPENDENT |
- (ASL_RDESC_ST_DEPEND_SIZE + 0x01);
-
- /* Process all child initialization nodes */
-
- State = ACPI_RSTATE_START_DEPENDENT;
- for (i = 0; InitializerOp; i++)
- {
- switch (i)
- {
- case 0: /* Compatibility Priority */
-
- if ((UINT8) InitializerOp->Asl.Value.Integer > 2)
- {
- AslError (ASL_ERROR, ASL_MSG_INVALID_PRIORITY,
- InitializerOp, NULL);
- }
-
- RsSetFlagBits (&Descriptor->StartDpf.Flags, InitializerOp, 0, 0);
- break;
-
- case 1: /* Performance/Robustness Priority */
-
- if ((UINT8) InitializerOp->Asl.Value.Integer > 2)
- {
- AslError (ASL_ERROR, ASL_MSG_INVALID_PERFORMANCE,
- InitializerOp, NULL);
- }
-
- RsSetFlagBits (&Descriptor->StartDpf.Flags, InitializerOp, 2, 0);
- break;
-
- default:
- NextRnode = RsDoOneResourceDescriptor (InitializerOp,
- CurrentByteOffset, &State);
-
- /*
- * Update current byte offset to indicate the number of bytes from the
- * start of the buffer. Buffer can include multiple descriptors, we
- * must keep track of the offset of not only each descriptor, but each
- * element (field) within each descriptor as well.
- */
-
- CurrentByteOffset += RsLinkDescriptorChain (&PreviousRnode,
- NextRnode);
- break;
- }
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoStartDependentNoPriDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a short "StartDependentNoPri" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoStartDependentNoPriDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- ASL_RESOURCE_NODE *PreviousRnode;
- ASL_RESOURCE_NODE *NextRnode;
- UINT8 State;
-
-
- InitializerOp = Op->Asl.Child;
- Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_START_DEPENDENT_NOPRIO));
-
- Descriptor = Rnode->Buffer;
- Descriptor->StartDpf.DescriptorType = ACPI_RESOURCE_NAME_START_DEPENDENT |
- ASL_RDESC_ST_DEPEND_SIZE;
- PreviousRnode = Rnode;
-
- /* Process all child initialization nodes */
-
- State = ACPI_RSTATE_START_DEPENDENT;
- while (InitializerOp)
- {
- NextRnode = RsDoOneResourceDescriptor (InitializerOp,
- CurrentByteOffset, &State);
-
- /*
- * Update current byte offset to indicate the number of bytes from the
- * start of the buffer. Buffer can include multiple descriptors, we
- * must keep track of the offset of not only each descriptor, but each
- * element (field) within each descriptor as well.
- */
- CurrentByteOffset += RsLinkDescriptorChain (&PreviousRnode, NextRnode);
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoVendorSmallDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a short "VendorShort" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoVendorSmallDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT8 *VendorData;
- UINT32 i;
-
-
- InitializerOp = Op->Asl.Child;
-
- /* Allocate worst case - 7 vendor bytes */
-
- Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_VENDOR_SMALL) + 7);
-
- Descriptor = Rnode->Buffer;
- Descriptor->VendorSmall.DescriptorType = ACPI_RESOURCE_NAME_VENDOR_SMALL;
- VendorData = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_SMALL_HEADER);
-
- /* Process all child initialization nodes */
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- for (i = 0; InitializerOp; i++)
- {
- if (InitializerOp->Asl.ParseOpcode == PARSEOP_DEFAULT_ARG)
- {
- break;
- }
-
- /* Maximum 7 vendor data bytes allowed (0-6) */
-
- if (i >= 7)
- {
- AslError (ASL_ERROR, ASL_MSG_VENDOR_LIST, InitializerOp, NULL);
-
- /* Eat the excess initializers */
-
- while (InitializerOp)
- {
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
- break;
- }
-
- VendorData[i] = (UINT8) InitializerOp->Asl.Value.Integer;
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
- /* Adjust the Rnode buffer size, so correct number of bytes are emitted */
-
- Rnode->BufferLength -= (7 - i);
-
- /* Set the length in the Type Tag */
-
- Descriptor->VendorSmall.DescriptorType |= (UINT8) i;
- return (Rnode);
-}
-
-
diff --git a/sys/contrib/dev/acpica/compiler/aslrestype2.c b/sys/contrib/dev/acpica/compiler/aslrestype2.c
deleted file mode 100644
index c42e4a9..0000000
--- a/sys/contrib/dev/acpica/compiler/aslrestype2.c
+++ /dev/null
@@ -1,2842 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: aslrestype2 - Long (type2) resource templates and descriptors
- * $Revision: 1.51 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/compiler/aslcompiler.h>
-#include "aslcompiler.y.h"
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("aslrestype2")
-
-/* Local prototypes */
-
-static UINT16
-RsGetStringDataLength (
- ACPI_PARSE_OBJECT *InitializerOp);
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsGetStringDataLength
- *
- * PARAMETERS: InitializerOp - Start of a subtree of init nodes
- *
- * RETURN: Valid string length if a string node is found (otherwise 0)
- *
- * DESCRIPTION: In a list of peer nodes, find the first one that contains a
- * string and return the length of the string.
- *
- ******************************************************************************/
-
-static UINT16
-RsGetStringDataLength (
- ACPI_PARSE_OBJECT *InitializerOp)
-{
-
- while (InitializerOp)
- {
- if (InitializerOp->Asl.ParseOpcode == PARSEOP_STRING_LITERAL)
- {
- return ((UINT16) (strlen (InitializerOp->Asl.Value.String) + 1));
- }
- InitializerOp = ASL_GET_PEER_NODE (InitializerOp);
- }
-
- return 0;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoDwordIoDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a long "DwordIO" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoDwordIoDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT16 StringLength = 0;
- UINT32 OptionIndex = 0;
- UINT8 *OptionalFields;
- UINT32 i;
- BOOLEAN ResSourceIndex = FALSE;
-
-
- InitializerOp = Op->Asl.Child;
- StringLength = RsGetStringDataLength (InitializerOp);
-
- Rnode = RsAllocateResourceNode (
- sizeof (AML_RESOURCE_ADDRESS32) + 1 + StringLength);
-
- Descriptor = Rnode->Buffer;
- Descriptor->Address32.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS32;
- Descriptor->Address32.ResourceType = ACPI_ADDRESS_TYPE_IO_RANGE;
-
- /*
- * Initial descriptor length -- may be enlarged if there are
- * optional fields present
- */
- OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS32);
- Descriptor->Address32.ResourceLength = (UINT16)
- (sizeof (AML_RESOURCE_ADDRESS32) -
- sizeof (AML_RESOURCE_LARGE_HEADER));
-
- /* Process all child initialization nodes */
-
- for (i = 0; InitializerOp; i++)
- {
- switch (i)
- {
- case 0: /* Resource Usage */
-
- RsSetFlagBits (&Descriptor->Address32.Flags, InitializerOp, 0, 1);
- break;
-
- case 1: /* MinType */
-
- RsSetFlagBits (&Descriptor->Address32.Flags, InitializerOp, 2, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MINTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Flags), 2);
- break;
-
- case 2: /* MaxType */
-
- RsSetFlagBits (&Descriptor->Address32.Flags, InitializerOp, 3, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MAXTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Flags), 3);
- break;
-
- case 3: /* DecodeType */
-
- RsSetFlagBits (&Descriptor->Address32.Flags, InitializerOp, 1, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_DECODE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Flags), 1);
- break;
-
- case 4: /* Range Type */
-
- RsSetFlagBits (&Descriptor->Address32.SpecificFlags, InitializerOp, 0, 3);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_RANGETYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.SpecificFlags), 0);
- break;
-
- case 5: /* Address Granularity */
-
- Descriptor->Address32.Granularity =
- (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity));
- break;
-
- case 6: /* Address Min */
-
- Descriptor->Address32.Minimum =
- (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum));
- break;
-
- case 7: /* Address Max */
-
- Descriptor->Address32.Maximum =
- (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum));
- break;
-
- case 8: /* Translation Offset */
-
- Descriptor->Address32.TranslationOffset =
- (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.TranslationOffset));
- break;
-
- case 9: /* Address Length */
-
- Descriptor->Address32.AddressLength =
- (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength));
- break;
-
- case 10: /* ResSourceIndex [Optional Field - BYTE] */
-
- if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
- {
- /* Found a valid ResourceSourceIndex */
-
- OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
- OptionIndex++;
- Descriptor->Address32.ResourceLength++;
- ResSourceIndex = TRUE;
- }
- break;
-
- case 11: /* ResSource [Optional Field - STRING] */
-
- if ((InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG) &&
- (InitializerOp->Asl.Value.String))
- {
- if (StringLength)
- {
- /* Found a valid ResourceSource */
-
- Descriptor->Address32.ResourceLength = (UINT16)
- (Descriptor->Address32.ResourceLength + StringLength);
-
- strcpy ((char *)
- &OptionalFields[OptionIndex],
- InitializerOp->Asl.Value.String);
-
- /* ResourceSourceIndex must also be valid */
-
- if (!ResSourceIndex)
- {
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_INDEX,
- InitializerOp, NULL);
- }
- }
- }
-
-#if 0
- /*
- * Not a valid ResourceSource, ResourceSourceIndex must also
- * be invalid
- */
- else if (ResSourceIndex)
- {
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_SOURCE,
- InitializerOp, NULL);
- }
-#endif
- break;
-
- case 12: /* ResourceTag */
-
- UtAttachNamepathToOwner (Op, InitializerOp);
- break;
-
- case 13: /* Type */
-
- RsSetFlagBits (&Descriptor->Address32.SpecificFlags, InitializerOp, 4, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_TYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.SpecificFlags), 4);
- break;
-
- case 14: /* Translation Type */
-
- RsSetFlagBits (&Descriptor->Address32.SpecificFlags, InitializerOp, 5, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_TRANSTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.SpecificFlags), 5);
- break;
-
- default:
-
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_LIST, InitializerOp, NULL);
- break;
- }
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
- Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS32) +
- OptionIndex + StringLength;
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoDwordMemoryDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a long "DwordMemory" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoDwordMemoryDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT8 *OptionalFields;
- UINT16 StringLength = 0;
- UINT32 OptionIndex = 0;
- UINT32 i;
- BOOLEAN ResSourceIndex = FALSE;
-
-
- InitializerOp = Op->Asl.Child;
- StringLength = RsGetStringDataLength (InitializerOp);
-
- Rnode = RsAllocateResourceNode (
- sizeof (AML_RESOURCE_ADDRESS32) + 1 + StringLength);
-
- Descriptor = Rnode->Buffer;
- Descriptor->Address32.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS32;
- Descriptor->Address32.ResourceType = ACPI_ADDRESS_TYPE_MEMORY_RANGE;
-
- /*
- * Initial descriptor length -- may be enlarged if there are
- * optional fields present
- */
- OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS32);
- Descriptor->Address32.ResourceLength = (UINT16)
- (sizeof (AML_RESOURCE_ADDRESS32) -
- sizeof (AML_RESOURCE_LARGE_HEADER));
-
-
- /* Process all child initialization nodes */
-
- for (i = 0; InitializerOp; i++)
- {
- switch (i)
- {
- case 0: /* Resource Usage */
-
- RsSetFlagBits (&Descriptor->Address32.Flags, InitializerOp, 0, 1);
- break;
-
- case 1: /* DecodeType */
-
- RsSetFlagBits (&Descriptor->Address32.Flags, InitializerOp, 1, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_DECODE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Flags), 1);
- break;
-
- case 2: /* MinType */
-
- RsSetFlagBits (&Descriptor->Address32.Flags, InitializerOp, 2, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MINTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Flags), 2);
- break;
-
- case 3: /* MaxType */
-
- RsSetFlagBits (&Descriptor->Address32.Flags, InitializerOp, 3, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MAXTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Flags), 3);
- break;
-
- case 4: /* Memory Type */
-
- RsSetFlagBits (&Descriptor->Address32.SpecificFlags, InitializerOp, 1, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MEMTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.SpecificFlags), 1);
- break;
-
- case 5: /* Read/Write Type */
-
- RsSetFlagBits (&Descriptor->Address32.SpecificFlags, InitializerOp, 0, 1);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_READWRITETYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.SpecificFlags), 0);
- break;
-
- case 6: /* Address Granularity */
-
- Descriptor->Address32.Granularity =
- (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity));
- break;
-
- case 7: /* Min Address */
-
- Descriptor->Address32.Minimum =
- (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum));
- break;
-
- case 8: /* Max Address */
-
- Descriptor->Address32.Maximum =
- (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum));
- break;
-
- case 9: /* Translation Offset */
-
- Descriptor->Address32.TranslationOffset =
- (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.TranslationOffset));
- break;
-
- case 10: /* Address Length */
-
- Descriptor->Address32.AddressLength =
- (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength));
- break;
-
- case 11: /* ResSourceIndex [Optional Field - BYTE] */
-
- if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
- {
- OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
- OptionIndex++;
- Descriptor->Address32.ResourceLength++;
- ResSourceIndex = TRUE;
- }
- break;
-
- case 12: /* ResSource [Optional Field - STRING] */
-
- if ((InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG) &&
- (InitializerOp->Asl.Value.String))
- {
- if (StringLength)
- {
- Descriptor->Address32.ResourceLength = (UINT16)
- (Descriptor->Address32.ResourceLength + StringLength);
-
- strcpy ((char *)
- &OptionalFields[OptionIndex],
- InitializerOp->Asl.Value.String);
-
- /* ResourceSourceIndex must also be valid */
-
- if (!ResSourceIndex)
- {
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_INDEX,
- InitializerOp, NULL);
- }
- }
- }
-
-#if 0
- /*
- * Not a valid ResourceSource, ResourceSourceIndex must also
- * be invalid
- */
- else if (ResSourceIndex)
- {
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_SOURCE,
- InitializerOp, NULL);
- }
-#endif
- break;
-
- case 13: /* ResourceTag */
-
- UtAttachNamepathToOwner (Op, InitializerOp);
- break;
-
-
- case 14: /* Address Range */
-
- RsSetFlagBits (&Descriptor->Address32.SpecificFlags, InitializerOp, 3, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MEMATTRIBUTES,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.SpecificFlags), 3);
- break;
-
- case 15: /* Type */
-
- RsSetFlagBits (&Descriptor->Address32.SpecificFlags, InitializerOp, 5, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_TYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.SpecificFlags), 5);
- break;
-
- default:
-
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_LIST, InitializerOp, NULL);
- break;
- }
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
- Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS32) +
- OptionIndex + StringLength;
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoDwordSpaceDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a long "DwordSpace" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoDwordSpaceDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT8 *OptionalFields;
- UINT16 StringLength = 0;
- UINT32 OptionIndex = 0;
- UINT32 i;
- BOOLEAN ResSourceIndex = FALSE;
-
-
- InitializerOp = Op->Asl.Child;
- StringLength = RsGetStringDataLength (InitializerOp);
-
- Rnode = RsAllocateResourceNode (
- sizeof (AML_RESOURCE_ADDRESS32) + 1 + StringLength);
-
- Descriptor = Rnode->Buffer;
- Descriptor->Address32.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS32;
-
- /*
- * Initial descriptor length -- may be enlarged if there are
- * optional fields present
- */
- OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS32);
- Descriptor->Address32.ResourceLength = (UINT16)
- (sizeof (AML_RESOURCE_ADDRESS32) -
- sizeof (AML_RESOURCE_LARGE_HEADER));
-
- /* Process all child initialization nodes */
-
- for (i = 0; InitializerOp; i++)
- {
- switch (i)
- {
- case 0: /* Resource Type */
-
- Descriptor->Address32.ResourceType =
- (UINT8) InitializerOp->Asl.Value.Integer;
- break;
-
- case 1: /* Resource Usage */
-
- RsSetFlagBits (&Descriptor->Address32.Flags, InitializerOp, 0, 1);
- break;
-
- case 2: /* DecodeType */
-
- RsSetFlagBits (&Descriptor->Address32.Flags, InitializerOp, 1, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_DECODE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Flags), 1);
- break;
-
- case 3: /* MinType */
-
- RsSetFlagBits (&Descriptor->Address32.Flags, InitializerOp, 2, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MINTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Flags), 2);
- break;
-
- case 4: /* MaxType */
-
- RsSetFlagBits (&Descriptor->Address32.Flags, InitializerOp, 3, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MAXTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Flags), 3);
- break;
-
- case 5: /* Type-Specific flags */
-
- Descriptor->Address32.SpecificFlags =
- (UINT8) InitializerOp->Asl.Value.Integer;
- break;
-
- case 6: /* Address Granularity */
-
- Descriptor->Address32.Granularity =
- (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity));
- break;
-
- case 7: /* Min Address */
-
- Descriptor->Address32.Minimum =
- (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum));
- break;
-
- case 8: /* Max Address */
-
- Descriptor->Address32.Maximum =
- (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum));
- break;
-
- case 9: /* Translation Offset */
-
- Descriptor->Address32.TranslationOffset =
- (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.TranslationOffset));
- break;
-
- case 10: /* Address Length */
-
- Descriptor->Address32.AddressLength =
- (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength));
- break;
-
- case 11: /* ResSourceIndex [Optional Field - BYTE] */
-
- if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
- {
- OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
- OptionIndex++;
- Descriptor->Address32.ResourceLength++;
- ResSourceIndex = TRUE;
- }
- break;
-
- case 12: /* ResSource [Optional Field - STRING] */
-
- if ((InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG) &&
- (InitializerOp->Asl.Value.String))
- {
- if (StringLength)
- {
- Descriptor->Address32.ResourceLength = (UINT16)
- (Descriptor->Address32.ResourceLength + StringLength);
-
- strcpy ((char *)
- &OptionalFields[OptionIndex],
- InitializerOp->Asl.Value.String);
-
- /* ResourceSourceIndex must also be valid */
-
- if (!ResSourceIndex)
- {
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_INDEX,
- InitializerOp, NULL);
- }
- }
- }
-
-#if 0
- /*
- * Not a valid ResourceSource, ResourceSourceIndex must also
- * be invalid
- */
- else if (ResSourceIndex)
- {
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_SOURCE,
- InitializerOp, NULL);
- }
-#endif
- break;
-
- case 13: /* ResourceTag */
-
- UtAttachNamepathToOwner (Op, InitializerOp);
- break;
-
- default:
-
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_LIST,
- InitializerOp, NULL);
- break;
- }
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
- Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS32) +
- OptionIndex + StringLength;
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoExtendedIoDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a long "ExtendedIO" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoExtendedIoDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT16 StringLength = 0;
- UINT32 i;
-
-
- InitializerOp = Op->Asl.Child;
- StringLength = RsGetStringDataLength (InitializerOp);
-
- Rnode = RsAllocateResourceNode (
- sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) + 1 + StringLength);
-
- Descriptor = Rnode->Buffer;
- Descriptor->ExtAddress64.DescriptorType = ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64;
- Descriptor->ExtAddress64.ResourceType = ACPI_ADDRESS_TYPE_IO_RANGE;
- Descriptor->ExtAddress64.RevisionID = AML_RESOURCE_EXTENDED_ADDRESS_REVISION;
-
- Descriptor->ExtAddress64.ResourceLength = (UINT16)
- (sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) -
- sizeof (AML_RESOURCE_LARGE_HEADER));
-
- /* Process all child initialization nodes */
-
- for (i = 0; InitializerOp; i++)
- {
- switch (i)
- {
- case 0: /* Resource Usage */
-
- RsSetFlagBits (&Descriptor->ExtAddress64.Flags, InitializerOp, 0, 1);
- break;
-
- case 1: /* MinType */
-
- RsSetFlagBits (&Descriptor->ExtAddress64.Flags, InitializerOp, 2, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MINTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Flags), 2);
- break;
-
- case 2: /* MaxType */
-
- RsSetFlagBits (&Descriptor->ExtAddress64.Flags, InitializerOp, 3, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MAXTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Flags), 3);
- break;
-
- case 3: /* DecodeType */
-
- RsSetFlagBits (&Descriptor->ExtAddress64.Flags, InitializerOp, 1, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_DECODE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Flags), 1);
- break;
-
- case 4: /* Range Type */
-
- RsSetFlagBits (&Descriptor->ExtAddress64.SpecificFlags, InitializerOp, 0, 3);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_RANGETYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.SpecificFlags), 0);
- break;
-
- case 5: /* Address Granularity */
-
- Descriptor->ExtAddress64.Granularity = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity));
- break;
-
- case 6: /* Address Min */
-
- Descriptor->ExtAddress64.Minimum = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum));
- break;
-
- case 7: /* Address Max */
-
- Descriptor->ExtAddress64.Maximum = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum));
- break;
-
- case 8: /* Translation Offset */
-
- Descriptor->ExtAddress64.TranslationOffset = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TranslationOffset));
- break;
-
- case 9: /* Address Length */
-
- Descriptor->ExtAddress64.AddressLength = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength));
- break;
-
- case 10: /* Type-Specific Attributes */
-
- Descriptor->ExtAddress64.TypeSpecific = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific));
- break;
-
- case 11: /* ResourceTag */
-
- UtAttachNamepathToOwner (Op, InitializerOp);
- break;
-
- case 12: /* Type */
-
- RsSetFlagBits (&Descriptor->ExtAddress64.SpecificFlags, InitializerOp, 4, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_TYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.SpecificFlags), 4);
- break;
-
- case 13: /* Translation Type */
-
- RsSetFlagBits (&Descriptor->ExtAddress64.SpecificFlags, InitializerOp, 5, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_TRANSTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.SpecificFlags), 5);
- break;
-
- default:
-
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_LIST, InitializerOp, NULL);
- break;
- }
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
- Rnode->BufferLength = sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) + StringLength;
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoExtendedMemoryDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a long "ExtendedMemory" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoExtendedMemoryDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT16 StringLength = 0;
- UINT32 i;
-
-
- InitializerOp = Op->Asl.Child;
- StringLength = RsGetStringDataLength (InitializerOp);
-
- Rnode = RsAllocateResourceNode (
- sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) + 1 + StringLength);
-
- Descriptor = Rnode->Buffer;
- Descriptor->ExtAddress64.DescriptorType = ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64;
- Descriptor->ExtAddress64.ResourceType = ACPI_ADDRESS_TYPE_MEMORY_RANGE;
- Descriptor->ExtAddress64.RevisionID = AML_RESOURCE_EXTENDED_ADDRESS_REVISION;
-
- Descriptor->ExtAddress64.ResourceLength = (UINT16)
- (sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) -
- sizeof (AML_RESOURCE_LARGE_HEADER));
-
- /* Process all child initialization nodes */
-
- for (i = 0; InitializerOp; i++)
- {
- switch (i)
- {
- case 0: /* Resource Usage */
-
- RsSetFlagBits (&Descriptor->ExtAddress64.Flags, InitializerOp, 0, 1);
- break;
-
- case 1: /* DecodeType */
-
- RsSetFlagBits (&Descriptor->ExtAddress64.Flags, InitializerOp, 1, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_DECODE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Flags), 1);
- break;
-
- case 2: /* MinType */
-
- RsSetFlagBits (&Descriptor->ExtAddress64.Flags, InitializerOp, 2, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MINTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Flags), 2);
- break;
-
- case 3: /* MaxType */
-
- RsSetFlagBits (&Descriptor->ExtAddress64.Flags, InitializerOp, 3, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MAXTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Flags), 3);
- break;
-
- case 4: /* Memory Type */
-
- RsSetFlagBits (&Descriptor->ExtAddress64.SpecificFlags, InitializerOp, 1, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MEMTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.SpecificFlags), 1);
- break;
-
- case 5: /* Read/Write Type */
-
- RsSetFlagBits (&Descriptor->ExtAddress64.SpecificFlags, InitializerOp, 0, 1);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_READWRITETYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.SpecificFlags), 0);
- break;
-
- case 6: /* Address Granularity */
-
- Descriptor->ExtAddress64.Granularity = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity));
- break;
-
- case 7: /* Min Address */
-
- Descriptor->ExtAddress64.Minimum = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum));
- break;
-
- case 8: /* Max Address */
-
- Descriptor->ExtAddress64.Maximum = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum));
- break;
-
- case 9: /* Translation Offset */
-
- Descriptor->ExtAddress64.TranslationOffset = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TranslationOffset));
- break;
-
- case 10: /* Address Length */
-
- Descriptor->ExtAddress64.AddressLength = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength));
- break;
-
- case 11: /* Type-Specific Attributes */
-
- Descriptor->ExtAddress64.TypeSpecific = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific));
- break;
-
- case 12: /* ResourceTag */
-
- UtAttachNamepathToOwner (Op, InitializerOp);
- break;
-
-
- case 13: /* Address Range */
-
- RsSetFlagBits (&Descriptor->ExtAddress64.SpecificFlags, InitializerOp, 3, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MEMATTRIBUTES,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.SpecificFlags), 3);
- break;
-
- case 14: /* Type */
-
- RsSetFlagBits (&Descriptor->ExtAddress64.SpecificFlags, InitializerOp, 5, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_TYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.SpecificFlags), 5);
- break;
-
- default:
-
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_LIST, InitializerOp, NULL);
- break;
- }
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
- Rnode->BufferLength = sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) + StringLength;
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoExtendedSpaceDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a long "ExtendedSpace" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoExtendedSpaceDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT16 StringLength = 0;
- UINT32 i;
-
-
- InitializerOp = Op->Asl.Child;
- StringLength = RsGetStringDataLength (InitializerOp);
-
- Rnode = RsAllocateResourceNode (
- sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) + 1 + StringLength);
-
- Descriptor = Rnode->Buffer;
- Descriptor->ExtAddress64.DescriptorType = ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64;
- Descriptor->ExtAddress64.RevisionID = AML_RESOURCE_EXTENDED_ADDRESS_REVISION;
-
- Descriptor->ExtAddress64.ResourceLength = (UINT16)
- (sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) -
- sizeof (AML_RESOURCE_LARGE_HEADER));
-
- /* Process all child initialization nodes */
-
- for (i = 0; InitializerOp; i++)
- {
- switch (i)
- {
- case 0: /* Resource Type */
-
- Descriptor->ExtAddress64.ResourceType =
- (UINT8) InitializerOp->Asl.Value.Integer;
- break;
-
- case 1: /* Resource Usage */
-
- RsSetFlagBits (&Descriptor->ExtAddress64.Flags, InitializerOp, 0, 1);
- break;
-
- case 2: /* DecodeType */
-
- RsSetFlagBits (&Descriptor->ExtAddress64.Flags, InitializerOp, 1, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_DECODE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Flags), 1);
- break;
-
- case 3: /* MinType */
-
- RsSetFlagBits (&Descriptor->ExtAddress64.Flags, InitializerOp, 2, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MINTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Flags), 2);
- break;
-
- case 4: /* MaxType */
-
- RsSetFlagBits (&Descriptor->ExtAddress64.Flags, InitializerOp, 3, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MAXTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Flags), 3);
- break;
-
- case 5: /* Type-Specific flags */
-
- Descriptor->ExtAddress64.SpecificFlags =
- (UINT8) InitializerOp->Asl.Value.Integer;
- break;
-
- case 6: /* Address Granularity */
-
- Descriptor->ExtAddress64.Granularity = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity));
- break;
-
- case 7: /* Min Address */
-
- Descriptor->ExtAddress64.Minimum = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum));
- break;
-
- case 8: /* Max Address */
-
- Descriptor->ExtAddress64.Maximum = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum));
- break;
-
- case 9: /* Translation Offset */
-
- Descriptor->ExtAddress64.TranslationOffset = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TranslationOffset));
- break;
-
- case 10: /* Address Length */
-
- Descriptor->ExtAddress64.AddressLength = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength));
- break;
-
- case 11: /* Type-Specific Attributes */
-
- Descriptor->ExtAddress64.TypeSpecific = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific));
- break;
-
- case 12: /* ResourceTag */
-
- UtAttachNamepathToOwner (Op, InitializerOp);
- break;
-
- default:
-
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_LIST, InitializerOp, NULL);
- break;
- }
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
- Rnode->BufferLength = sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) + StringLength;
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoQwordIoDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a long "QwordIO" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoQwordIoDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT8 *OptionalFields;
- UINT16 StringLength = 0;
- UINT32 OptionIndex = 0;
- UINT32 i;
- BOOLEAN ResSourceIndex = FALSE;
-
-
- InitializerOp = Op->Asl.Child;
- StringLength = RsGetStringDataLength (InitializerOp);
-
- Rnode = RsAllocateResourceNode (
- sizeof (AML_RESOURCE_ADDRESS64) + 1 + StringLength);
-
- Descriptor = Rnode->Buffer;
- Descriptor->Address64.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS64;
- Descriptor->Address64.ResourceType = ACPI_ADDRESS_TYPE_IO_RANGE;
-
- /*
- * Initial descriptor length -- may be enlarged if there are
- * optional fields present
- */
- OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS64);
- Descriptor->Address64.ResourceLength = (UINT16)
- (sizeof (AML_RESOURCE_ADDRESS64) -
- sizeof (AML_RESOURCE_LARGE_HEADER));
-
- /* Process all child initialization nodes */
-
- for (i = 0; InitializerOp; i++)
- {
- switch (i)
- {
- case 0: /* Resource Usage */
-
- RsSetFlagBits (&Descriptor->Address64.Flags, InitializerOp, 0, 1);
- break;
-
- case 1: /* MinType */
-
- RsSetFlagBits (&Descriptor->Address64.Flags, InitializerOp, 2, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MINTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Flags), 2);
- break;
-
- case 2: /* MaxType */
-
- RsSetFlagBits (&Descriptor->Address64.Flags, InitializerOp, 3, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MAXTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Flags), 3);
- break;
-
- case 3: /* DecodeType */
-
- RsSetFlagBits (&Descriptor->Address64.Flags, InitializerOp, 1, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_DECODE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Flags), 1);
- break;
-
- case 4: /* Range Type */
-
- RsSetFlagBits (&Descriptor->Address64.SpecificFlags, InitializerOp, 0, 3);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_RANGETYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.SpecificFlags), 0);
- break;
-
- case 5: /* Address Granularity */
-
- Descriptor->Address64.Granularity = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity));
- break;
-
- case 6: /* Address Min */
-
- Descriptor->Address64.Minimum = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum));
- break;
-
- case 7: /* Address Max */
-
- Descriptor->Address64.Maximum = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum));
- break;
-
- case 8: /* Translation Offset */
-
- Descriptor->Address64.TranslationOffset = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.TranslationOffset));
- break;
-
- case 9: /* Address Length */
-
- Descriptor->Address64.AddressLength = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength));
- break;
-
- case 10: /* ResSourceIndex [Optional Field - BYTE] */
-
- if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
- {
- OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
- OptionIndex++;
- Descriptor->Address64.ResourceLength++;
- ResSourceIndex = TRUE;
- }
- break;
-
- case 11: /* ResSource [Optional Field - STRING] */
-
- if ((InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG) &&
- (InitializerOp->Asl.Value.String))
- {
- if (StringLength)
- {
- Descriptor->Address64.ResourceLength = (UINT16)
- (Descriptor->Address64.ResourceLength + StringLength);
-
- strcpy ((char *)
- &OptionalFields[OptionIndex],
- InitializerOp->Asl.Value.String);
-
- /* ResourceSourceIndex must also be valid */
-
- if (!ResSourceIndex)
- {
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_INDEX,
- InitializerOp, NULL);
- }
- }
- }
-
-#if 0
- /*
- * Not a valid ResourceSource, ResourceSourceIndex must also
- * be invalid
- */
- else if (ResSourceIndex)
- {
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_SOURCE,
- InitializerOp, NULL);
- }
-#endif
- break;
-
- case 12: /* ResourceTag */
-
- UtAttachNamepathToOwner (Op, InitializerOp);
- break;
-
- case 13: /* Type */
-
- RsSetFlagBits (&Descriptor->Address64.SpecificFlags, InitializerOp, 4, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_TYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.SpecificFlags), 4);
- break;
-
- case 14: /* Translation Type */
-
- RsSetFlagBits (&Descriptor->Address64.SpecificFlags, InitializerOp, 5, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_TRANSTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.SpecificFlags), 5);
- break;
-
- default:
-
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_LIST, InitializerOp, NULL);
- break;
- }
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
- Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS64) +
- OptionIndex + StringLength;
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoQwordMemoryDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a long "QwordMemory" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoQwordMemoryDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT8 *OptionalFields;
- UINT16 StringLength = 0;
- UINT32 OptionIndex = 0;
- UINT32 i;
- BOOLEAN ResSourceIndex = FALSE;
-
-
- InitializerOp = Op->Asl.Child;
- StringLength = RsGetStringDataLength (InitializerOp);
-
- Rnode = RsAllocateResourceNode (
- sizeof (AML_RESOURCE_ADDRESS64) + 1 + StringLength);
-
- Descriptor = Rnode->Buffer;
- Descriptor->Address64.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS64;
- Descriptor->Address64.ResourceType = ACPI_ADDRESS_TYPE_MEMORY_RANGE;
-
- /*
- * Initial descriptor length -- may be enlarged if there are
- * optional fields present
- */
- OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS64);
- Descriptor->Address64.ResourceLength = (UINT16)
- (sizeof (AML_RESOURCE_ADDRESS64) -
- sizeof (AML_RESOURCE_LARGE_HEADER));
-
- /* Process all child initialization nodes */
-
- for (i = 0; InitializerOp; i++)
- {
- switch (i)
- {
- case 0: /* Resource Usage */
-
- RsSetFlagBits (&Descriptor->Address64.Flags, InitializerOp, 0, 1);
- break;
-
- case 1: /* DecodeType */
-
- RsSetFlagBits (&Descriptor->Address64.Flags, InitializerOp, 1, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_DECODE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Flags), 1);
- break;
-
- case 2: /* MinType */
-
- RsSetFlagBits (&Descriptor->Address64.Flags, InitializerOp, 2, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MINTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Flags), 2);
- break;
-
- case 3: /* MaxType */
-
- RsSetFlagBits (&Descriptor->Address64.Flags, InitializerOp, 3, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MAXTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Flags), 3);
- break;
-
- case 4: /* Memory Type */
-
- RsSetFlagBits (&Descriptor->Address64.SpecificFlags, InitializerOp, 1, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MEMTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.SpecificFlags), 1);
- break;
-
- case 5: /* Read/Write Type */
-
- RsSetFlagBits (&Descriptor->Address64.SpecificFlags, InitializerOp, 0, 1);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_READWRITETYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.SpecificFlags), 0);
- break;
-
- case 6: /* Address Granularity */
-
- Descriptor->Address64.Granularity = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity));
- break;
-
- case 7: /* Min Address */
-
- Descriptor->Address64.Minimum = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum));
- break;
-
- case 8: /* Max Address */
-
- Descriptor->Address64.Maximum = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum));
- break;
-
- case 9: /* Translation Offset */
-
- Descriptor->Address64.TranslationOffset = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.TranslationOffset));
- break;
-
- case 10: /* Address Length */
-
- Descriptor->Address64.AddressLength = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength));
- break;
-
- case 11: /* ResSourceIndex [Optional Field - BYTE] */
-
- if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
- {
- OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
- OptionIndex++;
- Descriptor->Address64.ResourceLength++;
- ResSourceIndex = TRUE;
- }
- break;
-
- case 12: /* ResSource [Optional Field - STRING] */
-
- if ((InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG) &&
- (InitializerOp->Asl.Value.String))
- {
- if (StringLength)
- {
- Descriptor->Address64.ResourceLength = (UINT16)
- (Descriptor->Address64.ResourceLength + StringLength);
-
- strcpy ((char *)
- &OptionalFields[OptionIndex],
- InitializerOp->Asl.Value.String);
-
- /* ResourceSourceIndex must also be valid */
-
- if (!ResSourceIndex)
- {
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_INDEX,
- InitializerOp, NULL);
- }
- }
- }
-
-#if 0
- /*
- * Not a valid ResourceSource, ResourceSourceIndex must also
- * be invalid
- */
- else if (ResSourceIndex)
- {
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_SOURCE,
- InitializerOp, NULL);
- }
-#endif
- break;
-
- case 13: /* ResourceTag */
-
- UtAttachNamepathToOwner (Op, InitializerOp);
- break;
-
-
- case 14: /* Address Range */
-
- RsSetFlagBits (&Descriptor->Address64.SpecificFlags, InitializerOp, 3, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MEMATTRIBUTES,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.SpecificFlags), 3);
- break;
-
- case 15: /* Type */
-
- RsSetFlagBits (&Descriptor->Address64.SpecificFlags, InitializerOp, 5, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_TYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.SpecificFlags), 5);
- break;
-
- default:
-
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_LIST, InitializerOp, NULL);
- break;
- }
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
- Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS64) +
- OptionIndex + StringLength;
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoQwordSpaceDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a long "QwordSpace" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoQwordSpaceDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT8 *OptionalFields;
- UINT16 StringLength = 0;
- UINT32 OptionIndex = 0;
- UINT32 i;
- BOOLEAN ResSourceIndex = FALSE;
-
-
- InitializerOp = Op->Asl.Child;
- StringLength = RsGetStringDataLength (InitializerOp);
-
- Rnode = RsAllocateResourceNode (
- sizeof (AML_RESOURCE_ADDRESS64) + 1 + StringLength);
-
- Descriptor = Rnode->Buffer;
- Descriptor->Address64.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS64;
-
- /*
- * Initial descriptor length -- may be enlarged if there are
- * optional fields present
- */
- OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS64);
- Descriptor->Address64.ResourceLength = (UINT16)
- (sizeof (AML_RESOURCE_ADDRESS64) -
- sizeof (AML_RESOURCE_LARGE_HEADER));
-
- /* Process all child initialization nodes */
-
- for (i = 0; InitializerOp; i++)
- {
- switch (i)
- {
- case 0: /* Resource Type */
-
- Descriptor->Address64.ResourceType =
- (UINT8) InitializerOp->Asl.Value.Integer;
- break;
-
- case 1: /* Resource Usage */
-
- RsSetFlagBits (&Descriptor->Address64.Flags, InitializerOp, 0, 1);
- break;
-
- case 2: /* DecodeType */
-
- RsSetFlagBits (&Descriptor->Address64.Flags, InitializerOp, 1, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_DECODE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Flags), 1);
- break;
-
- case 3: /* MinType */
-
- RsSetFlagBits (&Descriptor->Address64.Flags, InitializerOp, 2, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MINTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Flags), 2);
- break;
-
- case 4: /* MaxType */
-
- RsSetFlagBits (&Descriptor->Address64.Flags, InitializerOp, 3, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MAXTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Flags), 3);
- break;
-
- case 5: /* Type-Specific flags */
-
- Descriptor->Address64.SpecificFlags =
- (UINT8) InitializerOp->Asl.Value.Integer;
- break;
-
- case 6: /* Address Granularity */
-
- Descriptor->Address64.Granularity = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity));
- break;
-
- case 7: /* Min Address */
-
- Descriptor->Address64.Minimum = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum));
- break;
-
- case 8: /* Max Address */
-
- Descriptor->Address64.Maximum = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum));
- break;
-
- case 9: /* Translation Offset */
-
- Descriptor->Address64.TranslationOffset = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.TranslationOffset));
- break;
-
- case 10: /* Address Length */
-
- Descriptor->Address64.AddressLength = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength));
- break;
-
- case 11: /* ResSourceIndex [Optional Field - BYTE] */
-
- if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
- {
- OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
- OptionIndex++;
- Descriptor->Address64.ResourceLength++;
- ResSourceIndex = TRUE;
- }
- break;
-
- case 12: /* ResSource [Optional Field - STRING] */
-
- if ((InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG) &&
- (InitializerOp->Asl.Value.String))
- {
- if (StringLength)
- {
- Descriptor->Address64.ResourceLength = (UINT16)
- (Descriptor->Address64.ResourceLength + StringLength);
-
- strcpy ((char *)
- &OptionalFields[OptionIndex],
- InitializerOp->Asl.Value.String);
-
- /* ResourceSourceIndex must also be valid */
-
- if (!ResSourceIndex)
- {
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_INDEX,
- InitializerOp, NULL);
- }
- }
- }
-
-#if 0
- /*
- * Not a valid ResourceSource, ResourceSourceIndex must also
- * be invalid
- */
- else if (ResSourceIndex)
- {
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_SOURCE,
- InitializerOp, NULL);
- }
-#endif
- break;
-
- case 13: /* ResourceTag */
-
- UtAttachNamepathToOwner (Op, InitializerOp);
- break;
-
- default:
-
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_LIST, InitializerOp, NULL);
- break;
- }
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
- Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS64) +
- OptionIndex + StringLength;
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoWordIoDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a long "WordIO" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoWordIoDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT8 *OptionalFields;
- UINT16 StringLength = 0;
- UINT32 OptionIndex = 0;
- UINT32 i;
- BOOLEAN ResSourceIndex = FALSE;
-
-
- InitializerOp = Op->Asl.Child;
- StringLength = RsGetStringDataLength (InitializerOp);
-
- Rnode = RsAllocateResourceNode (
- sizeof (AML_RESOURCE_ADDRESS16) + 1 + StringLength);
-
- Descriptor = Rnode->Buffer;
- Descriptor->Address16.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS16;
- Descriptor->Address16.ResourceType = ACPI_ADDRESS_TYPE_IO_RANGE;
-
- /*
- * Initial descriptor length -- may be enlarged if there are
- * optional fields present
- */
- OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS16);
- Descriptor->Address16.ResourceLength = (UINT16)
- (sizeof (AML_RESOURCE_ADDRESS16) -
- sizeof (AML_RESOURCE_LARGE_HEADER));
-
- /* Process all child initialization nodes */
-
- for (i = 0; InitializerOp; i++)
- {
- switch (i)
- {
- case 0: /* Resource Usage */
-
- RsSetFlagBits (&Descriptor->Address16.Flags, InitializerOp, 0, 1);
- break;
-
- case 1: /* MinType */
-
- RsSetFlagBits (&Descriptor->Address16.Flags, InitializerOp, 2, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MINTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Flags), 2);
- break;
-
- case 2: /* MaxType */
-
- RsSetFlagBits (&Descriptor->Address16.Flags, InitializerOp, 3, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MAXTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Flags), 3);
- break;
-
- case 3: /* DecodeType */
-
- RsSetFlagBits (&Descriptor->Address16.Flags, InitializerOp, 1, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_DECODE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Flags), 1);
- break;
-
- case 4: /* Range Type */
-
- RsSetFlagBits (&Descriptor->Address16.SpecificFlags, InitializerOp, 0, 3);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_RANGETYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.SpecificFlags), 0);
- break;
-
- case 5: /* Address Granularity */
-
- Descriptor->Address16.Granularity = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity));
- break;
-
- case 6: /* Address Min */
-
- Descriptor->Address16.Minimum = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum));
- break;
-
- case 7: /* Address Max */
-
- Descriptor->Address16.Maximum = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum));
- break;
-
- case 8: /* Translation Offset */
-
- Descriptor->Address16.TranslationOffset = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.TranslationOffset));
- break;
-
- case 9: /* Address Length */
-
- Descriptor->Address16.AddressLength = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength));
- break;
-
- case 10: /* ResSourceIndex [Optional Field - BYTE] */
-
- if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
- {
- OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
- OptionIndex++;
- Descriptor->Address16.ResourceLength++;
- ResSourceIndex = TRUE;
- }
- break;
-
- case 11: /* ResSource [Optional Field - STRING] */
-
- if ((InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG) &&
- (InitializerOp->Asl.Value.String))
- {
- if (StringLength)
- {
- Descriptor->Address16.ResourceLength = (UINT16)
- (Descriptor->Address16.ResourceLength + StringLength);
-
- strcpy ((char *)
- &OptionalFields[OptionIndex],
- InitializerOp->Asl.Value.String);
-
- /* ResourceSourceIndex must also be valid */
-
- if (!ResSourceIndex)
- {
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_INDEX,
- InitializerOp, NULL);
- }
- }
- }
-
-#if 0
- /*
- * Not a valid ResourceSource, ResourceSourceIndex must also
- * be invalid
- */
- else if (ResSourceIndex)
- {
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_SOURCE,
- InitializerOp, NULL);
- }
-#endif
- break;
-
- case 12: /* ResourceTag */
-
- UtAttachNamepathToOwner (Op, InitializerOp);
- break;
-
- case 13: /* Type */
-
- RsSetFlagBits (&Descriptor->Address16.SpecificFlags, InitializerOp, 4, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_TYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.SpecificFlags), 4);
- break;
-
- case 14: /* Translation Type */
-
- RsSetFlagBits (&Descriptor->Address16.SpecificFlags, InitializerOp, 5, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_TRANSTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.SpecificFlags), 5);
- break;
-
- default:
-
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_LIST, InitializerOp, NULL);
- break;
- }
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
- Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS16) +
- OptionIndex + StringLength;
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoWordBusNumberDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a long "WordBusNumber" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoWordBusNumberDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT8 *OptionalFields;
- UINT16 StringLength = 0;
- UINT32 OptionIndex = 0;
- UINT32 i;
- BOOLEAN ResSourceIndex = FALSE;
-
-
- InitializerOp = Op->Asl.Child;
- StringLength = RsGetStringDataLength (InitializerOp);
-
- Rnode = RsAllocateResourceNode (
- sizeof (AML_RESOURCE_ADDRESS16) + 1 + StringLength);
-
- Descriptor = Rnode->Buffer;
- Descriptor->Address16.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS16;
- Descriptor->Address16.ResourceType = ACPI_ADDRESS_TYPE_BUS_NUMBER_RANGE;
-
- /*
- * Initial descriptor length -- may be enlarged if there are
- * optional fields present
- */
- OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS16);
- Descriptor->Address16.ResourceLength = (UINT16)
- (sizeof (AML_RESOURCE_ADDRESS16) -
- sizeof (AML_RESOURCE_LARGE_HEADER));
-
- /* Process all child initialization nodes */
-
- for (i = 0; InitializerOp; i++)
- {
- switch (i)
- {
- case 0: /* Resource Usage */
-
- RsSetFlagBits (&Descriptor->Address16.Flags, InitializerOp, 0, 1);
- break;
-
- case 1: /* MinType */
-
- RsSetFlagBits (&Descriptor->Address16.Flags, InitializerOp, 2, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MINTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Flags), 2);
- break;
-
- case 2: /* MaxType */
-
- RsSetFlagBits (&Descriptor->Address16.Flags, InitializerOp, 3, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MAXTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Flags), 3);
- break;
-
- case 3: /* DecodeType */
-
- RsSetFlagBits (&Descriptor->Address16.Flags, InitializerOp, 1, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_DECODE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Flags), 1);
- break;
-
- case 4: /* Address Granularity */
-
- Descriptor->Address16.Granularity =
- (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity));
- break;
-
- case 5: /* Min Address */
-
- Descriptor->Address16.Minimum =
- (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum));
- break;
-
- case 6: /* Max Address */
-
- Descriptor->Address16.Maximum =
- (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum));
- break;
-
- case 7: /* Translation Offset */
-
- Descriptor->Address16.TranslationOffset =
- (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.TranslationOffset));
- break;
-
- case 8: /* Address Length */
-
- Descriptor->Address16.AddressLength =
- (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength));
- break;
-
- case 9: /* ResSourceIndex [Optional Field - BYTE] */
-
- if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
- {
- OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
- OptionIndex++;
- Descriptor->Address16.ResourceLength++;
- ResSourceIndex = TRUE;
- }
- break;
-
- case 10: /* ResSource [Optional Field - STRING] */
-
- if ((InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG) &&
- (InitializerOp->Asl.Value.String))
- {
- if (StringLength)
- {
- Descriptor->Address16.ResourceLength = (UINT16)
- (Descriptor->Address16.ResourceLength + StringLength);
-
- strcpy ((char *)
- &OptionalFields[OptionIndex],
- InitializerOp->Asl.Value.String);
-
- /* ResourceSourceIndex must also be valid */
-
- if (!ResSourceIndex)
- {
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_INDEX,
- InitializerOp, NULL);
- }
- }
- }
-
-#if 0
- /*
- * Not a valid ResourceSource, ResourceSourceIndex must also
- * be invalid
- */
- else if (ResSourceIndex)
- {
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_SOURCE,
- InitializerOp, NULL);
- }
-#endif
- break;
-
- case 11: /* ResourceTag */
-
- UtAttachNamepathToOwner (Op, InitializerOp);
- break;
-
- default:
-
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_LIST, InitializerOp, NULL);
- break;
- }
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
- Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS16) +
- OptionIndex + StringLength;
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoWordSpaceDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a long "WordSpace" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoWordSpaceDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT8 *OptionalFields;
- UINT16 StringLength = 0;
- UINT32 OptionIndex = 0;
- UINT32 i;
- BOOLEAN ResSourceIndex = FALSE;
-
-
- InitializerOp = Op->Asl.Child;
- StringLength = RsGetStringDataLength (InitializerOp);
-
- Rnode = RsAllocateResourceNode (
- sizeof (AML_RESOURCE_ADDRESS16) + 1 + StringLength);
-
- Descriptor = Rnode->Buffer;
- Descriptor->Address16.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS16;
-
- /*
- * Initial descriptor length -- may be enlarged if there are
- * optional fields present
- */
- OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS16);
- Descriptor->Address16.ResourceLength = (UINT16)
- (sizeof (AML_RESOURCE_ADDRESS16) -
- sizeof (AML_RESOURCE_LARGE_HEADER));
-
- /* Process all child initialization nodes */
-
- for (i = 0; InitializerOp; i++)
- {
- switch (i)
- {
- case 0: /* Resource Type */
-
- Descriptor->Address16.ResourceType =
- (UINT8) InitializerOp->Asl.Value.Integer;
- break;
-
- case 1: /* Resource Usage */
-
- RsSetFlagBits (&Descriptor->Address16.Flags, InitializerOp, 0, 1);
- break;
-
- case 2: /* DecodeType */
-
- RsSetFlagBits (&Descriptor->Address16.Flags, InitializerOp, 1, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_DECODE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Flags), 1);
- break;
-
- case 3: /* MinType */
-
- RsSetFlagBits (&Descriptor->Address16.Flags, InitializerOp, 2, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MINTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Flags), 2);
- break;
-
- case 4: /* MaxType */
-
- RsSetFlagBits (&Descriptor->Address16.Flags, InitializerOp, 3, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MAXTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Flags), 3);
- break;
-
- case 5: /* Type-Specific flags */
-
- Descriptor->Address16.SpecificFlags =
- (UINT8) InitializerOp->Asl.Value.Integer;
- break;
-
- case 6: /* Address Granularity */
-
- Descriptor->Address16.Granularity =
- (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity));
- break;
-
- case 7: /* Min Address */
-
- Descriptor->Address16.Minimum =
- (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum));
- break;
-
- case 8: /* Max Address */
-
- Descriptor->Address16.Maximum =
- (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum));
- break;
-
- case 9: /* Translation Offset */
-
- Descriptor->Address16.TranslationOffset =
- (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.TranslationOffset));
- break;
-
- case 10: /* Address Length */
-
- Descriptor->Address16.AddressLength =
- (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength));
- break;
-
- case 11: /* ResSourceIndex [Optional Field - BYTE] */
-
- if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
- {
- OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
- OptionIndex++;
- Descriptor->Address16.ResourceLength++;
- ResSourceIndex = TRUE;
- }
- break;
-
- case 12: /* ResSource [Optional Field - STRING] */
-
- if ((InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG) &&
- (InitializerOp->Asl.Value.String))
- {
- if (StringLength)
- {
- Descriptor->Address16.ResourceLength = (UINT16)
- (Descriptor->Address16.ResourceLength + StringLength);
-
- strcpy ((char *)
- &OptionalFields[OptionIndex],
- InitializerOp->Asl.Value.String);
-
- /* ResourceSourceIndex must also be valid */
-
- if (!ResSourceIndex)
- {
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_INDEX,
- InitializerOp, NULL);
- }
- }
- }
-
-#if 0
- /*
- * Not a valid ResourceSource, ResourceSourceIndex must also
- * be invalid
- */
- else if (ResSourceIndex)
- {
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_SOURCE,
- InitializerOp, NULL);
- }
-#endif
- break;
-
- case 13: /* ResourceTag */
-
- UtAttachNamepathToOwner (Op, InitializerOp);
- break;
-
- default:
-
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_LIST, InitializerOp, NULL);
- break;
- }
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
- Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS16) +
- OptionIndex + StringLength;
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoInterruptDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a long "Interrupt" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoInterruptDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- AML_RESOURCE *Rover = NULL;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT16 StringLength = 0;
- UINT32 OptionIndex = 0;
- UINT32 i;
- BOOLEAN HasResSourceIndex = FALSE;
- UINT8 ResSourceIndex = 0;
- UINT8 *ResSourceString = NULL;
-
-
- InitializerOp = Op->Asl.Child;
- StringLength = RsGetStringDataLength (InitializerOp);
- if (StringLength)
- {
- /* Make room for the ResourceSourceIndex */
-
- OptionIndex++;
- }
-
- /* Count the interrupt numbers */
-
- for (i = 0; InitializerOp; i++)
- {
- InitializerOp = ASL_GET_PEER_NODE (InitializerOp);
- if (i <= 6)
- {
- continue;
- }
-
- OptionIndex += 4;
- }
-
- InitializerOp = Op->Asl.Child;
- Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_EXTENDED_IRQ) +
- 1 + OptionIndex + StringLength);
-
- Descriptor = Rnode->Buffer;
- Descriptor->ExtendedIrq.DescriptorType = ACPI_RESOURCE_NAME_EXTENDED_IRQ;
-
- /*
- * Initial descriptor length -- may be enlarged if there are
- * optional fields present
- */
- Descriptor->ExtendedIrq.ResourceLength = 2; /* Flags and table length byte */
- Descriptor->ExtendedIrq.InterruptCount = 0;
-
- Rover = ACPI_CAST_PTR (AML_RESOURCE,
- (&(Descriptor->ExtendedIrq.Interrupts[0])));
-
- /* Process all child initialization nodes */
-
- for (i = 0; InitializerOp; i++)
- {
- switch (i)
- {
- case 0: /* Resource Usage (Default: consumer (1) */
-
- RsSetFlagBits (&Descriptor->ExtendedIrq.Flags, InitializerOp, 0, 1);
- break;
-
- case 1: /* Interrupt Type (or Mode - edge/level) */
-
- RsSetFlagBits (&Descriptor->ExtendedIrq.Flags, InitializerOp, 1, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_INTERRUPTTYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtendedIrq.Flags), 1);
- break;
-
- case 2: /* Interrupt Level (or Polarity - Active high/low) */
-
- RsSetFlagBits (&Descriptor->ExtendedIrq.Flags, InitializerOp, 2, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_INTERRUPTLEVEL,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtendedIrq.Flags), 2);
- break;
-
- case 3: /* Share Type - Default: exclusive (0) */
-
- RsSetFlagBits (&Descriptor->ExtendedIrq.Flags, InitializerOp, 3, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_INTERRUPTSHARE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtendedIrq.Flags), 3);
- break;
-
- case 4: /* ResSourceIndex [Optional Field - BYTE] */
-
- if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
- {
- HasResSourceIndex = TRUE;
- ResSourceIndex = (UINT8) InitializerOp->Asl.Value.Integer;
- }
- break;
-
- case 5: /* ResSource [Optional Field - STRING] */
-
- if ((InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG) &&
- (InitializerOp->Asl.Value.String))
- {
- if (StringLength)
- {
- ResSourceString = (UINT8 *) InitializerOp->Asl.Value.String;
- }
-
- /* ResourceSourceIndex must also be valid */
-
- if (!HasResSourceIndex)
- {
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_INDEX,
- InitializerOp, NULL);
- }
- }
-
-#if 0
- /*
- * Not a valid ResourceSource, ResourceSourceIndex must also
- * be invalid
- */
- else if (HasResSourceIndex)
- {
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_SOURCE,
- InitializerOp, NULL);
- }
-#endif
- break;
-
- case 6: /* ResourceTag */
-
- UtAttachNamepathToOwner (Op, InitializerOp);
- break;
-
- default:
- /*
- * Interrupt Numbers come through here, repeatedly
- */
-
- /* Maximum 255 interrupts allowed for this descriptor */
-
- if (Descriptor->ExtendedIrq.InterruptCount == 255)
- {
- AslError (ASL_ERROR, ASL_MSG_EX_INTERRUPT_LIST,
- InitializerOp, NULL);
- return (Rnode);
- }
-
- /* Each interrupt number must be a 32-bit value */
-
- if (InitializerOp->Asl.Value.Integer > ACPI_UINT32_MAX)
- {
- AslError (ASL_ERROR, ASL_MSG_EX_INTERRUPT_NUMBER,
- InitializerOp, NULL);
- }
-
- /* Save the integer and move pointer to the next one */
-
- Rover->DwordItem = (UINT32) InitializerOp->Asl.Value.Integer;
- Rover = ACPI_ADD_PTR (AML_RESOURCE, &(Rover->DwordItem), 4);
- Descriptor->ExtendedIrq.InterruptCount++;
- Descriptor->ExtendedIrq.ResourceLength += 4;
-
- /* Case 7: First interrupt number in list */
-
- if (i == 7)
- {
- /* Check now for duplicates in list */
-
- RsCheckListForDuplicates (InitializerOp);
-
- /* Create a named field at the start of the list */
-
- RsCreateByteField (InitializerOp, ACPI_RESTAG_INTERRUPT,
- CurrentByteOffset +
- ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0]));
- }
- }
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
-
- /* Add optional ResSourceIndex if present */
-
- if (HasResSourceIndex)
- {
- Rover->ByteItem = ResSourceIndex;
- Rover = ACPI_ADD_PTR (AML_RESOURCE, &(Rover->ByteItem), 1);
- Descriptor->ExtendedIrq.ResourceLength += 1;
- }
-
- /* Add optional ResSource string if present */
-
- if (StringLength && ResSourceString)
- {
-
- strcpy ((char *) Rover, (char *) ResSourceString);
- Rover = ACPI_ADD_PTR (
- AML_RESOURCE, &(Rover->ByteItem), StringLength);
-
- Descriptor->ExtendedIrq.ResourceLength = (UINT16)
- (Descriptor->ExtendedIrq.ResourceLength + StringLength);
- }
-
- Rnode->BufferLength = (ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0]) -
- ASL_RESDESC_OFFSET (ExtendedIrq.DescriptorType))
- + OptionIndex + StringLength;
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoVendorLargeDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a long "VendorLong" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoVendorLargeDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT8 *VendorData;
- UINT32 i;
-
-
- /* Count the number of data bytes */
-
- InitializerOp = Op->Asl.Child;
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
-
- for (i = 0; InitializerOp; i++)
- {
- if (InitializerOp->Asl.ParseOpcode == PARSEOP_DEFAULT_ARG)
- {
- break;
- }
- InitializerOp = InitializerOp->Asl.Next;
- }
-
- InitializerOp = Op->Asl.Child;
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_VENDOR_LARGE) + i);
-
- Descriptor = Rnode->Buffer;
- Descriptor->VendorLarge.DescriptorType = ACPI_RESOURCE_NAME_VENDOR_LARGE;
- Descriptor->VendorLarge.ResourceLength = (UINT16) i;
-
- /* Point to end-of-descriptor for vendor data */
-
- VendorData = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_LARGE_HEADER);
-
- /* Process all child initialization nodes */
-
- for (i = 0; InitializerOp; i++)
- {
- if (InitializerOp->Asl.ParseOpcode == PARSEOP_DEFAULT_ARG)
- {
- break;
- }
-
- VendorData[i] = (UINT8) InitializerOp->Asl.Value.Integer;
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
- return (Rnode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: RsDoGeneralRegisterDescriptor
- *
- * PARAMETERS: Op - Parent resource descriptor parse node
- * CurrentByteOffset - Offset into the resource template AML
- * buffer (to track references to the desc)
- *
- * RETURN: Completed resource node
- *
- * DESCRIPTION: Construct a long "Register" descriptor
- *
- ******************************************************************************/
-
-ASL_RESOURCE_NODE *
-RsDoGeneralRegisterDescriptor (
- ACPI_PARSE_OBJECT *Op,
- UINT32 CurrentByteOffset)
-{
- AML_RESOURCE *Descriptor;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT32 i;
-
-
- InitializerOp = Op->Asl.Child;
- Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_GENERIC_REGISTER));
-
- Descriptor = Rnode->Buffer;
- Descriptor->GenericReg.DescriptorType = ACPI_RESOURCE_NAME_GENERIC_REGISTER;
- Descriptor->GenericReg.ResourceLength = 12;
-
- /* Process all child initialization nodes */
-
- for (i = 0; InitializerOp; i++)
- {
- switch (i)
- {
- case 0: /* Address space */
-
- Descriptor->GenericReg.AddressSpaceId = (UINT8) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_ADDRESSSPACE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (GenericReg.AddressSpaceId));
- break;
-
- case 1: /* Register Bit Width */
-
- Descriptor->GenericReg.BitWidth = (UINT8) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_REGISTERBITWIDTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (GenericReg.BitWidth));
- break;
-
- case 2: /* Register Bit Offset */
-
- Descriptor->GenericReg.BitOffset = (UINT8) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_REGISTERBITOFFSET,
- CurrentByteOffset + ASL_RESDESC_OFFSET (GenericReg.BitOffset));
- break;
-
- case 3: /* Register Address */
-
- Descriptor->GenericReg.Address = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_ADDRESS,
- CurrentByteOffset + ASL_RESDESC_OFFSET (GenericReg.Address));
- break;
-
- case 4: /* Access Size (ACPI 3.0) */
-
- Descriptor->GenericReg.AccessSize = (UINT8) InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_ACCESSSIZE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (GenericReg.AccessSize));
- break;
-
- case 5: /* ResourceTag (ACPI 3.0b) */
-
- UtAttachNamepathToOwner (Op, InitializerOp);
- break;
-
- default:
-
- AslError (ASL_ERROR, ASL_MSG_RESOURCE_LIST, InitializerOp, NULL);
- break;
- }
-
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
- return (Rnode);
-}
-
-
diff --git a/sys/contrib/dev/acpica/compiler/aslstubs.c b/sys/contrib/dev/acpica/compiler/aslstubs.c
deleted file mode 100644
index eb6b12a..0000000
--- a/sys/contrib/dev/acpica/compiler/aslstubs.c
+++ /dev/null
@@ -1,280 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: aslstubs - Stubs used to link to Aml interpreter
- * $Revision: 1.20 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#include <stdio.h>
-#include <contrib/dev/acpica/compiler/aslcompiler.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/actables.h>
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("aslstubs")
-
-
-/*
- * Stubs to simplify linkage to the ACPI CA core subsystem.
- * Things like Events, Global Lock, etc. are not used
- * by the compiler, so they are stubbed out here.
- */
-ACPI_PHYSICAL_ADDRESS
-AeLocalGetRootPointer (
- void)
-{
- return 0;
-}
-
-ACPI_STATUS
-AcpiDsMethodError (
- ACPI_STATUS Status,
- ACPI_WALK_STATE *WalkState)
-{
- return (Status);
-}
-
-ACPI_STATUS
-AcpiDsMethodDataGetValue (
- UINT16 Opcode,
- UINT32 Index,
- ACPI_WALK_STATE *WalkState,
- ACPI_OPERAND_OBJECT **DestDesc)
-{
- return (AE_OK);
-}
-
-ACPI_STATUS
-AcpiDsMethodDataGetNode (
- UINT16 Opcode,
- UINT32 Index,
- ACPI_WALK_STATE *WalkState,
- ACPI_NAMESPACE_NODE **Node)
-{
- return (AE_OK);
-}
-
-ACPI_STATUS
-AcpiDsStoreObjectToLocal (
- UINT16 Opcode,
- UINT32 Index,
- ACPI_OPERAND_OBJECT *SrcDesc,
- ACPI_WALK_STATE *WalkState)
-{
- return (AE_OK);
-}
-
-ACPI_STATUS
-AcpiEvDeleteGpeBlock (
- ACPI_GPE_BLOCK_INFO *GpeBlock)
-{
- return (AE_OK);
-}
-
-ACPI_STATUS
-AcpiEvQueueNotifyRequest (
- ACPI_NAMESPACE_NODE *Node,
- UINT32 NotifyValue)
-{
- return (AE_OK);
-}
-
-BOOLEAN
-AcpiEvIsNotifyObject (
- ACPI_NAMESPACE_NODE *Node)
-{
- return (FALSE);
-}
-
-ACPI_STATUS
-AcpiEvAcquireGlobalLock(
- UINT32 Timeout)
-{
- return (AE_OK);
-}
-
-ACPI_STATUS
-AcpiEvReleaseGlobalLock(
- void)
-{
- return (AE_OK);
-}
-
-ACPI_STATUS
-AcpiEvInitializeRegion (
- ACPI_OPERAND_OBJECT *RegionObj,
- BOOLEAN AcpiNsLocked)
-{
- return (AE_OK);
-}
-
-ACPI_STATUS
-AcpiEvCheckForWakeOnlyGpe (
- ACPI_GPE_EVENT_INFO *GpeEventInfo)
-{
- return (AE_OK);
-}
-
-ACPI_STATUS
-AcpiExReadDataFromField (
- ACPI_WALK_STATE *WalkState,
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_OPERAND_OBJECT **RetBufferDesc)
-{
- return (AE_SUPPORT);
-}
-
-ACPI_STATUS
-AcpiExWriteDataToField (
- ACPI_OPERAND_OBJECT *SourceDesc,
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_OPERAND_OBJECT **ResultDesc)
-{
- return (AE_SUPPORT);
-}
-
-ACPI_STATUS
-AcpiExLoadTableOp (
- ACPI_WALK_STATE *WalkState,
- ACPI_OPERAND_OBJECT **ReturnDesc)
-{
- return (AE_SUPPORT);
-}
-
-
-ACPI_STATUS
-AcpiExUnloadTable (
- ACPI_OPERAND_OBJECT *DdbHandle)
-{
- return (AE_SUPPORT);
-}
-
-ACPI_STATUS
-AcpiExLoadOp (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_OPERAND_OBJECT *Target,
- ACPI_WALK_STATE *WalkState)
-{
- return (AE_SUPPORT);
-}
-
-ACPI_STATUS
-AcpiTbFindTable (
- char *Signature,
- char *OemId,
- char *OemTableId,
- ACPI_NATIVE_UINT *TableIndex)
-{
- return (AE_SUPPORT);
-}
-
diff --git a/sys/contrib/dev/acpica/compiler/asltransform.c b/sys/contrib/dev/acpica/compiler/asltransform.c
deleted file mode 100644
index b76a266..0000000
--- a/sys/contrib/dev/acpica/compiler/asltransform.c
+++ /dev/null
@@ -1,806 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: asltransform - Parse tree transforms
- * $Revision: 1.42 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/compiler/aslcompiler.h>
-#include "aslcompiler.y.h"
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("asltransform")
-
-/* Local prototypes */
-
-static void
-TrTransformSubtree (
- ACPI_PARSE_OBJECT *Op);
-
-static char *
-TrAmlGetNextTempName (
- ACPI_PARSE_OBJECT *Op,
- UINT8 *TempCount);
-
-static void
-TrAmlInitLineNumbers (
- ACPI_PARSE_OBJECT *Op,
- ACPI_PARSE_OBJECT *Neighbor);
-
-static void
-TrAmlInitNode (
- ACPI_PARSE_OBJECT *Op,
- UINT16 ParseOpcode);
-
-static void
-TrAmlSetSubtreeParent (
- ACPI_PARSE_OBJECT *Op,
- ACPI_PARSE_OBJECT *Parent);
-
-static void
-TrAmlInsertPeer (
- ACPI_PARSE_OBJECT *Op,
- ACPI_PARSE_OBJECT *NewPeer);
-
-static void
-TrDoDefinitionBlock (
- ACPI_PARSE_OBJECT *Op);
-
-static void
-TrDoSwitch (
- ACPI_PARSE_OBJECT *StartNode);
-
-
-/*******************************************************************************
- *
- * FUNCTION: TrAmlGetNextTempName
- *
- * PARAMETERS: Op - Current parse op
- * TempCount - Current temporary counter. Was originally
- * per-module; Currently per method, could be
- * expanded to per-scope.
- *
- * RETURN: A pointer to name (allocated here).
- *
- * DESCRIPTION: Generate an ACPI name of the form _T_x. These names are
- * reserved for use by the ASL compiler. (_T_0 through _T_Z)
- *
- ******************************************************************************/
-
-static char *
-TrAmlGetNextTempName (
- ACPI_PARSE_OBJECT *Op,
- UINT8 *TempCount)
-{
- char *TempName;
-
-
- if (*TempCount >= (10+26)) /* 0-35 valid: 0-9 and A-Z for TempName[3] */
- {
- /* Too many temps */
-
- AslError (ASL_ERROR, ASL_MSG_TOO_MANY_TEMPS, Op, NULL);
- return (NULL);
- }
-
- TempName = UtLocalCalloc (5);
-
- if (*TempCount < 10) /* 0-9 */
- {
- TempName[3] = (char) (*TempCount + '0');
- }
- else /* 10-35: A-Z */
- {
- TempName[3] = (char) (*TempCount + ('A' - 10));
- }
- (*TempCount)++;
-
- /* First three characters are always "_T_" */
-
- TempName[0] = '_';
- TempName[1] = 'T';
- TempName[2] = '_';
-
- return (TempName);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: TrAmlInitLineNumbers
- *
- * PARAMETERS: Op - Op to be initialized
- * Neighbor - Op used for initialization values
- *
- * RETURN: None
- *
- * DESCRIPTION: Initialized the various line numbers for a parse node.
- *
- ******************************************************************************/
-
-static void
-TrAmlInitLineNumbers (
- ACPI_PARSE_OBJECT *Op,
- ACPI_PARSE_OBJECT *Neighbor)
-{
-
- Op->Asl.EndLine = Neighbor->Asl.EndLine;
- Op->Asl.EndLogicalLine = Neighbor->Asl.EndLogicalLine;
- Op->Asl.LineNumber = Neighbor->Asl.LineNumber;
- Op->Asl.LogicalByteOffset = Neighbor->Asl.LogicalByteOffset;
- Op->Asl.LogicalLineNumber = Neighbor->Asl.LogicalLineNumber;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: TrAmlInitNode
- *
- * PARAMETERS: Op - Op to be initialized
- * ParseOpcode - Opcode for this node
- *
- * RETURN: None
- *
- * DESCRIPTION: Initialize a node with the parse opcode and opcode name.
- *
- ******************************************************************************/
-
-static void
-TrAmlInitNode (
- ACPI_PARSE_OBJECT *Op,
- UINT16 ParseOpcode)
-{
-
- Op->Asl.ParseOpcode = ParseOpcode;
- UtSetParseOpName (Op);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: TrAmlSetSubtreeParent
- *
- * PARAMETERS: Op - First node in a list of peer nodes
- * Parent - Parent of the subtree
- *
- * RETURN: None
- *
- * DESCRIPTION: Set the parent for all peer nodes in a subtree
- *
- ******************************************************************************/
-
-static void
-TrAmlSetSubtreeParent (
- ACPI_PARSE_OBJECT *Op,
- ACPI_PARSE_OBJECT *Parent)
-{
- ACPI_PARSE_OBJECT *Next;
-
-
- Next = Op;
- while (Next)
- {
- Next->Asl.Parent = Parent;
- Next = Next->Asl.Next;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: TrAmlInsertPeer
- *
- * PARAMETERS: Op - First node in a list of peer nodes
- * NewPeer - Peer node to insert
- *
- * RETURN: None
- *
- * DESCRIPTION: Insert a new peer node into a list of peers.
- *
- ******************************************************************************/
-
-static void
-TrAmlInsertPeer (
- ACPI_PARSE_OBJECT *Op,
- ACPI_PARSE_OBJECT *NewPeer)
-{
-
- NewPeer->Asl.Next = Op->Asl.Next;
- Op->Asl.Next = NewPeer;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: TrAmlTransformWalk
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: None
- *
- * DESCRIPTION: Parse tree walk to generate both the AML opcodes and the AML
- * operands.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-TrAmlTransformWalk (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
-
- TrTransformSubtree (Op);
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: TrTransformSubtree
- *
- * PARAMETERS: Op - The parent parse node
- *
- * RETURN: None
- *
- * DESCRIPTION: Prepare nodes to be output as AML data and operands. The more
- * complex AML opcodes require processing of the child nodes
- * (arguments/operands).
- *
- ******************************************************************************/
-
-static void
-TrTransformSubtree (
- ACPI_PARSE_OBJECT *Op)
-{
-
- if (Op->Asl.AmlOpcode == AML_RAW_DATA_BYTE)
- {
- return;
- }
-
- switch (Op->Asl.ParseOpcode)
- {
- case PARSEOP_DEFINITIONBLOCK:
- TrDoDefinitionBlock (Op);
- break;
-
- case PARSEOP_SWITCH:
- TrDoSwitch (Op);
- break;
-
- case PARSEOP_METHOD:
-
- /*
- * TBD: Zero the tempname (_T_x) count. Probably shouldn't be a global,
- * however
- */
- Gbl_TempCount = 0;
- break;
-
- default:
- /* Nothing to do here for other opcodes */
- break;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: TrDoDefinitionBlock
- *
- * PARAMETERS: Op - Parse node
- *
- * RETURN: None
- *
- * DESCRIPTION: Find the end of the definition block and set a global to this
- * node. It is used by the compiler to insert compiler-generated
- * names at the root level of the namespace.
- *
- ******************************************************************************/
-
-static void
-TrDoDefinitionBlock (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *Next;
- UINT32 i;
-
-
- Next = Op->Asl.Child;
- for (i = 0; i < 5; i++)
- {
- Next = Next->Asl.Next;
- if (i == 0)
- {
- /*
- * This is the table signature. Only the DSDT can be assumed
- * to be at the root of the namespace; Therefore, namepath
- * optimization can only be performed on the DSDT.
- */
- if (!ACPI_COMPARE_NAME (Next->Asl.Value.String, ACPI_SIG_DSDT))
- {
- Gbl_ReferenceOptimizationFlag = FALSE;
- }
- }
- }
-
- Gbl_FirstLevelInsertionNode = Next;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: TrDoSwitch
- *
- * PARAMETERS: StartNode - Parse node for SWITCH
- *
- * RETURN: None
- *
- *
- * DESCRIPTION: Translate ASL SWITCH statement to if/else pairs. There is
- * no actual AML opcode for SWITCH -- it must be simulated.
- *
- ******************************************************************************/
-
-static void
-TrDoSwitch (
- ACPI_PARSE_OBJECT *StartNode)
-{
- ACPI_PARSE_OBJECT *Next;
- ACPI_PARSE_OBJECT *CaseOp = NULL;
- ACPI_PARSE_OBJECT *CaseBlock = NULL;
- ACPI_PARSE_OBJECT *DefaultOp = NULL;
- ACPI_PARSE_OBJECT *CurrentParentNode;
- ACPI_PARSE_OBJECT *Conditional = NULL;
- ACPI_PARSE_OBJECT *Predicate;
- ACPI_PARSE_OBJECT *Peer;
- ACPI_PARSE_OBJECT *NewOp;
- ACPI_PARSE_OBJECT *NewOp2;
- char *PredicateValueName;
- UINT16 Index;
- UINT32 Btype;
-
-
- /* Start node is the Switch() node */
-
- CurrentParentNode = StartNode;
-
- /* Create a new temp name of the form _T_x */
-
- PredicateValueName = TrAmlGetNextTempName (StartNode, &Gbl_TempCount);
- if (!PredicateValueName)
- {
- return;
- }
-
- /* First child is the Switch() predicate */
-
- Next = StartNode->Asl.Child;
-
- /*
- * Examine the return type of the Switch Value -
- * must be Integer/Buffer/String
- */
- Index = (UINT16) (Next->Asl.ParseOpcode - ASL_PARSE_OPCODE_BASE);
- Btype = AslKeywordMapping[Index].AcpiBtype;
- if ((Btype != ACPI_BTYPE_INTEGER) &&
- (Btype != ACPI_BTYPE_STRING) &&
- (Btype != ACPI_BTYPE_BUFFER))
- {
- AslError (ASL_WARNING, ASL_MSG_SWITCH_TYPE, Next, NULL);
- Btype = ACPI_BTYPE_INTEGER;
- }
-
- /* CASE statements start at next child */
-
- Peer = Next->Asl.Next;
- while (Peer)
- {
- Next = Peer;
- Peer = Next->Asl.Next;
-
- if (Next->Asl.ParseOpcode == PARSEOP_CASE)
- {
- if (CaseOp)
- {
- /* Add an ELSE to complete the previous CASE */
-
- if (!Conditional)
- {
- return;
- }
- NewOp = TrCreateLeafNode (PARSEOP_ELSE);
- NewOp->Asl.Parent = Conditional->Asl.Parent;
- TrAmlInitLineNumbers (NewOp, NewOp->Asl.Parent);
-
- /* Link ELSE node as a peer to the previous IF */
-
- TrAmlInsertPeer (Conditional, NewOp);
- CurrentParentNode = NewOp;
- }
-
- CaseOp = Next;
- Conditional = CaseOp;
- CaseBlock = CaseOp->Asl.Child->Asl.Next;
- Conditional->Asl.Child->Asl.Next = NULL;
- Predicate = CaseOp->Asl.Child;
-
- if ((Predicate->Asl.ParseOpcode == PARSEOP_PACKAGE) ||
- (Predicate->Asl.ParseOpcode == PARSEOP_VAR_PACKAGE))
- {
- /*
- * Convert the package declaration to this form:
- *
- * If (LNotEqual (Match (Package(<size>){<data>},
- * MEQ, _T_x, MTR, Zero, Zero), Ones))
- */
- NewOp2 = TrCreateLeafNode (PARSEOP_MATCHTYPE_MEQ);
- Predicate->Asl.Next = NewOp2;
- TrAmlInitLineNumbers (NewOp2, Conditional);
-
- NewOp = NewOp2;
- NewOp2 = TrCreateValuedLeafNode (PARSEOP_NAMESTRING,
- (ACPI_INTEGER) ACPI_TO_INTEGER (PredicateValueName));
- NewOp->Asl.Next = NewOp2;
- TrAmlInitLineNumbers (NewOp2, Predicate);
-
- NewOp = NewOp2;
- NewOp2 = TrCreateLeafNode (PARSEOP_MATCHTYPE_MTR);
- NewOp->Asl.Next = NewOp2;
- TrAmlInitLineNumbers (NewOp2, Predicate);
-
- NewOp = NewOp2;
- NewOp2 = TrCreateLeafNode (PARSEOP_ZERO);
- NewOp->Asl.Next = NewOp2;
- TrAmlInitLineNumbers (NewOp2, Predicate);
-
- NewOp = NewOp2;
- NewOp2 = TrCreateLeafNode (PARSEOP_ZERO);
- NewOp->Asl.Next = NewOp2;
- TrAmlInitLineNumbers (NewOp2, Predicate);
-
- NewOp2 = TrCreateLeafNode (PARSEOP_MATCH);
- NewOp2->Asl.Child = Predicate; /* PARSEOP_PACKAGE */
- TrAmlInitLineNumbers (NewOp2, Conditional);
- TrAmlSetSubtreeParent (Predicate, NewOp2);
-
- NewOp = NewOp2;
- NewOp2 = TrCreateLeafNode (PARSEOP_ONES);
- NewOp->Asl.Next = NewOp2;
- TrAmlInitLineNumbers (NewOp2, Conditional);
-
- NewOp2 = TrCreateLeafNode (PARSEOP_LEQUAL);
- NewOp2->Asl.Child = NewOp;
- NewOp->Asl.Parent = NewOp2;
- TrAmlInitLineNumbers (NewOp2, Conditional);
- TrAmlSetSubtreeParent (NewOp, NewOp2);
-
- NewOp = NewOp2;
- NewOp2 = TrCreateLeafNode (PARSEOP_LNOT);
- NewOp2->Asl.Child = NewOp;
- NewOp2->Asl.Parent = Conditional;
- NewOp->Asl.Parent = NewOp2;
- TrAmlInitLineNumbers (NewOp2, Conditional);
-
- Conditional->Asl.Child = NewOp2;
- NewOp2->Asl.Next = CaseBlock;
- }
- else
- {
- /*
- * Integer and Buffer case.
- *
- * Change CaseOp() to: If (LEqual (SwitchValue, CaseValue)) {...}
- * Note: SwitchValue is first to allow the CaseValue to be implicitly
- * converted to the type of SwitchValue if necessary.
- *
- * CaseOp->Child is the case value
- * CaseOp->Child->Peer is the beginning of the case block
- */
- NewOp = TrCreateValuedLeafNode (PARSEOP_NAMESTRING,
- (ACPI_INTEGER) ACPI_TO_INTEGER (PredicateValueName));
- NewOp->Asl.Next = Predicate;
- TrAmlInitLineNumbers (NewOp, Predicate);
-
- NewOp2 = TrCreateLeafNode (PARSEOP_LEQUAL);
- NewOp2->Asl.Parent = Conditional;
- NewOp2->Asl.Child = NewOp;
- TrAmlInitLineNumbers (NewOp2, Conditional);
-
- TrAmlSetSubtreeParent (NewOp, NewOp2);
-
- Predicate = NewOp2;
- Predicate->Asl.Next = CaseBlock;
-
- TrAmlSetSubtreeParent (Predicate, Conditional);
- Conditional->Asl.Child = Predicate;
- }
-
- /* Reinitialize the CASE node to an IF node */
-
- TrAmlInitNode (Conditional, PARSEOP_IF);
-
- /*
- * The first CASE(IF) is not nested under an ELSE.
- * All other CASEs are children of a parent ELSE.
- */
- if (CurrentParentNode == StartNode)
- {
- Conditional->Asl.Parent = CurrentParentNode->Asl.Parent;
-
- /* Link IF into the peer list */
-
- TrAmlInsertPeer (CurrentParentNode, Conditional);
- }
- else
- {
- /*
- * The IF is a child of previous IF/ELSE. It
- * is therefore without peer.
- */
- CurrentParentNode->Asl.Child = Conditional;
- Conditional->Asl.Parent = CurrentParentNode;
- Conditional->Asl.Next = NULL;
- }
- }
- else if (Next->Asl.ParseOpcode == PARSEOP_DEFAULT)
- {
- if (DefaultOp)
- {
- /*
- * More than one Default
- * (Parser does not catch this, must check here)
- */
- AslError (ASL_ERROR, ASL_MSG_MULTIPLE_DEFAULT, Next, NULL);
- }
- else
- {
- /* Save the DEFAULT node for later, after CASEs */
-
- DefaultOp = Next;
- }
- }
- else
- {
- /* Unknown peer opcode */
-
- AcpiOsPrintf ("Unknown parse opcode for switch statement: %s (%d)\n",
- Next->Asl.ParseOpName, Next->Asl.ParseOpcode);
- }
- }
-
- /* Add the default case at the end of the if/else construct */
-
- if (DefaultOp)
- {
- /* If no CASE statements, this is an error - see below */
-
- if (CaseOp)
- {
- /* Convert the DEFAULT node to an ELSE */
-
- if (!Conditional)
- {
- return;
- }
- TrAmlInitNode (DefaultOp, PARSEOP_ELSE);
- DefaultOp->Asl.Parent = Conditional->Asl.Parent;
-
- /* Link ELSE node as a peer to the previous IF */
-
- TrAmlInsertPeer (Conditional, DefaultOp);
- }
- }
-
- if (!CaseOp)
- {
- AslError (ASL_ERROR, ASL_MSG_NO_CASES, StartNode, NULL);
- }
-
-
- /*
- * Create a Name(_T_x, ...) statement. This statement must appear at the
- * method level, in case a loop surrounds the switch statement and could
- * cause the name to be created twice (error).
- */
-
- /* Create the Name node */
-
- Predicate = StartNode->Asl.Child;
- NewOp = TrCreateLeafNode (PARSEOP_NAME);
-
- /* Find the parent method */
-
- Next = StartNode;
- while ((Next->Asl.ParseOpcode != PARSEOP_METHOD) &&
- (Next->Asl.ParseOpcode != PARSEOP_DEFINITIONBLOCK))
- {
- Next = Next->Asl.Parent;
- }
-
- NewOp->Asl.CompileFlags |= NODE_COMPILER_EMITTED;
- NewOp->Asl.Parent = Next;
-
- /* Insert name after the method name and arguments */
-
- Next = Next->Asl.Child;
- Next = Next->Asl.Next;
- Next = Next->Asl.Next;
- Next = Next->Asl.Next;
- Next = Next->Asl.Next;
- Next = Next->Asl.Next;
-
- TrAmlInsertPeer (Next, NewOp);
- TrAmlInitLineNumbers (NewOp, Next);
-
- /* Create the NameSeg child for the Name node */
-
- NewOp2 = TrCreateValuedLeafNode (PARSEOP_NAMESEG,
- (ACPI_INTEGER) ACPI_TO_INTEGER (PredicateValueName));
- NewOp2->Asl.CompileFlags |= NODE_IS_NAME_DECLARATION;
- NewOp->Asl.Child = NewOp2;
-
- /* Create the initial value for the Name. Btype was already validated above */
-
- switch (Btype)
- {
- case ACPI_BTYPE_INTEGER:
- NewOp2->Asl.Next = TrCreateValuedLeafNode (PARSEOP_ZERO,
- (ACPI_INTEGER) 0);
- break;
-
- case ACPI_BTYPE_STRING:
- NewOp2->Asl.Next = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL,
- (ACPI_INTEGER) "");
- break;
-
- case ACPI_BTYPE_BUFFER:
- (void) TrLinkPeerNode (NewOp2, TrCreateValuedLeafNode (PARSEOP_BUFFER,
- (ACPI_INTEGER) 0));
- Next = NewOp2->Asl.Next;
- (void) TrLinkChildren (Next, 1, TrCreateValuedLeafNode (PARSEOP_ZERO,
- (ACPI_INTEGER) 1));
- (void) TrLinkPeerNode (Next->Asl.Child,
- TrCreateValuedLeafNode (PARSEOP_DEFAULT_ARG, (ACPI_INTEGER) 0));
-
- TrAmlSetSubtreeParent (Next->Asl.Child, Next);
- break;
-
- default:
- break;
- }
-
- TrAmlSetSubtreeParent (NewOp2, NewOp);
-
- /*
- * Transform the Switch() into a Store() node which will be used to save the
- * Switch() value. The store is of the form: Store (Value, _T_x)
- * where _T_x is the temp variable.
- */
- TrAmlInitNode (StartNode, PARSEOP_STORE);
- StartNode->Asl.Child = NULL;
-
- /* Complete the Store subtree */
-
- StartNode->Asl.Child = Predicate;
- Predicate->Asl.Parent = StartNode;
-
- NewOp = TrCreateValuedLeafNode (PARSEOP_NAMESEG,
- (ACPI_INTEGER) ACPI_TO_INTEGER (PredicateValueName));
- NewOp->Asl.Parent = StartNode;
- Predicate->Asl.Next = NewOp;
-}
-
-
diff --git a/sys/contrib/dev/acpica/compiler/asltree.c b/sys/contrib/dev/acpica/compiler/asltree.c
deleted file mode 100644
index db9893d..0000000
--- a/sys/contrib/dev/acpica/compiler/asltree.c
+++ /dev/null
@@ -1,1194 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: asltree - parse tree management
- * $Revision: 1.63 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/compiler/aslcompiler.h>
-#include "aslcompiler.y.h"
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("asltree")
-
-/* Local prototypes */
-
-static ACPI_PARSE_OBJECT *
-TrGetNextNode (
- void);
-
-static char *
-TrGetNodeFlagName (
- UINT32 Flags);
-
-
-/*******************************************************************************
- *
- * FUNCTION: TrGetNextNode
- *
- * PARAMETERS: None
- *
- * RETURN: New parse node. Aborts on allocation failure
- *
- * DESCRIPTION: Allocate a new parse node for the parse tree. Bypass the local
- * dynamic memory manager for performance reasons (This has a
- * major impact on the speed of the compiler.)
- *
- ******************************************************************************/
-
-static ACPI_PARSE_OBJECT *
-TrGetNextNode (
- void)
-{
-
- if (Gbl_NodeCacheNext >= Gbl_NodeCacheLast)
- {
- Gbl_NodeCacheNext = UtLocalCalloc (sizeof (ACPI_PARSE_OBJECT) *
- ASL_NODE_CACHE_SIZE);
- Gbl_NodeCacheLast = Gbl_NodeCacheNext + ASL_NODE_CACHE_SIZE;
- }
-
- return (Gbl_NodeCacheNext++);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: TrAllocateNode
- *
- * PARAMETERS: ParseOpcode - Opcode to be assigned to the node
- *
- * RETURN: New parse node. Aborts on allocation failure
- *
- * DESCRIPTION: Allocate and initialize a new parse node for the parse tree
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT *
-TrAllocateNode (
- UINT32 ParseOpcode)
-{
- ACPI_PARSE_OBJECT *Op;
-
-
- Op = TrGetNextNode ();
-
- Op->Asl.ParseOpcode = (UINT16) ParseOpcode;
- Op->Asl.Filename = Gbl_Files[ASL_FILE_INPUT].Filename;
- Op->Asl.LineNumber = Gbl_CurrentLineNumber;
- Op->Asl.LogicalLineNumber = Gbl_LogicalLineNumber;
- Op->Asl.LogicalByteOffset = Gbl_CurrentLineOffset;
- Op->Asl.Column = Gbl_CurrentColumn;
-
- UtSetParseOpName (Op);
- return Op;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: TrReleaseNode
- *
- * PARAMETERS: Op - Op to be released
- *
- * RETURN: None
- *
- * DESCRIPTION: "release" a node. In truth, nothing is done since the node
- * is part of a larger buffer
- *
- ******************************************************************************/
-
-void
-TrReleaseNode (
- ACPI_PARSE_OBJECT *Op)
-{
-
- return;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: TrUpdateNode
- *
- * PARAMETERS: ParseOpcode - New opcode to be assigned to the node
- * Op - An existing parse node
- *
- * RETURN: The updated node
- *
- * DESCRIPTION: Change the parse opcode assigned to a node. Usually used to
- * change an opcode to DEFAULT_ARG so that the node is ignored
- * during the code generation. Also used to set generic integers
- * to a specific size (8, 16, 32, or 64 bits)
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT *
-TrUpdateNode (
- UINT32 ParseOpcode,
- ACPI_PARSE_OBJECT *Op)
-{
-
- if (!Op)
- {
- return NULL;
- }
-
- DbgPrint (ASL_PARSE_OUTPUT,
- "\nUpdateNode: Old - %s, New - %s\n\n",
- UtGetOpName (Op->Asl.ParseOpcode),
- UtGetOpName (ParseOpcode));
-
- /* Assign new opcode and name */
-
- if (Op->Asl.ParseOpcode == PARSEOP_ONES)
- {
- switch (ParseOpcode)
- {
- case PARSEOP_BYTECONST:
- Op->Asl.Value.Integer = 0xFF;
- break;
-
- case PARSEOP_WORDCONST:
- Op->Asl.Value.Integer = 0xFFFF;
- break;
-
- case PARSEOP_DWORDCONST:
- Op->Asl.Value.Integer = 0xFFFFFFFF;
- break;
-
- default:
- /* Don't care about others, don't need to check QWORD */
- break;
- }
- }
-
- Op->Asl.ParseOpcode = (UINT16) ParseOpcode;
- UtSetParseOpName (Op);
-
- /*
- * For the BYTE, WORD, and DWORD constants, make sure that the integer
- * that was passed in will actually fit into the data type
- */
- switch (ParseOpcode)
- {
- case PARSEOP_BYTECONST:
- Op = UtCheckIntegerRange (Op, 0x00, ACPI_UINT8_MAX);
- break;
-
- case PARSEOP_WORDCONST:
- Op = UtCheckIntegerRange (Op, 0x00, ACPI_UINT16_MAX);
- break;
-
- case PARSEOP_DWORDCONST:
- Op = UtCheckIntegerRange (Op, 0x00, ACPI_UINT32_MAX);
- break;
-
- default:
- /* Don't care about others, don't need to check QWORD */
- break;
- }
-
- return Op;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: TrGetNodeFlagName
- *
- * PARAMETERS: Flags - Flags word to be decoded
- *
- * RETURN: Name string. Always returns a valid string pointer.
- *
- * DESCRIPTION: Decode a flags word
- *
- ******************************************************************************/
-
-static char *
-TrGetNodeFlagName (
- UINT32 Flags)
-{
-
- switch (Flags)
- {
- case NODE_VISITED:
- return ("NODE_VISITED");
-
- case NODE_AML_PACKAGE:
- return ("NODE_AML_PACKAGE");
-
- case NODE_IS_TARGET:
- return ("NODE_IS_TARGET");
-
- case NODE_IS_RESOURCE_DESC:
- return ("NODE_IS_RESOURCE_DESC");
-
- case NODE_IS_RESOURCE_FIELD:
- return ("NODE_IS_RESOURCE_FIELD");
-
- case NODE_HAS_NO_EXIT:
- return ("NODE_HAS_NO_EXIT");
-
- case NODE_IF_HAS_NO_EXIT:
- return ("NODE_IF_HAS_NO_EXIT");
-
- case NODE_NAME_INTERNALIZED:
- return ("NODE_NAME_INTERNALIZED");
-
- case NODE_METHOD_NO_RETVAL:
- return ("NODE_METHOD_NO_RETVAL");
-
- case NODE_METHOD_SOME_NO_RETVAL:
- return ("NODE_METHOD_SOME_NO_RETVAL");
-
- case NODE_RESULT_NOT_USED:
- return ("NODE_RESULT_NOT_USED");
-
- case NODE_METHOD_TYPED:
- return ("NODE_METHOD_TYPED");
-
- case NODE_IS_BIT_OFFSET:
- return ("NODE_IS_BIT_OFFSET");
-
- case NODE_COMPILE_TIME_CONST:
- return ("NODE_COMPILE_TIME_CONST");
-
- case NODE_IS_TERM_ARG:
- return ("NODE_IS_TERM_ARG");
-
- case NODE_WAS_ONES_OP:
- return ("NODE_WAS_ONES_OP");
-
- case NODE_IS_NAME_DECLARATION:
- return ("NODE_IS_NAME_DECLARATION");
-
- default:
- return ("Multiple Flags (or unknown flag) set");
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: TrSetNodeFlags
- *
- * PARAMETERS: Op - An existing parse node
- * Flags - New flags word
- *
- * RETURN: The updated parser op
- *
- * DESCRIPTION: Set bits in the node flags word. Will not clear bits, only set
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT *
-TrSetNodeFlags (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Flags)
-{
-
- DbgPrint (ASL_PARSE_OUTPUT,
- "\nSetNodeFlags: Op %p, %8.8X %s\n\n", Op, Flags,
- TrGetNodeFlagName (Flags));
-
- if (!Op)
- {
- return NULL;
- }
-
- Op->Asl.CompileFlags |= Flags;
-
- return Op;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: TrSetEndLineNumber
- *
- * PARAMETERS: Op - An existing parse node
- *
- * RETURN: None.
- *
- * DESCRIPTION: Set the ending line numbers (file line and logical line) of a
- * parse node to the current line numbers.
- *
- ******************************************************************************/
-
-void
-TrSetEndLineNumber (
- ACPI_PARSE_OBJECT *Op)
-{
-
- /* If the end line # is already set, just return */
-
- if (Op->Asl.EndLine)
- {
- return;
- }
-
- Op->Asl.EndLine = Gbl_CurrentLineNumber;
- Op->Asl.EndLogicalLine = Gbl_LogicalLineNumber;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: TrCreateLeafNode
- *
- * PARAMETERS: ParseOpcode - New opcode to be assigned to the node
- *
- * RETURN: Pointer to the new node. Aborts on allocation failure
- *
- * DESCRIPTION: Create a simple leaf node (no children or peers, and no value
- * assigned to the node)
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT *
-TrCreateLeafNode (
- UINT32 ParseOpcode)
-{
- ACPI_PARSE_OBJECT *Op;
-
-
- Op = TrAllocateNode (ParseOpcode);
-
- DbgPrint (ASL_PARSE_OUTPUT,
- "\nCreateLeafNode Ln/Col %d/%d NewNode %p Op %s\n\n",
- Op->Asl.LineNumber, Op->Asl.Column, Op, UtGetOpName(ParseOpcode));
-
- return Op;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: TrCreateValuedLeafNode
- *
- * PARAMETERS: ParseOpcode - New opcode to be assigned to the node
- * Value - Value to be assigned to the node
- *
- * RETURN: Pointer to the new node. Aborts on allocation failure
- *
- * DESCRIPTION: Create a leaf node (no children or peers) with a value
- * assigned to it
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT *
-TrCreateValuedLeafNode (
- UINT32 ParseOpcode,
- ACPI_INTEGER Value)
-{
- ACPI_PARSE_OBJECT *Op;
-
-
- Op = TrAllocateNode (ParseOpcode);
-
- DbgPrint (ASL_PARSE_OUTPUT,
- "\nCreateValuedLeafNode Ln/Col %d/%d NewNode %p Op %s Value %8.8X%8.8X ",
- Op->Asl.LineNumber, Op->Asl.Column, Op, UtGetOpName(ParseOpcode),
- ACPI_FORMAT_UINT64 (Value));
- Op->Asl.Value.Integer = Value;
-
- switch (ParseOpcode)
- {
- case PARSEOP_STRING_LITERAL:
- DbgPrint (ASL_PARSE_OUTPUT, "STRING->%s", Value);
- break;
-
- case PARSEOP_NAMESEG:
- DbgPrint (ASL_PARSE_OUTPUT, "NAMESEG->%s", Value);
- break;
-
- case PARSEOP_NAMESTRING:
- DbgPrint (ASL_PARSE_OUTPUT, "NAMESTRING->%s", Value);
- break;
-
- case PARSEOP_EISAID:
- DbgPrint (ASL_PARSE_OUTPUT, "EISAID->%s", Value);
- break;
-
- case PARSEOP_METHOD:
- DbgPrint (ASL_PARSE_OUTPUT, "METHOD");
- break;
-
- case PARSEOP_INTEGER:
- DbgPrint (ASL_PARSE_OUTPUT, "INTEGER");
- break;
-
- default:
- break;
- }
-
- DbgPrint (ASL_PARSE_OUTPUT, "\n\n");
- return Op;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: TrCreateNode
- *
- * PARAMETERS: ParseOpcode - Opcode to be assigned to the node
- * NumChildren - Number of children to follow
- * ... - A list of child nodes to link to the new
- * node. NumChildren long.
- *
- * RETURN: Pointer to the new node. Aborts on allocation failure
- *
- * DESCRIPTION: Create a new parse node and link together a list of child
- * nodes underneath the new node.
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT *
-TrCreateNode (
- UINT32 ParseOpcode,
- UINT32 NumChildren,
- ...)
-{
- ACPI_PARSE_OBJECT *Op;
- ACPI_PARSE_OBJECT *Child;
- ACPI_PARSE_OBJECT *PrevChild;
- va_list ap;
- UINT32 i;
- BOOLEAN FirstChild;
-
-
- va_start (ap, NumChildren);
-
- /* Allocate one new node */
-
- Op = TrAllocateNode (ParseOpcode);
-
- DbgPrint (ASL_PARSE_OUTPUT,
- "\nCreateNode Ln/Col %d/%d NewParent %p Child %d Op %s ",
- Op->Asl.LineNumber, Op->Asl.Column, Op, NumChildren, UtGetOpName(ParseOpcode));
-
- /* Some extra debug output based on the parse opcode */
-
- switch (ParseOpcode)
- {
- case PARSEOP_DEFINITIONBLOCK:
- RootNode = Op;
- DbgPrint (ASL_PARSE_OUTPUT, "DEFINITION_BLOCK (Tree Completed)->");
- break;
-
- case PARSEOP_OPERATIONREGION:
- DbgPrint (ASL_PARSE_OUTPUT, "OPREGION->");
- break;
-
- case PARSEOP_OR:
- DbgPrint (ASL_PARSE_OUTPUT, "OR->");
- break;
-
- default:
- /* Nothing to do for other opcodes */
- break;
- }
-
- /* Link the new node to its children */
-
- PrevChild = NULL;
- FirstChild = TRUE;
- for (i = 0; i < NumChildren; i++)
- {
- /* Get the next child */
-
- Child = va_arg (ap, ACPI_PARSE_OBJECT *);
- DbgPrint (ASL_PARSE_OUTPUT, "%p, ", Child);
-
- /*
- * If child is NULL, this means that an optional argument
- * was omitted. We must create a placeholder with a special
- * opcode (DEFAULT_ARG) so that the code generator will know
- * that it must emit the correct default for this argument
- */
- if (!Child)
- {
- Child = TrAllocateNode (PARSEOP_DEFAULT_ARG);
- }
-
- /* Link first child to parent */
-
- if (FirstChild)
- {
- FirstChild = FALSE;
- Op->Asl.Child = Child;
- }
-
- /* Point all children to parent */
-
- Child->Asl.Parent = Op;
-
- /* Link children in a peer list */
-
- if (PrevChild)
- {
- PrevChild->Asl.Next = Child;
- };
-
- /*
- * This child might be a list, point all nodes in the list
- * to the same parent
- */
- while (Child->Asl.Next)
- {
- Child = Child->Asl.Next;
- Child->Asl.Parent = Op;
- }
-
- PrevChild = Child;
- }
- va_end(ap);
-
- DbgPrint (ASL_PARSE_OUTPUT, "\n\n");
- return Op;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: TrLinkChildren
- *
- * PARAMETERS: Op - An existing parse node
- * NumChildren - Number of children to follow
- * ... - A list of child nodes to link to the new
- * node. NumChildren long.
- *
- * RETURN: The updated (linked) node
- *
- * DESCRIPTION: Link a group of nodes to an existing parse node
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT *
-TrLinkChildren (
- ACPI_PARSE_OBJECT *Op,
- UINT32 NumChildren,
- ...)
-{
- ACPI_PARSE_OBJECT *Child;
- ACPI_PARSE_OBJECT *PrevChild;
- va_list ap;
- UINT32 i;
- BOOLEAN FirstChild;
-
-
- va_start (ap, NumChildren);
-
-
- TrSetEndLineNumber (Op);
-
- DbgPrint (ASL_PARSE_OUTPUT,
- "\nLinkChildren Line [%d to %d] NewParent %p Child %d Op %s ",
- Op->Asl.LineNumber, Op->Asl.EndLine,
- Op, NumChildren, UtGetOpName(Op->Asl.ParseOpcode));
-
- switch (Op->Asl.ParseOpcode)
- {
- case PARSEOP_DEFINITIONBLOCK:
- RootNode = Op;
- DbgPrint (ASL_PARSE_OUTPUT, "DEFINITION_BLOCK (Tree Completed)->");
- break;
-
- case PARSEOP_OPERATIONREGION:
- DbgPrint (ASL_PARSE_OUTPUT, "OPREGION->");
- break;
-
- case PARSEOP_OR:
- DbgPrint (ASL_PARSE_OUTPUT, "OR->");
- break;
-
- default:
- /* Nothing to do for other opcodes */
- break;
- }
-
- /* Link the new node to it's children */
-
- PrevChild = NULL;
- FirstChild = TRUE;
- for (i = 0; i < NumChildren; i++)
- {
- Child = va_arg (ap, ACPI_PARSE_OBJECT *);
-
- if ((Child == PrevChild) && (Child != NULL))
- {
- AslError (ASL_WARNING, ASL_MSG_COMPILER_INTERNAL, Child,
- "Child node list invalid");
- return Op;
- }
-
- DbgPrint (ASL_PARSE_OUTPUT, "%p, ", Child);
-
- /*
- * If child is NULL, this means that an optional argument
- * was omitted. We must create a placeholder with a special
- * opcode (DEFAULT_ARG) so that the code generator will know
- * that it must emit the correct default for this argument
- */
- if (!Child)
- {
- Child = TrAllocateNode (PARSEOP_DEFAULT_ARG);
- }
-
- /* Link first child to parent */
-
- if (FirstChild)
- {
- FirstChild = FALSE;
- Op->Asl.Child = Child;
- }
-
- /* Point all children to parent */
-
- Child->Asl.Parent = Op;
-
- /* Link children in a peer list */
-
- if (PrevChild)
- {
- PrevChild->Asl.Next = Child;
- };
-
- /*
- * This child might be a list, point all nodes in the list
- * to the same parent
- */
- while (Child->Asl.Next)
- {
- Child = Child->Asl.Next;
- Child->Asl.Parent = Op;
- }
- PrevChild = Child;
- }
- va_end(ap);
-
- DbgPrint (ASL_PARSE_OUTPUT, "\n\n");
- return Op;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: TrLinkPeerNode
- *
- * PARAMETERS: Op1 - First peer
- * Op2 - Second peer
- *
- * RETURN: Op1 or the non-null node.
- *
- * DESCRIPTION: Link two nodes as peers. Handles cases where one peer is null.
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT *
-TrLinkPeerNode (
- ACPI_PARSE_OBJECT *Op1,
- ACPI_PARSE_OBJECT *Op2)
-{
- ACPI_PARSE_OBJECT *Next;
-
-
- DbgPrint (ASL_PARSE_OUTPUT,
- "\nLinkPeerNode: 1=%p (%s), 2=%p (%s)\n\n",
- Op1, Op1 ? UtGetOpName(Op1->Asl.ParseOpcode) : NULL,
- Op2, Op2 ? UtGetOpName(Op2->Asl.ParseOpcode) : NULL);
-
-
- if ((!Op1) && (!Op2))
- {
- DbgPrint (ASL_PARSE_OUTPUT, "\nTwo Null nodes!\n");
- return Op1;
- }
-
- /* If one of the nodes is null, just return the non-null node */
-
- if (!Op2)
- {
- return Op1;
- }
-
- if (!Op1)
- {
- return Op2;
- }
-
- if (Op1 == Op2)
- {
- DbgPrint (ASL_DEBUG_OUTPUT,
- "\n\n************* Internal error, linking node to itself %p\n\n\n",
- Op1);
- AslError (ASL_WARNING, ASL_MSG_COMPILER_INTERNAL, Op1,
- "Linking node to itself");
- return Op1;
- }
-
- Op1->Asl.Parent = Op2->Asl.Parent;
-
- /*
- * Op 1 may already have a peer list (such as an IF/ELSE pair),
- * so we must walk to the end of the list and attach the new
- * peer at the end
- */
- Next = Op1;
- while (Next->Asl.Next)
- {
- Next = Next->Asl.Next;
- }
-
- Next->Asl.Next = Op2;
- return Op1;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: TrLinkPeerNodes
- *
- * PARAMETERS: NumPeers - The number of nodes in the list to follow
- * ... - A list of nodes to link together as peers
- *
- * RETURN: The first node in the list (head of the peer list)
- *
- * DESCRIPTION: Link together an arbitrary number of peer nodes.
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT *
-TrLinkPeerNodes (
- UINT32 NumPeers,
- ...)
-{
- ACPI_PARSE_OBJECT *This;
- ACPI_PARSE_OBJECT *Next;
- va_list ap;
- UINT32 i;
- ACPI_PARSE_OBJECT *Start;
-
-
- DbgPrint (ASL_PARSE_OUTPUT,
- "\nLinkPeerNodes: (%d) ", NumPeers);
-
- va_start (ap, NumPeers);
- This = va_arg (ap, ACPI_PARSE_OBJECT *);
- Start = This;
-
- /*
- * Link all peers
- */
- for (i = 0; i < (NumPeers -1); i++)
- {
- DbgPrint (ASL_PARSE_OUTPUT, "%d=%p ", (i+1), This);
-
- while (This->Asl.Next)
- {
- This = This->Asl.Next;
- }
-
- /* Get another peer node */
-
- Next = va_arg (ap, ACPI_PARSE_OBJECT *);
- if (!Next)
- {
- Next = TrAllocateNode (PARSEOP_DEFAULT_ARG);
- }
-
- /* link new node to the current node */
-
- This->Asl.Next = Next;
- This = Next;
- }
-
- DbgPrint (ASL_PARSE_OUTPUT,"\n\n");
- return (Start);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: TrLinkChildNode
- *
- * PARAMETERS: Op1 - Parent node
- * Op2 - Op to become a child
- *
- * RETURN: The parent node
- *
- * DESCRIPTION: Link two nodes together as a parent and child
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT *
-TrLinkChildNode (
- ACPI_PARSE_OBJECT *Op1,
- ACPI_PARSE_OBJECT *Op2)
-{
- ACPI_PARSE_OBJECT *Next;
-
-
- DbgPrint (ASL_PARSE_OUTPUT,
- "\nLinkChildNode: Parent=%p (%s), Child=%p (%s)\n\n",
- Op1, Op1 ? UtGetOpName(Op1->Asl.ParseOpcode): NULL,
- Op2, Op2 ? UtGetOpName(Op2->Asl.ParseOpcode): NULL);
-
- if (!Op1 || !Op2)
- {
- return Op1;
- }
-
- Op1->Asl.Child = Op2;
-
- /* Set the child and all peers of the child to point to the parent */
-
- Next = Op2;
- while (Next)
- {
- Next->Asl.Parent = Op1;
- Next = Next->Asl.Next;
- }
-
- return Op1;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: TrWalkParseTree
- *
- * PARAMETERS: Visitation - Type of walk
- * DescendingCallback - Called during tree descent
- * AscendingCallback - Called during tree ascent
- * Context - To be passed to the callbacks
- *
- * RETURN: Status from callback(s)
- *
- * DESCRIPTION: Walk the entire parse tree.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-TrWalkParseTree (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Visitation,
- ASL_WALK_CALLBACK DescendingCallback,
- ASL_WALK_CALLBACK AscendingCallback,
- void *Context)
-{
- UINT32 Level;
- BOOLEAN NodePreviouslyVisited;
- ACPI_PARSE_OBJECT *StartOp = Op;
- ACPI_STATUS Status;
-
-
- if (!RootNode)
- {
- return (AE_OK);
- }
-
- Level = 0;
- NodePreviouslyVisited = FALSE;
-
- switch (Visitation)
- {
- case ASL_WALK_VISIT_DOWNWARD:
-
- while (Op)
- {
- if (!NodePreviouslyVisited)
- {
- /* Let the callback process the node. */
-
- Status = DescendingCallback (Op, Level, Context);
- if (ACPI_SUCCESS (Status))
- {
- /* Visit children first, once */
-
- if (Op->Asl.Child)
- {
- Level++;
- Op = Op->Asl.Child;
- continue;
- }
- }
- else if (Status != AE_CTRL_DEPTH)
- {
- /* Exit immediately on any error */
-
- return (Status);
- }
- }
-
- /* Terminate walk at start op */
-
- if (Op == StartOp)
- {
- break;
- }
-
- /* No more children, visit peers */
-
- if (Op->Asl.Next)
- {
- Op = Op->Asl.Next;
- NodePreviouslyVisited = FALSE;
- }
- else
- {
- /* No children or peers, re-visit parent */
-
- if (Level != 0 )
- {
- Level--;
- }
- Op = Op->Asl.Parent;
- NodePreviouslyVisited = TRUE;
- }
- }
- break;
-
-
- case ASL_WALK_VISIT_UPWARD:
-
- while (Op)
- {
- /* Visit leaf node (no children) or parent node on return trip */
-
- if ((!Op->Asl.Child) ||
- (NodePreviouslyVisited))
- {
- /* Let the callback process the node. */
-
- Status = AscendingCallback (Op, Level, Context);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
- }
- else
- {
- /* Visit children first, once */
-
- Level++;
- Op = Op->Asl.Child;
- continue;
- }
-
- /* Terminate walk at start op */
-
- if (Op == StartOp)
- {
- break;
- }
-
- /* No more children, visit peers */
-
- if (Op->Asl.Next)
- {
- Op = Op->Asl.Next;
- NodePreviouslyVisited = FALSE;
- }
- else
- {
- /* No children or peers, re-visit parent */
-
- if (Level != 0 )
- {
- Level--;
- }
- Op = Op->Asl.Parent;
- NodePreviouslyVisited = TRUE;
- }
- }
- break;
-
-
- case ASL_WALK_VISIT_TWICE:
-
- while (Op)
- {
- if (NodePreviouslyVisited)
- {
- Status = AscendingCallback (Op, Level, Context);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
- }
- else
- {
- /* Let the callback process the node. */
-
- Status = DescendingCallback (Op, Level, Context);
- if (ACPI_SUCCESS (Status))
- {
- /* Visit children first, once */
-
- if (Op->Asl.Child)
- {
- Level++;
- Op = Op->Asl.Child;
- continue;
- }
- }
- else if (Status != AE_CTRL_DEPTH)
- {
- /* Exit immediately on any error */
-
- return (Status);
- }
- }
-
- /* Terminate walk at start op */
-
- if (Op == StartOp)
- {
- break;
- }
-
- /* No more children, visit peers */
-
- if (Op->Asl.Next)
- {
- Op = Op->Asl.Next;
- NodePreviouslyVisited = FALSE;
- }
- else
- {
- /* No children or peers, re-visit parent */
-
- if (Level != 0 )
- {
- Level--;
- }
- Op = Op->Asl.Parent;
- NodePreviouslyVisited = TRUE;
- }
- }
- break;
-
- default:
- /* No other types supported */
- break;
- }
-
- /* If we get here, the walk completed with no errors */
-
- return (AE_OK);
-}
-
-
diff --git a/sys/contrib/dev/acpica/compiler/asltypes.h b/sys/contrib/dev/acpica/compiler/asltypes.h
deleted file mode 100644
index 51beeb2..0000000
--- a/sys/contrib/dev/acpica/compiler/asltypes.h
+++ /dev/null
@@ -1,562 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: asltypes.h - compiler data types and struct definitions
- * $Revision: 1.89 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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 __ASLTYPES_H
-#define __ASLTYPES_H
-
-
-/*******************************************************************************
- *
- * Structure definitions
- *
- ******************************************************************************/
-
-
-/* Op flags for the ACPI_PARSE_OBJECT */
-
-#define NODE_VISITED 0x00000001
-#define NODE_AML_PACKAGE 0x00000002
-#define NODE_IS_TARGET 0x00000004
-#define NODE_IS_RESOURCE_DESC 0x00000008
-#define NODE_IS_RESOURCE_FIELD 0x00000010
-#define NODE_HAS_NO_EXIT 0x00000020
-#define NODE_IF_HAS_NO_EXIT 0x00000040
-#define NODE_NAME_INTERNALIZED 0x00000080
-#define NODE_METHOD_NO_RETVAL 0x00000100
-#define NODE_METHOD_SOME_NO_RETVAL 0x00000200
-#define NODE_RESULT_NOT_USED 0x00000400
-#define NODE_METHOD_TYPED 0x00000800
-#define NODE_IS_BIT_OFFSET 0x00001000
-#define NODE_COMPILE_TIME_CONST 0x00002000
-#define NODE_IS_TERM_ARG 0x00004000
-#define NODE_WAS_ONES_OP 0x00008000
-#define NODE_IS_NAME_DECLARATION 0x00010000
-#define NODE_COMPILER_EMITTED 0x00020000
-#define NODE_IS_DUPLICATE 0x00040000
-#define NODE_IS_RESOURCE_DATA 0x00080000
-
-/* Keeps information about individual control methods */
-
-typedef struct asl_method_info
-{
- UINT8 NumArguments;
- UINT8 LocalInitialized[ACPI_METHOD_NUM_LOCALS];
- UINT8 ArgInitialized[ACPI_METHOD_NUM_ARGS];
- UINT32 ValidArgTypes[ACPI_METHOD_NUM_ARGS];
- UINT32 ValidReturnTypes;
- UINT32 NumReturnNoValue;
- UINT32 NumReturnWithValue;
- ACPI_PARSE_OBJECT *Op;
- struct asl_method_info *Next;
- UINT8 HasBeenTyped;
-
-} ASL_METHOD_INFO;
-
-
-/* Parse tree walk info for control method analysis */
-
-typedef struct asl_analysis_walk_info
-{
- ASL_METHOD_INFO *MethodStack;
-
-} ASL_ANALYSIS_WALK_INFO;
-
-
-/* An entry in the ParseOpcode to AmlOpcode mapping table */
-
-typedef struct asl_mapping_entry
-{
- UINT32 Value;
- UINT32 AcpiBtype; /* Object type or return type */
- UINT16 AmlOpcode;
- UINT8 Flags;
-
-} ASL_MAPPING_ENTRY;
-
-
-/* An entry in the Reserved Name information table */
-
-#define ASL_RSVD_RETURN_VALUE 0x01
-#define ASL_RSVD_RESOURCE_NAME 0x02
-#define ASL_RSVD_SCOPE 0x04
-
-typedef struct asl_reserved_info
-{
- char *Name;
- UINT8 NumArguments;
- UINT8 Flags;
-
-} ASL_RESERVED_INFO;
-
-
-/* Parse tree walk info structure */
-
-typedef struct asl_walk_info
-{
- ACPI_PARSE_OBJECT **NodePtr;
- UINT32 *LevelPtr;
-
-} ASL_WALK_INFO;
-
-
-/* File info */
-
-typedef struct asl_file_info
-{
- FILE *Handle;
- char *Filename;
-
-} ASL_FILE_INFO;
-
-typedef struct asl_file_status
-{
- UINT32 Line;
- UINT32 Offset;
-
-} ASL_FILE_STATUS;
-
-
-/* File types */
-
-typedef enum
-{
- ASL_FILE_STDOUT = 0,
- ASL_FILE_STDERR,
- ASL_FILE_INPUT,
- ASL_FILE_AML_OUTPUT,
- ASL_FILE_SOURCE_OUTPUT,
- ASL_FILE_LISTING_OUTPUT,
- ASL_FILE_HEX_OUTPUT,
- ASL_FILE_NAMESPACE_OUTPUT,
- ASL_FILE_DEBUG_OUTPUT,
- ASL_FILE_ASM_SOURCE_OUTPUT,
- ASL_FILE_C_SOURCE_OUTPUT,
- ASL_FILE_ASM_INCLUDE_OUTPUT,
- ASL_FILE_C_INCLUDE_OUTPUT
-
-} ASL_FILE_TYPES;
-
-
-#define ASL_MAX_FILE_TYPE 12
-#define ASL_NUM_FILES (ASL_MAX_FILE_TYPE + 1)
-
-
-/* An entry in the exception list, one for each error/warning */
-
-typedef struct asl_error_msg
-{
- UINT32 LineNumber;
- UINT32 LogicalLineNumber;
- UINT32 LogicalByteOffset;
- UINT32 Column;
- char *Message;
- struct asl_error_msg *Next;
- char *Filename;
- UINT32 FilenameLength;
- UINT8 MessageId;
- UINT8 Level;
-
-} ASL_ERROR_MSG;
-
-
-/* An entry in the listing file stack (for include files) */
-
-typedef struct asl_listing_node
-{
- char *Filename;
- UINT32 LineNumber;
- struct asl_listing_node *Next;
-
-} ASL_LISTING_NODE;
-
-
-/* Callback interface for a parse tree walk */
-
-typedef
-ACPI_STATUS (*ASL_WALK_CALLBACK) (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-
-typedef struct asl_event_info
-{
- UINT64 StartTime;
- UINT64 EndTime;
- char *EventName;
- BOOLEAN Valid;
-
-} ASL_EVENT_INFO;
-
-
-#define ASL_WARNING 0
-#define ASL_WARNING2 1
-#define ASL_WARNING3 2
-#define ASL_ERROR 3
-#define ASL_REMARK 4
-#define ASL_OPTIMIZATION 5
-#define ASL_NUM_REPORT_LEVELS 6
-
-
-typedef enum
-{
- ASL_MSG_RESERVED = 0,
- ASL_MSG_ALPHANUMERIC_STRING,
- ASL_MSG_AML_NOT_IMPLEMENTED,
- ASL_MSG_ARG_COUNT_HI,
- ASL_MSG_ARG_COUNT_LO,
- ASL_MSG_ARG_INIT,
- ASL_MSG_BACKWARDS_OFFSET,
- ASL_MSG_BITS_TO_BYTES,
- ASL_MSG_BUFFER_LENGTH,
- ASL_MSG_BYTES_TO_BITS,
- ASL_MSG_CLOSE,
- ASL_MSG_COMPILER_INTERNAL,
- ASL_MSG_CONSTANT_EVALUATION,
- ASL_MSG_CONSTANT_FOLDED,
- ASL_MSG_CORE_EXCEPTION,
- ASL_MSG_DEBUG_FILE_OPEN,
- ASL_MSG_DEBUG_FILENAME,
- ASL_MSG_DEPENDENT_NESTING,
- ASL_MSG_DMA_CHANNEL,
- ASL_MSG_DMA_LIST,
- ASL_MSG_DUPLICATE_CASE,
- ASL_MSG_DUPLICATE_ITEM,
- ASL_MSG_EARLY_EOF,
- ASL_MSG_ENCODING_LENGTH,
- ASL_MSG_EX_INTERRUPT_LIST,
- ASL_MSG_EX_INTERRUPT_NUMBER,
- ASL_MSG_FIELD_ACCESS_WIDTH,
- ASL_MSG_FIELD_UNIT_ACCESS_WIDTH,
- ASL_MSG_FIELD_UNIT_OFFSET,
- ASL_MSG_INCLUDE_FILE_OPEN,
- ASL_MSG_INPUT_FILE_OPEN,
- ASL_MSG_INTEGER_LENGTH,
- ASL_MSG_INTEGER_OPTIMIZATION,
- ASL_MSG_INTERRUPT_LIST,
- ASL_MSG_INTERRUPT_NUMBER,
- ASL_MSG_INVALID_CONSTANT_OP,
- ASL_MSG_INVALID_EISAID,
- ASL_MSG_INVALID_ESCAPE,
- ASL_MSG_INVALID_OPERAND,
- ASL_MSG_INVALID_PERFORMANCE,
- ASL_MSG_INVALID_PRIORITY,
- ASL_MSG_INVALID_STRING,
- ASL_MSG_INVALID_TARGET,
- ASL_MSG_INVALID_TIME,
- ASL_MSG_INVALID_TYPE,
- ASL_MSG_INVALID_UUID,
- ASL_MSG_LIST_LENGTH,
- ASL_MSG_LISTING_FILE_OPEN,
- ASL_MSG_LISTING_FILENAME,
- ASL_MSG_LOCAL_INIT,
- ASL_MSG_LONG_LINE,
- ASL_MSG_MEMORY_ALLOCATION,
- ASL_MSG_MISSING_ENDDEPENDENT,
- ASL_MSG_MISSING_STARTDEPENDENT,
- ASL_MSG_MULTIPLE_TYPES,
- ASL_MSG_NAME_EXISTS,
- ASL_MSG_NAME_OPTIMIZATION,
- ASL_MSG_NESTED_COMMENT,
- ASL_MSG_NO_CASES,
- ASL_MSG_NO_RETVAL,
- ASL_MSG_NO_WHILE,
- ASL_MSG_NON_ASCII,
- ASL_MSG_NOT_EXIST,
- ASL_MSG_NOT_FOUND,
- ASL_MSG_NOT_METHOD,
- ASL_MSG_NOT_PARAMETER,
- ASL_MSG_NOT_REACHABLE,
- ASL_MSG_OPEN,
- ASL_MSG_OUTPUT_FILE_OPEN,
- ASL_MSG_OUTPUT_FILENAME,
- ASL_MSG_PACKAGE_LENGTH,
- ASL_MSG_READ,
- ASL_MSG_RECURSION,
- ASL_MSG_REGION_BUFFER_ACCESS,
- ASL_MSG_REGION_BYTE_ACCESS,
- ASL_MSG_RESERVED_ARG_COUNT_HI,
- ASL_MSG_RESERVED_ARG_COUNT_LO,
- ASL_MSG_RESERVED_METHOD,
- ASL_MSG_RESERVED_OPERAND_TYPE,
- ASL_MSG_RESERVED_RETURN_VALUE,
- ASL_MSG_RESERVED_USE,
- ASL_MSG_RESERVED_WORD,
- ASL_MSG_RESOURCE_FIELD,
- ASL_MSG_RESOURCE_INDEX,
- ASL_MSG_RESOURCE_LIST,
- ASL_MSG_RESOURCE_SOURCE,
- ASL_MSG_RETURN_TYPES,
- ASL_MSG_SCOPE_FWD_REF,
- ASL_MSG_SCOPE_TYPE,
- ASL_MSG_SEEK,
- ASL_MSG_SINGLE_NAME_OPTIMIZATION,
- ASL_MSG_SOME_NO_RETVAL,
- ASL_MSG_SWITCH_TYPE,
- ASL_MSG_SYNC_LEVEL,
- ASL_MSG_SYNTAX,
- ASL_MSG_TABLE_SIGNATURE,
- ASL_MSG_TOO_MANY_TEMPS,
- ASL_MSG_UNKNOWN_RESERVED_NAME,
- ASL_MSG_UNREACHABLE_CODE,
- ASL_MSG_UNSUPPORTED,
- ASL_MSG_VENDOR_LIST,
- ASL_MSG_WRITE,
- ASL_MSG_MULTIPLE_DEFAULT,
- ASL_MSG_TIMEOUT,
- ASL_MSG_RESULT_NOT_USED,
- ASL_MSG_NOT_REFERENCED,
- ASL_MSG_NON_ZERO,
- ASL_MSG_STRING_LENGTH
-
-} ASL_MESSAGE_IDS;
-
-#ifdef ASL_EXCEPTIONS
-
-char *AslMessages [] = {
-/* The zeroth message is resesrved */ "",
-/* ASL_MSG_ALPHANUMERIC_STRING */ "String must be entirely alphanumeric",
-/* ASL_MSG_AML_NOT_IMPLEMENTED */ "Opcode is not implemented in compiler AML code generator",
-/* ASL_MSG_ARG_COUNT_HI */ "Too many arguments",
-/* ASL_MSG_ARG_COUNT_LO */ "Too few arguments",
-/* ASL_MSG_ARG_INIT */ "Method argument is not initialized",
-/* ASL_MSG_BACKWARDS_OFFSET */ "Invalid backwards offset",
-/* ASL_MSG_BITS_TO_BYTES */ "Field offset is in bits, but a byte offset is required",
-/* ASL_MSG_BUFFER_LENGTH */ "Effective AML buffer length is zero",
-/* ASL_MSG_BYTES_TO_BITS */ "Field offset is in bytes, but a bit offset is required",
-/* ASL_MSG_CLOSE */ "Could not close file",
-/* ASL_MSG_COMPILER_INTERNAL */ "Internal compiler error",
-/* ASL_MSG_CONSTANT_EVALUATION */ "Could not evaluate constant expression",
-/* ASL_MSG_CONSTANT_FOLDED */ "Constant expression evaluated and reduced",
-/* ASL_MSG_CORE_EXCEPTION */ "From ACPI CA Subsystem",
-/* ASL_MSG_DEBUG_FILE_OPEN */ "Could not open debug file",
-/* ASL_MSG_DEBUG_FILENAME */ "Could not create debug filename",
-/* ASL_MSG_DEPENDENT_NESTING */ "Dependent function macros cannot be nested",\
-/* ASL_MSG_DMA_CHANNEL */ "Invalid DMA channel (must be 0-7)",
-/* ASL_MSG_DMA_LIST */ "Too many DMA channels (8 max)",
-/* ASL_MSG_DUPLICATE_CASE */ "Case value already specified",
-/* ASL_MSG_DUPLICATE_ITEM */ "Duplicate value in list",
-/* ASL_MSG_EARLY_EOF */ "Premature end-of-file reached",
-/* ASL_MSG_ENCODING_LENGTH */ "Package length too long to encode",
-/* ASL_MSG_EX_INTERRUPT_LIST */ "Too many interrupts (255 max)",
-/* ASL_MSG_EX_INTERRUPT_NUMBER */ "Invalid interrupt number (must be 32 bits)",
-/* ASL_MSG_FIELD_ACCESS_WIDTH */ "Access width is greater than region size",
-/* ASL_MSG_FIELD_UNIT_ACCESS_WIDTH */ "Access width of Field Unit extends beyond region limit",
-/* ASL_MSG_FIELD_UNIT_OFFSET */ "Field Unit extends beyond region limit",
-/* ASL_MSG_INCLUDE_FILE_OPEN */ "Could not open include file",
-/* ASL_MSG_INPUT_FILE_OPEN */ "Could not open input file",
-/* ASL_MSG_INTEGER_LENGTH */ "64-bit integer in 32-bit table, truncating",
-/* ASL_MSG_INTEGER_OPTIMIZATION */ "Integer optimized to single-byte AML opcode",
-/* ASL_MSG_INTERRUPT_LIST */ "Too many interrupts (16 max)",
-/* ASL_MSG_INTERRUPT_NUMBER */ "Invalid interrupt number (must be 0-15)",
-/* ASL_MSG_INVALID_CONSTANT_OP */ "Invalid operator in constant expression (not type 3/4/5)",
-/* ASL_MSG_INVALID_EISAID */ "EISAID string must be of the form \"UUUXXXX\" (3 uppercase, 4 hex digits)",
-/* ASL_MSG_INVALID_ESCAPE */ "Invalid or unknown escape sequence",
-/* ASL_MSG_INVALID_OPERAND */ "Invalid operand",
-/* ASL_MSG_INVALID_PERFORMANCE */ "Invalid performance/robustness value",
-/* ASL_MSG_INVALID_PRIORITY */ "Invalid priority value",
-/* ASL_MSG_INVALID_STRING */ "Invalid Hex/Octal Escape - Non-ASCII or NULL",
-/* ASL_MSG_INVALID_TARGET */ "Target operand not allowed in constant expression",
-/* ASL_MSG_INVALID_TIME */ "Time parameter too long (255 max)",
-/* ASL_MSG_INVALID_TYPE */ "Invalid type",
-/* ASL_MSG_INVALID_UUID */ "UUID string must be of the form \"aabbccdd-eeff-gghh-iijj-kkllmmnnoopp\"",
-/* ASL_MSG_LIST_LENGTH */ "Initializer list too long",
-/* ASL_MSG_LISTING_FILE_OPEN */ "Could not open listing file",
-/* ASL_MSG_LISTING_FILENAME */ "Could not create listing filename",
-/* ASL_MSG_LOCAL_INIT */ "Method local variable is not initialized",
-/* ASL_MSG_LONG_LINE */ "Splitting long input line",
-/* ASL_MSG_MEMORY_ALLOCATION */ "Memory allocation failure",
-/* ASL_MSG_MISSING_ENDDEPENDENT */ "Missing EndDependentFn() macro in dependent resource list",
-/* ASL_MSG_MISSING_STARTDEPENDENT */ "Missing StartDependentFn() macro in dependent resource list",
-/* ASL_MSG_MULTIPLE_TYPES */ "Multiple types",
-/* ASL_MSG_NAME_EXISTS */ "Name already exists in scope",
-/* ASL_MSG_NAME_OPTIMIZATION */ "NamePath optimized",
-/* ASL_MSG_NESTED_COMMENT */ "Nested comment found",
-/* ASL_MSG_NO_CASES */ "No Case statements under Switch",
-/* ASL_MSG_NO_RETVAL */ "Called method returns no value",
-/* ASL_MSG_NO_WHILE */ "No enclosing While statement",
-/* ASL_MSG_NON_ASCII */ "Invalid characters found in file",
-/* ASL_MSG_NOT_EXIST */ "Object does not exist",
-/* ASL_MSG_NOT_FOUND */ "Object not found or not accessible from scope",
-/* ASL_MSG_NOT_METHOD */ "Not a control method, cannot invoke",
-/* ASL_MSG_NOT_PARAMETER */ "Not a parameter, used as local only",
-/* ASL_MSG_NOT_REACHABLE */ "Object is not accessible from this scope",
-/* ASL_MSG_OPEN */ "Could not open file",
-/* ASL_MSG_OUTPUT_FILE_OPEN */ "Could not open output AML file",
-/* ASL_MSG_OUTPUT_FILENAME */ "Could not create output filename",
-/* ASL_MSG_PACKAGE_LENGTH */ "Effective AML package length is zero",
-/* ASL_MSG_READ */ "Could not read file",
-/* ASL_MSG_RECURSION */ "Recursive method call",
-/* ASL_MSG_REGION_BUFFER_ACCESS */ "Host Operation Region requires BufferAcc access",
-/* ASL_MSG_REGION_BYTE_ACCESS */ "Host Operation Region requires ByteAcc access",
-/* ASL_MSG_RESERVED_ARG_COUNT_HI */ "Reserved method has too many arguments",
-/* ASL_MSG_RESERVED_ARG_COUNT_LO */ "Reserved method has too few arguments",
-/* ASL_MSG_RESERVED_METHOD */ "Reserved name must be a control method",
-/* ASL_MSG_RESERVED_OPERAND_TYPE */ "Invalid operand type for reserved name, must be",
-/* ASL_MSG_RESERVED_RETURN_VALUE */ "Reserved method must return a value",
-/* ASL_MSG_RESERVED_USE */ "Invalid use of reserved name",
-/* ASL_MSG_RESERVED_WORD */ "Use of reserved word",
-/* ASL_MSG_RESOURCE_FIELD */ "Resource field name cannot be used as a target",
-/* ASL_MSG_RESOURCE_INDEX */ "Missing ResourceSourceIndex (required)",
-/* ASL_MSG_RESOURCE_LIST */ "Too many resource items (internal error)",
-/* ASL_MSG_RESOURCE_SOURCE */ "Missing ResourceSource string (required)",
-/* ASL_MSG_RETURN_TYPES */ "Not all control paths return a value",
-/* ASL_MSG_SCOPE_FWD_REF */ "Forward references from Scope operator not allowed",
-/* ASL_MSG_SCOPE_TYPE */ "Existing object has invalid type for Scope operator",
-/* ASL_MSG_SEEK */ "Could not seek file",
-/* ASL_MSG_SINGLE_NAME_OPTIMIZATION */ "NamePath optimized to NameSeg (uses run-time search path)",
-/* ASL_MSG_SOME_NO_RETVAL */ "Called method may not always return a value",
-/* ASL_MSG_SWITCH_TYPE */ "Switch expression is not a static Integer/Buffer/String data type, defaulting to Integer",
-/* ASL_MSG_SYNC_LEVEL */ "SyncLevel must be in the range 0-15",
-/* ASL_MSG_SYNTAX */ "",
-/* ASL_MSG_TABLE_SIGNATURE */ "Invalid Table Signature",
-/* ASL_MSG_TOO_MANY_TEMPS */ "Method requires too many temporary variables (_T_x)",
-/* ASL_MSG_UNKNOWN_RESERVED_NAME */ "Unknown reserved name",
-/* ASL_MSG_UNREACHABLE_CODE */ "Statement is unreachable",
-/* ASL_MSG_UNSUPPORTED */ "Unsupported feature",
-/* ASL_MSG_VENDOR_LIST */ "Too many vendor data bytes (7 max)",
-/* ASL_MSG_WRITE */ "Could not write file",
-/* ASL_MSG_MULTIPLE_DEFAULT */ "More than one Default statement within Switch construct",
-/* ASL_MSG_TIMEOUT */ "Possible operator timeout is ignored",
-/* ASL_MSG_RESULT_NOT_USED */ "Result is not used, operator has no effect",
-/* ASL_MSG_NOT_REFERENCED */ "Namespace object is not referenced",
-/* ASL_MSG_NON_ZERO */ "Operand evaluates to zero",
-/* ASL_MSG_STRING_LENGTH */ "String literal too long"
-
-};
-
-
-char *AslErrorLevel [ASL_NUM_REPORT_LEVELS] = {
- "Warning ",
- "Warning ",
- "Warning ",
- "Error ",
- "Remark ",
- "Optimize"
-};
-
-#define ASL_ERROR_LEVEL_LENGTH 8 /* Length of strings above */
-
-/* Exception counters */
-
-UINT32 Gbl_ExceptionCount[ASL_NUM_REPORT_LEVELS] = {0,0,0,0,0,0};
-
-#endif
-
-
-#endif /* __ASLTYPES_H */
diff --git a/sys/contrib/dev/acpica/compiler/aslutils.c b/sys/contrib/dev/acpica/compiler/aslutils.c
deleted file mode 100644
index 5acf1fc..0000000
--- a/sys/contrib/dev/acpica/compiler/aslutils.c
+++ /dev/null
@@ -1,1055 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: aslutils -- compiler utilities
- * $Revision: 1.72 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/compiler/aslcompiler.h>
-#include "aslcompiler.y.h"
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/amlcode.h>
-
-#define _COMPONENT ACPI_COMPILER
- ACPI_MODULE_NAME ("aslutils")
-
-#ifdef _USE_BERKELEY_YACC
-extern const char * const AslCompilername[];
-static const char * const *yytname = &AslCompilername[254];
-#else
-extern const char * const yytname[];
-#endif
-
-/* Local prototypes */
-
-static ACPI_STATUS
-UtStrtoul64 (
- char *String,
- UINT32 Base,
- ACPI_INTEGER *RetInteger);
-
-static void
-UtPadNameWithUnderscores (
- char *NameSeg,
- char *PaddedNameSeg);
-
-static void
-UtAttachNameseg (
- ACPI_PARSE_OBJECT *Op,
- char *Name);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsDisplayConstantOpcodes
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Print AML opcodes that can be used in constant expressions.
- *
- ******************************************************************************/
-
-void
-UtDisplayConstantOpcodes (
- void)
-{
- UINT32 i;
-
-
- printf ("Constant expression opcode information\n\n");
-
- for (i = 0; i < sizeof (AcpiGbl_AmlOpInfo) / sizeof (ACPI_OPCODE_INFO); i++)
- {
- if (AcpiGbl_AmlOpInfo[i].Flags & AML_CONSTANT)
- {
- printf ("%s\n", AcpiGbl_AmlOpInfo[i].Name);
- }
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: UtLocalCalloc
- *
- * PARAMETERS: Size - Bytes to be allocated
- *
- * RETURN: Pointer to the allocated memory. Guaranteed to be valid.
- *
- * DESCRIPTION: Allocate zero-initialized memory. Aborts the compile on an
- * allocation failure, on the assumption that nothing more can be
- * accomplished.
- *
- ******************************************************************************/
-
-void *
-UtLocalCalloc (
- UINT32 Size)
-{
- void *Allocated;
-
-
- Allocated = ACPI_ALLOCATE_ZEROED (Size);
- if (!Allocated)
- {
- AslCommonError (ASL_ERROR, ASL_MSG_MEMORY_ALLOCATION,
- Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
- Gbl_InputByteCount, Gbl_CurrentColumn,
- Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
- exit (1);
- }
-
- TotalAllocations++;
- TotalAllocated += Size;
- return (Allocated);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: UtBeginEvent
- *
- * PARAMETERS: Name - Ascii name of this event
- *
- * RETURN: Event - Event number (integer index)
- *
- * DESCRIPTION: Saves the current time with this event
- *
- ******************************************************************************/
-
-UINT8
-UtBeginEvent (
- char *Name)
-{
-
- if (AslGbl_NextEvent >= ASL_NUM_EVENTS)
- {
- AcpiOsPrintf ("Ran out of compiler event structs!\n");
- return (AslGbl_NextEvent);
- }
-
- /* Init event with current (start) time */
-
- AslGbl_Events[AslGbl_NextEvent].StartTime = AcpiOsGetTimer ();
- AslGbl_Events[AslGbl_NextEvent].EventName = Name;
- AslGbl_Events[AslGbl_NextEvent].Valid = TRUE;
-
- return (AslGbl_NextEvent++);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: UtEndEvent
- *
- * PARAMETERS: Event - Event number (integer index)
- *
- * RETURN: None
- *
- * DESCRIPTION: Saves the current time (end time) with this event
- *
- ******************************************************************************/
-
-void
-UtEndEvent (
- UINT8 Event)
-{
-
- if (Event >= ASL_NUM_EVENTS)
- {
- return;
- }
-
- /* Insert end time for event */
-
- AslGbl_Events[Event].EndTime = AcpiOsGetTimer ();
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: UtHexCharToValue
- *
- * PARAMETERS: HexChar - Hex character in Ascii
- *
- * RETURN: The binary value of the hex character
- *
- * DESCRIPTION: Perform ascii-to-hex translation
- *
- ******************************************************************************/
-
-UINT8
-UtHexCharToValue (
- int HexChar)
-{
-
- if (HexChar <= 0x39)
- {
- return ((UINT8) (HexChar - 0x30));
- }
-
- if (HexChar <= 0x46)
- {
- return ((UINT8) (HexChar - 0x37));
- }
-
- return ((UINT8) (HexChar - 0x57));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: UtConvertByteToHex
- *
- * PARAMETERS: RawByte - Binary data
- * Buffer - Pointer to where the hex bytes will be stored
- *
- * RETURN: Ascii hex byte is stored in Buffer.
- *
- * DESCRIPTION: Perform hex-to-ascii translation. The return data is prefixed
- * with "0x"
- *
- ******************************************************************************/
-
-void
-UtConvertByteToHex (
- UINT8 RawByte,
- UINT8 *Buffer)
-{
-
- Buffer[0] = '0';
- Buffer[1] = 'x';
-
- Buffer[2] = (UINT8) hex[(RawByte >> 4) & 0xF];
- Buffer[3] = (UINT8) hex[RawByte & 0xF];
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: UtConvertByteToAsmHex
- *
- * PARAMETERS: RawByte - Binary data
- * Buffer - Pointer to where the hex bytes will be stored
- *
- * RETURN: Ascii hex byte is stored in Buffer.
- *
- * DESCRIPTION: Perform hex-to-ascii translation. The return data is prefixed
- * with "0x"
- *
- ******************************************************************************/
-
-void
-UtConvertByteToAsmHex (
- UINT8 RawByte,
- UINT8 *Buffer)
-{
-
- Buffer[0] = '0';
- Buffer[1] = (UINT8) hex[(RawByte >> 4) & 0xF];
- Buffer[2] = (UINT8) hex[RawByte & 0xF];
- Buffer[3] = 'h';
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: DbgPrint
- *
- * PARAMETERS: Type - Type of output
- * Fmt - Printf format string
- * ... - variable printf list
- *
- * RETURN: None
- *
- * DESCRIPTION: Conditional print statement. Prints to stderr only if the
- * debug flag is set.
- *
- ******************************************************************************/
-
-void
-DbgPrint (
- UINT32 Type,
- char *Fmt,
- ...)
-{
- va_list Args;
-
-
- va_start (Args, Fmt);
-
- if (!Gbl_DebugFlag)
- {
- return;
- }
-
- if ((Type == ASL_PARSE_OUTPUT) &&
- (!(AslCompilerdebug)))
- {
- return;
- }
-
- (void) vfprintf (stderr, Fmt, Args);
- va_end (Args);
- return;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: UtPrintFormattedName
- *
- * PARAMETERS: ParseOpcode - Parser keyword ID
- * Level - Indentation level
- *
- * RETURN: None
- *
- * DESCRIPTION: Print the ascii name of the parse opcode.
- *
- ******************************************************************************/
-
-#define TEXT_OFFSET 10
-
-void
-UtPrintFormattedName (
- UINT16 ParseOpcode,
- UINT32 Level)
-{
-
- if (Level)
- {
- DbgPrint (ASL_TREE_OUTPUT,
- "%*s", (3 * Level), " ");
- }
- DbgPrint (ASL_TREE_OUTPUT,
- " %-20.20s", UtGetOpName (ParseOpcode));
-
- if (Level < TEXT_OFFSET)
- {
- DbgPrint (ASL_TREE_OUTPUT,
- "%*s", (TEXT_OFFSET - Level) * 3, " ");
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: UtSetParseOpName
- *
- * PARAMETERS: Op
- *
- * RETURN: None
- *
- * DESCRIPTION: Insert the ascii name of the parse opcode
- *
- ******************************************************************************/
-
-void
-UtSetParseOpName (
- ACPI_PARSE_OBJECT *Op)
-{
-
- strncpy (Op->Asl.ParseOpName, UtGetOpName (Op->Asl.ParseOpcode),
- ACPI_MAX_PARSEOP_NAME);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: UtGetOpName
- *
- * PARAMETERS: ParseOpcode - Parser keyword ID
- *
- * RETURN: Pointer to the opcode name
- *
- * DESCRIPTION: Get the ascii name of the parse opcode
- *
- ******************************************************************************/
-
-char *
-UtGetOpName (
- UINT32 ParseOpcode)
-{
-
- /*
- * First entries (ASL_YYTNAME_START) in yytname are special reserved names.
- * Ignore first 8 characters of the name
- */
- return ((char *) yytname
- [(ParseOpcode - ASL_FIRST_PARSE_OPCODE) + ASL_YYTNAME_START] + 8);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: UtDisplaySummary
- *
- * PARAMETERS: FileID - ID of outpout file
- *
- * RETURN: None
- *
- * DESCRIPTION: Display compilation statistics
- *
- ******************************************************************************/
-
-void
-UtDisplaySummary (
- UINT32 FileId)
-{
-
- if (FileId != ASL_FILE_STDOUT)
- {
- /* Compiler name and version number */
-
- FlPrintFile (FileId, "%s version %X [%s]\n",
- CompilerId, (UINT32) ACPI_CA_VERSION, __DATE__);
- }
-
- /* Input/Output summary */
-
- FlPrintFile (FileId,
- "ASL Input: %s - %d lines, %d bytes, %d keywords\n",
- Gbl_Files[ASL_FILE_INPUT].Filename, Gbl_CurrentLineNumber,
- Gbl_InputByteCount, TotalKeywords);
-
- /* AML summary */
-
- if ((Gbl_ExceptionCount[ASL_ERROR] == 0) || (Gbl_IgnoreErrors))
- {
- FlPrintFile (FileId,
- "AML Output: %s - %d bytes %d named objects %d executable opcodes\n\n",
- Gbl_Files[ASL_FILE_AML_OUTPUT].Filename, Gbl_TableLength,
- TotalNamedObjects, TotalExecutableOpcodes);
- }
-
- /* Error summary */
-
- FlPrintFile (FileId,
- "Compilation complete. %d Errors, %d Warnings, %d Remarks, %d Optimizations\n",
- Gbl_ExceptionCount[ASL_ERROR],
- Gbl_ExceptionCount[ASL_WARNING] +
- Gbl_ExceptionCount[ASL_WARNING2] +
- Gbl_ExceptionCount[ASL_WARNING3],
- Gbl_ExceptionCount[ASL_REMARK],
- Gbl_ExceptionCount[ASL_OPTIMIZATION]);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: UtDisplaySummary
- *
- * PARAMETERS: Op - Integer parse node
- * LowValue - Smallest allowed value
- * HighValue - Largest allowed value
- *
- * RETURN: Op if OK, otherwise NULL
- *
- * DESCRIPTION: Check integer for an allowable range
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT *
-UtCheckIntegerRange (
- ACPI_PARSE_OBJECT *Op,
- UINT32 LowValue,
- UINT32 HighValue)
-{
- char *ParseError = NULL;
- char Buffer[64];
-
-
- if (!Op)
- {
- return NULL;
- }
-
- if (Op->Asl.Value.Integer < LowValue)
- {
- ParseError = "Value below valid range";
- Op->Asl.Value.Integer = LowValue;
- }
-
- if (Op->Asl.Value.Integer > HighValue)
- {
- ParseError = "Value above valid range";
- Op->Asl.Value.Integer = HighValue;
- }
-
- if (ParseError)
- {
- sprintf (Buffer, "%s 0x%X-0x%X", ParseError, LowValue, HighValue);
- AslCompilererror (Buffer);
-
- return NULL;
- }
-
- return Op;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: UtGetStringBuffer
- *
- * PARAMETERS: Length - Size of buffer requested
- *
- * RETURN: Pointer to the buffer. Aborts on allocation failure
- *
- * DESCRIPTION: Allocate a string buffer. Bypass the local
- * dynamic memory manager for performance reasons (This has a
- * major impact on the speed of the compiler.)
- *
- ******************************************************************************/
-
-char *
-UtGetStringBuffer (
- UINT32 Length)
-{
- char *Buffer;
-
-
- if ((Gbl_StringCacheNext + Length) >= Gbl_StringCacheLast)
- {
- Gbl_StringCacheNext = UtLocalCalloc (ASL_STRING_CACHE_SIZE + Length);
- Gbl_StringCacheLast = Gbl_StringCacheNext + ASL_STRING_CACHE_SIZE +
- Length;
- }
-
- Buffer = Gbl_StringCacheNext;
- Gbl_StringCacheNext += Length;
-
- return (Buffer);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: UtInternalizeName
- *
- * PARAMETERS: ExternalName - Name to convert
- * ConvertedName - Where the converted name is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Convert an external (ASL) name to an internal (AML) name
- *
- ******************************************************************************/
-
-ACPI_STATUS
-UtInternalizeName (
- char *ExternalName,
- char **ConvertedName)
-{
- ACPI_NAMESTRING_INFO Info;
- ACPI_STATUS Status;
-
-
- if (!ExternalName)
- {
- return (AE_OK);
- }
-
- /* Get the length of the new internal name */
-
- Info.ExternalName = ExternalName;
- AcpiNsGetInternalNameLength (&Info);
-
- /* We need a segment to store the internal name */
-
- Info.InternalName = UtGetStringBuffer (Info.Length);
- if (!Info.InternalName)
- {
- return (AE_NO_MEMORY);
- }
-
- /* Build the name */
-
- Status = AcpiNsBuildInternalName (&Info);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- *ConvertedName = Info.InternalName;
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: UtPadNameWithUnderscores
- *
- * PARAMETERS: NameSeg - Input nameseg
- * PaddedNameSeg - Output padded nameseg
- *
- * RETURN: Padded nameseg.
- *
- * DESCRIPTION: Pads a NameSeg with underscores if necessary to form a full
- * ACPI_NAME.
- *
- ******************************************************************************/
-
-static void
-UtPadNameWithUnderscores (
- char *NameSeg,
- char *PaddedNameSeg)
-{
- UINT32 i;
-
-
- for (i = 0; (i < ACPI_NAME_SIZE); i++)
- {
- if (*NameSeg)
- {
- *PaddedNameSeg = *NameSeg;
- NameSeg++;
- }
- else
- {
- *PaddedNameSeg = '_';
- }
- PaddedNameSeg++;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: UtAttachNameseg
- *
- * PARAMETERS: Op - Parent parse node
- * Name - Full ExternalName
- *
- * RETURN: None; Sets the NameSeg field in parent node
- *
- * DESCRIPTION: Extract the last nameseg of the ExternalName and store it
- * in the NameSeg field of the Op.
- *
- ******************************************************************************/
-
-static void
-UtAttachNameseg (
- ACPI_PARSE_OBJECT *Op,
- char *Name)
-{
- char *NameSeg;
- char PaddedNameSeg[4];
-
-
- if (!Name)
- {
- return;
- }
-
- /* Look for the last dot in the namepath */
-
- NameSeg = strrchr (Name, '.');
- if (NameSeg)
- {
- /* Found last dot, we have also found the final nameseg */
-
- NameSeg++;
- UtPadNameWithUnderscores (NameSeg, PaddedNameSeg);
- }
- else
- {
- /* No dots in the namepath, there is only a single nameseg. */
- /* Handle prefixes */
-
- while ((*Name == '\\') || (*Name == '^'))
- {
- Name++;
- }
-
- /* Remaing string should be one single nameseg */
-
- UtPadNameWithUnderscores (Name, PaddedNameSeg);
- }
-
- strncpy (Op->Asl.NameSeg, PaddedNameSeg, 4);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: UtAttachNamepathToOwner
- *
- * PARAMETERS: Op - Parent parse node
- * NameOp - Node that contains the name
- *
- * RETURN: Sets the ExternalName and Namepath in the parent node
- *
- * DESCRIPTION: Store the name in two forms in the parent node: The original
- * (external) name, and the internalized name that is used within
- * the ACPI namespace manager.
- *
- ******************************************************************************/
-
-void
-UtAttachNamepathToOwner (
- ACPI_PARSE_OBJECT *Op,
- ACPI_PARSE_OBJECT *NameOp)
-{
- ACPI_STATUS Status;
-
-
- /* Full external path */
-
- Op->Asl.ExternalName = NameOp->Asl.Value.String;
-
- /* Save the NameOp for possible error reporting later */
-
- Op->Asl.ParentMethod = (void *) NameOp;
-
- /* Last nameseg of the path */
-
- UtAttachNameseg (Op, Op->Asl.ExternalName);
-
- /* Create internalized path */
-
- Status = UtInternalizeName (NameOp->Asl.Value.String, &Op->Asl.Namepath);
- if (ACPI_FAILURE (Status))
- {
- /* TBD: abort on no memory */
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: UtDoConstant
- *
- * PARAMETERS: String - Hex, Octal, or Decimal string
- *
- * RETURN: Converted Integer
- *
- * DESCRIPTION: Convert a string to an integer. With error checking.
- *
- ******************************************************************************/
-
-ACPI_INTEGER
-UtDoConstant (
- char *String)
-{
- ACPI_STATUS Status;
- ACPI_INTEGER Converted;
- char ErrBuf[64];
-
-
- Status = UtStrtoul64 (String, 0, &Converted);
- if (ACPI_FAILURE (Status))
- {
- sprintf (ErrBuf, "%s %s\n", "Conversion error:",
- AcpiFormatException (Status));
- AslCompilererror (ErrBuf);
- }
-
- return (Converted);
-}
-
-
-/* TBD: use version in ACPI CA main code base? */
-
-/*******************************************************************************
- *
- * FUNCTION: UtStrtoul64
- *
- * PARAMETERS: String - Null terminated string
- * Terminater - Where a pointer to the terminating byte is
- * returned
- * Base - Radix of the string
- *
- * RETURN: Converted value
- *
- * DESCRIPTION: Convert a string into an unsigned value.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-UtStrtoul64 (
- char *String,
- UINT32 Base,
- ACPI_INTEGER *RetInteger)
-{
- UINT32 Index;
- UINT32 Sign;
- ACPI_INTEGER ReturnValue = 0;
- ACPI_STATUS Status = AE_OK;
-
-
- *RetInteger = 0;
-
- switch (Base)
- {
- case 0:
- case 8:
- case 10:
- case 16:
- break;
-
- default:
- /*
- * The specified Base parameter is not in the domain of
- * this function:
- */
- return (AE_BAD_PARAMETER);
- }
-
- /* Skip over any white space in the buffer: */
-
- while (isspace (*String) || *String == '\t')
- {
- ++String;
- }
-
- /*
- * The buffer may contain an optional plus or minus sign.
- * If it does, then skip over it but remember what is was:
- */
- if (*String == '-')
- {
- Sign = NEGATIVE;
- ++String;
- }
- else if (*String == '+')
- {
- ++String;
- Sign = POSITIVE;
- }
- else
- {
- Sign = POSITIVE;
- }
-
- /*
- * If the input parameter Base is zero, then we need to
- * determine if it is octal, decimal, or hexadecimal:
- */
- if (Base == 0)
- {
- if (*String == '0')
- {
- if (tolower (*(++String)) == 'x')
- {
- Base = 16;
- ++String;
- }
- else
- {
- Base = 8;
- }
- }
- else
- {
- Base = 10;
- }
- }
-
- /*
- * For octal and hexadecimal bases, skip over the leading
- * 0 or 0x, if they are present.
- */
- if (Base == 8 && *String == '0')
- {
- String++;
- }
-
- if (Base == 16 &&
- *String == '0' &&
- tolower (*(++String)) == 'x')
- {
- String++;
- }
-
- /* Main loop: convert the string to an unsigned long */
-
- while (*String)
- {
- if (isdigit (*String))
- {
- Index = ((UINT8) *String) - '0';
- }
- else
- {
- Index = (UINT8) toupper (*String);
- if (isupper ((char) Index))
- {
- Index = Index - 'A' + 10;
- }
- else
- {
- goto ErrorExit;
- }
- }
-
- if (Index >= Base)
- {
- goto ErrorExit;
- }
-
- /* Check to see if value is out of range: */
-
- if (ReturnValue > ((ACPI_INTEGER_MAX - (ACPI_INTEGER) Index) /
- (ACPI_INTEGER) Base))
- {
- goto ErrorExit;
- }
- else
- {
- ReturnValue *= Base;
- ReturnValue += Index;
- }
-
- ++String;
- }
-
-
- /* If a minus sign was present, then "the conversion is negated": */
-
- if (Sign == NEGATIVE)
- {
- ReturnValue = (ACPI_UINT32_MAX - ReturnValue) + 1;
- }
-
- *RetInteger = ReturnValue;
- return (Status);
-
-
-ErrorExit:
- switch (Base)
- {
- case 8:
- Status = AE_BAD_OCTAL_CONSTANT;
- break;
-
- case 10:
- Status = AE_BAD_DECIMAL_CONSTANT;
- break;
-
- case 16:
- Status = AE_BAD_HEX_CONSTANT;
- break;
-
- default:
- /* Base validated above */
- break;
- }
-
- return (Status);
-}
-
-
diff --git a/sys/contrib/dev/acpica/dbcmds.c b/sys/contrib/dev/acpica/dbcmds.c
deleted file mode 100644
index 76dd6d9..0000000
--- a/sys/contrib/dev/acpica/dbcmds.c
+++ /dev/null
@@ -1,1834 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dbcmds - debug commands and output routines
- * $Revision: 1.150 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acevents.h>
-#include <contrib/dev/acpica/acdebug.h>
-#include <contrib/dev/acpica/acresrc.h>
-#include <contrib/dev/acpica/acdisasm.h>
-
-
-#include <contrib/dev/acpica/acparser.h>
-
-#ifdef ACPI_DEBUGGER
-
-#define _COMPONENT ACPI_CA_DEBUGGER
- ACPI_MODULE_NAME ("dbcmds")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiDbIntegrityWalk (
- ACPI_HANDLE ObjHandle,
- UINT32 NestingLevel,
- void *Context,
- void **ReturnValue);
-
-static ACPI_STATUS
-AcpiDbWalkAndMatchName (
- ACPI_HANDLE ObjHandle,
- UINT32 NestingLevel,
- void *Context,
- void **ReturnValue);
-
-static ACPI_STATUS
-AcpiDbWalkForReferences (
- ACPI_HANDLE ObjHandle,
- UINT32 NestingLevel,
- void *Context,
- void **ReturnValue);
-
-static ACPI_STATUS
-AcpiDbWalkForSpecificObjects (
- ACPI_HANDLE ObjHandle,
- UINT32 NestingLevel,
- void *Context,
- void **ReturnValue);
-
-static ACPI_NAMESPACE_NODE *
-AcpiDbConvertToNode (
- char *InString);
-
-static void
-AcpiDmCompareAmlResources (
- UINT8 *Aml1Buffer,
- ACPI_RSDESC_SIZE Aml1BufferLength,
- UINT8 *Aml2Buffer,
- ACPI_RSDESC_SIZE Aml2BufferLength);
-
-static ACPI_STATUS
-AcpiDmTestResourceConversion (
- ACPI_NAMESPACE_NODE *Node,
- char *Name);
-
-
-/*
- * Arguments for the Objects command
- * These object types map directly to the ACPI_TYPES
- */
-static ARGUMENT_INFO AcpiDbObjectTypes [] =
-{
- {"ANY"},
- {"INTEGERS"},
- {"STRINGS"},
- {"BUFFERS"},
- {"PACKAGES"},
- {"FIELDS"},
- {"DEVICES"},
- {"EVENTS"},
- {"METHODS"},
- {"MUTEXES"},
- {"REGIONS"},
- {"POWERRESOURCES"},
- {"PROCESSORS"},
- {"THERMALZONES"},
- {"BUFFERFIELDS"},
- {"DDBHANDLES"},
- {"DEBUG"},
- {"REGIONFIELDS"},
- {"BANKFIELDS"},
- {"INDEXFIELDS"},
- {"REFERENCES"},
- {"ALIAS"},
- {NULL} /* Must be null terminated */
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbConvertToNode
- *
- * PARAMETERS: InString - String to convert
- *
- * RETURN: Pointer to a NS node
- *
- * DESCRIPTION: Convert a string to a valid NS pointer. Handles numeric or
- * alpha strings.
- *
- ******************************************************************************/
-
-static ACPI_NAMESPACE_NODE *
-AcpiDbConvertToNode (
- char *InString)
-{
- ACPI_NAMESPACE_NODE *Node;
-
-
- if ((*InString >= 0x30) && (*InString <= 0x39))
- {
- /* Numeric argument, convert */
-
- Node = ACPI_TO_POINTER (ACPI_STRTOUL (InString, NULL, 16));
- if (!AcpiOsReadable (Node, sizeof (ACPI_NAMESPACE_NODE)))
- {
- AcpiOsPrintf ("Address %p is invalid in this address space\n",
- Node);
- return (NULL);
- }
-
- /* Make sure pointer is valid NS node */
-
- if (ACPI_GET_DESCRIPTOR_TYPE (Node) != ACPI_DESC_TYPE_NAMED)
- {
- AcpiOsPrintf ("Address %p is not a valid NS node [%s]\n",
- Node, AcpiUtGetDescriptorName (Node));
- return (NULL);
- }
- }
- else
- {
- /* Alpha argument */
- /* The parameter is a name string that must be resolved to a
- * Named obj
- */
- Node = AcpiDbLocalNsLookup (InString);
- if (!Node)
- {
- Node = AcpiGbl_RootNode;
- }
- }
-
- return (Node);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbSleep
- *
- * PARAMETERS: ObjectArg - Desired sleep state (0-5)
- *
- * RETURN: Status
- *
- * DESCRIPTION: Simulate a sleep/wake sequence
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDbSleep (
- char *ObjectArg)
-{
- ACPI_STATUS Status;
- UINT8 SleepState;
-
-
- SleepState = (UINT8) ACPI_STRTOUL (ObjectArg, NULL, 0);
-
- AcpiOsPrintf ("**** Prepare to sleep ****\n");
- Status = AcpiEnterSleepStatePrep (SleepState);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- AcpiOsPrintf ("**** Going to sleep ****\n");
- Status = AcpiEnterSleepState (SleepState);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- AcpiOsPrintf ("**** returning from sleep ****\n");
- Status = AcpiLeaveSleepState (SleepState);
-
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbWalkForReferences
- *
- * PARAMETERS: Callback from WalkNamespace
- *
- * RETURN: Status
- *
- * DESCRIPTION: Check if this namespace object refers to the target object
- * that is passed in as the context value.
- *
- * Note: Currently doesn't check subobjects within the Node's object
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDbWalkForReferences (
- ACPI_HANDLE ObjHandle,
- UINT32 NestingLevel,
- void *Context,
- void **ReturnValue)
-{
- ACPI_OPERAND_OBJECT *ObjDesc = (ACPI_OPERAND_OBJECT *) Context;
- ACPI_NAMESPACE_NODE *Node = (ACPI_NAMESPACE_NODE *) ObjHandle;
-
-
- /* Check for match against the namespace node itself */
-
- if (Node == (void *) ObjDesc)
- {
- AcpiOsPrintf ("Object is a Node [%4.4s]\n",
- AcpiUtGetNodeName (Node));
- }
-
- /* Check for match against the object attached to the node */
-
- if (AcpiNsGetAttachedObject (Node) == ObjDesc)
- {
- AcpiOsPrintf ("Reference at Node->Object %p [%4.4s]\n",
- Node, AcpiUtGetNodeName (Node));
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbFindReferences
- *
- * PARAMETERS: ObjectArg - String with hex value of the object
- *
- * RETURN: None
- *
- * DESCRIPTION: Search namespace for all references to the input object
- *
- ******************************************************************************/
-
-void
-AcpiDbFindReferences (
- char *ObjectArg)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
-
-
- /* Convert string to object pointer */
-
- ObjDesc = ACPI_TO_POINTER (ACPI_STRTOUL (ObjectArg, NULL, 16));
-
- /* Search all nodes in namespace */
-
- (void) AcpiWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX,
- AcpiDbWalkForReferences, (void *) ObjDesc, NULL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbDisplayLocks
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Display information about internal mutexes.
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayLocks (
- void)
-{
- UINT32 i;
-
-
- for (i = 0; i < ACPI_MAX_MUTEX; i++)
- {
- AcpiOsPrintf ("%26s : %s\n", AcpiUtGetMutexName (i),
- AcpiGbl_MutexInfo[i].ThreadId == ACPI_MUTEX_NOT_ACQUIRED
- ? "Locked" : "Unlocked");
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbDisplayTableInfo
- *
- * PARAMETERS: TableArg - String with name of table to be displayed
- *
- * RETURN: None
- *
- * DESCRIPTION: Display information about loaded tables. Current
- * implementation displays all loaded tables.
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayTableInfo (
- char *TableArg)
-{
- ACPI_NATIVE_UINT i;
- ACPI_TABLE_DESC *TableDesc;
-
-
- /*
- * Walk the root table list
- */
- for (i = 0; i < AcpiGbl_RootTableList.Count; i++)
- {
- TableDesc = &AcpiGbl_RootTableList.Tables[i];
- AcpiOsPrintf ( "%4.4s at %p length %.5X",
- TableDesc->Signature.Ascii, TableDesc->Pointer,
- (UINT32) TableDesc->Length);
-
- if (TableDesc->Pointer && (i != ACPI_TABLE_INDEX_FACS))
- {
- AcpiOsPrintf (" OemId=\"%6s\" OemTableId=\"%8s\" OemRevision=%8.8X",
- TableDesc->Pointer->OemId,
- TableDesc->Pointer->OemTableId,
- TableDesc->Pointer->OemRevision);
- }
- AcpiOsPrintf ("\n");
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbUnloadAcpiTable
- *
- * PARAMETERS: TableArg - Name of the table to be unloaded
- * InstanceArg - Which instance of the table to unload (if
- * there are multiple tables of the same type)
- *
- * RETURN: Nonde
- *
- * DESCRIPTION: Unload an ACPI table.
- * Instance is not implemented
- *
- ******************************************************************************/
-
-void
-AcpiDbUnloadAcpiTable (
- char *TableArg,
- char *InstanceArg)
-{
-/* TBD: Need to reimplement for new data structures */
-
-#if 0
- UINT32 i;
- ACPI_STATUS Status;
-
-
- /* Search all tables for the target type */
-
- for (i = 0; i < (ACPI_TABLE_ID_MAX+1); i++)
- {
- if (!ACPI_STRNCMP (TableArg, AcpiGbl_TableData[i].Signature,
- AcpiGbl_TableData[i].SigLength))
- {
- /* Found the table, unload it */
-
- Status = AcpiUnloadTable (i);
- if (ACPI_SUCCESS (Status))
- {
- AcpiOsPrintf ("[%s] unloaded and uninstalled\n", TableArg);
- }
- else
- {
- AcpiOsPrintf ("%s, while unloading [%s]\n",
- AcpiFormatException (Status), TableArg);
- }
-
- return;
- }
- }
-
- AcpiOsPrintf ("Unknown table type [%s]\n", TableArg);
-#endif
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbSetMethodBreakpoint
- *
- * PARAMETERS: Location - AML offset of breakpoint
- * WalkState - Current walk info
- * Op - Current Op (from parse walk)
- *
- * RETURN: None
- *
- * DESCRIPTION: Set a breakpoint in a control method at the specified
- * AML offset
- *
- ******************************************************************************/
-
-void
-AcpiDbSetMethodBreakpoint (
- char *Location,
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op)
-{
- UINT32 Address;
-
-
- if (!Op)
- {
- AcpiOsPrintf ("There is no method currently executing\n");
- return;
- }
-
- /* Get and verify the breakpoint address */
-
- Address = ACPI_STRTOUL (Location, NULL, 16);
- if (Address <= Op->Common.AmlOffset)
- {
- AcpiOsPrintf ("Breakpoint %X is beyond current address %X\n",
- Address, Op->Common.AmlOffset);
- }
-
- /* Save breakpoint in current walk */
-
- WalkState->UserBreakpoint = Address;
- AcpiOsPrintf ("Breakpoint set at AML offset %X\n", Address);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbSetMethodCallBreakpoint
- *
- * PARAMETERS: Op - Current Op (from parse walk)
- *
- * RETURN: None
- *
- * DESCRIPTION: Set a breakpoint in a control method at the specified
- * AML offset
- *
- ******************************************************************************/
-
-void
-AcpiDbSetMethodCallBreakpoint (
- ACPI_PARSE_OBJECT *Op)
-{
-
-
- if (!Op)
- {
- AcpiOsPrintf ("There is no method currently executing\n");
- return;
- }
-
- AcpiGbl_StepToNextCall = TRUE;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbDisassembleAml
- *
- * PARAMETERS: Statements - Number of statements to disassemble
- * Op - Current Op (from parse walk)
- *
- * RETURN: None
- *
- * DESCRIPTION: Display disassembled AML (ASL) starting from Op for the number
- * of statements specified.
- *
- ******************************************************************************/
-
-void
-AcpiDbDisassembleAml (
- char *Statements,
- ACPI_PARSE_OBJECT *Op)
-{
- UINT32 NumStatements = 8;
-
-
- if (!Op)
- {
- AcpiOsPrintf ("There is no method currently executing\n");
- return;
- }
-
- if (Statements)
- {
- NumStatements = ACPI_STRTOUL (Statements, NULL, 0);
- }
-
- AcpiDmDisassemble (NULL, Op, NumStatements);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbDisassembleMethod
- *
- * PARAMETERS: Name - Name of control method
- *
- * RETURN: None
- *
- * DESCRIPTION: Display disassembled AML (ASL) starting from Op for the number
- * of statements specified.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDbDisassembleMethod (
- char *Name)
-{
- ACPI_STATUS Status;
- ACPI_PARSE_OBJECT *Op;
- ACPI_WALK_STATE *WalkState;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_NAMESPACE_NODE *Method;
-
-
- Method = AcpiDbConvertToNode (Name);
- if (!Method)
- {
- return (AE_BAD_PARAMETER);
- }
-
- ObjDesc = Method->Object;
-
- Op = AcpiPsCreateScopeOp ();
- if (!Op)
- {
- return (AE_NO_MEMORY);
- }
-
- /* Create and initialize a new walk state */
-
- WalkState = AcpiDsCreateWalkState (0, Op, NULL, NULL);
- if (!WalkState)
- {
- return (AE_NO_MEMORY);
- }
-
- Status = AcpiDsInitAmlWalk (WalkState, Op, NULL,
- ObjDesc->Method.AmlStart,
- ObjDesc->Method.AmlLength, NULL, ACPI_IMODE_LOAD_PASS1);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- /* Parse the AML */
-
- WalkState->ParseFlags &= ~ACPI_PARSE_DELETE_TREE;
- WalkState->ParseFlags |= ACPI_PARSE_DISASSEMBLE;
- Status = AcpiPsParseAml (WalkState);
-
- AcpiDmDisassemble (NULL, Op, 0);
- AcpiPsDeleteParseTree (Op);
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbDumpNamespace
- *
- * PARAMETERS: StartArg - Node to begin namespace dump
- * DepthArg - Maximum tree depth to be dumped
- *
- * RETURN: None
- *
- * DESCRIPTION: Dump entire namespace or a subtree. Each node is displayed
- * with type and other information.
- *
- ******************************************************************************/
-
-void
-AcpiDbDumpNamespace (
- char *StartArg,
- char *DepthArg)
-{
- ACPI_HANDLE SubtreeEntry = AcpiGbl_RootNode;
- UINT32 MaxDepth = ACPI_UINT32_MAX;
-
-
- /* No argument given, just start at the root and dump entire namespace */
-
- if (StartArg)
- {
- SubtreeEntry = AcpiDbConvertToNode (StartArg);
- if (!SubtreeEntry)
- {
- return;
- }
-
- /* Now we can check for the depth argument */
-
- if (DepthArg)
- {
- MaxDepth = ACPI_STRTOUL (DepthArg, NULL, 0);
- }
- }
-
- AcpiDbSetOutputDestination (ACPI_DB_DUPLICATE_OUTPUT);
- AcpiOsPrintf ("ACPI Namespace (from %4.4s (%p) subtree):\n",
- ((ACPI_NAMESPACE_NODE *) SubtreeEntry)->Name.Ascii, SubtreeEntry);
-
- /* Display the subtree */
-
- AcpiDbSetOutputDestination (ACPI_DB_REDIRECTABLE_OUTPUT);
- AcpiNsDumpObjects (ACPI_TYPE_ANY, ACPI_DISPLAY_SUMMARY, MaxDepth,
- ACPI_OWNER_ID_MAX, SubtreeEntry);
- AcpiDbSetOutputDestination (ACPI_DB_CONSOLE_OUTPUT);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbDumpNamespaceByOwner
- *
- * PARAMETERS: OwnerArg - Owner ID whose nodes will be displayed
- * DepthArg - Maximum tree depth to be dumped
- *
- * RETURN: None
- *
- * DESCRIPTION: Dump elements of the namespace that are owned by the OwnerId.
- *
- ******************************************************************************/
-
-void
-AcpiDbDumpNamespaceByOwner (
- char *OwnerArg,
- char *DepthArg)
-{
- ACPI_HANDLE SubtreeEntry = AcpiGbl_RootNode;
- UINT32 MaxDepth = ACPI_UINT32_MAX;
- ACPI_OWNER_ID OwnerId;
-
-
- OwnerId = (ACPI_OWNER_ID) ACPI_STRTOUL (OwnerArg, NULL, 0);
-
- /* Now we can check for the depth argument */
-
- if (DepthArg)
- {
- MaxDepth = ACPI_STRTOUL (DepthArg, NULL, 0);
- }
-
- AcpiDbSetOutputDestination (ACPI_DB_DUPLICATE_OUTPUT);
- AcpiOsPrintf ("ACPI Namespace by owner %X:\n", OwnerId);
-
- /* Display the subtree */
-
- AcpiDbSetOutputDestination (ACPI_DB_REDIRECTABLE_OUTPUT);
- AcpiNsDumpObjects (ACPI_TYPE_ANY, ACPI_DISPLAY_SUMMARY, MaxDepth, OwnerId,
- SubtreeEntry);
- AcpiDbSetOutputDestination (ACPI_DB_CONSOLE_OUTPUT);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbSendNotify
- *
- * PARAMETERS: Name - Name of ACPI object to send the notify to
- * Value - Value of the notify to send.
- *
- * RETURN: None
- *
- * DESCRIPTION: Send an ACPI notification. The value specified is sent to the
- * named object as an ACPI notify.
- *
- ******************************************************************************/
-
-void
-AcpiDbSendNotify (
- char *Name,
- UINT32 Value)
-{
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
-
-
- /* Translate name to an Named object */
-
- Node = AcpiDbConvertToNode (Name);
- if (!Node)
- {
- return;
- }
-
- /* Decode Named object type */
-
- switch (Node->Type)
- {
- case ACPI_TYPE_DEVICE:
- case ACPI_TYPE_THERMAL:
-
- /* Send the notify */
-
- Status = AcpiEvQueueNotifyRequest (Node, Value);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not queue notify\n");
- }
- break;
-
- default:
- AcpiOsPrintf ("Named object is not a device or a thermal object\n");
- break;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbSetMethodData
- *
- * PARAMETERS: TypeArg - L for local, A for argument
- * IndexArg - which one
- * ValueArg - Value to set.
- *
- * RETURN: None
- *
- * DESCRIPTION: Set a local or argument for the running control method.
- * NOTE: only object supported is Number.
- *
- ******************************************************************************/
-
-void
-AcpiDbSetMethodData (
- char *TypeArg,
- char *IndexArg,
- char *ValueArg)
-{
- char Type;
- UINT32 Index;
- UINT32 Value;
- ACPI_WALK_STATE *WalkState;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node;
-
-
- /* Validate TypeArg */
-
- AcpiUtStrupr (TypeArg);
- Type = TypeArg[0];
- if ((Type != 'L') &&
- (Type != 'A') &&
- (Type != 'N'))
- {
- AcpiOsPrintf ("Invalid SET operand: %s\n", TypeArg);
- return;
- }
-
- Value = ACPI_STRTOUL (ValueArg, NULL, 16);
-
- if (Type == 'N')
- {
- Node = AcpiDbConvertToNode (IndexArg);
- if (Node->Type != ACPI_TYPE_INTEGER)
- {
- AcpiOsPrintf ("Can only set Integer nodes\n");
- return;
- }
- ObjDesc = Node->Object;
- ObjDesc->Integer.Value = Value;
- return;
- }
-
- /* Get the index and value */
-
- Index = ACPI_STRTOUL (IndexArg, NULL, 16);
-
- WalkState = AcpiDsGetCurrentWalkState (AcpiGbl_CurrentWalkList);
- if (!WalkState)
- {
- AcpiOsPrintf ("There is no method currently executing\n");
- return;
- }
-
- /* Create and initialize the new object */
-
- ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
- if (!ObjDesc)
- {
- AcpiOsPrintf ("Could not create an internal object\n");
- return;
- }
-
- ObjDesc->Integer.Value = Value;
-
- /* Store the new object into the target */
-
- switch (Type)
- {
- case 'A':
-
- /* Set a method argument */
-
- if (Index > ACPI_METHOD_MAX_ARG)
- {
- AcpiOsPrintf ("Arg%d - Invalid argument name\n", Index);
- goto Cleanup;
- }
-
- Status = AcpiDsStoreObjectToLocal (AML_ARG_OP, Index, ObjDesc,
- WalkState);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- ObjDesc = WalkState->Arguments[Index].Object;
-
- AcpiOsPrintf ("Arg%d: ", Index);
- AcpiDmDisplayInternalObject (ObjDesc, WalkState);
- break;
-
- case 'L':
-
- /* Set a method local */
-
- if (Index > ACPI_METHOD_MAX_LOCAL)
- {
- AcpiOsPrintf ("Local%d - Invalid local variable name\n", Index);
- goto Cleanup;
- }
-
- Status = AcpiDsStoreObjectToLocal (AML_LOCAL_OP, Index, ObjDesc,
- WalkState);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- ObjDesc = WalkState->LocalVariables[Index].Object;
-
- AcpiOsPrintf ("Local%d: ", Index);
- AcpiDmDisplayInternalObject (ObjDesc, WalkState);
- break;
-
- default:
- break;
- }
-
-Cleanup:
- AcpiUtRemoveReference (ObjDesc);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbWalkForSpecificObjects
- *
- * PARAMETERS: Callback from WalkNamespace
- *
- * RETURN: Status
- *
- * DESCRIPTION: Display short info about objects in the namespace
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDbWalkForSpecificObjects (
- ACPI_HANDLE ObjHandle,
- UINT32 NestingLevel,
- void *Context,
- void **ReturnValue)
-{
- ACPI_WALK_INFO *Info = (ACPI_WALK_INFO *) Context;
- ACPI_BUFFER Buffer;
- ACPI_STATUS Status;
-
-
- Info->Count++;
-
- /* Get and display the full pathname to this object */
-
- Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
- Status = AcpiNsHandleToPathname (ObjHandle, &Buffer);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could Not get pathname for object %p\n", ObjHandle);
- return (AE_OK);
- }
-
- AcpiOsPrintf ("%32s", (char *) Buffer.Pointer);
- ACPI_FREE (Buffer.Pointer);
-
- /* Dump short info about the object */
-
- (void) AcpiNsDumpOneObject (ObjHandle, NestingLevel, Info, NULL);
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbDisplayObjects
- *
- * PARAMETERS: ObjTypeArg - Type of object to display
- * DisplayCountArg - Max depth to display
- *
- * RETURN: None
- *
- * DESCRIPTION: Display objects in the namespace of the requested type
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDbDisplayObjects (
- char *ObjTypeArg,
- char *DisplayCountArg)
-{
- ACPI_WALK_INFO Info;
- ACPI_OBJECT_TYPE Type;
-
-
- /* Get the object type */
-
- Type = AcpiDbMatchArgument (ObjTypeArg, AcpiDbObjectTypes);
- if (Type == ACPI_TYPE_NOT_FOUND)
- {
- AcpiOsPrintf ("Invalid or unsupported argument\n");
- return (AE_OK);
- }
-
- AcpiDbSetOutputDestination (ACPI_DB_DUPLICATE_OUTPUT);
- AcpiOsPrintf (
- "Objects of type [%s] defined in the current ACPI Namespace:\n",
- AcpiUtGetTypeName (Type));
-
- AcpiDbSetOutputDestination (ACPI_DB_REDIRECTABLE_OUTPUT);
-
- Info.Count = 0;
- Info.OwnerId = ACPI_OWNER_ID_MAX;
- Info.DebugLevel = ACPI_UINT32_MAX;
- Info.DisplayType = ACPI_DISPLAY_SUMMARY | ACPI_DISPLAY_SHORT;
-
- /* Walk the namespace from the root */
-
- (void) AcpiWalkNamespace (Type, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX,
- AcpiDbWalkForSpecificObjects, (void *) &Info, NULL);
-
- AcpiOsPrintf (
- "\nFound %u objects of type [%s] in the current ACPI Namespace\n",
- Info.Count, AcpiUtGetTypeName (Type));
-
- AcpiDbSetOutputDestination (ACPI_DB_CONSOLE_OUTPUT);
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbWalkAndMatchName
- *
- * PARAMETERS: Callback from WalkNamespace
- *
- * RETURN: Status
- *
- * DESCRIPTION: Find a particular name/names within the namespace. Wildcards
- * are supported -- '?' matches any character.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDbWalkAndMatchName (
- ACPI_HANDLE ObjHandle,
- UINT32 NestingLevel,
- void *Context,
- void **ReturnValue)
-{
- ACPI_STATUS Status;
- char *RequestedName = (char *) Context;
- UINT32 i;
- ACPI_BUFFER Buffer;
- ACPI_WALK_INFO Info;
-
-
- /* Check for a name match */
-
- for (i = 0; i < 4; i++)
- {
- /* Wildcard support */
-
- if ((RequestedName[i] != '?') &&
- (RequestedName[i] != ((ACPI_NAMESPACE_NODE *) ObjHandle)->Name.Ascii[i]))
- {
- /* No match, just exit */
-
- return (AE_OK);
- }
- }
-
- /* Get the full pathname to this object */
-
- Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
- Status = AcpiNsHandleToPathname (ObjHandle, &Buffer);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could Not get pathname for object %p\n", ObjHandle);
- }
- else
- {
- Info.OwnerId = ACPI_OWNER_ID_MAX;
- Info.DebugLevel = ACPI_UINT32_MAX;
- Info.DisplayType = ACPI_DISPLAY_SUMMARY | ACPI_DISPLAY_SHORT;
-
- AcpiOsPrintf ("%32s", (char *) Buffer.Pointer);
- (void) AcpiNsDumpOneObject (ObjHandle, NestingLevel, &Info, NULL);
- ACPI_FREE (Buffer.Pointer);
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbFindNameInNamespace
- *
- * PARAMETERS: NameArg - The 4-character ACPI name to find.
- * wildcards are supported.
- *
- * RETURN: None
- *
- * DESCRIPTION: Search the namespace for a given name (with wildcards)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDbFindNameInNamespace (
- char *NameArg)
-{
-
- if (ACPI_STRLEN (NameArg) > 4)
- {
- AcpiOsPrintf ("Name must be no longer than 4 characters\n");
- return (AE_OK);
- }
-
- /* Walk the namespace from the root */
-
- AcpiUtStrupr (NameArg);
- (void) AcpiWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX,
- AcpiDbWalkAndMatchName, NameArg, NULL);
-
- AcpiDbSetOutputDestination (ACPI_DB_CONSOLE_OUTPUT);
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbSetScope
- *
- * PARAMETERS: Name - New scope path
- *
- * RETURN: Status
- *
- * DESCRIPTION: Set the "current scope" as maintained by this utility.
- * The scope is used as a prefix to ACPI paths.
- *
- ******************************************************************************/
-
-void
-AcpiDbSetScope (
- char *Name)
-{
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node;
-
-
- if (!Name || Name[0] == 0)
- {
- AcpiOsPrintf ("Current scope: %s\n", AcpiGbl_DbScopeBuf);
- return;
- }
-
- AcpiDbPrepNamestring (Name);
-
- if (Name[0] == '\\')
- {
- /* Validate new scope from the root */
-
- Status = AcpiNsGetNode (AcpiGbl_RootNode, Name, ACPI_NS_NO_UPSEARCH,
- &Node);
- if (ACPI_FAILURE (Status))
- {
- goto ErrorExit;
- }
-
- ACPI_STRCPY (AcpiGbl_DbScopeBuf, Name);
- ACPI_STRCAT (AcpiGbl_DbScopeBuf, "\\");
- }
- else
- {
- /* Validate new scope relative to old scope */
-
- Status = AcpiNsGetNode (AcpiGbl_DbScopeNode, Name, ACPI_NS_NO_UPSEARCH,
- &Node);
- if (ACPI_FAILURE (Status))
- {
- goto ErrorExit;
- }
-
- ACPI_STRCAT (AcpiGbl_DbScopeBuf, Name);
- ACPI_STRCAT (AcpiGbl_DbScopeBuf, "\\");
- }
-
- AcpiGbl_DbScopeNode = Node;
- AcpiOsPrintf ("New scope: %s\n", AcpiGbl_DbScopeBuf);
- return;
-
-ErrorExit:
-
- AcpiOsPrintf ("Could not attach scope: %s, %s\n",
- Name, AcpiFormatException (Status));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmCompareAmlResources
- *
- * PARAMETERS: Aml1Buffer - Contains first resource list
- * Aml1BufferLength - Length of first resource list
- * Aml2Buffer - Contains second resource list
- * Aml2BufferLength - Length of second resource list
- *
- * RETURN: None
- *
- * DESCRIPTION: Compare two AML resource lists, descriptor by descriptor (in
- * order to isolate a miscompare to an individual resource)
- *
- ******************************************************************************/
-
-static void
-AcpiDmCompareAmlResources (
- UINT8 *Aml1Buffer,
- ACPI_RSDESC_SIZE Aml1BufferLength,
- UINT8 *Aml2Buffer,
- ACPI_RSDESC_SIZE Aml2BufferLength)
-{
- UINT8 *Aml1;
- UINT8 *Aml2;
- ACPI_RSDESC_SIZE Aml1Length;
- ACPI_RSDESC_SIZE Aml2Length;
- ACPI_RSDESC_SIZE Offset = 0;
- UINT8 ResourceType;
- UINT32 Count = 0;
-
-
- /* Compare overall buffer sizes (may be different due to size rounding) */
-
- if (Aml1BufferLength != Aml2BufferLength)
- {
- AcpiOsPrintf (
- "**** Buffer length mismatch in converted AML: original %X new %X ****\n",
- Aml1BufferLength, Aml2BufferLength);
- }
-
- Aml1 = Aml1Buffer;
- Aml2 = Aml2Buffer;
-
- /* Walk the descriptor lists, comparing each descriptor */
-
- while (Aml1 < (Aml1Buffer + Aml1BufferLength))
- {
- /* Get the lengths of each descriptor */
-
- Aml1Length = AcpiUtGetDescriptorLength (Aml1);
- Aml2Length = AcpiUtGetDescriptorLength (Aml2);
- ResourceType = AcpiUtGetResourceType (Aml1);
-
- /* Check for descriptor length match */
-
- if (Aml1Length != Aml2Length)
- {
- AcpiOsPrintf (
- "**** Length mismatch in descriptor [%.2X] type %2.2X, Offset %8.8X L1 %X L2 %X ****\n",
- Count, ResourceType, Offset, Aml1Length, Aml2Length);
- }
-
- /* Check for descriptor byte match */
-
- else if (ACPI_MEMCMP (Aml1, Aml2, Aml1Length))
- {
- AcpiOsPrintf (
- "**** Data mismatch in descriptor [%.2X] type %2.2X, Offset %8.8X ****\n",
- Count, ResourceType, Offset);
- }
-
- /* Exit on EndTag descriptor */
-
- if (ResourceType == ACPI_RESOURCE_NAME_END_TAG)
- {
- return;
- }
-
- /* Point to next descriptor in each buffer */
-
- Count++;
- Offset += Aml1Length;
- Aml1 += Aml1Length;
- Aml2 += Aml2Length;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmTestResourceConversion
- *
- * PARAMETERS: Node - Parent device node
- * Name - resource method name (_CRS)
- *
- * RETURN: Status
- *
- * DESCRIPTION: Compare the original AML with a conversion of the AML to
- * internal resource list, then back to AML.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDmTestResourceConversion (
- ACPI_NAMESPACE_NODE *Node,
- char *Name)
-{
- ACPI_STATUS Status;
- ACPI_BUFFER ReturnObj;
- ACPI_BUFFER ResourceObj;
- ACPI_BUFFER NewAml;
- ACPI_OBJECT *OriginalAml;
-
-
- AcpiOsPrintf ("Resource Conversion Comparison:\n");
-
- NewAml.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
- ReturnObj.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
- ResourceObj.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
-
- /* Get the original _CRS AML resource template */
-
- Status = AcpiEvaluateObject (Node, Name, NULL, &ReturnObj);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not obtain %s: %s\n",
- Name, AcpiFormatException (Status));
- return (Status);
- }
-
- /* Get the AML resource template, converted to internal resource structs */
-
- Status = AcpiGetCurrentResources (Node, &ResourceObj);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("AcpiGetCurrentResources failed: %s\n",
- AcpiFormatException (Status));
- goto Exit1;
- }
-
- /* Convert internal resource list to external AML resource template */
-
- Status = AcpiRsCreateAmlResources (ResourceObj.Pointer, &NewAml);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("AcpiRsCreateAmlResources failed: %s\n",
- AcpiFormatException (Status));
- goto Exit2;
- }
-
- /* Compare original AML to the newly created AML resource list */
-
- OriginalAml = ReturnObj.Pointer;
-
- AcpiDmCompareAmlResources (
- OriginalAml->Buffer.Pointer, OriginalAml->Buffer.Length,
- NewAml.Pointer, NewAml.Length);
-
- /* Cleanup and exit */
-
- ACPI_FREE (NewAml.Pointer);
-Exit2:
- ACPI_FREE (ResourceObj.Pointer);
-Exit1:
- ACPI_FREE (ReturnObj.Pointer);
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbDisplayResources
- *
- * PARAMETERS: ObjectArg - String with hex value of the object
- *
- * RETURN: None
- *
- * DESCRIPTION: Display the resource objects associated with a device.
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayResources (
- char *ObjectArg)
-{
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
- ACPI_BUFFER ReturnObj;
-
-
- AcpiDbSetOutputDestination (ACPI_DB_REDIRECTABLE_OUTPUT);
- AcpiDbgLevel |= ACPI_LV_RESOURCES;
-
- /* Convert string to object pointer */
-
- Node = AcpiDbConvertToNode (ObjectArg);
- if (!Node)
- {
- return;
- }
-
- /* Prepare for a return object of arbitrary size */
-
- ReturnObj.Pointer = AcpiGbl_DbBuffer;
- ReturnObj.Length = ACPI_DEBUG_BUFFER_SIZE;
-
- /* _PRT */
-
- AcpiOsPrintf ("Evaluating _PRT\n");
-
- /* Check if _PRT exists */
-
- Status = AcpiEvaluateObject (Node, METHOD_NAME__PRT, NULL, &ReturnObj);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not obtain _PRT: %s\n",
- AcpiFormatException (Status));
- goto GetCrs;
- }
-
- ReturnObj.Pointer = AcpiGbl_DbBuffer;
- ReturnObj.Length = ACPI_DEBUG_BUFFER_SIZE;
-
- Status = AcpiGetIrqRoutingTable (Node, &ReturnObj);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("GetIrqRoutingTable failed: %s\n",
- AcpiFormatException (Status));
- goto GetCrs;
- }
-
- AcpiRsDumpIrqList (ACPI_CAST_PTR (UINT8, AcpiGbl_DbBuffer));
-
-
- /* _CRS */
-
-GetCrs:
- AcpiOsPrintf ("Evaluating _CRS\n");
-
- ReturnObj.Pointer = AcpiGbl_DbBuffer;
- ReturnObj.Length = ACPI_DEBUG_BUFFER_SIZE;
-
- /* Check if _CRS exists */
-
- Status = AcpiEvaluateObject (Node, METHOD_NAME__CRS, NULL, &ReturnObj);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not obtain _CRS: %s\n",
- AcpiFormatException (Status));
- goto GetPrs;
- }
-
- /* Get the _CRS resource list */
-
- ReturnObj.Pointer = AcpiGbl_DbBuffer;
- ReturnObj.Length = ACPI_DEBUG_BUFFER_SIZE;
-
- Status = AcpiGetCurrentResources (Node, &ReturnObj);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("AcpiGetCurrentResources failed: %s\n",
- AcpiFormatException (Status));
- goto GetPrs;
- }
-
- /* Dump the _CRS resource list */
-
- AcpiRsDumpResourceList (ACPI_CAST_PTR (ACPI_RESOURCE,
- ReturnObj.Pointer));
-
- /*
- * Perform comparison of original AML to newly created AML. This tests both
- * the AML->Resource conversion and the Resource->Aml conversion.
- */
- Status = AcpiDmTestResourceConversion (Node, METHOD_NAME__CRS);
-
- /* Execute _SRS with the resource list */
-
- Status = AcpiSetCurrentResources (Node, &ReturnObj);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("AcpiSetCurrentResources failed: %s\n",
- AcpiFormatException (Status));
- goto GetPrs;
- }
-
-
- /* _PRS */
-
-GetPrs:
- AcpiOsPrintf ("Evaluating _PRS\n");
-
- ReturnObj.Pointer = AcpiGbl_DbBuffer;
- ReturnObj.Length = ACPI_DEBUG_BUFFER_SIZE;
-
- /* Check if _PRS exists */
-
- Status = AcpiEvaluateObject (Node, METHOD_NAME__PRS, NULL, &ReturnObj);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not obtain _PRS: %s\n",
- AcpiFormatException (Status));
- goto Cleanup;
- }
-
- ReturnObj.Pointer = AcpiGbl_DbBuffer;
- ReturnObj.Length = ACPI_DEBUG_BUFFER_SIZE;
-
- Status = AcpiGetPossibleResources (Node, &ReturnObj);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("AcpiGetPossibleResources failed: %s\n",
- AcpiFormatException (Status));
- goto Cleanup;
- }
-
- AcpiRsDumpResourceList (ACPI_CAST_PTR (ACPI_RESOURCE, AcpiGbl_DbBuffer));
-
-Cleanup:
-
- AcpiDbSetOutputDestination (ACPI_DB_CONSOLE_OUTPUT);
- return;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbIntegrityWalk
- *
- * PARAMETERS: Callback from WalkNamespace
- *
- * RETURN: Status
- *
- * DESCRIPTION: Examine one NS node for valid values.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDbIntegrityWalk (
- ACPI_HANDLE ObjHandle,
- UINT32 NestingLevel,
- void *Context,
- void **ReturnValue)
-{
- ACPI_INTEGRITY_INFO *Info = (ACPI_INTEGRITY_INFO *) Context;
- ACPI_NAMESPACE_NODE *Node = (ACPI_NAMESPACE_NODE *) ObjHandle;
- ACPI_OPERAND_OBJECT *Object;
-
-
- Info->Nodes++;
- if (ACPI_GET_DESCRIPTOR_TYPE (Node) != ACPI_DESC_TYPE_NAMED)
- {
- AcpiOsPrintf ("Invalid Descriptor Type for Node %p [%s]\n",
- Node, AcpiUtGetDescriptorName (Node));
- }
-
- if (Node->Type > ACPI_TYPE_LOCAL_MAX)
- {
- AcpiOsPrintf ("Invalid Object Type for Node %p, Type = %X\n",
- Node, Node->Type);
- }
-
- if (!AcpiUtValidAcpiName (Node->Name.Integer))
- {
- AcpiOsPrintf ("Invalid AcpiName for Node %p\n", Node);
- }
-
- Object = AcpiNsGetAttachedObject (Node);
- if (Object)
- {
- Info->Objects++;
- if (ACPI_GET_DESCRIPTOR_TYPE (Object) != ACPI_DESC_TYPE_OPERAND)
- {
- AcpiOsPrintf ("Invalid Descriptor Type for Object %p [%s]\n",
- Object, AcpiUtGetDescriptorName (Object));
- }
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbCheckIntegrity
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Check entire namespace for data structure integrity
- *
- ******************************************************************************/
-
-void
-AcpiDbCheckIntegrity (
- void)
-{
- ACPI_INTEGRITY_INFO Info = {0,0};
-
- /* Search all nodes in namespace */
-
- (void) AcpiWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX,
- AcpiDbIntegrityWalk, (void *) &Info, NULL);
-
- AcpiOsPrintf ("Verified %d namespace nodes with %d Objects\n",
- Info.Nodes, Info.Objects);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbGenerateGpe
- *
- * PARAMETERS: GpeArg - Raw GPE number, ascii string
- * BlockArg - GPE block number, ascii string
- * 0 or 1 for FADT GPE blocks
- *
- * RETURN: None
- *
- * DESCRIPTION: Generate a GPE
- *
- ******************************************************************************/
-
-void
-AcpiDbGenerateGpe (
- char *GpeArg,
- char *BlockArg)
-{
- UINT32 BlockNumber;
- UINT32 GpeNumber;
- ACPI_GPE_EVENT_INFO *GpeEventInfo;
-
-
- GpeNumber = ACPI_STRTOUL (GpeArg, NULL, 0);
- BlockNumber = ACPI_STRTOUL (BlockArg, NULL, 0);
-
-
- GpeEventInfo = AcpiEvGetGpeEventInfo (ACPI_TO_POINTER (BlockNumber),
- GpeNumber);
- if (!GpeEventInfo)
- {
- AcpiOsPrintf ("Invalid GPE\n");
- return;
- }
-
- (void) AcpiEvGpeDispatch (GpeEventInfo, GpeNumber);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbBusWalk
- *
- * PARAMETERS: Callback from WalkNamespace
- *
- * RETURN: Status
- *
- * DESCRIPTION: Display info about device objects that have a corresponding
- * _PRT method.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDbBusWalk (
- ACPI_HANDLE ObjHandle,
- UINT32 NestingLevel,
- void *Context,
- void **ReturnValue)
-{
- ACPI_NAMESPACE_NODE *Node = (ACPI_NAMESPACE_NODE *) ObjHandle;
- ACPI_STATUS Status;
- ACPI_BUFFER Buffer;
- ACPI_INTEGER ADR;
- ACPI_DEVICE_ID Id;
- ACPI_COMPATIBLE_ID_LIST *Cid;
- ACPI_NAMESPACE_NODE *TempNode;
-
-
- /* Exit if there is no _PRT under this device */
-
- Status = AcpiGetHandle (Node, METHOD_NAME__PRT,
- ACPI_CAST_PTR (ACPI_HANDLE, &TempNode));
- if (ACPI_FAILURE (Status))
- {
- return (AE_OK);
- }
-
- /* Get the full path to this device object */
-
- Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
- Status = AcpiNsHandleToPathname (ObjHandle, &Buffer);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could Not get pathname for object %p\n", ObjHandle);
- return (AE_OK);
- }
-
- /* Display the full path */
-
- AcpiOsPrintf ("%-32s", (char *) Buffer.Pointer);
- ACPI_FREE (Buffer.Pointer);
-
- /* _PRT info */
-
- AcpiOsPrintf ("_PRT=%p", TempNode);
-
- /* Get the _ADR value */
-
- Status = AcpiUtEvaluateNumericObject (METHOD_NAME__ADR, Node, &ADR);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf (" No _ADR ");
- }
- else
- {
- AcpiOsPrintf (" _ADR=%8.8X", (UINT32) ADR);
- }
-
- /* Get the _HID if present */
-
- Status = AcpiUtExecute_HID (Node, &Id);
- if (ACPI_SUCCESS (Status))
- {
- AcpiOsPrintf (" _HID=%s", Id.Value);
- }
- else
- {
- AcpiOsPrintf (" ");
- }
-
- /* Get the _UID if present */
-
- Status = AcpiUtExecute_UID (Node, &Id);
- if (ACPI_SUCCESS (Status))
- {
- AcpiOsPrintf (" _UID=%s", Id.Value);
- }
-
- /* Get the _CID if present */
-
- Status = AcpiUtExecute_CID (Node, &Cid);
- if (ACPI_SUCCESS (Status))
- {
- AcpiOsPrintf (" _CID=%s", Cid->Id[0].Value);
- ACPI_FREE (Cid);
- }
-
- AcpiOsPrintf ("\n");
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbGetBusInfo
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Display info about system busses.
- *
- ******************************************************************************/
-
-void
-AcpiDbGetBusInfo (
- void)
-{
- /* Search all nodes in namespace */
-
- (void) AcpiWalkNamespace (ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX,
- AcpiDbBusWalk, NULL, NULL);
-}
-
-#endif /* ACPI_DEBUGGER */
diff --git a/sys/contrib/dev/acpica/dbdisply.c b/sys/contrib/dev/acpica/dbdisply.c
deleted file mode 100644
index 40133a1..0000000
--- a/sys/contrib/dev/acpica/dbdisply.c
+++ /dev/null
@@ -1,961 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dbdisply - debug display commands
- * $Revision: 1.120 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/acdebug.h>
-#include <contrib/dev/acpica/acdisasm.h>
-
-
-#ifdef ACPI_DEBUGGER
-
-#define _COMPONENT ACPI_CA_DEBUGGER
- ACPI_MODULE_NAME ("dbdisply")
-
-/* Local prototypes */
-
-static void
-AcpiDbDumpParserDescriptor (
- ACPI_PARSE_OBJECT *Op);
-
-static void *
-AcpiDbGetPointer (
- void *Target);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbGetPointer
- *
- * PARAMETERS: Target - Pointer to string to be converted
- *
- * RETURN: Converted pointer
- *
- * DESCRIPTION: Convert an ascii pointer value to a real value
- *
- ******************************************************************************/
-
-static void *
-AcpiDbGetPointer (
- void *Target)
-{
- void *ObjPtr;
-
-
- ObjPtr = ACPI_TO_POINTER (ACPI_STRTOUL (Target, NULL, 16));
- return (ObjPtr);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbDumpParserDescriptor
- *
- * PARAMETERS: Op - A parser Op descriptor
- *
- * RETURN: None
- *
- * DESCRIPTION: Display a formatted parser object
- *
- ******************************************************************************/
-
-static void
-AcpiDbDumpParserDescriptor (
- ACPI_PARSE_OBJECT *Op)
-{
- const ACPI_OPCODE_INFO *Info;
-
-
- Info = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-
- AcpiOsPrintf ("Parser Op Descriptor:\n");
- AcpiOsPrintf ("%20.20s : %4.4X\n", "Opcode", Op->Common.AmlOpcode);
-
- ACPI_DEBUG_ONLY_MEMBERS (AcpiOsPrintf ("%20.20s : %s\n", "Opcode Name",
- Info->Name));
-
- AcpiOsPrintf ("%20.20s : %p\n", "Value/ArgList", Op->Common.Value.Arg);
- AcpiOsPrintf ("%20.20s : %p\n", "Parent", Op->Common.Parent);
- AcpiOsPrintf ("%20.20s : %p\n", "NextOp", Op->Common.Next);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbDecodeAndDisplayObject
- *
- * PARAMETERS: Target - String with object to be displayed. Names
- * and hex pointers are supported.
- * OutputType - Byte, Word, Dword, or Qword (B|W|D|Q)
- *
- * RETURN: None
- *
- * DESCRIPTION: Display a formatted ACPI object
- *
- ******************************************************************************/
-
-void
-AcpiDbDecodeAndDisplayObject (
- char *Target,
- char *OutputType)
-{
- void *ObjPtr;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_OPERAND_OBJECT *ObjDesc;
- UINT32 Display = DB_BYTE_DISPLAY;
- char Buffer[80];
- ACPI_BUFFER RetBuf;
- ACPI_STATUS Status;
- UINT32 Size;
-
-
- if (!Target)
- {
- return;
- }
-
- /* Decode the output type */
-
- if (OutputType)
- {
- AcpiUtStrupr (OutputType);
- if (OutputType[0] == 'W')
- {
- Display = DB_WORD_DISPLAY;
- }
- else if (OutputType[0] == 'D')
- {
- Display = DB_DWORD_DISPLAY;
- }
- else if (OutputType[0] == 'Q')
- {
- Display = DB_QWORD_DISPLAY;
- }
- }
-
- RetBuf.Length = sizeof (Buffer);
- RetBuf.Pointer = Buffer;
-
- /* Differentiate between a number and a name */
-
- if ((Target[0] >= 0x30) && (Target[0] <= 0x39))
- {
- ObjPtr = AcpiDbGetPointer (Target);
- if (!AcpiOsReadable (ObjPtr, 16))
- {
- AcpiOsPrintf ("Address %p is invalid in this address space\n",
- ObjPtr);
- return;
- }
-
- /* Decode the object type */
-
- switch (ACPI_GET_DESCRIPTOR_TYPE (ObjPtr))
- {
- case ACPI_DESC_TYPE_NAMED:
-
- /* This is a namespace Node */
-
- if (!AcpiOsReadable (ObjPtr, sizeof (ACPI_NAMESPACE_NODE)))
- {
- AcpiOsPrintf (
- "Cannot read entire Named object at address %p\n", ObjPtr);
- return;
- }
-
- Node = ObjPtr;
- goto DumpNode;
-
-
- case ACPI_DESC_TYPE_OPERAND:
-
- /* This is a ACPI OPERAND OBJECT */
-
- if (!AcpiOsReadable (ObjPtr, sizeof (ACPI_OPERAND_OBJECT)))
- {
- AcpiOsPrintf ("Cannot read entire ACPI object at address %p\n",
- ObjPtr);
- return;
- }
-
- AcpiUtDumpBuffer (ObjPtr, sizeof (ACPI_OPERAND_OBJECT), Display,
- ACPI_UINT32_MAX);
- AcpiExDumpObjectDescriptor (ObjPtr, 1);
- break;
-
-
- case ACPI_DESC_TYPE_PARSER:
-
- /* This is a Parser Op object */
-
- if (!AcpiOsReadable (ObjPtr, sizeof (ACPI_PARSE_OBJECT)))
- {
- AcpiOsPrintf (
- "Cannot read entire Parser object at address %p\n", ObjPtr);
- return;
- }
-
- AcpiUtDumpBuffer (ObjPtr, sizeof (ACPI_PARSE_OBJECT), Display,
- ACPI_UINT32_MAX);
- AcpiDbDumpParserDescriptor ((ACPI_PARSE_OBJECT *) ObjPtr);
- break;
-
-
- default:
-
- /* Is not a recognizeable object */
-
- Size = 16;
- if (AcpiOsReadable (ObjPtr, 64))
- {
- Size = 64;
- }
-
- /* Just dump some memory */
-
- AcpiUtDumpBuffer (ObjPtr, Size, Display, ACPI_UINT32_MAX);
- break;
- }
-
- return;
- }
-
- /* The parameter is a name string that must be resolved to a Named obj */
-
- Node = AcpiDbLocalNsLookup (Target);
- if (!Node)
- {
- return;
- }
-
-
-DumpNode:
- /* Now dump the NS node */
-
- Status = AcpiGetName (Node, ACPI_FULL_PATHNAME, &RetBuf);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not convert name to pathname\n");
- }
-
- else
- {
- AcpiOsPrintf ("Object (%p) Pathname: %s\n",
- Node, (char *) RetBuf.Pointer);
- }
-
- if (!AcpiOsReadable (Node, sizeof (ACPI_NAMESPACE_NODE)))
- {
- AcpiOsPrintf ("Invalid Named object at address %p\n", Node);
- return;
- }
-
- AcpiUtDumpBuffer ((void *) Node, sizeof (ACPI_NAMESPACE_NODE),
- Display, ACPI_UINT32_MAX);
- AcpiExDumpNamespaceNode (Node, 1);
-
- ObjDesc = AcpiNsGetAttachedObject (Node);
- if (ObjDesc)
- {
- AcpiOsPrintf ("\nAttached Object (%p):\n", ObjDesc);
- if (!AcpiOsReadable (ObjDesc, sizeof (ACPI_OPERAND_OBJECT)))
- {
- AcpiOsPrintf ("Invalid internal ACPI Object at address %p\n",
- ObjDesc);
- return;
- }
-
- AcpiUtDumpBuffer ((void *) ObjDesc, sizeof (ACPI_OPERAND_OBJECT),
- Display, ACPI_UINT32_MAX);
- AcpiExDumpObjectDescriptor (ObjDesc, 1);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbDisplayMethodInfo
- *
- * PARAMETERS: StartOp - Root of the control method parse tree
- *
- * RETURN: None
- *
- * DESCRIPTION: Display information about the current method
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayMethodInfo (
- ACPI_PARSE_OBJECT *StartOp)
-{
- ACPI_WALK_STATE *WalkState;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_PARSE_OBJECT *RootOp;
- ACPI_PARSE_OBJECT *Op;
- const ACPI_OPCODE_INFO *OpInfo;
- UINT32 NumOps = 0;
- UINT32 NumOperands = 0;
- UINT32 NumOperators = 0;
- UINT32 NumRemainingOps = 0;
- UINT32 NumRemainingOperands = 0;
- UINT32 NumRemainingOperators = 0;
- BOOLEAN CountRemaining = FALSE;
-
-
- WalkState = AcpiDsGetCurrentWalkState (AcpiGbl_CurrentWalkList);
- if (!WalkState)
- {
- AcpiOsPrintf ("There is no method currently executing\n");
- return;
- }
-
- ObjDesc = WalkState->MethodDesc;
- Node = WalkState->MethodNode;
-
- AcpiOsPrintf ("Currently executing control method is [%4.4s]\n",
- AcpiUtGetNodeName (Node));
- AcpiOsPrintf ("%X Arguments, SyncLevel = %X\n",
- (UINT32) ObjDesc->Method.ParamCount,
- (UINT32) ObjDesc->Method.SyncLevel);
-
-
- RootOp = StartOp;
- while (RootOp->Common.Parent)
- {
- RootOp = RootOp->Common.Parent;
- }
-
- Op = RootOp;
-
- while (Op)
- {
- if (Op == StartOp)
- {
- CountRemaining = TRUE;
- }
-
- NumOps++;
- if (CountRemaining)
- {
- NumRemainingOps++;
- }
-
- /* Decode the opcode */
-
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- switch (OpInfo->Class)
- {
- case AML_CLASS_ARGUMENT:
- if (CountRemaining)
- {
- NumRemainingOperands++;
- }
-
- NumOperands++;
- break;
-
- case AML_CLASS_UNKNOWN:
- /* Bad opcode or ASCII character */
-
- continue;
-
- default:
- if (CountRemaining)
- {
- NumRemainingOperators++;
- }
-
- NumOperators++;
- break;
- }
-
- Op = AcpiPsGetDepthNext (StartOp, Op);
- }
-
- AcpiOsPrintf (
- "Method contains: %X AML Opcodes - %X Operators, %X Operands\n",
- NumOps, NumOperators, NumOperands);
-
- AcpiOsPrintf (
- "Remaining to execute: %X AML Opcodes - %X Operators, %X Operands\n",
- NumRemainingOps, NumRemainingOperators, NumRemainingOperands);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbDisplayLocals
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Display all locals for the currently running control method
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayLocals (
- void)
-{
- ACPI_WALK_STATE *WalkState;
-
-
- WalkState = AcpiDsGetCurrentWalkState (AcpiGbl_CurrentWalkList);
- if (!WalkState)
- {
- AcpiOsPrintf ("There is no method currently executing\n");
- return;
- }
-
- AcpiDmDisplayLocals (WalkState);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbDisplayArguments
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Display all arguments for the currently running control method
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayArguments (
- void)
-{
- ACPI_WALK_STATE *WalkState;
-
-
- WalkState = AcpiDsGetCurrentWalkState (AcpiGbl_CurrentWalkList);
- if (!WalkState)
- {
- AcpiOsPrintf ("There is no method currently executing\n");
- return;
- }
-
- AcpiDmDisplayArguments (WalkState);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbDisplayResults
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Display current contents of a method result stack
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayResults (
- void)
-{
- UINT32 i;
- ACPI_WALK_STATE *WalkState;
- ACPI_OPERAND_OBJECT *ObjDesc;
- UINT32 ResultCount = 0;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_GENERIC_STATE *Frame;
- UINT32 Index; /* Index onto current frame */
-
-
- WalkState = AcpiDsGetCurrentWalkState (AcpiGbl_CurrentWalkList);
- if (!WalkState)
- {
- AcpiOsPrintf ("There is no method currently executing\n");
- return;
- }
-
- ObjDesc = WalkState->MethodDesc;
- Node = WalkState->MethodNode;
-
- if (WalkState->Results)
- {
- ResultCount = WalkState->ResultCount;
- }
-
- AcpiOsPrintf ("Method [%4.4s] has %X stacked result objects\n",
- AcpiUtGetNodeName (Node), ResultCount);
-
- /* From the top element of result stack */
-
- Frame = WalkState->Results;
- Index = (ResultCount - 1) % ACPI_RESULTS_FRAME_OBJ_NUM;
-
- for (i = 0; i < ResultCount; i++)
- {
- ObjDesc = Frame->Results.ObjDesc[Index];
- AcpiOsPrintf ("Result%d: ", i);
- AcpiDmDisplayInternalObject (ObjDesc, WalkState);
- if (Index == 0)
- {
- Frame = Frame->Results.Next;
- Index = ACPI_RESULTS_FRAME_OBJ_NUM;
- }
- Index--;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbDisplayCallingTree
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Display current calling tree of nested control methods
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayCallingTree (
- void)
-{
- ACPI_WALK_STATE *WalkState;
- ACPI_NAMESPACE_NODE *Node;
-
-
- WalkState = AcpiDsGetCurrentWalkState (AcpiGbl_CurrentWalkList);
- if (!WalkState)
- {
- AcpiOsPrintf ("There is no method currently executing\n");
- return;
- }
-
- Node = WalkState->MethodNode;
- AcpiOsPrintf ("Current Control Method Call Tree\n");
-
- while (WalkState)
- {
- Node = WalkState->MethodNode;
-
- AcpiOsPrintf (" [%4.4s]\n", AcpiUtGetNodeName (Node));
-
- WalkState = WalkState->Next;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbDisplayObjectType
- *
- * PARAMETERS: ObjectArg - User entered NS node handle
- *
- * RETURN: None
- *
- * DESCRIPTION: Display type of an arbitrary NS node
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayObjectType (
- char *ObjectArg)
-{
- ACPI_HANDLE Handle;
- ACPI_BUFFER Buffer;
- ACPI_DEVICE_INFO *Info;
- ACPI_STATUS Status;
- ACPI_NATIVE_UINT i;
-
-
- Handle = ACPI_TO_POINTER (ACPI_STRTOUL (ObjectArg, NULL, 16));
- Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
-
- Status = AcpiGetObjectInfo (Handle, &Buffer);
- if (ACPI_SUCCESS (Status))
- {
- Info = Buffer.Pointer;
- AcpiOsPrintf (
- "S1D-%2.2X S2D-%2.2X S3D-%2.2X S4D-%2.2X HID: %s, ADR: %8.8X%8.8X, Status %8.8X\n",
- Info->HighestDstates[0], Info->HighestDstates[1],
- Info->HighestDstates[2], Info->HighestDstates[3],
- Info->HardwareId.Value,
- ACPI_FORMAT_UINT64 (Info->Address),
- Info->CurrentStatus);
-
- if (Info->Valid & ACPI_VALID_CID)
- {
- for (i = 0; i < Info->CompatibilityId.Count; i++)
- {
- AcpiOsPrintf ("CID #%d: %s\n", (UINT32) i,
- Info->CompatibilityId.Id[i].Value);
- }
- }
-
- ACPI_FREE (Info);
- }
- else
- {
- AcpiOsPrintf ("%s\n", AcpiFormatException (Status));
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbDisplayResultObject
- *
- * PARAMETERS: ObjDesc - Object to be displayed
- * WalkState - Current walk state
- *
- * RETURN: None
- *
- * DESCRIPTION: Display the result of an AML opcode
- *
- * Note: Curently only displays the result object if we are single stepping.
- * However, this output may be useful in other contexts and could be enabled
- * to do so if needed.
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayResultObject (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_WALK_STATE *WalkState)
-{
-
- /* Only display if single stepping */
-
- if (!AcpiGbl_CmSingleStep)
- {
- return;
- }
-
- AcpiOsPrintf ("ResultObj: ");
- AcpiDmDisplayInternalObject (ObjDesc, WalkState);
- AcpiOsPrintf ("\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbDisplayArgumentObject
- *
- * PARAMETERS: ObjDesc - Object to be displayed
- * WalkState - Current walk state
- *
- * RETURN: None
- *
- * DESCRIPTION: Display the result of an AML opcode
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayArgumentObject (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_WALK_STATE *WalkState)
-{
-
- if (!AcpiGbl_CmSingleStep)
- {
- return;
- }
-
- AcpiOsPrintf ("ArgObj: ");
- AcpiDmDisplayInternalObject (ObjDesc, WalkState);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbDisplayGpes
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Display the current GPE structures
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayGpes (
- void)
-{
- ACPI_GPE_BLOCK_INFO *GpeBlock;
- ACPI_GPE_XRUPT_INFO *GpeXruptInfo;
- ACPI_GPE_EVENT_INFO *GpeEventInfo;
- ACPI_GPE_REGISTER_INFO *GpeRegisterInfo;
- UINT32 GpeIndex;
- UINT32 Block = 0;
- UINT32 i;
- UINT32 j;
- char Buffer[80];
- ACPI_BUFFER RetBuf;
- ACPI_STATUS Status;
-
-
- RetBuf.Length = sizeof (Buffer);
- RetBuf.Pointer = Buffer;
-
- Block = 0;
-
- /* Walk the GPE lists */
-
- GpeXruptInfo = AcpiGbl_GpeXruptListHead;
- while (GpeXruptInfo)
- {
- GpeBlock = GpeXruptInfo->GpeBlockListHead;
- while (GpeBlock)
- {
- Status = AcpiGetName (GpeBlock->Node, ACPI_FULL_PATHNAME, &RetBuf);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not convert name to pathname\n");
- }
-
- AcpiOsPrintf ("\nBlock %d - Info %p DeviceNode %p [%s]\n",
- Block, GpeBlock, GpeBlock->Node, Buffer);
-
- AcpiOsPrintf (" Registers: %u (%u GPEs)\n",
- GpeBlock->RegisterCount,
- ACPI_MUL_8 (GpeBlock->RegisterCount));
-
- AcpiOsPrintf (" GPE range: 0x%X to 0x%X\n",
- GpeBlock->BlockBaseNumber,
- GpeBlock->BlockBaseNumber +
- (GpeBlock->RegisterCount * 8) -1);
-
- AcpiOsPrintf (
- " RegisterInfo: %p Status %8.8X%8.8X Enable %8.8X%8.8X\n",
- GpeBlock->RegisterInfo,
- ACPI_FORMAT_UINT64 (GpeBlock->RegisterInfo->StatusAddress.Address),
- ACPI_FORMAT_UINT64 (GpeBlock->RegisterInfo->EnableAddress.Address));
-
- AcpiOsPrintf (" EventInfo: %p\n", GpeBlock->EventInfo);
-
- /* Examine each GPE Register within the block */
-
- for (i = 0; i < GpeBlock->RegisterCount; i++)
- {
- GpeRegisterInfo = &GpeBlock->RegisterInfo[i];
-
- AcpiOsPrintf (
- " Reg %u: WakeEnable %2.2X, RunEnable %2.2X Status %8.8X%8.8X Enable %8.8X%8.8X\n",
- i, GpeRegisterInfo->EnableForWake,
- GpeRegisterInfo->EnableForRun,
- ACPI_FORMAT_UINT64 (GpeRegisterInfo->StatusAddress.Address),
- ACPI_FORMAT_UINT64 (GpeRegisterInfo->EnableAddress.Address));
-
- /* Now look at the individual GPEs in this byte register */
-
- for (j = 0; j < ACPI_GPE_REGISTER_WIDTH; j++)
- {
- GpeIndex = (i * ACPI_GPE_REGISTER_WIDTH) + j;
- GpeEventInfo = &GpeBlock->EventInfo[GpeIndex];
-
- if (!(GpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK))
- {
- /* This GPE is not used (no method or handler) */
-
- continue;
- }
-
- AcpiOsPrintf (
- " GPE %.3X: %p Flags %2.2X: ",
- GpeBlock->BlockBaseNumber + GpeIndex,
- GpeEventInfo,
- GpeEventInfo->Flags);
-
- if (GpeEventInfo->Flags & ACPI_GPE_LEVEL_TRIGGERED)
- {
- AcpiOsPrintf ("Level, ");
- }
- else
- {
- AcpiOsPrintf ("Edge, ");
- }
-
- switch (GpeEventInfo->Flags & ACPI_GPE_TYPE_MASK)
- {
- case ACPI_GPE_TYPE_WAKE:
- AcpiOsPrintf ("WakeOnly: ");
- break;
- case ACPI_GPE_TYPE_RUNTIME:
- AcpiOsPrintf (" RunOnly: ");
- break;
- case ACPI_GPE_TYPE_WAKE_RUN:
- AcpiOsPrintf (" WakeRun: ");
- break;
- default:
- AcpiOsPrintf (" NotUsed: ");
- break;
- }
-
- if (GpeEventInfo->Flags & ACPI_GPE_WAKE_ENABLED)
- {
- AcpiOsPrintf ("[Wake 1 ");
- }
- else
- {
- AcpiOsPrintf ("[Wake 0 ");
- }
-
- if (GpeEventInfo->Flags & ACPI_GPE_RUN_ENABLED)
- {
- AcpiOsPrintf ("Run 1], ");
- }
- else
- {
- AcpiOsPrintf ("Run 0], ");
- }
-
- switch (GpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK)
- {
- case ACPI_GPE_DISPATCH_NOT_USED:
- AcpiOsPrintf ("NotUsed");
- break;
- case ACPI_GPE_DISPATCH_HANDLER:
- AcpiOsPrintf ("Handler");
- break;
- case ACPI_GPE_DISPATCH_METHOD:
- AcpiOsPrintf ("Method");
- break;
- default:
- AcpiOsPrintf ("UNKNOWN: %X",
- GpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK);
- break;
- }
-
- AcpiOsPrintf ("\n");
- }
- }
- Block++;
- GpeBlock = GpeBlock->Next;
- }
- GpeXruptInfo = GpeXruptInfo->Next;
- }
-}
-
-#endif /* ACPI_DEBUGGER */
-
diff --git a/sys/contrib/dev/acpica/dbexec.c b/sys/contrib/dev/acpica/dbexec.c
deleted file mode 100644
index 10e73f6..0000000
--- a/sys/contrib/dev/acpica/dbexec.c
+++ /dev/null
@@ -1,712 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dbexec - debugger control method execution
- * $Revision: 1.81 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acdebug.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-#ifdef ACPI_DEBUGGER
-
-#define _COMPONENT ACPI_CA_DEBUGGER
- ACPI_MODULE_NAME ("dbexec")
-
-
-static ACPI_DB_METHOD_INFO AcpiGbl_DbMethodInfo;
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiDbExecuteMethod (
- ACPI_DB_METHOD_INFO *Info,
- ACPI_BUFFER *ReturnObj);
-
-static void
-AcpiDbExecuteSetup (
- ACPI_DB_METHOD_INFO *Info);
-
-static UINT32
-AcpiDbGetOutstandingAllocations (
- void);
-
-static void ACPI_SYSTEM_XFACE
-AcpiDbMethodThread (
- void *Context);
-
-static ACPI_STATUS
-AcpiDbExecutionWalk (
- ACPI_HANDLE ObjHandle,
- UINT32 NestingLevel,
- void *Context,
- void **ReturnValue);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbExecuteMethod
- *
- * PARAMETERS: Info - Valid info segment
- * ReturnObj - Where to put return object
- *
- * RETURN: Status
- *
- * DESCRIPTION: Execute a control method.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDbExecuteMethod (
- ACPI_DB_METHOD_INFO *Info,
- ACPI_BUFFER *ReturnObj)
-{
- ACPI_STATUS Status;
- ACPI_OBJECT_LIST ParamObjects;
- ACPI_OBJECT Params[ACPI_METHOD_NUM_ARGS];
- UINT32 i;
-
-
- if (AcpiGbl_DbOutputToFile && !AcpiDbgLevel)
- {
- AcpiOsPrintf ("Warning: debug output is not enabled!\n");
- }
-
- /* Are there arguments to the method? */
-
- if (Info->Args && Info->Args[0])
- {
- for (i = 0; Info->Args[i] && i < ACPI_METHOD_NUM_ARGS; i++)
- {
- Params[i].Type = ACPI_TYPE_INTEGER;
- Params[i].Integer.Value = ACPI_STRTOUL (Info->Args[i], NULL, 16);
- }
-
- ParamObjects.Pointer = Params;
- ParamObjects.Count = i;
- }
- else
- {
- /* Setup default parameters */
-
- Params[0].Type = ACPI_TYPE_INTEGER;
- Params[0].Integer.Value = 0x01020304;
-
- Params[1].Type = ACPI_TYPE_STRING;
- Params[1].String.Length = 12;
- Params[1].String.Pointer = "AML Debugger";
-
- ParamObjects.Pointer = Params;
- ParamObjects.Count = 2;
- }
-
- /* Prepare for a return object of arbitrary size */
-
- ReturnObj->Pointer = AcpiGbl_DbBuffer;
- ReturnObj->Length = ACPI_DEBUG_BUFFER_SIZE;
-
- /* Do the actual method execution */
-
- AcpiGbl_MethodExecuting = TRUE;
- Status = AcpiEvaluateObject (NULL,
- Info->Pathname, &ParamObjects, ReturnObj);
-
- AcpiGbl_CmSingleStep = FALSE;
- AcpiGbl_MethodExecuting = FALSE;
-
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbExecuteSetup
- *
- * PARAMETERS: Info - Valid method info
- *
- * RETURN: None
- *
- * DESCRIPTION: Setup info segment prior to method execution
- *
- ******************************************************************************/
-
-static void
-AcpiDbExecuteSetup (
- ACPI_DB_METHOD_INFO *Info)
-{
-
- /* Catenate the current scope to the supplied name */
-
- Info->Pathname[0] = 0;
- if ((Info->Name[0] != '\\') &&
- (Info->Name[0] != '/'))
- {
- ACPI_STRCAT (Info->Pathname, AcpiGbl_DbScopeBuf);
- }
-
- ACPI_STRCAT (Info->Pathname, Info->Name);
- AcpiDbPrepNamestring (Info->Pathname);
-
- AcpiDbSetOutputDestination (ACPI_DB_DUPLICATE_OUTPUT);
- AcpiOsPrintf ("Executing %s\n", Info->Pathname);
-
- if (Info->Flags & EX_SINGLE_STEP)
- {
- AcpiGbl_CmSingleStep = TRUE;
- AcpiDbSetOutputDestination (ACPI_DB_CONSOLE_OUTPUT);
- }
-
- else
- {
- /* No single step, allow redirection to a file */
-
- AcpiDbSetOutputDestination (ACPI_DB_REDIRECTABLE_OUTPUT);
- }
-}
-
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-UINT32
-AcpiDbGetCacheInfo (
- ACPI_MEMORY_LIST *Cache)
-{
-
- return (Cache->TotalAllocated - Cache->TotalFreed - Cache->CurrentDepth);
-}
-#endif
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbGetOutstandingAllocations
- *
- * PARAMETERS: None
- *
- * RETURN: Current global allocation count minus cache entries
- *
- * DESCRIPTION: Determine the current number of "outstanding" allocations --
- * those allocations that have not been freed and also are not
- * in one of the various object caches.
- *
- ******************************************************************************/
-
-static UINT32
-AcpiDbGetOutstandingAllocations (
- void)
-{
- UINT32 Outstanding = 0;
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-
- Outstanding += AcpiDbGetCacheInfo (AcpiGbl_StateCache);
- Outstanding += AcpiDbGetCacheInfo (AcpiGbl_PsNodeCache);
- Outstanding += AcpiDbGetCacheInfo (AcpiGbl_PsNodeExtCache);
- Outstanding += AcpiDbGetCacheInfo (AcpiGbl_OperandCache);
-#endif
-
- return (Outstanding);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbExecutionWalk
- *
- * PARAMETERS: WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Execute a control method. Name is relative to the current
- * scope.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDbExecutionWalk (
- ACPI_HANDLE ObjHandle,
- UINT32 NestingLevel,
- void *Context,
- void **ReturnValue)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_NAMESPACE_NODE *Node = (ACPI_NAMESPACE_NODE *) ObjHandle;
- ACPI_BUFFER ReturnObj;
- ACPI_STATUS Status;
-
-
- ObjDesc = AcpiNsGetAttachedObject (Node);
- if (ObjDesc->Method.ParamCount)
- {
- return (AE_OK);
- }
-
- ReturnObj.Pointer = NULL;
- ReturnObj.Length = ACPI_ALLOCATE_BUFFER;
-
- AcpiNsPrintNodePathname (Node, "Execute");
-
- /* Do the actual method execution */
-
- AcpiOsPrintf ("\n");
- AcpiGbl_MethodExecuting = TRUE;
-
- Status = AcpiEvaluateObject (Node, NULL, NULL, &ReturnObj);
-
- AcpiOsPrintf ("[%4.4s] returned %s\n", AcpiUtGetNodeName (Node),
- AcpiFormatException (Status));
- AcpiGbl_MethodExecuting = FALSE;
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbExecute
- *
- * PARAMETERS: Name - Name of method to execute
- * Args - Parameters to the method
- * Flags - single step/no single step
- *
- * RETURN: None
- *
- * DESCRIPTION: Execute a control method. Name is relative to the current
- * scope.
- *
- ******************************************************************************/
-
-void
-AcpiDbExecute (
- char *Name,
- char **Args,
- UINT32 Flags)
-{
- ACPI_STATUS Status;
- ACPI_BUFFER ReturnObj;
- char *NameString;
-
-
-#ifdef ACPI_DEBUG_OUTPUT
- UINT32 PreviousAllocations;
- UINT32 Allocations;
-
-
- /* Memory allocation tracking */
-
- PreviousAllocations = AcpiDbGetOutstandingAllocations ();
-#endif
-
- if (*Name == '*')
- {
- (void) AcpiWalkNamespace (ACPI_TYPE_METHOD, ACPI_ROOT_OBJECT,
- ACPI_UINT32_MAX, AcpiDbExecutionWalk, NULL, NULL);
- return;
- }
- else
- {
- NameString = ACPI_ALLOCATE (ACPI_STRLEN (Name) + 1);
- if (!NameString)
- {
- return;
- }
-
- ACPI_MEMSET (&AcpiGbl_DbMethodInfo, 0, sizeof (ACPI_DB_METHOD_INFO));
-
- ACPI_STRCPY (NameString, Name);
- AcpiUtStrupr (NameString);
- AcpiGbl_DbMethodInfo.Name = NameString;
- AcpiGbl_DbMethodInfo.Args = Args;
- AcpiGbl_DbMethodInfo.Flags = Flags;
-
- ReturnObj.Pointer = NULL;
- ReturnObj.Length = ACPI_ALLOCATE_BUFFER;
-
- AcpiDbExecuteSetup (&AcpiGbl_DbMethodInfo);
- Status = AcpiDbExecuteMethod (&AcpiGbl_DbMethodInfo, &ReturnObj);
- ACPI_FREE (NameString);
- }
-
- /*
- * Allow any handlers in separate threads to complete.
- * (Such as Notify handlers invoked from AML executed above).
- */
- AcpiOsSleep ((ACPI_INTEGER) 10);
-
-
-#ifdef ACPI_DEBUG_OUTPUT
-
- /* Memory allocation tracking */
-
- Allocations = AcpiDbGetOutstandingAllocations () - PreviousAllocations;
-
- AcpiDbSetOutputDestination (ACPI_DB_DUPLICATE_OUTPUT);
-
- if (Allocations > 0)
- {
- AcpiOsPrintf ("Outstanding: 0x%X allocations after execution\n",
- Allocations);
- }
-#endif
-
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Execution of %s failed with status %s\n",
- AcpiGbl_DbMethodInfo.Pathname, AcpiFormatException (Status));
- }
- else
- {
- /* Display a return object, if any */
-
- if (ReturnObj.Length)
- {
- AcpiOsPrintf ("Execution of %s returned object %p Buflen %X\n",
- AcpiGbl_DbMethodInfo.Pathname, ReturnObj.Pointer,
- (UINT32) ReturnObj.Length);
- AcpiDbDumpExternalObject (ReturnObj.Pointer, 1);
- }
- else
- {
- AcpiOsPrintf ("No return object from execution of %s\n",
- AcpiGbl_DbMethodInfo.Pathname);
- }
- }
-
- AcpiDbSetOutputDestination (ACPI_DB_CONSOLE_OUTPUT);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbMethodThread
- *
- * PARAMETERS: Context - Execution info segment
- *
- * RETURN: None
- *
- * DESCRIPTION: Debugger execute thread. Waits for a command line, then
- * simply dispatches it.
- *
- ******************************************************************************/
-
-static void ACPI_SYSTEM_XFACE
-AcpiDbMethodThread (
- void *Context)
-{
- ACPI_STATUS Status;
- ACPI_DB_METHOD_INFO *Info = Context;
- UINT32 i;
- UINT8 Allow;
- ACPI_BUFFER ReturnObj;
-
-
- if (Info->InitArgs)
- {
- AcpiDbUInt32ToHexString (Info->NumCreated, Info->IndexOfThreadStr);
- AcpiDbUInt32ToHexString (AcpiOsGetThreadId (), Info->IdOfThreadStr);
- }
-
- if (Info->Threads && (Info->NumCreated < Info->NumThreads))
- {
- Info->Threads[Info->NumCreated++] = AcpiOsGetThreadId();
- }
-
- for (i = 0; i < Info->NumLoops; i++)
- {
- Status = AcpiDbExecuteMethod (Info, &ReturnObj);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("%s During execution of %s at iteration %X\n",
- AcpiFormatException (Status), Info->Pathname, i);
- if (Status == AE_ABORT_METHOD)
- {
- break;
- }
- }
-
-#if 0
- if ((i % 100) == 0)
- {
- AcpiOsPrintf ("%d executions, Thread 0x%x\n", i, AcpiOsGetThreadId ());
- }
-
- if (ReturnObj.Length)
- {
- AcpiOsPrintf ("Execution of %s returned object %p Buflen %X\n",
- Info->Pathname, ReturnObj.Pointer, (UINT32) ReturnObj.Length);
- AcpiDbDumpExternalObject (ReturnObj.Pointer, 1);
- }
-#endif
- }
-
- /* Signal our completion */
-
- Allow = 0;
- AcpiOsWaitSemaphore (Info->ThreadCompleteGate, 1, ACPI_WAIT_FOREVER);
- Info->NumCompleted++;
-
- if (Info->NumCompleted == Info->NumThreads)
- {
- /* Do signal for main thread once only */
- Allow = 1;
- }
-
- AcpiOsSignalSemaphore (Info->ThreadCompleteGate, 1);
-
- if (Allow)
- {
- Status = AcpiOsSignalSemaphore (Info->MainThreadGate, 1);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not signal debugger thread sync semaphore, %s\n",
- AcpiFormatException (Status));
- }
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbCreateExecutionThreads
- *
- * PARAMETERS: NumThreadsArg - Number of threads to create
- * NumLoopsArg - Loop count for the thread(s)
- * MethodNameArg - Control method to execute
- *
- * RETURN: None
- *
- * DESCRIPTION: Create threads to execute method(s)
- *
- ******************************************************************************/
-
-void
-AcpiDbCreateExecutionThreads (
- char *NumThreadsArg,
- char *NumLoopsArg,
- char *MethodNameArg)
-{
- ACPI_STATUS Status;
- UINT32 NumThreads;
- UINT32 NumLoops;
- UINT32 i;
- UINT32 Size;
- ACPI_MUTEX MainThreadGate;
- ACPI_MUTEX ThreadCompleteGate;
-
- /* Get the arguments */
-
- NumThreads = ACPI_STRTOUL (NumThreadsArg, NULL, 0);
- NumLoops = ACPI_STRTOUL (NumLoopsArg, NULL, 0);
-
- if (!NumThreads || !NumLoops)
- {
- AcpiOsPrintf ("Bad argument: Threads %X, Loops %X\n",
- NumThreads, NumLoops);
- return;
- }
-
- /*
- * Create the semaphore for synchronization of
- * the created threads with the main thread.
- */
- Status = AcpiOsCreateSemaphore (1, 0, &MainThreadGate);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not create semaphore for synchronization with the main thread, %s\n",
- AcpiFormatException (Status));
- return;
- }
-
- /*
- * Create the semaphore for synchronization
- * between the created threads.
- */
- Status = AcpiOsCreateSemaphore (1, 1, &ThreadCompleteGate);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not create semaphore for synchronization between the created threads, %s\n",
- AcpiFormatException (Status));
- (void) AcpiOsDeleteSemaphore (MainThreadGate);
- return;
- }
-
- ACPI_MEMSET (&AcpiGbl_DbMethodInfo, 0, sizeof (ACPI_DB_METHOD_INFO));
-
- /* Array to store IDs of threads */
-
- AcpiGbl_DbMethodInfo.NumThreads = NumThreads;
- Size = 4 * AcpiGbl_DbMethodInfo.NumThreads;
- AcpiGbl_DbMethodInfo.Threads = (UINT32 *) AcpiOsAllocate (Size);
- if (AcpiGbl_DbMethodInfo.Threads == NULL)
- {
- AcpiOsPrintf ("No memory for thread IDs array\n");
- (void) AcpiOsDeleteSemaphore (MainThreadGate);
- (void) AcpiOsDeleteSemaphore (ThreadCompleteGate);
- return;
- }
- ACPI_MEMSET (AcpiGbl_DbMethodInfo.Threads, 0, Size);
-
- /* Setup the context to be passed to each thread */
-
- AcpiGbl_DbMethodInfo.Name = MethodNameArg;
- AcpiGbl_DbMethodInfo.Flags = 0;
- AcpiGbl_DbMethodInfo.NumLoops = NumLoops;
- AcpiGbl_DbMethodInfo.MainThreadGate = MainThreadGate;
- AcpiGbl_DbMethodInfo.ThreadCompleteGate = ThreadCompleteGate;
-
- /* Init arguments to be passed to method */
-
- AcpiGbl_DbMethodInfo.InitArgs = 1;
- AcpiGbl_DbMethodInfo.Args = AcpiGbl_DbMethodInfo.Arguments;
- AcpiGbl_DbMethodInfo.Arguments[0] = AcpiGbl_DbMethodInfo.NumThreadsStr;
- AcpiGbl_DbMethodInfo.Arguments[1] = AcpiGbl_DbMethodInfo.IdOfThreadStr;
- AcpiGbl_DbMethodInfo.Arguments[2] = AcpiGbl_DbMethodInfo.IndexOfThreadStr;
- AcpiGbl_DbMethodInfo.Arguments[3] = NULL;
- AcpiDbUInt32ToHexString (NumThreads, AcpiGbl_DbMethodInfo.NumThreadsStr);
-
- AcpiDbExecuteSetup (&AcpiGbl_DbMethodInfo);
-
- /* Create the threads */
-
- AcpiOsPrintf ("Creating %X threads to execute %X times each\n",
- NumThreads, NumLoops);
-
- for (i = 0; i < (NumThreads); i++)
- {
- Status = AcpiOsExecute (OSL_DEBUGGER_THREAD, AcpiDbMethodThread,
- &AcpiGbl_DbMethodInfo);
- if (ACPI_FAILURE (Status))
- {
- break;
- }
- }
-
- /* Wait for all threads to complete */
-
- AcpiOsWaitSemaphore (MainThreadGate, 1, ACPI_WAIT_FOREVER);
-
- AcpiDbSetOutputDestination (ACPI_DB_DUPLICATE_OUTPUT);
- AcpiOsPrintf ("All threads (%X) have completed\n", NumThreads);
- AcpiDbSetOutputDestination (ACPI_DB_CONSOLE_OUTPUT);
-
- /* Cleanup and exit */
-
- (void) AcpiOsDeleteSemaphore (MainThreadGate);
- (void) AcpiOsDeleteSemaphore (ThreadCompleteGate);
-
- AcpiOsFree (AcpiGbl_DbMethodInfo.Threads);
- AcpiGbl_DbMethodInfo.Threads = NULL;
-}
-
-#endif /* ACPI_DEBUGGER */
-
-
diff --git a/sys/contrib/dev/acpica/dbfileio.c b/sys/contrib/dev/acpica/dbfileio.c
deleted file mode 100644
index dc97d752..0000000
--- a/sys/contrib/dev/acpica/dbfileio.c
+++ /dev/null
@@ -1,651 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dbfileio - Debugger file I/O commands. These can't usually
- * be used when running the debugger in Ring 0 (Kernel mode)
- * $Revision: 1.94 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acdebug.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/actables.h>
-#include <contrib/dev/acpica/acdisasm.h>
-
-#if (defined ACPI_DEBUGGER || defined ACPI_DISASSEMBLER)
-
-#define _COMPONENT ACPI_CA_DEBUGGER
- ACPI_MODULE_NAME ("dbfileio")
-
-/*
- * NOTE: this is here for lack of a better place. It is used in all
- * flavors of the debugger, need LCD file
- */
-#ifdef ACPI_APPLICATION
-#include <stdio.h>
-FILE *AcpiGbl_DebugFile = NULL;
-#endif
-
-
-#ifdef ACPI_DEBUGGER
-
-/* Local prototypes */
-
-#ifdef ACPI_APPLICATION
-
-static ACPI_STATUS
-AcpiDbCheckTextModeCorruption (
- UINT8 *Table,
- UINT32 TableLength,
- UINT32 FileLength);
-
-static ACPI_STATUS
-AeLocalLoadTable (
- ACPI_TABLE_HEADER *TablePtr);
-#endif
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbCloseDebugFile
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: If open, close the current debug output file
- *
- ******************************************************************************/
-
-void
-AcpiDbCloseDebugFile (
- void)
-{
-
-#ifdef ACPI_APPLICATION
-
- if (AcpiGbl_DebugFile)
- {
- fclose (AcpiGbl_DebugFile);
- AcpiGbl_DebugFile = NULL;
- AcpiGbl_DbOutputToFile = FALSE;
- AcpiOsPrintf ("Debug output file %s closed\n", AcpiGbl_DbDebugFilename);
- }
-#endif
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbOpenDebugFile
- *
- * PARAMETERS: Name - Filename to open
- *
- * RETURN: None
- *
- * DESCRIPTION: Open a file where debug output will be directed.
- *
- ******************************************************************************/
-
-void
-AcpiDbOpenDebugFile (
- char *Name)
-{
-
-#ifdef ACPI_APPLICATION
-
- AcpiDbCloseDebugFile ();
- AcpiGbl_DebugFile = fopen (Name, "w+");
- if (AcpiGbl_DebugFile)
- {
- AcpiOsPrintf ("Debug output file %s opened\n", Name);
- ACPI_STRCPY (AcpiGbl_DbDebugFilename, Name);
- AcpiGbl_DbOutputToFile = TRUE;
- }
- else
- {
- AcpiOsPrintf ("Could not open debug file %s\n", Name);
- }
-
-#endif
-}
-#endif
-
-
-#ifdef ACPI_APPLICATION
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbCheckTextModeCorruption
- *
- * PARAMETERS: Table - Table buffer
- * TableLength - Length of table from the table header
- * FileLength - Length of the file that contains the table
- *
- * RETURN: Status
- *
- * DESCRIPTION: Check table for text mode file corruption where all linefeed
- * characters (LF) have been replaced by carriage return linefeed
- * pairs (CR/LF).
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDbCheckTextModeCorruption (
- UINT8 *Table,
- UINT32 TableLength,
- UINT32 FileLength)
-{
- UINT32 i;
- UINT32 Pairs = 0;
-
-
- if (TableLength != FileLength)
- {
- ACPI_WARNING ((AE_INFO,
- "File length (0x%X) is not the same as the table length (0x%X)",
- FileLength, TableLength));
- }
-
- /* Scan entire table to determine if each LF has been prefixed with a CR */
-
- for (i = 1; i < FileLength; i++)
- {
- if (Table[i] == 0x0A)
- {
- if (Table[i - 1] != 0x0D)
- {
- /* The LF does not have a preceeding CR, table not corrupted */
-
- return (AE_OK);
- }
- else
- {
- /* Found a CR/LF pair */
-
- Pairs++;
- }
- i++;
- }
- }
-
- if (!Pairs)
- {
- return (AE_OK);
- }
-
- /*
- * Entire table scanned, each CR is part of a CR/LF pair --
- * meaning that the table was treated as a text file somewhere.
- *
- * NOTE: We can't "fix" the table, because any existing CR/LF pairs in the
- * original table are left untouched by the text conversion process --
- * meaning that we cannot simply replace CR/LF pairs with LFs.
- */
- AcpiOsPrintf ("Table has been corrupted by text mode conversion\n");
- AcpiOsPrintf ("All LFs (%d) were changed to CR/LF pairs\n", Pairs);
- AcpiOsPrintf ("Table cannot be repaired!\n");
- return (AE_BAD_VALUE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbReadTable
- *
- * PARAMETERS: fp - File that contains table
- * Table - Return value, buffer with table
- * TableLength - Return value, length of table
- *
- * RETURN: Status
- *
- * DESCRIPTION: Load the DSDT from the file pointer
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDbReadTable (
- FILE *fp,
- ACPI_TABLE_HEADER **Table,
- UINT32 *TableLength)
-{
- ACPI_TABLE_HEADER TableHeader;
- UINT32 Actual;
- ACPI_STATUS Status;
- UINT32 FileSize;
- BOOLEAN StandardHeader = TRUE;
-
-
- /* Get the file size */
-
- fseek (fp, 0, SEEK_END);
- FileSize = (UINT32) ftell (fp);
- fseek (fp, 0, SEEK_SET);
-
- if (FileSize < 4)
- {
- return (AE_BAD_HEADER);
- }
-
- /* Read the signature */
-
- if (fread (&TableHeader, 1, 4, fp) != 4)
- {
- AcpiOsPrintf ("Could not read the table signature\n");
- return (AE_BAD_HEADER);
- }
-
- fseek (fp, 0, SEEK_SET);
-
- /* The RSDT and FACS tables do not have standard ACPI headers */
-
- if (ACPI_COMPARE_NAME (TableHeader.Signature, "RSD ") ||
- ACPI_COMPARE_NAME (TableHeader.Signature, "FACS"))
- {
- *TableLength = FileSize;
- StandardHeader = FALSE;
- }
- else
- {
- /* Read the table header */
-
- if (fread (&TableHeader, 1, sizeof (TableHeader), fp) !=
- sizeof (ACPI_TABLE_HEADER))
- {
- AcpiOsPrintf ("Could not read the table header\n");
- return (AE_BAD_HEADER);
- }
-
-#if 0
- /* Validate the table header/length */
-
- Status = AcpiTbValidateTableHeader (&TableHeader);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Table header is invalid!\n");
- return (Status);
- }
-#endif
-
- /* File size must be at least as long as the Header-specified length */
-
- if (TableHeader.Length > FileSize)
- {
- AcpiOsPrintf (
- "TableHeader length [0x%X] greater than the input file size [0x%X]\n",
- TableHeader.Length, FileSize);
- return (AE_BAD_HEADER);
- }
-
-#ifdef ACPI_OBSOLETE_CODE
- /* We only support a limited number of table types */
-
- if (ACPI_STRNCMP ((char *) TableHeader.Signature, DSDT_SIG, 4) &&
- ACPI_STRNCMP ((char *) TableHeader.Signature, PSDT_SIG, 4) &&
- ACPI_STRNCMP ((char *) TableHeader.Signature, SSDT_SIG, 4))
- {
- AcpiOsPrintf ("Table signature [%4.4s] is invalid or not supported\n",
- (char *) TableHeader.Signature);
- ACPI_DUMP_BUFFER (&TableHeader, sizeof (ACPI_TABLE_HEADER));
- return (AE_ERROR);
- }
-#endif
-
- *TableLength = TableHeader.Length;
- }
-
- /* Allocate a buffer for the table */
-
- *Table = AcpiOsAllocate ((size_t) FileSize);
- if (!*Table)
- {
- AcpiOsPrintf (
- "Could not allocate memory for ACPI table %4.4s (size=0x%X)\n",
- TableHeader.Signature, *TableLength);
- return (AE_NO_MEMORY);
- }
-
- /* Get the rest of the table */
-
- fseek (fp, 0, SEEK_SET);
- Actual = fread (*Table, 1, (size_t) FileSize, fp);
- if (Actual == FileSize)
- {
- if (StandardHeader)
- {
- /* Now validate the checksum */
-
- Status = AcpiTbChecksum ((void *) *Table,
- ACPI_CAST_PTR (ACPI_TABLE_HEADER, *Table)->Length);
-
- if (Status == AE_BAD_CHECKSUM)
- {
- Status = AcpiDbCheckTextModeCorruption ((UINT8 *) *Table,
- FileSize, (*Table)->Length);
- return (Status);
- }
- }
- return (AE_OK);
- }
-
- if (Actual > 0)
- {
- AcpiOsPrintf ("Warning - reading table, asked for %X got %X\n",
- FileSize, Actual);
- return (AE_OK);
- }
-
- AcpiOsPrintf ("Error - could not read the table file\n");
- AcpiOsFree (*Table);
- *Table = NULL;
- *TableLength = 0;
-
- return (AE_ERROR);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AeLocalLoadTable
- *
- * PARAMETERS: Table - pointer to a buffer containing the entire
- * table to be loaded
- *
- * RETURN: Status
- *
- * DESCRIPTION: This function is called to load a table from the caller's
- * buffer. The buffer must contain an entire ACPI Table including
- * a valid header. The header fields will be verified, and if it
- * is determined that the table is invalid, the call will fail.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AeLocalLoadTable (
- ACPI_TABLE_HEADER *Table)
-{
- ACPI_STATUS Status = AE_OK;
-/* ACPI_TABLE_DESC TableInfo; */
-
-
- ACPI_FUNCTION_TRACE (AeLocalLoadTable);
-#if 0
-
-
- if (!Table)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- TableInfo.Pointer = Table;
- Status = AcpiTbRecognizeTable (&TableInfo, ACPI_TABLE_ALL);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Install the new table into the local data structures */
-
- Status = AcpiTbInstallTable (&TableInfo);
- if (ACPI_FAILURE (Status))
- {
- if (Status == AE_ALREADY_EXISTS)
- {
- /* Table already exists, no error */
-
- Status = AE_OK;
- }
-
- /* Free table allocated by AcpiTbGetTable */
-
- AcpiTbDeleteSingleTable (&TableInfo);
- return_ACPI_STATUS (Status);
- }
-
-#if (!defined (ACPI_NO_METHOD_EXECUTION) && !defined (ACPI_CONSTANT_EVAL_ONLY))
-
- Status = AcpiNsLoadTable (TableInfo.InstalledDesc, AcpiGbl_RootNode);
- if (ACPI_FAILURE (Status))
- {
- /* Uninstall table and free the buffer */
-
- AcpiTbDeleteTablesByType (ACPI_TABLE_ID_DSDT);
- return_ACPI_STATUS (Status);
- }
-#endif
-#endif
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbReadTableFromFile
- *
- * PARAMETERS: Filename - File where table is located
- * Table - Where a pointer to the table is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Get an ACPI table from a file
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDbReadTableFromFile (
- char *Filename,
- ACPI_TABLE_HEADER **Table)
-{
- FILE *fp;
- UINT32 TableLength;
- ACPI_STATUS Status;
-
-
- /* Open the file */
-
- fp = fopen (Filename, "rb");
- if (!fp)
- {
- AcpiOsPrintf ("Could not open input file %s\n", Filename);
- return (AE_ERROR);
- }
-
- /* Get the entire file */
-
- fprintf (stderr, "Loading Acpi table from file %s\n", Filename);
- Status = AcpiDbReadTable (fp, Table, &TableLength);
- fclose(fp);
-
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not get table from the file\n");
- return (Status);
- }
-
- return (AE_OK);
- }
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbGetTableFromFile
- *
- * PARAMETERS: Filename - File where table is located
- * ReturnTable - Where a pointer to the table is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Load an ACPI table from a file
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDbGetTableFromFile (
- char *Filename,
- ACPI_TABLE_HEADER **ReturnTable)
-{
-#ifdef ACPI_APPLICATION
- ACPI_STATUS Status;
- ACPI_TABLE_HEADER *Table;
- BOOLEAN IsAmlTable = TRUE;
-
-
- Status = AcpiDbReadTableFromFile (Filename, &Table);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
-#ifdef ACPI_DATA_TABLE_DISASSEMBLY
- IsAmlTable = AcpiUtIsAmlTable (Table);
-#endif
-
- if (IsAmlTable)
- {
- /* Attempt to recognize and install the table */
-
- Status = AeLocalLoadTable (Table);
- if (ACPI_FAILURE (Status))
- {
- if (Status == AE_ALREADY_EXISTS)
- {
- AcpiOsPrintf ("Table %4.4s is already installed\n",
- Table->Signature);
- }
- else
- {
- AcpiOsPrintf ("Could not install table, %s\n",
- AcpiFormatException (Status));
- }
-
- return (Status);
- }
-
- fprintf (stderr,
- "Acpi table [%4.4s] successfully installed and loaded\n",
- Table->Signature);
- }
-
- AcpiGbl_AcpiHardwarePresent = FALSE;
- if (ReturnTable)
- {
- *ReturnTable = Table;
- }
-
-
-#endif /* ACPI_APPLICATION */
- return (AE_OK);
-}
-
-#endif /* ACPI_DEBUGGER */
-
diff --git a/sys/contrib/dev/acpica/dbhistry.c b/sys/contrib/dev/acpica/dbhistry.c
deleted file mode 100644
index f766f4f..0000000
--- a/sys/contrib/dev/acpica/dbhistry.c
+++ /dev/null
@@ -1,292 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dbhistry - debugger HISTORY command
- * $Revision: 1.34 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acdebug.h>
-
-#ifdef ACPI_DEBUGGER
-
-#define _COMPONENT ACPI_CA_DEBUGGER
- ACPI_MODULE_NAME ("dbhistry")
-
-
-#define HI_NO_HISTORY 0
-#define HI_RECORD_HISTORY 1
-#define HISTORY_SIZE 20
-
-
-typedef struct HistoryInfo
-{
- char Command[80];
- UINT32 CmdNum;
-
-} HISTORY_INFO;
-
-
-static HISTORY_INFO AcpiGbl_HistoryBuffer[HISTORY_SIZE];
-static UINT16 AcpiGbl_LoHistory = 0;
-static UINT16 AcpiGbl_NumHistory = 0;
-static UINT16 AcpiGbl_NextHistoryIndex = 0;
-static UINT32 AcpiGbl_NextCmdNum = 1;
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbAddToHistory
- *
- * PARAMETERS: CommandLine - Command to add
- *
- * RETURN: None
- *
- * DESCRIPTION: Add a command line to the history buffer.
- *
- ******************************************************************************/
-
-void
-AcpiDbAddToHistory (
- char *CommandLine)
-{
-
- /* Put command into the next available slot */
-
- ACPI_STRCPY (AcpiGbl_HistoryBuffer[AcpiGbl_NextHistoryIndex].Command,
- CommandLine);
-
- AcpiGbl_HistoryBuffer[AcpiGbl_NextHistoryIndex].CmdNum = AcpiGbl_NextCmdNum;
-
- /* Adjust indexes */
-
- if ((AcpiGbl_NumHistory == HISTORY_SIZE) &&
- (AcpiGbl_NextHistoryIndex == AcpiGbl_LoHistory))
- {
- AcpiGbl_LoHistory++;
- if (AcpiGbl_LoHistory >= HISTORY_SIZE)
- {
- AcpiGbl_LoHistory = 0;
- }
- }
-
- AcpiGbl_NextHistoryIndex++;
- if (AcpiGbl_NextHistoryIndex >= HISTORY_SIZE)
- {
- AcpiGbl_NextHistoryIndex = 0;
- }
-
- AcpiGbl_NextCmdNum++;
- if (AcpiGbl_NumHistory < HISTORY_SIZE)
- {
- AcpiGbl_NumHistory++;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbDisplayHistory
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Display the contents of the history buffer
- *
- ******************************************************************************/
-
-void
-AcpiDbDisplayHistory (
- void)
-{
- ACPI_NATIVE_UINT i;
- UINT16 HistoryIndex;
-
-
- HistoryIndex = AcpiGbl_LoHistory;
-
- /* Dump entire history buffer */
-
- for (i = 0; i < AcpiGbl_NumHistory; i++)
- {
- AcpiOsPrintf ("%ld %s\n", AcpiGbl_HistoryBuffer[HistoryIndex].CmdNum,
- AcpiGbl_HistoryBuffer[HistoryIndex].Command);
-
- HistoryIndex++;
- if (HistoryIndex >= HISTORY_SIZE)
- {
- HistoryIndex = 0;
- }
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbGetFromHistory
- *
- * PARAMETERS: CommandNumArg - String containing the number of the
- * command to be retrieved
- *
- * RETURN: Pointer to the retrieved command. Null on error.
- *
- * DESCRIPTION: Get a command from the history buffer
- *
- ******************************************************************************/
-
-char *
-AcpiDbGetFromHistory (
- char *CommandNumArg)
-{
- ACPI_NATIVE_UINT i;
- UINT16 HistoryIndex;
- UINT32 CmdNum;
-
-
- if (CommandNumArg == NULL)
- {
- CmdNum = AcpiGbl_NextCmdNum - 1;
- }
-
- else
- {
- CmdNum = ACPI_STRTOUL (CommandNumArg, NULL, 0);
- }
-
- /* Search history buffer */
-
- HistoryIndex = AcpiGbl_LoHistory;
- for (i = 0; i < AcpiGbl_NumHistory; i++)
- {
- if (AcpiGbl_HistoryBuffer[HistoryIndex].CmdNum == CmdNum)
- {
- /* Found the commnad, return it */
-
- return (AcpiGbl_HistoryBuffer[HistoryIndex].Command);
- }
-
-
- HistoryIndex++;
- if (HistoryIndex >= HISTORY_SIZE)
- {
- HistoryIndex = 0;
- }
- }
-
- AcpiOsPrintf ("Invalid history number: %d\n", HistoryIndex);
- return (NULL);
-}
-
-#endif /* ACPI_DEBUGGER */
-
diff --git a/sys/contrib/dev/acpica/dbinput.c b/sys/contrib/dev/acpica/dbinput.c
deleted file mode 100644
index a7257ad..0000000
--- a/sys/contrib/dev/acpica/dbinput.c
+++ /dev/null
@@ -1,1069 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dbinput - user front-end to the AML debugger
- * $Revision: 1.114 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acdebug.h>
-
-
-#ifdef ACPI_DEBUGGER
-
-#define _COMPONENT ACPI_CA_DEBUGGER
- ACPI_MODULE_NAME ("dbinput")
-
-/* Local prototypes */
-
-static char *
-AcpiDbGetNextToken (
- char *String,
- char **Next);
-
-static UINT32
-AcpiDbGetLine (
- char *InputBuffer);
-
-static UINT32
-AcpiDbMatchCommand (
- char *UserCommand);
-
-static void
-AcpiDbSingleThread (
- void);
-
-static void
-AcpiDbDisplayHelp (
- char *HelpType);
-
-
-/*
- * Top-level debugger commands.
- *
- * This list of commands must match the string table below it
- */
-enum AcpiExDebuggerCommands
-{
- CMD_NOT_FOUND = 0,
- CMD_NULL,
- CMD_ALLOCATIONS,
- CMD_ARGS,
- CMD_ARGUMENTS,
- CMD_BREAKPOINT,
- CMD_BUSINFO,
- CMD_CALL,
- CMD_CLOSE,
- CMD_DEBUG,
- CMD_DISASSEMBLE,
- CMD_DUMP,
- CMD_ENABLEACPI,
- CMD_EVENT,
- CMD_EXECUTE,
- CMD_EXIT,
- CMD_FIND,
- CMD_GO,
- CMD_GPE,
- CMD_GPES,
- CMD_HELP,
- CMD_HELP2,
- CMD_HISTORY,
- CMD_HISTORY_EXE,
- CMD_HISTORY_LAST,
- CMD_INFORMATION,
- CMD_INTEGRITY,
- CMD_INTO,
- CMD_LEVEL,
- CMD_LIST,
- CMD_LOAD,
- CMD_LOCALS,
- CMD_LOCKS,
- CMD_METHODS,
- CMD_NAMESPACE,
- CMD_NOTIFY,
- CMD_OBJECT,
- CMD_OPEN,
- CMD_OWNER,
- CMD_PREFIX,
- CMD_QUIT,
- CMD_REFERENCES,
- CMD_RESOURCES,
- CMD_RESULTS,
- CMD_SET,
- CMD_SLEEP,
- CMD_STATS,
- CMD_STOP,
- CMD_TABLES,
- CMD_TERMINATE,
- CMD_THREADS,
- CMD_TRACE,
- CMD_TREE,
- CMD_TYPE,
- CMD_UNLOAD
-};
-
-#define CMD_FIRST_VALID 2
-
-static const COMMAND_INFO AcpiGbl_DbCommands[] =
-{
- {"<NOT FOUND>", 0},
- {"<NULL>", 0},
- {"ALLOCATIONS", 0},
- {"ARGS", 0},
- {"ARGUMENTS", 0},
- {"BREAKPOINT", 1},
- {"BUSINFO", 0},
- {"CALL", 0},
- {"CLOSE", 0},
- {"DEBUG", 1},
- {"DISASSEMBLE", 1},
- {"DUMP", 1},
- {"ENABLEACPI", 0},
- {"EVENT", 1},
- {"EXECUTE", 1},
- {"EXIT", 0},
- {"FIND", 1},
- {"GO", 0},
- {"GPE", 2},
- {"GPES", 0},
- {"HELP", 0},
- {"?", 0},
- {"HISTORY", 0},
- {"!", 1},
- {"!!", 0},
- {"INFORMATION", 0},
- {"INTEGRITY", 0},
- {"INTO", 0},
- {"LEVEL", 0},
- {"LIST", 0},
- {"LOAD", 1},
- {"LOCALS", 0},
- {"LOCKS", 0},
- {"METHODS", 0},
- {"NAMESPACE", 0},
- {"NOTIFY", 2},
- {"OBJECT", 1},
- {"OPEN", 1},
- {"OWNER", 1},
- {"PREFIX", 0},
- {"QUIT", 0},
- {"REFERENCES", 1},
- {"RESOURCES", 1},
- {"RESULTS", 0},
- {"SET", 3},
- {"SLEEP", 1},
- {"STATS", 0},
- {"STOP", 0},
- {"TABLES", 0},
- {"TERMINATE", 0},
- {"THREADS", 3},
- {"TRACE", 1},
- {"TREE", 0},
- {"TYPE", 1},
- {"UNLOAD", 1},
- {NULL, 0}
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbDisplayHelp
- *
- * PARAMETERS: HelpType - Subcommand (optional)
- *
- * RETURN: None
- *
- * DESCRIPTION: Print a usage message.
- *
- ******************************************************************************/
-
-static void
-AcpiDbDisplayHelp (
- char *HelpType)
-{
-
- AcpiUtStrupr (HelpType);
-
- /* No parameter, just give the overview */
-
- if (!HelpType)
- {
- AcpiOsPrintf ("ACPI CA Debugger Commands\n\n");
- AcpiOsPrintf ("The following classes of commands are available. Help is available for\n");
- AcpiOsPrintf ("each class by entering \"Help <ClassName>\"\n\n");
- AcpiOsPrintf (" [GENERAL] General-Purpose Commands\n");
- AcpiOsPrintf (" [NAMESPACE] Namespace Access Commands\n");
- AcpiOsPrintf (" [METHOD] Control Method Execution Commands\n");
- AcpiOsPrintf (" [STATISTICS] Statistical Information\n");
- AcpiOsPrintf (" [FILE] File I/O Commands\n");
- return;
- }
-
- /*
- * Parameter is the command class
- *
- * The idea here is to keep each class of commands smaller than a screenful
- */
- switch (HelpType[0])
- {
- case 'G':
- AcpiOsPrintf ("\nGeneral-Purpose Commands\n\n");
- AcpiOsPrintf ("Allocations Display list of current memory allocations\n");
- AcpiOsPrintf ("Dump <Address>|<Namepath>\n");
- AcpiOsPrintf (" [Byte|Word|Dword|Qword] Display ACPI objects or memory\n");
- AcpiOsPrintf ("EnableAcpi Enable ACPI (hardware) mode\n");
- AcpiOsPrintf ("Help This help screen\n");
- AcpiOsPrintf ("History Display command history buffer\n");
- AcpiOsPrintf ("Level [<DebugLevel>] [console] Get/Set debug level for file or console\n");
- AcpiOsPrintf ("Locks Current status of internal mutexes\n");
- AcpiOsPrintf ("Quit or Exit Exit this command\n");
- AcpiOsPrintf ("Stats [Allocations|Memory|Misc\n");
- AcpiOsPrintf (" |Objects|Sizes|Stack|Tables] Display namespace and memory statistics\n");
- AcpiOsPrintf ("Tables Display info about loaded ACPI tables\n");
- AcpiOsPrintf ("Unload <TableSig> [Instance] Unload an ACPI table\n");
- AcpiOsPrintf ("! <CommandNumber> Execute command from history buffer\n");
- AcpiOsPrintf ("!! Execute last command again\n");
- return;
-
- case 'S':
- AcpiOsPrintf ("\nStats Subcommands\n\n");
- AcpiOsPrintf ("Allocations Display list of current memory allocations\n");
- AcpiOsPrintf ("Memory Dump internal memory lists\n");
- AcpiOsPrintf ("Misc Namespace search and mutex stats\n");
- AcpiOsPrintf ("Objects Summary of namespace objects\n");
- AcpiOsPrintf ("Sizes Sizes for each of the internal objects\n");
- AcpiOsPrintf ("Stack Display CPU stack usage\n");
- AcpiOsPrintf ("Tables Info about current ACPI table(s)\n");
- return;
-
- case 'N':
- AcpiOsPrintf ("\nNamespace Access Commands\n\n");
- AcpiOsPrintf ("Businfo Display system bus info\n");
- AcpiOsPrintf ("Disassemble <Method> Disassemble a control method\n");
- AcpiOsPrintf ("Event <F|G> <Value> Generate AcpiEvent (Fixed/GPE)\n");
- AcpiOsPrintf ("Find <AcpiName> (? is wildcard) Find ACPI name(s) with wildcards\n");
- AcpiOsPrintf ("Gpe <GpeNum> <GpeBlock> Simulate a GPE\n");
- AcpiOsPrintf ("Gpes Display info on all GPEs\n");
- AcpiOsPrintf ("Integrity Validate namespace integrity\n");
- AcpiOsPrintf ("Methods Display list of loaded control methods\n");
- AcpiOsPrintf ("Namespace [Object] [Depth] Display loaded namespace tree/subtree\n");
- AcpiOsPrintf ("Notify <Object> <Value> Send a notification on Object\n");
- AcpiOsPrintf ("Objects <ObjectType> Display all objects of the given type\n");
- AcpiOsPrintf ("Owner <OwnerId> [Depth] Display loaded namespace by object owner\n");
- AcpiOsPrintf ("Prefix [<NamePath>] Set or Get current execution prefix\n");
- AcpiOsPrintf ("References <Addr> Find all references to object at addr\n");
- AcpiOsPrintf ("Resources <Device> Get and display Device resources\n");
- AcpiOsPrintf ("Set N <NamedObject> <Value> Set value for named integer\n");
- AcpiOsPrintf ("Sleep <SleepState> Simulate sleep/wake sequence\n");
- AcpiOsPrintf ("Terminate Delete namespace and all internal objects\n");
- AcpiOsPrintf ("Type <Object> Display object type\n");
- return;
-
- case 'M':
- AcpiOsPrintf ("\nControl Method Execution Commands\n\n");
- AcpiOsPrintf ("Arguments (or Args) Display method arguments\n");
- AcpiOsPrintf ("Breakpoint <AmlOffset> Set an AML execution breakpoint\n");
- AcpiOsPrintf ("Call Run to next control method invocation\n");
- AcpiOsPrintf ("Debug <Namepath> [Arguments] Single Step a control method\n");
- AcpiOsPrintf ("Execute <Namepath> [Arguments] Execute control method\n");
- AcpiOsPrintf ("Go Allow method to run to completion\n");
- AcpiOsPrintf ("Information Display info about the current method\n");
- AcpiOsPrintf ("Into Step into (not over) a method call\n");
- AcpiOsPrintf ("List [# of Aml Opcodes] Display method ASL statements\n");
- AcpiOsPrintf ("Locals Display method local variables\n");
- AcpiOsPrintf ("Results Display method result stack\n");
- AcpiOsPrintf ("Set <A|L> <#> <Value> Set method data (Arguments/Locals)\n");
- AcpiOsPrintf ("Stop Terminate control method\n");
- AcpiOsPrintf ("Thread <Threads><Loops><NamePath> Spawn threads to execute method(s)\n");
- AcpiOsPrintf ("Trace <method name> Trace method execution\n");
- AcpiOsPrintf ("Tree Display control method calling tree\n");
- AcpiOsPrintf ("<Enter> Single step next AML opcode (over calls)\n");
- return;
-
- case 'F':
- AcpiOsPrintf ("\nFile I/O Commands\n\n");
- AcpiOsPrintf ("Close Close debug output file\n");
- AcpiOsPrintf ("Open <Output Filename> Open a file for debug output\n");
- AcpiOsPrintf ("Load <Input Filename> Load ACPI table from a file\n");
- return;
-
- default:
- AcpiOsPrintf ("Unrecognized Command Class: %s\n", HelpType);
- return;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbGetNextToken
- *
- * PARAMETERS: String - Command buffer
- * Next - Return value, end of next token
- *
- * RETURN: Pointer to the start of the next token.
- *
- * DESCRIPTION: Command line parsing. Get the next token on the command line
- *
- ******************************************************************************/
-
-static char *
-AcpiDbGetNextToken (
- char *String,
- char **Next)
-{
- char *Start;
-
-
- /* At end of buffer? */
-
- if (!String || !(*String))
- {
- return (NULL);
- }
-
- /* Get rid of any spaces at the beginning */
-
- if (*String == ' ')
- {
- while (*String && (*String == ' '))
- {
- String++;
- }
-
- if (!(*String))
- {
- return (NULL);
- }
- }
-
- Start = String;
-
- /* Find end of token */
-
- while (*String && (*String != ' '))
- {
- String++;
- }
-
- if (!(*String))
- {
- *Next = NULL;
- }
- else
- {
- *String = 0;
- *Next = String + 1;
- }
-
- return (Start);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbGetLine
- *
- * PARAMETERS: InputBuffer - Command line buffer
- *
- * RETURN: Count of arguments to the command
- *
- * DESCRIPTION: Get the next command line from the user. Gets entire line
- * up to the next newline
- *
- ******************************************************************************/
-
-static UINT32
-AcpiDbGetLine (
- char *InputBuffer)
-{
- UINT32 i;
- UINT32 Count;
- char *Next;
- char *This;
-
-
- ACPI_STRCPY (AcpiGbl_DbParsedBuf, InputBuffer);
-
- This = AcpiGbl_DbParsedBuf;
- for (i = 0; i < ACPI_DEBUGGER_MAX_ARGS; i++)
- {
- AcpiGbl_DbArgs[i] = AcpiDbGetNextToken (This, &Next);
- if (!AcpiGbl_DbArgs[i])
- {
- break;
- }
-
- This = Next;
- }
-
- /* Uppercase the actual command */
-
- if (AcpiGbl_DbArgs[0])
- {
- AcpiUtStrupr (AcpiGbl_DbArgs[0]);
- }
-
- Count = i;
- if (Count)
- {
- Count--; /* Number of args only */
- }
-
- return (Count);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbMatchCommand
- *
- * PARAMETERS: UserCommand - User command line
- *
- * RETURN: Index into command array, -1 if not found
- *
- * DESCRIPTION: Search command array for a command match
- *
- ******************************************************************************/
-
-static UINT32
-AcpiDbMatchCommand (
- char *UserCommand)
-{
- UINT32 i;
-
-
- if (!UserCommand || UserCommand[0] == 0)
- {
- return (CMD_NULL);
- }
-
- for (i = CMD_FIRST_VALID; AcpiGbl_DbCommands[i].Name; i++)
- {
- if (ACPI_STRSTR (AcpiGbl_DbCommands[i].Name, UserCommand) ==
- AcpiGbl_DbCommands[i].Name)
- {
- return (i);
- }
- }
-
- /* Command not recognized */
-
- return (CMD_NOT_FOUND);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbCommandDispatch
- *
- * PARAMETERS: InputBuffer - Command line buffer
- * WalkState - Current walk
- * Op - Current (executing) parse op
- *
- * RETURN: Status
- *
- * DESCRIPTION: Command dispatcher.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDbCommandDispatch (
- char *InputBuffer,
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op)
-{
- UINT32 Temp;
- UINT32 CommandIndex;
- UINT32 ParamCount;
- char *CommandLine;
- ACPI_STATUS Status = AE_CTRL_TRUE;
-
-
- /* If AcpiTerminate has been called, terminate this thread */
-
- if (AcpiGbl_DbTerminateThreads)
- {
- return (AE_CTRL_TERMINATE);
- }
-
- ParamCount = AcpiDbGetLine (InputBuffer);
- CommandIndex = AcpiDbMatchCommand (AcpiGbl_DbArgs[0]);
- Temp = 0;
-
- /* Verify that we have the minimum number of params */
-
- if (ParamCount < AcpiGbl_DbCommands[CommandIndex].MinArgs)
- {
- AcpiOsPrintf ("%d parameters entered, [%s] requires %d parameters\n",
- ParamCount, AcpiGbl_DbCommands[CommandIndex].Name,
- AcpiGbl_DbCommands[CommandIndex].MinArgs);
-
- return (AE_CTRL_TRUE);
- }
-
- /* Decode and dispatch the command */
-
- switch (CommandIndex)
- {
- case CMD_NULL:
- if (Op)
- {
- return (AE_OK);
- }
- break;
-
- case CMD_ALLOCATIONS:
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
- AcpiUtDumpAllocations ((UINT32) -1, NULL);
-#endif
- break;
-
- case CMD_ARGS:
- case CMD_ARGUMENTS:
- AcpiDbDisplayArguments ();
- break;
-
- case CMD_BREAKPOINT:
- AcpiDbSetMethodBreakpoint (AcpiGbl_DbArgs[1], WalkState, Op);
- break;
-
- case CMD_BUSINFO:
- AcpiDbGetBusInfo ();
- break;
-
- case CMD_CALL:
- AcpiDbSetMethodCallBreakpoint (Op);
- Status = AE_OK;
- break;
-
- case CMD_CLOSE:
- AcpiDbCloseDebugFile ();
- break;
-
- case CMD_DEBUG:
- AcpiDbExecute (AcpiGbl_DbArgs[1], &AcpiGbl_DbArgs[2], EX_SINGLE_STEP);
- break;
-
- case CMD_DISASSEMBLE:
- (void) AcpiDbDisassembleMethod (AcpiGbl_DbArgs[1]);
- break;
-
- case CMD_DUMP:
- AcpiDbDecodeAndDisplayObject (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);
- break;
-
- case CMD_ENABLEACPI:
- Status = AcpiEnable();
- if (ACPI_FAILURE(Status))
- {
- AcpiOsPrintf("AcpiEnable failed (Status=%X)\n", Status);
- return (Status);
- }
- break;
-
- case CMD_EVENT:
- AcpiOsPrintf ("Event command not implemented\n");
- break;
-
- case CMD_EXECUTE:
- AcpiDbExecute (AcpiGbl_DbArgs[1],
- &AcpiGbl_DbArgs[2], EX_NO_SINGLE_STEP);
- break;
-
- case CMD_FIND:
- Status = AcpiDbFindNameInNamespace (AcpiGbl_DbArgs[1]);
- break;
-
- case CMD_GO:
- AcpiGbl_CmSingleStep = FALSE;
- return (AE_OK);
-
- case CMD_GPE:
- AcpiDbGenerateGpe (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);
- break;
-
- case CMD_GPES:
- AcpiDbDisplayGpes ();
- break;
-
- case CMD_HELP:
- case CMD_HELP2:
- AcpiDbDisplayHelp (AcpiGbl_DbArgs[1]);
- break;
-
- case CMD_HISTORY:
- AcpiDbDisplayHistory ();
- break;
-
- case CMD_HISTORY_EXE:
- CommandLine = AcpiDbGetFromHistory (AcpiGbl_DbArgs[1]);
- if (!CommandLine)
- {
- return (AE_CTRL_TRUE);
- }
-
- Status = AcpiDbCommandDispatch (CommandLine, WalkState, Op);
- return (Status);
-
- case CMD_HISTORY_LAST:
- CommandLine = AcpiDbGetFromHistory (NULL);
- if (!CommandLine)
- {
- return (AE_CTRL_TRUE);
- }
-
- Status = AcpiDbCommandDispatch (CommandLine, WalkState, Op);
- return (Status);
-
- case CMD_INFORMATION:
- AcpiDbDisplayMethodInfo (Op);
- break;
-
- case CMD_INTEGRITY:
- AcpiDbCheckIntegrity ();
- break;
-
- case CMD_INTO:
- if (Op)
- {
- AcpiGbl_CmSingleStep = TRUE;
- return (AE_OK);
- }
- break;
-
- case CMD_LEVEL:
- if (ParamCount == 0)
- {
- AcpiOsPrintf ("Current debug level for file output is: %8.8lX\n",
- AcpiGbl_DbDebugLevel);
- AcpiOsPrintf ("Current debug level for console output is: %8.8lX\n",
- AcpiGbl_DbConsoleDebugLevel);
- }
- else if (ParamCount == 2)
- {
- Temp = AcpiGbl_DbConsoleDebugLevel;
- AcpiGbl_DbConsoleDebugLevel = ACPI_STRTOUL (AcpiGbl_DbArgs[1],
- NULL, 16);
- AcpiOsPrintf (
- "Debug Level for console output was %8.8lX, now %8.8lX\n",
- Temp, AcpiGbl_DbConsoleDebugLevel);
- }
- else
- {
- Temp = AcpiGbl_DbDebugLevel;
- AcpiGbl_DbDebugLevel = ACPI_STRTOUL (AcpiGbl_DbArgs[1], NULL, 16);
- AcpiOsPrintf (
- "Debug Level for file output was %8.8lX, now %8.8lX\n",
- Temp, AcpiGbl_DbDebugLevel);
- }
- break;
-
- case CMD_LIST:
- AcpiDbDisassembleAml (AcpiGbl_DbArgs[1], Op);
- break;
-
- case CMD_LOAD:
- Status = AcpiDbGetTableFromFile (AcpiGbl_DbArgs[1], NULL);
- break;
-
- case CMD_LOCKS:
- AcpiDbDisplayLocks ();
- break;
-
- case CMD_LOCALS:
- AcpiDbDisplayLocals ();
- break;
-
- case CMD_METHODS:
- Status = AcpiDbDisplayObjects ("METHOD", AcpiGbl_DbArgs[1]);
- break;
-
- case CMD_NAMESPACE:
- AcpiDbDumpNamespace (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);
- break;
-
- case CMD_NOTIFY:
- Temp = ACPI_STRTOUL (AcpiGbl_DbArgs[2], NULL, 0);
- AcpiDbSendNotify (AcpiGbl_DbArgs[1], Temp);
- break;
-
- case CMD_OBJECT:
- AcpiUtStrupr (AcpiGbl_DbArgs[1]);
- Status = AcpiDbDisplayObjects (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);
- break;
-
- case CMD_OPEN:
- AcpiDbOpenDebugFile (AcpiGbl_DbArgs[1]);
- break;
-
- case CMD_OWNER:
- AcpiDbDumpNamespaceByOwner (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);
- break;
-
- case CMD_PREFIX:
- AcpiDbSetScope (AcpiGbl_DbArgs[1]);
- break;
-
- case CMD_REFERENCES:
- AcpiDbFindReferences (AcpiGbl_DbArgs[1]);
- break;
-
- case CMD_RESOURCES:
- AcpiDbDisplayResources (AcpiGbl_DbArgs[1]);
- break;
-
- case CMD_RESULTS:
- AcpiDbDisplayResults ();
- break;
-
- case CMD_SET:
- AcpiDbSetMethodData (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2],
- AcpiGbl_DbArgs[3]);
- break;
-
- case CMD_SLEEP:
- Status = AcpiDbSleep (AcpiGbl_DbArgs[1]);
- break;
-
- case CMD_STATS:
- Status = AcpiDbDisplayStatistics (AcpiGbl_DbArgs[1]);
- break;
-
- case CMD_STOP:
- return (AE_NOT_IMPLEMENTED);
-
- case CMD_TABLES:
- AcpiDbDisplayTableInfo (AcpiGbl_DbArgs[1]);
- break;
-
- case CMD_TERMINATE:
- AcpiDbSetOutputDestination (ACPI_DB_REDIRECTABLE_OUTPUT);
- AcpiUtSubsystemShutdown ();
-
- /*
- * TBD: [Restructure] Need some way to re-initialize without
- * re-creating the semaphores!
- */
-
- /* AcpiInitialize (NULL); */
- break;
-
- case CMD_THREADS:
- AcpiDbCreateExecutionThreads (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2],
- AcpiGbl_DbArgs[3]);
- break;
-
- case CMD_TRACE:
- AcpiDebugTrace (AcpiGbl_DbArgs[1],0,0,1);
- break;
-
- case CMD_TREE:
- AcpiDbDisplayCallingTree ();
- break;
-
- case CMD_TYPE:
- AcpiDbDisplayObjectType (AcpiGbl_DbArgs[1]);
- break;
-
- case CMD_UNLOAD:
- AcpiDbUnloadAcpiTable (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);
- break;
-
- case CMD_EXIT:
- case CMD_QUIT:
- if (Op)
- {
- AcpiOsPrintf ("Method execution terminated\n");
- return (AE_CTRL_TERMINATE);
- }
-
- if (!AcpiGbl_DbOutputToFile)
- {
- AcpiDbgLevel = ACPI_DEBUG_DEFAULT;
- }
-
- AcpiDbCloseDebugFile ();
- AcpiGbl_DbTerminateThreads = TRUE;
- return (AE_CTRL_TERMINATE);
-
- case CMD_NOT_FOUND:
- default:
- AcpiOsPrintf ("Unknown Command\n");
- return (AE_CTRL_TRUE);
- }
-
- if (ACPI_SUCCESS (Status))
- {
- Status = AE_CTRL_TRUE;
- }
-
- /* Add all commands that come here to the history buffer */
-
- AcpiDbAddToHistory (InputBuffer);
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbExecuteThread
- *
- * PARAMETERS: Context - Not used
- *
- * RETURN: None
- *
- * DESCRIPTION: Debugger execute thread. Waits for a command line, then
- * simply dispatches it.
- *
- ******************************************************************************/
-
-void ACPI_SYSTEM_XFACE
-AcpiDbExecuteThread (
- void *Context)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_STATUS MStatus;
-
-
- while (Status != AE_CTRL_TERMINATE)
- {
- AcpiGbl_MethodExecuting = FALSE;
- AcpiGbl_StepToNextCall = FALSE;
-
- MStatus = AcpiUtAcquireMutex (ACPI_MTX_DEBUG_CMD_READY);
- if (ACPI_FAILURE (MStatus))
- {
- return;
- }
-
- Status = AcpiDbCommandDispatch (AcpiGbl_DbLineBuf, NULL, NULL);
-
- MStatus = AcpiUtReleaseMutex (ACPI_MTX_DEBUG_CMD_COMPLETE);
- if (ACPI_FAILURE (MStatus))
- {
- return;
- }
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbSingleThread
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Debugger execute thread. Waits for a command line, then
- * simply dispatches it.
- *
- ******************************************************************************/
-
-static void
-AcpiDbSingleThread (
- void)
-{
-
- AcpiGbl_MethodExecuting = FALSE;
- AcpiGbl_StepToNextCall = FALSE;
-
- (void) AcpiDbCommandDispatch (AcpiGbl_DbLineBuf, NULL, NULL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbUserCommands
- *
- * PARAMETERS: Prompt - User prompt (depends on mode)
- * Op - Current executing parse op
- *
- * RETURN: None
- *
- * DESCRIPTION: Command line execution for the AML debugger. Commands are
- * matched and dispatched here.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDbUserCommands (
- char Prompt,
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_STATUS Status = AE_OK;
-
-
- /* TBD: [Restructure] Need a separate command line buffer for step mode */
-
- while (!AcpiGbl_DbTerminateThreads)
- {
- /* Force output to console until a command is entered */
-
- AcpiDbSetOutputDestination (ACPI_DB_CONSOLE_OUTPUT);
-
- /* Different prompt if method is executing */
-
- if (!AcpiGbl_MethodExecuting)
- {
- AcpiOsPrintf ("%1c ", ACPI_DEBUGGER_COMMAND_PROMPT);
- }
- else
- {
- AcpiOsPrintf ("%1c ", ACPI_DEBUGGER_EXECUTE_PROMPT);
- }
-
- /* Get the user input line */
-
- (void) AcpiOsGetLine (AcpiGbl_DbLineBuf);
-
- /* Check for single or multithreaded debug */
-
- if (AcpiGbl_DebuggerConfiguration & DEBUGGER_MULTI_THREADED)
- {
- /*
- * Signal the debug thread that we have a command to execute,
- * and wait for the command to complete.
- */
- Status = AcpiUtReleaseMutex (ACPI_MTX_DEBUG_CMD_READY);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_DEBUG_CMD_COMPLETE);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
- }
- else
- {
- /* Just call to the command line interpreter */
-
- AcpiDbSingleThread ();
- }
- }
-
- /*
- * Only this thread (the original thread) should actually terminate the
- * subsystem, because all the semaphores are deleted during termination
- */
- Status = AcpiTerminate ();
- return (Status);
-}
-
-#endif /* ACPI_DEBUGGER */
-
diff --git a/sys/contrib/dev/acpica/dbstats.c b/sys/contrib/dev/acpica/dbstats.c
deleted file mode 100644
index d7b2cc0..0000000
--- a/sys/contrib/dev/acpica/dbstats.c
+++ /dev/null
@@ -1,621 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dbstats - Generation and display of ACPI table statistics
- * $Revision: 1.87 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acdebug.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-#ifdef ACPI_DEBUGGER
-
-#define _COMPONENT ACPI_CA_DEBUGGER
- ACPI_MODULE_NAME ("dbstats")
-
-/* Local prototypes */
-
-static void
-AcpiDbCountNamespaceObjects (
- void);
-
-static void
-AcpiDbEnumerateObject (
- ACPI_OPERAND_OBJECT *ObjDesc);
-
-static ACPI_STATUS
-AcpiDbClassifyOneObject (
- ACPI_HANDLE ObjHandle,
- UINT32 NestingLevel,
- void *Context,
- void **ReturnValue);
-
-#if defined ACPI_DBG_TRACK_ALLOCATIONS || defined ACPI_USE_LOCAL_CACHE
-static void
-AcpiDbListInfo (
- ACPI_MEMORY_LIST *List);
-#endif
-
-
-/*
- * Statistics subcommands
- */
-static ARGUMENT_INFO AcpiDbStatTypes [] =
-{
- {"ALLOCATIONS"},
- {"OBJECTS"},
- {"MEMORY"},
- {"MISC"},
- {"TABLES"},
- {"SIZES"},
- {"STACK"},
- {NULL} /* Must be null terminated */
-};
-
-#define CMD_STAT_ALLOCATIONS 0
-#define CMD_STAT_OBJECTS 1
-#define CMD_STAT_MEMORY 2
-#define CMD_STAT_MISC 3
-#define CMD_STAT_TABLES 4
-#define CMD_STAT_SIZES 5
-#define CMD_STAT_STACK 6
-
-
-#if defined ACPI_DBG_TRACK_ALLOCATIONS || defined ACPI_USE_LOCAL_CACHE
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbListInfo
- *
- * PARAMETERS: List - Memory list/cache to be displayed
- *
- * RETURN: None
- *
- * DESCRIPTION: Display information about the input memory list or cache.
- *
- ******************************************************************************/
-
-static void
-AcpiDbListInfo (
- ACPI_MEMORY_LIST *List)
-{
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
- UINT32 Outstanding;
-#endif
-
- AcpiOsPrintf ("\n%s\n", List->ListName);
-
- /* MaxDepth > 0 indicates a cache object */
-
- if (List->MaxDepth > 0)
- {
- AcpiOsPrintf (
- " Cache: [Depth MaxD Avail Size] %8.2X %8.2X %8.2X %8.2X\n",
- List->CurrentDepth,
- List->MaxDepth,
- List->MaxDepth - List->CurrentDepth,
- (List->CurrentDepth * List->ObjectSize));
- }
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
- if (List->MaxDepth > 0)
- {
- AcpiOsPrintf (
- " Cache: [Requests Hits Misses ObjSize] %8.2X %8.2X %8.2X %8.2X\n",
- List->Requests,
- List->Hits,
- List->Requests - List->Hits,
- List->ObjectSize);
- }
-
- Outstanding = AcpiDbGetCacheInfo (List);
-
- if (List->ObjectSize)
- {
- AcpiOsPrintf (
- " Mem: [Alloc Free Max CurSize Outstanding] %8.2X %8.2X %8.2X %8.2X %8.2X\n",
- List->TotalAllocated,
- List->TotalFreed,
- List->MaxOccupied,
- Outstanding * List->ObjectSize,
- Outstanding);
- }
- else
- {
- AcpiOsPrintf (
- " Mem: [Alloc Free Max CurSize Outstanding Total] %8.2X %8.2X %8.2X %8.2X %8.2X %8.2X\n",
- List->TotalAllocated,
- List->TotalFreed,
- List->MaxOccupied,
- List->CurrentTotalSize,
- Outstanding,
- List->TotalSize);
- }
-#endif
-}
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbEnumerateObject
- *
- * PARAMETERS: ObjDesc - Object to be counted
- *
- * RETURN: None
- *
- * DESCRIPTION: Add this object to the global counts, by object type.
- * Limited recursion handles subobjects and packages, and this
- * is probably acceptable within the AML debugger only.
- *
- ******************************************************************************/
-
-static void
-AcpiDbEnumerateObject (
- ACPI_OPERAND_OBJECT *ObjDesc)
-{
- UINT32 i;
-
-
- if (!ObjDesc)
- {
- return;
- }
-
- /* Enumerate this object first */
-
- AcpiGbl_NumObjects++;
-
- if (ACPI_GET_OBJECT_TYPE (ObjDesc) > ACPI_TYPE_NS_NODE_MAX)
- {
- AcpiGbl_ObjTypeCountMisc++;
- }
- else
- {
- AcpiGbl_ObjTypeCount [ACPI_GET_OBJECT_TYPE (ObjDesc)]++;
- }
-
- /* Count the sub-objects */
-
- switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
- {
- case ACPI_TYPE_PACKAGE:
-
- for (i = 0; i < ObjDesc->Package.Count; i++)
- {
- AcpiDbEnumerateObject (ObjDesc->Package.Elements[i]);
- }
- break;
-
- case ACPI_TYPE_DEVICE:
-
- AcpiDbEnumerateObject (ObjDesc->Device.SystemNotify);
- AcpiDbEnumerateObject (ObjDesc->Device.DeviceNotify);
- AcpiDbEnumerateObject (ObjDesc->Device.Handler);
- break;
-
- case ACPI_TYPE_BUFFER_FIELD:
-
- if (AcpiNsGetSecondaryObject (ObjDesc))
- {
- AcpiGbl_ObjTypeCount [ACPI_TYPE_BUFFER_FIELD]++;
- }
- break;
-
- case ACPI_TYPE_REGION:
-
- AcpiGbl_ObjTypeCount [ACPI_TYPE_LOCAL_REGION_FIELD ]++;
- AcpiDbEnumerateObject (ObjDesc->Region.Handler);
- break;
-
- case ACPI_TYPE_POWER:
-
- AcpiDbEnumerateObject (ObjDesc->PowerResource.SystemNotify);
- AcpiDbEnumerateObject (ObjDesc->PowerResource.DeviceNotify);
- break;
-
- case ACPI_TYPE_PROCESSOR:
-
- AcpiDbEnumerateObject (ObjDesc->Processor.SystemNotify);
- AcpiDbEnumerateObject (ObjDesc->Processor.DeviceNotify);
- AcpiDbEnumerateObject (ObjDesc->Processor.Handler);
- break;
-
- case ACPI_TYPE_THERMAL:
-
- AcpiDbEnumerateObject (ObjDesc->ThermalZone.SystemNotify);
- AcpiDbEnumerateObject (ObjDesc->ThermalZone.DeviceNotify);
- AcpiDbEnumerateObject (ObjDesc->ThermalZone.Handler);
- break;
-
- default:
- break;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbClassifyOneObject
- *
- * PARAMETERS: Callback for WalkNamespace
- *
- * RETURN: Status
- *
- * DESCRIPTION: Enumerate both the object descriptor (including subobjects) and
- * the parent namespace node.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDbClassifyOneObject (
- ACPI_HANDLE ObjHandle,
- UINT32 NestingLevel,
- void *Context,
- void **ReturnValue)
-{
- ACPI_NAMESPACE_NODE *Node;
- ACPI_OPERAND_OBJECT *ObjDesc;
- UINT32 Type;
-
-
- AcpiGbl_NumNodes++;
-
- Node = (ACPI_NAMESPACE_NODE *) ObjHandle;
- ObjDesc = AcpiNsGetAttachedObject (Node);
-
- AcpiDbEnumerateObject (ObjDesc);
-
- Type = Node->Type;
- if (Type > ACPI_TYPE_NS_NODE_MAX)
- {
- AcpiGbl_NodeTypeCountMisc++;
- }
- else
- {
- AcpiGbl_NodeTypeCount [Type]++;
- }
-
- return AE_OK;
-
-
-#ifdef ACPI_FUTURE_IMPLEMENTATION
-
- /* TBD: These need to be counted during the initial parsing phase */
-
- if (AcpiPsIsNamedOp (Op->Opcode))
- {
- NumNodes++;
- }
-
- if (IsMethod)
- {
- NumMethodElements++;
- }
-
- NumGrammarElements++;
- Op = AcpiPsGetDepthNext (Root, Op);
-
- SizeOfParseTree = (NumGrammarElements - NumMethodElements) *
- (UINT32) sizeof (ACPI_PARSE_OBJECT);
- SizeOfMethodTrees = NumMethodElements * (UINT32) sizeof (ACPI_PARSE_OBJECT);
- SizeOfNodeEntries = NumNodes * (UINT32) sizeof (ACPI_NAMESPACE_NODE);
- SizeOfAcpiObjects = NumNodes * (UINT32) sizeof (ACPI_OPERAND_OBJECT);
-#endif
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbCountNamespaceObjects
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Count and classify the entire namespace, including all
- * namespace nodes and attached objects.
- *
- ******************************************************************************/
-
-static void
-AcpiDbCountNamespaceObjects (
- void)
-{
- UINT32 i;
-
-
- AcpiGbl_NumNodes = 0;
- AcpiGbl_NumObjects = 0;
-
- AcpiGbl_ObjTypeCountMisc = 0;
- for (i = 0; i < (ACPI_TYPE_NS_NODE_MAX -1); i++)
- {
- AcpiGbl_ObjTypeCount [i] = 0;
- AcpiGbl_NodeTypeCount [i] = 0;
- }
-
- (void) AcpiNsWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT,
- ACPI_UINT32_MAX, FALSE, AcpiDbClassifyOneObject, NULL, NULL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbDisplayStatistics
- *
- * PARAMETERS: TypeArg - Subcommand
- *
- * RETURN: Status
- *
- * DESCRIPTION: Display various statistics
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDbDisplayStatistics (
- char *TypeArg)
-{
- UINT32 i;
- UINT32 Temp;
-
-
- if (!TypeArg)
- {
- AcpiOsPrintf ("The following subcommands are available:\n ALLOCATIONS, OBJECTS, MEMORY, MISC, SIZES, TABLES\n");
- return (AE_OK);
- }
-
- AcpiUtStrupr (TypeArg);
- Temp = AcpiDbMatchArgument (TypeArg, AcpiDbStatTypes);
- if (Temp == (UINT32) -1)
- {
- AcpiOsPrintf ("Invalid or unsupported argument\n");
- return (AE_OK);
- }
-
-
- switch (Temp)
- {
- case CMD_STAT_ALLOCATIONS:
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
- AcpiUtDumpAllocationInfo ();
-#endif
- break;
-
- case CMD_STAT_TABLES:
-
- AcpiOsPrintf ("ACPI Table Information (not implemented):\n\n");
- break;
-
- case CMD_STAT_OBJECTS:
-
- AcpiDbCountNamespaceObjects ();
-
- AcpiOsPrintf ("\nObjects defined in the current namespace:\n\n");
-
- AcpiOsPrintf ("%16.16s %10.10s %10.10s\n",
- "ACPI_TYPE", "NODES", "OBJECTS");
-
- for (i = 0; i < ACPI_TYPE_NS_NODE_MAX; i++)
- {
- AcpiOsPrintf ("%16.16s % 10ld% 10ld\n", AcpiUtGetTypeName (i),
- AcpiGbl_NodeTypeCount [i], AcpiGbl_ObjTypeCount [i]);
- }
- AcpiOsPrintf ("%16.16s % 10ld% 10ld\n", "Misc/Unknown",
- AcpiGbl_NodeTypeCountMisc, AcpiGbl_ObjTypeCountMisc);
-
- AcpiOsPrintf ("%16.16s % 10ld% 10ld\n", "TOTALS:",
- AcpiGbl_NumNodes, AcpiGbl_NumObjects);
- break;
-
- case CMD_STAT_MEMORY:
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
- AcpiOsPrintf ("\n----Object Statistics (all in hex)---------\n");
-
- AcpiDbListInfo (AcpiGbl_GlobalList);
- AcpiDbListInfo (AcpiGbl_NsNodeList);
-#endif
-
-#ifdef ACPI_USE_LOCAL_CACHE
- AcpiOsPrintf ("\n----Cache Statistics (all in hex)----------\n");
- AcpiDbListInfo (AcpiGbl_OperandCache);
- AcpiDbListInfo (AcpiGbl_PsNodeCache);
- AcpiDbListInfo (AcpiGbl_PsNodeExtCache);
- AcpiDbListInfo (AcpiGbl_StateCache);
-#endif
-
- break;
-
- case CMD_STAT_MISC:
-
- AcpiOsPrintf ("\nMiscellaneous Statistics:\n\n");
- AcpiOsPrintf ("Calls to AcpiPsFind:.. ........% 7ld\n",
- AcpiGbl_PsFindCount);
- AcpiOsPrintf ("Calls to AcpiNsLookup:..........% 7ld\n",
- AcpiGbl_NsLookupCount);
-
- AcpiOsPrintf ("\n");
-
- AcpiOsPrintf ("Mutex usage:\n\n");
- for (i = 0; i < ACPI_NUM_MUTEX; i++)
- {
- AcpiOsPrintf ("%-28s: % 7ld\n",
- AcpiUtGetMutexName (i), AcpiGbl_MutexInfo[i].UseCount);
- }
- break;
-
-
- case CMD_STAT_SIZES:
-
- AcpiOsPrintf ("\nInternal object sizes:\n\n");
-
- AcpiOsPrintf ("Common %3d\n", sizeof (ACPI_OBJECT_COMMON));
- AcpiOsPrintf ("Number %3d\n", sizeof (ACPI_OBJECT_INTEGER));
- AcpiOsPrintf ("String %3d\n", sizeof (ACPI_OBJECT_STRING));
- AcpiOsPrintf ("Buffer %3d\n", sizeof (ACPI_OBJECT_BUFFER));
- AcpiOsPrintf ("Package %3d\n", sizeof (ACPI_OBJECT_PACKAGE));
- AcpiOsPrintf ("BufferField %3d\n", sizeof (ACPI_OBJECT_BUFFER_FIELD));
- AcpiOsPrintf ("Device %3d\n", sizeof (ACPI_OBJECT_DEVICE));
- AcpiOsPrintf ("Event %3d\n", sizeof (ACPI_OBJECT_EVENT));
- AcpiOsPrintf ("Method %3d\n", sizeof (ACPI_OBJECT_METHOD));
- AcpiOsPrintf ("Mutex %3d\n", sizeof (ACPI_OBJECT_MUTEX));
- AcpiOsPrintf ("Region %3d\n", sizeof (ACPI_OBJECT_REGION));
- AcpiOsPrintf ("PowerResource %3d\n", sizeof (ACPI_OBJECT_POWER_RESOURCE));
- AcpiOsPrintf ("Processor %3d\n", sizeof (ACPI_OBJECT_PROCESSOR));
- AcpiOsPrintf ("ThermalZone %3d\n", sizeof (ACPI_OBJECT_THERMAL_ZONE));
- AcpiOsPrintf ("RegionField %3d\n", sizeof (ACPI_OBJECT_REGION_FIELD));
- AcpiOsPrintf ("BankField %3d\n", sizeof (ACPI_OBJECT_BANK_FIELD));
- AcpiOsPrintf ("IndexField %3d\n", sizeof (ACPI_OBJECT_INDEX_FIELD));
- AcpiOsPrintf ("Reference %3d\n", sizeof (ACPI_OBJECT_REFERENCE));
- AcpiOsPrintf ("Notify %3d\n", sizeof (ACPI_OBJECT_NOTIFY_HANDLER));
- AcpiOsPrintf ("AddressSpace %3d\n", sizeof (ACPI_OBJECT_ADDR_HANDLER));
- AcpiOsPrintf ("Extra %3d\n", sizeof (ACPI_OBJECT_EXTRA));
- AcpiOsPrintf ("Data %3d\n", sizeof (ACPI_OBJECT_DATA));
-
- AcpiOsPrintf ("\n");
-
- AcpiOsPrintf ("ParseObject %3d\n", sizeof (ACPI_PARSE_OBJ_COMMON));
- AcpiOsPrintf ("ParseObjectNamed %3d\n", sizeof (ACPI_PARSE_OBJ_NAMED));
- AcpiOsPrintf ("ParseObjectAsl %3d\n", sizeof (ACPI_PARSE_OBJ_ASL));
- AcpiOsPrintf ("OperandObject %3d\n", sizeof (ACPI_OPERAND_OBJECT));
- AcpiOsPrintf ("NamespaceNode %3d\n", sizeof (ACPI_NAMESPACE_NODE));
-
- break;
-
-
- case CMD_STAT_STACK:
-#if defined(ACPI_DEBUG_OUTPUT)
-
- Temp = (UINT32) (AcpiGbl_EntryStackPointer - AcpiGbl_LowestStackPointer);
-
- AcpiOsPrintf ("\nSubsystem Stack Usage:\n\n");
- AcpiOsPrintf ("Entry Stack Pointer %X\n", AcpiGbl_EntryStackPointer);
- AcpiOsPrintf ("Lowest Stack Pointer %X\n", AcpiGbl_LowestStackPointer);
- AcpiOsPrintf ("Stack Use %X (%d)\n", Temp, Temp);
- AcpiOsPrintf ("Deepest Procedure Nesting %d\n", AcpiGbl_DeepestNesting);
-#endif
- break;
-
- default:
- break;
- }
-
- AcpiOsPrintf ("\n");
- return (AE_OK);
-}
-
-#endif /* ACPI_DEBUGGER */
diff --git a/sys/contrib/dev/acpica/dbutils.c b/sys/contrib/dev/acpica/dbutils.c
deleted file mode 100644
index dd1e67b..0000000
--- a/sys/contrib/dev/acpica/dbutils.c
+++ /dev/null
@@ -1,596 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dbutils - AML debugger utilities
- * $Revision: 1.83 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acdebug.h>
-#include <contrib/dev/acpica/acdisasm.h>
-
-
-#ifdef ACPI_DEBUGGER
-
-#define _COMPONENT ACPI_CA_DEBUGGER
- ACPI_MODULE_NAME ("dbutils")
-
-/* Local prototypes */
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-ACPI_STATUS
-AcpiDbSecondPassParse (
- ACPI_PARSE_OBJECT *Root);
-
-void
-AcpiDbDumpBuffer (
- UINT32 Address);
-#endif
-
-static char *Converter = "0123456789ABCDEF";
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbMatchArgument
- *
- * PARAMETERS: UserArgument - User command line
- * Arguments - Array of commands to match against
- *
- * RETURN: Index into command array or ACPI_TYPE_NOT_FOUND if not found
- *
- * DESCRIPTION: Search command array for a command match
- *
- ******************************************************************************/
-
-ACPI_OBJECT_TYPE
-AcpiDbMatchArgument (
- char *UserArgument,
- ARGUMENT_INFO *Arguments)
-{
- UINT32 i;
-
-
- if (!UserArgument || UserArgument[0] == 0)
- {
- return (ACPI_TYPE_NOT_FOUND);
- }
-
- for (i = 0; Arguments[i].Name; i++)
- {
- if (ACPI_STRSTR (Arguments[i].Name, UserArgument) == Arguments[i].Name)
- {
- return (i);
- }
- }
-
- /* Argument not recognized */
-
- return (ACPI_TYPE_NOT_FOUND);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbSetOutputDestination
- *
- * PARAMETERS: OutputFlags - Current flags word
- *
- * RETURN: None
- *
- * DESCRIPTION: Set the current destination for debugger output. Also sets
- * the debug output level accordingly.
- *
- ******************************************************************************/
-
-void
-AcpiDbSetOutputDestination (
- UINT32 OutputFlags)
-{
-
- AcpiGbl_DbOutputFlags = (UINT8) OutputFlags;
-
- if ((OutputFlags & ACPI_DB_REDIRECTABLE_OUTPUT) && AcpiGbl_DbOutputToFile)
- {
- AcpiDbgLevel = AcpiGbl_DbDebugLevel;
- }
- else
- {
- AcpiDbgLevel = AcpiGbl_DbConsoleDebugLevel;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbDumpExternalObject
- *
- * PARAMETERS: ObjDesc - External ACPI object to dump
- * Level - Nesting level.
- *
- * RETURN: None
- *
- * DESCRIPTION: Dump the contents of an ACPI external object
- *
- ******************************************************************************/
-
-void
-AcpiDbDumpExternalObject (
- ACPI_OBJECT *ObjDesc,
- UINT32 Level)
-{
- UINT32 i;
-
-
- if (!ObjDesc)
- {
- AcpiOsPrintf ("[Null Object]\n");
- return;
- }
-
- for (i = 0; i < Level; i++)
- {
- AcpiOsPrintf (" ");
- }
-
- switch (ObjDesc->Type)
- {
- case ACPI_TYPE_ANY:
-
- AcpiOsPrintf ("[Object Reference] = %p", ObjDesc->Reference.Handle);
- AcpiDmDisplayInternalObject (ObjDesc->Reference.Handle, NULL);
- break;
-
-
- case ACPI_TYPE_INTEGER:
-
- AcpiOsPrintf ("[Integer] = %8.8X%8.8X\n",
- ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
- break;
-
-
- case ACPI_TYPE_STRING:
-
- AcpiOsPrintf ("[String] Length %.2X = ", ObjDesc->String.Length);
- for (i = 0; i < ObjDesc->String.Length; i++)
- {
- AcpiOsPrintf ("%c", ObjDesc->String.Pointer[i]);
- }
- AcpiOsPrintf ("\n");
- break;
-
-
- case ACPI_TYPE_BUFFER:
-
- AcpiOsPrintf ("[Buffer] Length %.2X = ", ObjDesc->Buffer.Length);
- if (ObjDesc->Buffer.Length)
- {
- AcpiUtDumpBuffer (ACPI_CAST_PTR (UINT8, ObjDesc->Buffer.Pointer),
- ObjDesc->Buffer.Length, DB_DWORD_DISPLAY, _COMPONENT);
- }
- else
- {
- AcpiOsPrintf ("\n");
- }
- break;
-
-
- case ACPI_TYPE_PACKAGE:
-
- AcpiOsPrintf ("[Package] Contains %d Elements:\n",
- ObjDesc->Package.Count);
-
- for (i = 0; i < ObjDesc->Package.Count; i++)
- {
- AcpiDbDumpExternalObject (&ObjDesc->Package.Elements[i], Level+1);
- }
- break;
-
-
- case ACPI_TYPE_LOCAL_REFERENCE:
-
- AcpiOsPrintf ("[Object Reference] = %p", ObjDesc->Reference.Handle);
- AcpiDmDisplayInternalObject (ObjDesc->Reference.Handle, NULL);
- break;
-
-
- case ACPI_TYPE_PROCESSOR:
-
- AcpiOsPrintf ("[Processor]\n");
- break;
-
-
- case ACPI_TYPE_POWER:
-
- AcpiOsPrintf ("[Power Resource]\n");
- break;
-
-
- default:
-
- AcpiOsPrintf ("[Unknown Type] %X\n", ObjDesc->Type);
- break;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbPrepNamestring
- *
- * PARAMETERS: Name - String to prepare
- *
- * RETURN: None
- *
- * DESCRIPTION: Translate all forward slashes and dots to backslashes.
- *
- ******************************************************************************/
-
-void
-AcpiDbPrepNamestring (
- char *Name)
-{
-
- if (!Name)
- {
- return;
- }
-
- AcpiUtStrupr (Name);
-
- /* Convert a leading forward slash to a backslash */
-
- if (*Name == '/')
- {
- *Name = '\\';
- }
-
- /* Ignore a leading backslash, this is the root prefix */
-
- if (*Name == '\\')
- {
- Name++;
- }
-
- /* Convert all slash path separators to dots */
-
- while (*Name)
- {
- if ((*Name == '/') ||
- (*Name == '\\'))
- {
- *Name = '.';
- }
-
- Name++;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbLocalNsLookup
- *
- * PARAMETERS: Name - Name to lookup
- *
- * RETURN: Pointer to a namespace node, null on failure
- *
- * DESCRIPTION: Lookup a name in the ACPI namespace
- *
- * Note: Currently begins search from the root. Could be enhanced to use
- * the current prefix (scope) node as the search beginning point.
- *
- ******************************************************************************/
-
-ACPI_NAMESPACE_NODE *
-AcpiDbLocalNsLookup (
- char *Name)
-{
- char *InternalPath;
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node = NULL;
-
-
- AcpiDbPrepNamestring (Name);
-
- /* Build an internal namestring */
-
- Status = AcpiNsInternalizeName (Name, &InternalPath);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Invalid namestring: %s\n", Name);
- return (NULL);
- }
-
- /*
- * Lookup the name.
- * (Uses root node as the search starting point)
- */
- Status = AcpiNsLookup (NULL, InternalPath, ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE,
- ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE, NULL, &Node);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not locate name: %s, %s\n",
- Name, AcpiFormatException (Status));
- }
-
- ACPI_FREE (InternalPath);
- return (Node);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbUInt32ToHexString
- *
- * PARAMETERS: Value - The value to be converted to string
- * Buffer - Buffer for result (not less than 11 bytes)
- *
- * RETURN: None
- *
- * DESCRIPTION: Convert the unsigned 32-bit value to the hexadecimal image
- *
- * NOTE: It is the caller's responsibility to ensure that the length of buffer
- * is sufficient.
- *
- ******************************************************************************/
-
-void
-AcpiDbUInt32ToHexString (
- UINT32 Value,
- char *Buffer)
-{
- UINT8 i;
-
-
- if (Value == 0)
- {
- ACPI_STRCPY (Buffer, "0");
- return;
- }
-
- ACPI_STRCPY (Buffer, "0x");
- Buffer[10] = '\0';
-
- for (i = 9; i > 1; i--)
- {
- Buffer[i] = Converter [Value & 0x0F];
- Value = Value >> 4;
- }
-}
-
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbSecondPassParse
- *
- * PARAMETERS: Root - Root of the parse tree
- *
- * RETURN: Status
- *
- * DESCRIPTION: Second pass parse of the ACPI tables. We need to wait until
- * second pass to parse the control methods
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDbSecondPassParse (
- ACPI_PARSE_OBJECT *Root)
-{
- ACPI_PARSE_OBJECT *Op = Root;
- ACPI_PARSE_OBJECT *Method;
- ACPI_PARSE_OBJECT *SearchOp;
- ACPI_PARSE_OBJECT *StartOp;
- ACPI_STATUS Status = AE_OK;
- UINT32 BaseAmlOffset;
- ACPI_WALK_STATE *WalkState;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- AcpiOsPrintf ("Pass two parse ....\n");
-
- while (Op)
- {
- if (Op->Common.AmlOpcode == AML_METHOD_OP)
- {
- Method = Op;
-
- /* Create a new walk state for the parse */
-
- WalkState = AcpiDsCreateWalkState (0, NULL, NULL, NULL);
- if (!WalkState)
- {
- return (AE_NO_MEMORY);
- }
-
- /* Init the Walk State */
-
- WalkState->ParserState.Aml =
- WalkState->ParserState.AmlStart = Method->Named.Data;
- WalkState->ParserState.AmlEnd =
- WalkState->ParserState.PkgEnd = Method->Named.Data +
- Method->Named.Length;
- WalkState->ParserState.StartScope = Op;
-
- WalkState->DescendingCallback = AcpiDsLoad1BeginOp;
- WalkState->AscendingCallback = AcpiDsLoad1EndOp;
-
- /* Perform the AML parse */
-
- Status = AcpiPsParseAml (WalkState);
-
- BaseAmlOffset = (Method->Common.Value.Arg)->Common.AmlOffset + 1;
- StartOp = (Method->Common.Value.Arg)->Common.Next;
- SearchOp = StartOp;
-
- while (SearchOp)
- {
- SearchOp->Common.AmlOffset += BaseAmlOffset;
- SearchOp = AcpiPsGetDepthNext (StartOp, SearchOp);
- }
- }
-
- if (Op->Common.AmlOpcode == AML_REGION_OP)
- {
- /* TBD: [Investigate] this isn't quite the right thing to do! */
- /*
- *
- * Method = (ACPI_DEFERRED_OP *) Op;
- * Status = AcpiPsParseAml (Op, Method->Body, Method->BodyLength);
- */
- }
-
- if (ACPI_FAILURE (Status))
- {
- break;
- }
-
- Op = AcpiPsGetDepthNext (Root, Op);
- }
-
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbDumpBuffer
- *
- * PARAMETERS: Address - Pointer to the buffer
- *
- * RETURN: None
- *
- * DESCRIPTION: Print a portion of a buffer
- *
- ******************************************************************************/
-
-void
-AcpiDbDumpBuffer (
- UINT32 Address)
-{
-
- AcpiOsPrintf ("\nLocation %X:\n", Address);
-
- AcpiDbgLevel |= ACPI_LV_TABLES;
- AcpiUtDumpBuffer (ACPI_TO_POINTER (Address), 64, DB_BYTE_DISPLAY,
- ACPI_UINT32_MAX);
-}
-#endif
-
-#endif /* ACPI_DEBUGGER */
-
-
diff --git a/sys/contrib/dev/acpica/dbxface.c b/sys/contrib/dev/acpica/dbxface.c
deleted file mode 100644
index 50e1ecb..0000000
--- a/sys/contrib/dev/acpica/dbxface.c
+++ /dev/null
@@ -1,606 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dbxface - AML Debugger external interfaces
- * $Revision: 1.78 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acdebug.h>
-#include <contrib/dev/acpica/acdisasm.h>
-
-
-#ifdef ACPI_DEBUGGER
-
-#define _COMPONENT ACPI_CA_DEBUGGER
- ACPI_MODULE_NAME ("dbxface")
-
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiDbStartCommand (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op);
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-void
-AcpiDbMethodEnd (
- ACPI_WALK_STATE *WalkState);
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbStartCommand
- *
- * PARAMETERS: WalkState - Current walk
- * Op - Current executing Op, from AML interpreter
- *
- * RETURN: Status
- *
- * DESCRIPTION: Enter debugger command loop
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDbStartCommand (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_STATUS Status;
-
-
- /* TBD: [Investigate] are there namespace locking issues here? */
-
- /* AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); */
-
- /* Go into the command loop and await next user command */
-
-
- AcpiGbl_MethodExecuting = TRUE;
- Status = AE_CTRL_TRUE;
- while (Status == AE_CTRL_TRUE)
- {
- if (AcpiGbl_DebuggerConfiguration == DEBUGGER_MULTI_THREADED)
- {
- /* Handshake with the front-end that gets user command lines */
-
- Status = AcpiUtReleaseMutex (ACPI_MTX_DEBUG_CMD_COMPLETE);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
- Status = AcpiUtAcquireMutex (ACPI_MTX_DEBUG_CMD_READY);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
- }
- else
- {
- /* Single threaded, we must get a command line ourselves */
-
- /* Force output to console until a command is entered */
-
- AcpiDbSetOutputDestination (ACPI_DB_CONSOLE_OUTPUT);
-
- /* Different prompt if method is executing */
-
- if (!AcpiGbl_MethodExecuting)
- {
- AcpiOsPrintf ("%1c ", ACPI_DEBUGGER_COMMAND_PROMPT);
- }
- else
- {
- AcpiOsPrintf ("%1c ", ACPI_DEBUGGER_EXECUTE_PROMPT);
- }
-
- /* Get the user input line */
-
- (void) AcpiOsGetLine (AcpiGbl_DbLineBuf);
- }
-
- Status = AcpiDbCommandDispatch (AcpiGbl_DbLineBuf, WalkState, Op);
- }
-
- /* AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); */
-
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbSingleStep
- *
- * PARAMETERS: WalkState - Current walk
- * Op - Current executing op (from aml interpreter)
- * OpcodeClass - Class of the current AML Opcode
- *
- * RETURN: Status
- *
- * DESCRIPTION: Called just before execution of an AML opcode.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDbSingleStep (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op,
- UINT32 OpcodeClass)
-{
- ACPI_PARSE_OBJECT *Next;
- ACPI_STATUS Status = AE_OK;
- UINT32 OriginalDebugLevel;
- ACPI_PARSE_OBJECT *DisplayOp;
- ACPI_PARSE_OBJECT *ParentOp;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /* Check the abort flag */
-
- if (AcpiGbl_AbortMethod)
- {
- AcpiGbl_AbortMethod = FALSE;
- return (AE_ABORT_METHOD);
- }
-
- /* Check for single-step breakpoint */
-
- if (WalkState->MethodBreakpoint &&
- (WalkState->MethodBreakpoint <= Op->Common.AmlOffset))
- {
- /* Check if the breakpoint has been reached or passed */
- /* Hit the breakpoint, resume single step, reset breakpoint */
-
- AcpiOsPrintf ("***Break*** at AML offset %X\n", Op->Common.AmlOffset);
- AcpiGbl_CmSingleStep = TRUE;
- AcpiGbl_StepToNextCall = FALSE;
- WalkState->MethodBreakpoint = 0;
- }
-
- /* Check for user breakpoint (Must be on exact Aml offset) */
-
- else if (WalkState->UserBreakpoint &&
- (WalkState->UserBreakpoint == Op->Common.AmlOffset))
- {
- AcpiOsPrintf ("***UserBreakpoint*** at AML offset %X\n",
- Op->Common.AmlOffset);
- AcpiGbl_CmSingleStep = TRUE;
- AcpiGbl_StepToNextCall = FALSE;
- WalkState->MethodBreakpoint = 0;
- }
-
- /*
- * Check if this is an opcode that we are interested in --
- * namely, opcodes that have arguments
- */
- if (Op->Common.AmlOpcode == AML_INT_NAMEDFIELD_OP)
- {
- return (AE_OK);
- }
-
- switch (OpcodeClass)
- {
- case AML_CLASS_UNKNOWN:
- case AML_CLASS_ARGUMENT: /* constants, literals, etc. do nothing */
- return (AE_OK);
-
- default:
- /* All other opcodes -- continue */
- break;
- }
-
- /*
- * Under certain debug conditions, display this opcode and its operands
- */
- if ((AcpiGbl_DbOutputToFile) ||
- (AcpiGbl_CmSingleStep) ||
- (AcpiDbgLevel & ACPI_LV_PARSE))
- {
- if ((AcpiGbl_DbOutputToFile) ||
- (AcpiDbgLevel & ACPI_LV_PARSE))
- {
- AcpiOsPrintf ("\n[AmlDebug] Next AML Opcode to execute:\n");
- }
-
- /*
- * Display this op (and only this op - zero out the NEXT field
- * temporarily, and disable parser trace output for the duration of
- * the display because we don't want the extraneous debug output)
- */
- OriginalDebugLevel = AcpiDbgLevel;
- AcpiDbgLevel &= ~(ACPI_LV_PARSE | ACPI_LV_FUNCTIONS);
- Next = Op->Common.Next;
- Op->Common.Next = NULL;
-
-
- DisplayOp = Op;
- ParentOp = Op->Common.Parent;
- if (ParentOp)
- {
- if ((WalkState->ControlState) &&
- (WalkState->ControlState->Common.State ==
- ACPI_CONTROL_PREDICATE_EXECUTING))
- {
- /*
- * We are executing the predicate of an IF or WHILE statement
- * Search upwards for the containing IF or WHILE so that the
- * entire predicate can be displayed.
- */
- while (ParentOp)
- {
- if ((ParentOp->Common.AmlOpcode == AML_IF_OP) ||
- (ParentOp->Common.AmlOpcode == AML_WHILE_OP))
- {
- DisplayOp = ParentOp;
- break;
- }
- ParentOp = ParentOp->Common.Parent;
- }
- }
- else
- {
- while (ParentOp)
- {
- if ((ParentOp->Common.AmlOpcode == AML_IF_OP) ||
- (ParentOp->Common.AmlOpcode == AML_ELSE_OP) ||
- (ParentOp->Common.AmlOpcode == AML_SCOPE_OP) ||
- (ParentOp->Common.AmlOpcode == AML_METHOD_OP) ||
- (ParentOp->Common.AmlOpcode == AML_WHILE_OP))
- {
- break;
- }
- DisplayOp = ParentOp;
- ParentOp = ParentOp->Common.Parent;
- }
- }
- }
-
- /* Now we can display it */
-
- AcpiDmDisassemble (WalkState, DisplayOp, ACPI_UINT32_MAX);
-
- if ((Op->Common.AmlOpcode == AML_IF_OP) ||
- (Op->Common.AmlOpcode == AML_WHILE_OP))
- {
- if (WalkState->ControlState->Common.Value)
- {
- AcpiOsPrintf ("Predicate = [True], IF block was executed\n");
- }
- else
- {
- AcpiOsPrintf ("Predicate = [False], Skipping IF block\n");
- }
- }
- else if (Op->Common.AmlOpcode == AML_ELSE_OP)
- {
- AcpiOsPrintf ("Predicate = [False], ELSE block was executed\n");
- }
-
- /* Restore everything */
-
- Op->Common.Next = Next;
- AcpiOsPrintf ("\n");
- if ((AcpiGbl_DbOutputToFile) ||
- (AcpiDbgLevel & ACPI_LV_PARSE))
- {
- AcpiOsPrintf ("\n");
- }
- AcpiDbgLevel = OriginalDebugLevel;
- }
-
- /* If we are not single stepping, just continue executing the method */
-
- if (!AcpiGbl_CmSingleStep)
- {
- return (AE_OK);
- }
-
- /*
- * If we are executing a step-to-call command,
- * Check if this is a method call.
- */
- if (AcpiGbl_StepToNextCall)
- {
- if (Op->Common.AmlOpcode != AML_INT_METHODCALL_OP)
- {
- /* Not a method call, just keep executing */
-
- return (AE_OK);
- }
-
- /* Found a method call, stop executing */
-
- AcpiGbl_StepToNextCall = FALSE;
- }
-
- /*
- * If the next opcode is a method call, we will "step over" it
- * by default.
- */
- if (Op->Common.AmlOpcode == AML_INT_METHODCALL_OP)
- {
- /* Force no more single stepping while executing called method */
-
- AcpiGbl_CmSingleStep = FALSE;
-
- /*
- * Set the breakpoint on/before the call, it will stop execution
- * as soon as we return
- */
- WalkState->MethodBreakpoint = 1; /* Must be non-zero! */
- }
-
-
- Status = AcpiDbStartCommand (WalkState, Op);
-
- /* User commands complete, continue execution of the interrupted method */
-
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbInitialize
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Init and start debugger
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDbInitialize (
- void)
-{
- ACPI_STATUS Status;
-
-
- /* Init globals */
-
- AcpiGbl_DbBuffer = NULL;
- AcpiGbl_DbFilename = NULL;
- AcpiGbl_DbOutputToFile = FALSE;
-
- AcpiGbl_DbDebugLevel = ACPI_LV_VERBOSITY2;
- AcpiGbl_DbConsoleDebugLevel = ACPI_NORMAL_DEFAULT | ACPI_LV_TABLES;
- AcpiGbl_DbOutputFlags = ACPI_DB_CONSOLE_OUTPUT;
-
- AcpiGbl_DbOpt_tables = FALSE;
- AcpiGbl_DbOpt_disasm = FALSE;
- AcpiGbl_DbOpt_stats = FALSE;
- AcpiGbl_DbOpt_verbose = TRUE;
- AcpiGbl_DbOpt_ini_methods = TRUE;
-
- AcpiGbl_DbBuffer = AcpiOsAllocate (ACPI_DEBUG_BUFFER_SIZE);
- if (!AcpiGbl_DbBuffer)
- {
- return (AE_NO_MEMORY);
- }
- ACPI_MEMSET (AcpiGbl_DbBuffer, 0, ACPI_DEBUG_BUFFER_SIZE);
-
- /* Initial scope is the root */
-
- AcpiGbl_DbScopeBuf [0] = '\\';
- AcpiGbl_DbScopeBuf [1] = 0;
- AcpiGbl_DbScopeNode = AcpiGbl_RootNode;
-
- /*
- * If configured for multi-thread support, the debug executor runs in
- * a separate thread so that the front end can be in another address
- * space, environment, or even another machine.
- */
- if (AcpiGbl_DebuggerConfiguration & DEBUGGER_MULTI_THREADED)
- {
- /* These were created with one unit, grab it */
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_DEBUG_CMD_COMPLETE);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not get debugger mutex\n");
- return (Status);
- }
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_DEBUG_CMD_READY);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not get debugger mutex\n");
- return (Status);
- }
-
- /* Create the debug execution thread to execute commands */
-
- Status = AcpiOsExecute (OSL_DEBUGGER_THREAD, AcpiDbExecuteThread, NULL);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not start debugger thread\n");
- return (Status);
- }
- }
-
- if (!AcpiGbl_DbOpt_verbose)
- {
- AcpiGbl_DbOpt_disasm = TRUE;
- AcpiGbl_DbOpt_stats = FALSE;
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbTerminate
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Stop debugger
- *
- ******************************************************************************/
-
-void
-AcpiDbTerminate (
- void)
-{
-
- if (AcpiGbl_DbTablePtr)
- {
- AcpiOsFree (AcpiGbl_DbTablePtr);
- }
- if (AcpiGbl_DbBuffer)
- {
- AcpiOsFree (AcpiGbl_DbBuffer);
- }
-}
-
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-/*******************************************************************************
- *
- * FUNCTION: AcpiDbMethodEnd
- *
- * PARAMETERS: WalkState - Current walk
- *
- * RETURN: Status
- *
- * DESCRIPTION: Called at method termination
- *
- ******************************************************************************/
-
-void
-AcpiDbMethodEnd (
- ACPI_WALK_STATE *WalkState)
-{
-
- if (!AcpiGbl_CmSingleStep)
- {
- return;
- }
-
- AcpiOsPrintf ("<Method Terminating>\n");
-
- AcpiDbStartCommand (WalkState, NULL);
-}
-#endif
-
-#endif /* ACPI_DEBUGGER */
diff --git a/sys/contrib/dev/acpica/dmbuffer.c b/sys/contrib/dev/acpica/dmbuffer.c
deleted file mode 100644
index 5540220..0000000
--- a/sys/contrib/dev/acpica/dmbuffer.c
+++ /dev/null
@@ -1,555 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dmbuffer - AML disassembler, buffer and string support
- * $Revision: 1.25 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acdisasm.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/amlcode.h>
-
-
-#ifdef ACPI_DISASSEMBLER
-
-#define _COMPONENT ACPI_CA_DEBUGGER
- ACPI_MODULE_NAME ("dmbuffer")
-
-/* Local prototypes */
-
-static void
-AcpiDmUnicode (
- ACPI_PARSE_OBJECT *Op);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDisasmByteList
- *
- * PARAMETERS: Level - Current source code indentation level
- * ByteData - Pointer to the byte list
- * ByteCount - Length of the byte list
- *
- * RETURN: None
- *
- * DESCRIPTION: Dump an AML "ByteList" in Hex format. 8 bytes per line, prefixed
- * with the hex buffer offset.
- *
- ******************************************************************************/
-
-void
-AcpiDmDisasmByteList (
- UINT32 Level,
- UINT8 *ByteData,
- UINT32 ByteCount)
-{
- UINT32 i;
-
-
- if (!ByteCount)
- {
- return;
- }
-
- /* Dump the byte list */
-
- for (i = 0; i < ByteCount; i++)
- {
- /* New line every 8 bytes */
-
- if (((i % 8) == 0) && (i < ByteCount))
- {
- if (i > 0)
- {
- AcpiOsPrintf ("\n");
- }
-
- AcpiDmIndent (Level);
- if (ByteCount > 7)
- {
- AcpiOsPrintf ("/* %04X */ ", i);
- }
- }
-
- AcpiOsPrintf ("0x%2.2X", (UINT32) ByteData[i]);
-
- /* Add comma if there are more bytes to display */
-
- if (i < (ByteCount -1))
- {
- AcpiOsPrintf (", ");
- }
- }
-
- if (Level)
- {
- AcpiOsPrintf ("\n");
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmByteList
- *
- * PARAMETERS: Info - Parse tree walk info
- * Op - Byte list op
- *
- * RETURN: None
- *
- * DESCRIPTION: Dump a buffer byte list, handling the various types of buffers.
- * Buffer type must be already set in the Op DisasmOpcode.
- *
- ******************************************************************************/
-
-void
-AcpiDmByteList (
- ACPI_OP_WALK_INFO *Info,
- ACPI_PARSE_OBJECT *Op)
-{
- UINT8 *ByteData;
- UINT32 ByteCount;
-
-
- ByteData = Op->Named.Data;
- ByteCount = (UINT32) Op->Common.Value.Integer;
-
- /*
- * The byte list belongs to a buffer, and can be produced by either
- * a ResourceTemplate, Unicode, quoted string, or a plain byte list.
- */
- switch (Op->Common.Parent->Common.DisasmOpcode)
- {
- case ACPI_DASM_RESOURCE:
-
- AcpiDmResourceTemplate (Info, Op->Common.Parent, ByteData, ByteCount);
- break;
-
- case ACPI_DASM_STRING:
-
- AcpiDmIndent (Info->Level);
- AcpiUtPrintString ((char *) ByteData, ACPI_UINT8_MAX);
- AcpiOsPrintf ("\n");
- break;
-
- case ACPI_DASM_UNICODE:
-
- AcpiDmUnicode (Op);
- break;
-
- case ACPI_DASM_BUFFER:
- default:
-
- /*
- * Not a resource, string, or unicode string.
- * Just dump the buffer
- */
- AcpiDmDisasmByteList (Info->Level, ByteData, ByteCount);
- break;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmIsUnicodeBuffer
- *
- * PARAMETERS: Op - Buffer Object to be examined
- *
- * RETURN: TRUE if buffer contains a UNICODE string
- *
- * DESCRIPTION: Determine if a buffer Op contains a Unicode string
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiDmIsUnicodeBuffer (
- ACPI_PARSE_OBJECT *Op)
-{
- UINT8 *ByteData;
- UINT32 ByteCount;
- UINT32 WordCount;
- ACPI_PARSE_OBJECT *SizeOp;
- ACPI_PARSE_OBJECT *NextOp;
- ACPI_NATIVE_UINT i;
-
-
- /* Buffer size is the buffer argument */
-
- SizeOp = Op->Common.Value.Arg;
-
- /* Next, the initializer byte list to examine */
-
- NextOp = SizeOp->Common.Next;
- if (!NextOp)
- {
- return (FALSE);
- }
-
- /* Extract the byte list info */
-
- ByteData = NextOp->Named.Data;
- ByteCount = (UINT32) NextOp->Common.Value.Integer;
- WordCount = ACPI_DIV_2 (ByteCount);
-
- /*
- * Unicode string must have an even number of bytes and last
- * word must be zero
- */
- if ((!ByteCount) ||
- (ByteCount < 4) ||
- (ByteCount & 1) ||
- ((UINT16 *) (void *) ByteData)[WordCount - 1] != 0)
- {
- return (FALSE);
- }
-
- /* For each word, 1st byte must be ascii, 2nd byte must be zero */
-
- for (i = 0; i < (ByteCount - 2); i += 2)
- {
- if ((!ACPI_IS_PRINT (ByteData[i])) ||
- (ByteData[i + 1] != 0))
- {
- return (FALSE);
- }
- }
-
- /* Ignore the Size argument in the disassembly of this buffer op */
-
- SizeOp->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
- return (TRUE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmIsStringBuffer
- *
- * PARAMETERS: Op - Buffer Object to be examined
- *
- * RETURN: TRUE if buffer contains a ASCII string, FALSE otherwise
- *
- * DESCRIPTION: Determine if a buffer Op contains a ASCII string
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiDmIsStringBuffer (
- ACPI_PARSE_OBJECT *Op)
-{
- UINT8 *ByteData;
- UINT32 ByteCount;
- ACPI_PARSE_OBJECT *SizeOp;
- ACPI_PARSE_OBJECT *NextOp;
- UINT32 i;
-
-
- /* Buffer size is the buffer argument */
-
- SizeOp = Op->Common.Value.Arg;
-
- /* Next, the initializer byte list to examine */
-
- NextOp = SizeOp->Common.Next;
- if (!NextOp)
- {
- return (FALSE);
- }
-
- /* Extract the byte list info */
-
- ByteData = NextOp->Named.Data;
- ByteCount = (UINT32) NextOp->Common.Value.Integer;
-
- /* Last byte must be the null terminator */
-
- if ((!ByteCount) ||
- (ByteCount < 2) ||
- (ByteData[ByteCount-1] != 0))
- {
- return (FALSE);
- }
-
- for (i = 0; i < (ByteCount - 1); i++)
- {
- /* TBD: allow some escapes (non-ascii chars).
- * they will be handled in the string output routine
- */
-
- if (!ACPI_IS_PRINT (ByteData[i]))
- {
- return (FALSE);
- }
- }
-
- return (TRUE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmUnicode
- *
- * PARAMETERS: Op - Byte List op containing Unicode string
- *
- * RETURN: None
- *
- * DESCRIPTION: Dump Unicode string as a standard ASCII string. (Remove
- * the extra zero bytes).
- *
- ******************************************************************************/
-
-static void
-AcpiDmUnicode (
- ACPI_PARSE_OBJECT *Op)
-{
- UINT16 *WordData;
- UINT32 WordCount;
- UINT32 i;
-
-
- /* Extract the buffer info as a WORD buffer */
-
- WordData = ACPI_CAST_PTR (UINT16, Op->Named.Data);
- WordCount = ACPI_DIV_2 (((UINT32) Op->Common.Value.Integer));
-
-
- AcpiOsPrintf ("\"");
-
- /* Write every other byte as an ASCII character */
-
- for (i = 0; i < (WordCount - 1); i++)
- {
- AcpiOsPrintf ("%c", (int) WordData[i]);
- }
-
- AcpiOsPrintf ("\")");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmIsEisaId
- *
- * PARAMETERS: Op - Op to be examined
- *
- * RETURN: None
- *
- * DESCRIPTION: Determine if an Op can be converted to an EisaId.
- *
- ******************************************************************************/
-
-void
-AcpiDmIsEisaId (
- ACPI_PARSE_OBJECT *Op)
-{
- UINT32 Name;
- UINT32 BigEndianId;
- ACPI_PARSE_OBJECT *NextOp;
- ACPI_NATIVE_UINT i;
- UINT32 Prefix[3];
-
-
- /* Get the NameSegment */
-
- Name = AcpiPsGetName (Op);
- if (!Name)
- {
- return;
- }
-
- /* We are looking for _HID */
-
- if (!ACPI_COMPARE_NAME (&Name, METHOD_NAME__HID))
- {
- return;
- }
-
- /* The parameter must be either a word or a dword */
-
- NextOp = AcpiPsGetDepthNext (NULL, Op);
- if ((NextOp->Common.AmlOpcode != AML_DWORD_OP) &&
- (NextOp->Common.AmlOpcode != AML_WORD_OP))
- {
- return;
- }
-
- /* Swap from little-endian to big-endian to simplify conversion */
-
- BigEndianId = AcpiUtDwordByteSwap ((UINT32) NextOp->Common.Value.Integer);
-
- /* Create the 3 leading ASCII letters */
-
- Prefix[0] = ((BigEndianId >> 26) & 0x1F) + 0x40;
- Prefix[1] = ((BigEndianId >> 21) & 0x1F) + 0x40;
- Prefix[2] = ((BigEndianId >> 16) & 0x1F) + 0x40;
-
- /* Verify that all 3 are ascii and alpha */
-
- for (i = 0; i < 3; i++)
- {
- if (!ACPI_IS_ASCII (Prefix[i]) ||
- !ACPI_IS_ALPHA (Prefix[i]))
- {
- return;
- }
- }
-
- /* OK - mark this node as convertable to an EISA ID */
-
- NextOp->Common.DisasmOpcode = ACPI_DASM_EISAID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmEisaId
- *
- * PARAMETERS: EncodedId - Raw encoded EISA ID.
- *
- * RETURN: None
- *
- * DESCRIPTION: Convert an encoded EISAID back to the original ASCII String.
- *
- ******************************************************************************/
-
-void
-AcpiDmEisaId (
- UINT32 EncodedId)
-{
- UINT32 BigEndianId;
-
-
- /* Swap from little-endian to big-endian to simplify conversion */
-
- BigEndianId = AcpiUtDwordByteSwap (EncodedId);
-
-
- /* Split to form "AAANNNN" string */
-
- AcpiOsPrintf ("EisaId (\"%c%c%c%4.4X\")",
-
- /* Three Alpha characters (AAA), 5 bits each */
-
- (int) ((BigEndianId >> 26) & 0x1F) + 0x40,
- (int) ((BigEndianId >> 21) & 0x1F) + 0x40,
- (int) ((BigEndianId >> 16) & 0x1F) + 0x40,
-
- /* Numeric part (NNNN) is simply the lower 16 bits */
-
- (UINT32) (BigEndianId & 0xFFFF));
-}
-
-#endif
diff --git a/sys/contrib/dev/acpica/dmnames.c b/sys/contrib/dev/acpica/dmnames.c
deleted file mode 100644
index 6936462..0000000
--- a/sys/contrib/dev/acpica/dmnames.c
+++ /dev/null
@@ -1,521 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dmnames - AML disassembler, names, namestrings, pathnames
- * $Revision: 1.17 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acdisasm.h>
-
-
-#ifdef ACPI_DISASSEMBLER
-
-#define _COMPONENT ACPI_CA_DEBUGGER
- ACPI_MODULE_NAME ("dmnames")
-
-/* Local prototypes */
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-void
-AcpiDmDisplayPath (
- ACPI_PARSE_OBJECT *Op);
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpName
- *
- * PARAMETERS: Name - 4 character ACPI name
- *
- * RETURN: Final length of name
- *
- * DESCRIPTION: Dump an ACPI name, minus any trailing underscores.
- *
- ******************************************************************************/
-
-UINT32
-AcpiDmDumpName (
- char *Name)
-{
- UINT32 i;
- UINT32 Length;
- char NewName[4];
-
-
- /* Ensure that the name is printable, even if we have to fix it */
-
- *(UINT32 *) NewName = AcpiUtRepairName (Name);
-
- /* Remove all trailing underscores from the name */
-
- Length = ACPI_NAME_SIZE;
- for (i = (ACPI_NAME_SIZE - 1); i != 0; i--)
- {
- if (NewName[i] == '_')
- {
- Length--;
- }
- else
- {
- break;
- }
- }
-
- /* Dump the name, up to the start of the trailing underscores */
-
- for (i = 0; i < Length; i++)
- {
- AcpiOsPrintf ("%c", NewName[i]);
- }
-
- return (Length);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsDisplayObjectPathname
- *
- * PARAMETERS: WalkState - Current walk state
- * Op - Object whose pathname is to be obtained
- *
- * RETURN: Status
- *
- * DESCRIPTION: Diplay the pathname associated with a named object. Two
- * versions. One searches the parse tree (for parser-only
- * applications suchas AcpiDump), and the other searches the
- * ACPI namespace (the parse tree is probably deleted)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiPsDisplayObjectPathname (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_BUFFER Buffer;
- UINT32 DebugLevel;
-
-
- /* Save current debug level so we don't get extraneous debug output */
-
- DebugLevel = AcpiDbgLevel;
- AcpiDbgLevel = 0;
-
- /* Just get the Node out of the Op object */
-
- Node = Op->Common.Node;
- if (!Node)
- {
- /* Node not defined in this scope, look it up */
-
- Status = AcpiNsLookup (WalkState->ScopeInfo, Op->Common.Value.String,
- ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT,
- WalkState, &(Node));
-
- if (ACPI_FAILURE (Status))
- {
- /*
- * We can't get the pathname since the object
- * is not in the namespace. This can happen during single
- * stepping where a dynamic named object is *about* to be created.
- */
- AcpiOsPrintf (" [Path not found]");
- goto Exit;
- }
-
- /* Save it for next time. */
-
- Op->Common.Node = Node;
- }
-
- /* Convert NamedDesc/handle to a full pathname */
-
- Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
- Status = AcpiNsHandleToPathname (Node, &Buffer);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("****Could not get pathname****)");
- goto Exit;
- }
-
- AcpiOsPrintf (" (Path %s)", (char *) Buffer.Pointer);
- ACPI_FREE (Buffer.Pointer);
-
-
-Exit:
- /* Restore the debug level */
-
- AcpiDbgLevel = DebugLevel;
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmNamestring
- *
- * PARAMETERS: Name - ACPI Name string to store
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode and dump an ACPI namestring. Handles prefix characters
- *
- ******************************************************************************/
-
-void
-AcpiDmNamestring (
- char *Name)
-{
- UINT32 SegCount;
-
-
- if (!Name)
- {
- return;
- }
-
- /* Handle all Scope Prefix operators */
-
- while (AcpiPsIsPrefixChar (ACPI_GET8 (Name)))
- {
- /* Append prefix character */
-
- AcpiOsPrintf ("%1c", ACPI_GET8 (Name));
- Name++;
- }
-
- switch (ACPI_GET8 (Name))
- {
- case 0:
- SegCount = 0;
- break;
-
- case AML_DUAL_NAME_PREFIX:
- SegCount = 2;
- Name++;
- break;
-
- case AML_MULTI_NAME_PREFIX_OP:
- SegCount = (UINT32) ACPI_GET8 (Name + 1);
- Name += 2;
- break;
-
- default:
- SegCount = 1;
- break;
- }
-
- while (SegCount)
- {
- /* Append Name segment */
-
- AcpiDmDumpName ((char *) Name);
-
- SegCount--;
- if (SegCount)
- {
- /* Not last name, append dot separator */
-
- AcpiOsPrintf (".");
- }
- Name += ACPI_NAME_SIZE;
- }
-}
-
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDisplayPath
- *
- * PARAMETERS: Op - Named Op whose path is to be constructed
- *
- * RETURN: None
- *
- * DESCRIPTION: Walk backwards from current scope and display the name
- * of each previous level of scope up to the root scope
- * (like "pwd" does with file systems)
- *
- ******************************************************************************/
-
-void
-AcpiDmDisplayPath (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *Prev;
- ACPI_PARSE_OBJECT *Search;
- UINT32 Name;
- BOOLEAN DoDot = FALSE;
- ACPI_PARSE_OBJECT *NamePath;
- const ACPI_OPCODE_INFO *OpInfo;
-
-
- /* We are only interested in named objects */
-
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- if (!(OpInfo->Flags & AML_NSNODE))
- {
- return;
- }
-
- if (OpInfo->Flags & AML_CREATE)
- {
- /* Field creation - check for a fully qualified namepath */
-
- if (Op->Common.AmlOpcode == AML_CREATE_FIELD_OP)
- {
- NamePath = AcpiPsGetArg (Op, 3);
- }
- else
- {
- NamePath = AcpiPsGetArg (Op, 2);
- }
-
- if ((NamePath) &&
- (NamePath->Common.Value.String) &&
- (NamePath->Common.Value.String[0] == '\\'))
- {
- AcpiDmNamestring (NamePath->Common.Value.String);
- return;
- }
- }
-
- Prev = NULL; /* Start with Root Node */
-
- while (Prev != Op)
- {
- /* Search upwards in the tree to find scope with "prev" as its parent */
-
- Search = Op;
- for (; ;)
- {
- if (Search->Common.Parent == Prev)
- {
- break;
- }
-
- /* Go up one level */
-
- Search = Search->Common.Parent;
- }
-
- if (Prev)
- {
- OpInfo = AcpiPsGetOpcodeInfo (Search->Common.AmlOpcode);
- if (!(OpInfo->Flags & AML_FIELD))
- {
- /* Below root scope, append scope name */
-
- if (DoDot)
- {
- /* Append dot */
-
- AcpiOsPrintf (".");
- }
-
- if (OpInfo->Flags & AML_CREATE)
- {
- if (Op->Common.AmlOpcode == AML_CREATE_FIELD_OP)
- {
- NamePath = AcpiPsGetArg (Op, 3);
- }
- else
- {
- NamePath = AcpiPsGetArg (Op, 2);
- }
-
- if ((NamePath) &&
- (NamePath->Common.Value.String))
- {
- AcpiDmDumpName (NamePath->Common.Value.String);
- }
- }
- else
- {
- Name = AcpiPsGetName (Search);
- AcpiDmDumpName ((char *) &Name);
- }
-
- DoDot = TRUE;
- }
- }
- Prev = Search;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmValidateName
- *
- * PARAMETERS: Name - 4 character ACPI name
- *
- * RETURN: None
- *
- * DESCRIPTION: Lookup the name
- *
- ******************************************************************************/
-
-void
-AcpiDmValidateName (
- char *Name,
- ACPI_PARSE_OBJECT *Op)
-{
-
- if ((!Name) ||
- (!Op->Common.Parent))
- {
- return;
- }
-
- if (!Op->Common.Node)
- {
- AcpiOsPrintf (
- " /**** Name not found or not accessible from this scope ****/ ");
- }
-
- ACPI_PARSE_OBJECT *TargetOp;
-
-
- if ((!Name) ||
- (!Op->Common.Parent))
- {
- return;
- }
-
- 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 (
- " /**** Name not found or not accessible from this scope ****/ ");
- }
-}
-#endif
-
-#endif
-
-
diff --git a/sys/contrib/dev/acpica/dmobject.c b/sys/contrib/dev/acpica/dmobject.c
deleted file mode 100644
index 7b7d3c3..0000000
--- a/sys/contrib/dev/acpica/dmobject.c
+++ /dev/null
@@ -1,649 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dmobject - ACPI object decode and display
- * $Revision: 1.22 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acdisasm.h>
-#include <contrib/dev/acpica/acparser.h>
-
-
-#ifdef ACPI_DISASSEMBLER
-
-#define _COMPONENT ACPI_CA_DEBUGGER
- ACPI_MODULE_NAME ("dmnames")
-
-/* Local prototypes */
-
-static void
-AcpiDmDecodeNode (
- ACPI_NAMESPACE_NODE *Node);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpMethodInfo
- *
- * PARAMETERS: Status - Method execution status
- * WalkState - Current state of the parse tree walk
- * Op - Executing parse op
- *
- * RETURN: None
- *
- * DESCRIPTION: Called when a method has been aborted because of an error.
- * Dumps the method execution stack, and the method locals/args,
- * and disassembles the AML opcode that failed.
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpMethodInfo (
- ACPI_STATUS Status,
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *Next;
- ACPI_THREAD_STATE *Thread;
- ACPI_WALK_STATE *NextWalkState;
- ACPI_NAMESPACE_NODE *PreviousMethod = NULL;
-
-
- /* Ignore control codes, they are not errors */
-
- if ((Status & AE_CODE_MASK) == AE_CODE_CONTROL)
- {
- return;
- }
-
- /* We may be executing a deferred opcode */
-
- if (WalkState->DeferredNode)
- {
- AcpiOsPrintf ("Executing subtree for Buffer/Package/Region\n");
- return;
- }
-
- /*
- * If there is no Thread, we are not actually executing a method.
- * This can happen when the iASL compiler calls the interpreter
- * to perform constant folding.
- */
- Thread = WalkState->Thread;
- if (!Thread)
- {
- return;
- }
-
- /* Display exception and method name */
-
- AcpiOsPrintf ("\n**** Exception %s during execution of method ",
- AcpiFormatException (Status));
- AcpiNsPrintNodePathname (WalkState->MethodNode, NULL);
-
- /* Display stack of executing methods */
-
- AcpiOsPrintf ("\n\nMethod Execution Stack:\n");
- NextWalkState = Thread->WalkStateList;
-
- /* Walk list of linked walk states */
-
- while (NextWalkState)
- {
- AcpiOsPrintf (" Method [%4.4s] executing: ",
- AcpiUtGetNodeName (NextWalkState->MethodNode));
-
- /* First method is the currently executing method */
-
- if (NextWalkState == WalkState)
- {
- if (Op)
- {
- /* Display currently executing ASL statement */
-
- Next = Op->Common.Next;
- Op->Common.Next = NULL;
-
- AcpiDmDisassemble (NextWalkState, Op, ACPI_UINT32_MAX);
- Op->Common.Next = Next;
- }
- }
- else
- {
- /*
- * This method has called another method
- * NOTE: the method call parse subtree is already deleted at this
- * point, so we cannot disassemble the method invocation.
- */
- AcpiOsPrintf ("Call to method ");
- AcpiNsPrintNodePathname (PreviousMethod, NULL);
- }
-
- PreviousMethod = NextWalkState->MethodNode;
- NextWalkState = NextWalkState->Next;
- AcpiOsPrintf ("\n");
- }
-
- /* Display the method locals and arguments */
-
- AcpiOsPrintf ("\n");
- AcpiDmDisplayLocals (WalkState);
- AcpiOsPrintf ("\n");
- AcpiDmDisplayArguments (WalkState);
- AcpiOsPrintf ("\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDecodeInternalObject
- *
- * PARAMETERS: ObjDesc - Object to be displayed
- *
- * RETURN: None
- *
- * DESCRIPTION: Short display of an internal object. Numbers/Strings/Buffers.
- *
- ******************************************************************************/
-
-void
-AcpiDmDecodeInternalObject (
- ACPI_OPERAND_OBJECT *ObjDesc)
-{
- UINT32 i;
-
-
- if (!ObjDesc)
- {
- AcpiOsPrintf (" Uninitialized");
- return;
- }
-
- if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) != ACPI_DESC_TYPE_OPERAND)
- {
- AcpiOsPrintf (" %p [%s]", ObjDesc, AcpiUtGetDescriptorName (ObjDesc));
- return;
- }
-
- AcpiOsPrintf (" %s", AcpiUtGetObjectTypeName (ObjDesc));
-
- switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
- {
- case ACPI_TYPE_INTEGER:
-
- AcpiOsPrintf (" %8.8X%8.8X",
- ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
- break;
-
-
- case ACPI_TYPE_STRING:
-
- AcpiOsPrintf ("(%d) \"%.24s",
- ObjDesc->String.Length, ObjDesc->String.Pointer);
-
- if (ObjDesc->String.Length > 24)
- {
- AcpiOsPrintf ("...");
- }
- else
- {
- AcpiOsPrintf ("\"");
- }
- break;
-
-
- case ACPI_TYPE_BUFFER:
-
- AcpiOsPrintf ("(%d)", ObjDesc->Buffer.Length);
- for (i = 0; (i < 8) && (i < ObjDesc->Buffer.Length); i++)
- {
- AcpiOsPrintf (" %2.2X", ObjDesc->Buffer.Pointer[i]);
- }
- break;
-
-
- default:
-
- AcpiOsPrintf (" %p", ObjDesc);
- break;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDecodeNode
- *
- * PARAMETERS: Node - Object to be displayed
- *
- * RETURN: None
- *
- * DESCRIPTION: Short display of a namespace node
- *
- ******************************************************************************/
-
-static void
-AcpiDmDecodeNode (
- ACPI_NAMESPACE_NODE *Node)
-{
-
- AcpiOsPrintf ("<Node> Name %4.4s",
- AcpiUtGetNodeName (Node));
-
- if (Node->Flags & ANOBJ_METHOD_ARG)
- {
- AcpiOsPrintf (" [Method Arg]");
- }
- if (Node->Flags & ANOBJ_METHOD_LOCAL)
- {
- AcpiOsPrintf (" [Method Local]");
- }
-
- AcpiDmDecodeInternalObject (AcpiNsGetAttachedObject (Node));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDisplayInternalObject
- *
- * PARAMETERS: ObjDesc - Object to be displayed
- * WalkState - Current walk state
- *
- * RETURN: None
- *
- * DESCRIPTION: Short display of an internal object
- *
- ******************************************************************************/
-
-void
-AcpiDmDisplayInternalObject (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_WALK_STATE *WalkState)
-{
- UINT8 Type;
-
-
- AcpiOsPrintf ("%p ", ObjDesc);
-
- if (!ObjDesc)
- {
- AcpiOsPrintf ("<Null Object>\n");
- return;
- }
-
- /* Decode the object type */
-
- switch (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc))
- {
- case ACPI_DESC_TYPE_PARSER:
-
- AcpiOsPrintf ("<Parser> ");
- break;
-
-
- case ACPI_DESC_TYPE_NAMED:
-
- AcpiDmDecodeNode ((ACPI_NAMESPACE_NODE *) ObjDesc);
- break;
-
-
- case ACPI_DESC_TYPE_OPERAND:
-
- Type = ACPI_GET_OBJECT_TYPE (ObjDesc);
- if (Type > ACPI_TYPE_LOCAL_MAX)
- {
- AcpiOsPrintf (" Type %X [Invalid Type]", (UINT32) Type);
- return;
- }
-
- /* Decode the ACPI object type */
-
- switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
- {
- case ACPI_TYPE_LOCAL_REFERENCE:
-
- switch (ObjDesc->Reference.Opcode)
- {
- case AML_LOCAL_OP:
-
- AcpiOsPrintf ("[Local%d] ", ObjDesc->Reference.Offset);
- if (WalkState)
- {
- ObjDesc = WalkState->LocalVariables[
- ObjDesc->Reference.Offset].Object;
- AcpiOsPrintf ("%p", ObjDesc);
- AcpiDmDecodeInternalObject (ObjDesc);
- }
- break;
-
-
- case AML_ARG_OP:
-
- AcpiOsPrintf ("[Arg%d] ", ObjDesc->Reference.Offset);
- if (WalkState)
- {
- ObjDesc = WalkState->Arguments[
- ObjDesc->Reference.Offset].Object;
- AcpiOsPrintf ("%p", ObjDesc);
- AcpiDmDecodeInternalObject (ObjDesc);
- }
- break;
-
-
- case AML_DEBUG_OP:
-
- AcpiOsPrintf ("[Debug] ");
- break;
-
-
- case AML_INDEX_OP:
-
- AcpiOsPrintf ("[Index] ");
- switch (ObjDesc->Reference.TargetType)
- {
- case ACPI_TYPE_BUFFER_FIELD:
- AcpiOsPrintf ("%p", ObjDesc->Reference.Object);
- AcpiDmDecodeInternalObject (ObjDesc->Reference.Object);
- break;
-
- case ACPI_TYPE_PACKAGE:
-
- AcpiOsPrintf ("%p", ObjDesc->Reference.Where);
- if (!ObjDesc->Reference.Where)
- {
- AcpiOsPrintf (" Uninitialized WHERE ptr");
- }
- else
- {
- AcpiDmDecodeInternalObject (
- *(ObjDesc->Reference.Where));
- }
- break;
-
- default:
- AcpiOsPrintf ("Unknown index target type");
- break;
- }
- break;
-
-
- case AML_LOAD_OP:
-
- AcpiOsPrintf ("[DdbHandle] ");
- break;
-
-
- case AML_REF_OF_OP:
-
- AcpiOsPrintf ("[RefOf] ");
-
- if (!ObjDesc->Reference.Object)
- {
- AcpiOsPrintf ("Uninitialized reference subobject ptr");
- break;
- }
-
- /* Reference can be to a Node or an Operand object */
-
- switch (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc->Reference.Object))
- {
- case ACPI_DESC_TYPE_NAMED:
- AcpiDmDecodeNode (ObjDesc->Reference.Object);
- break;
-
- case ACPI_DESC_TYPE_OPERAND:
- AcpiDmDecodeInternalObject (ObjDesc->Reference.Object);
- break;
-
- default:
- break;
- }
- break;
-
- case AML_INT_NAMEPATH_OP:
-
- AcpiDmDecodeNode (ObjDesc->Reference.Node);
- break;
-
- default:
-
- AcpiOsPrintf ("Unknown Reference opcode %X (%s)\n",
- ObjDesc->Reference.Opcode,
- AcpiPsGetOpcodeName (ObjDesc->Reference.Opcode));
- break;
- }
- break;
-
- default:
-
- AcpiOsPrintf ("<Obj> ");
- AcpiDmDecodeInternalObject (ObjDesc);
- break;
- }
- break;
-
-
- default:
-
- AcpiOsPrintf ("<Not a valid ACPI Object Descriptor> [%s]",
- AcpiUtGetDescriptorName (ObjDesc));
- break;
- }
-
- AcpiOsPrintf ("\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDisplayLocals
- *
- * PARAMETERS: WalkState - State for current method
- *
- * RETURN: None
- *
- * DESCRIPTION: Display all locals for the currently running control method
- *
- ******************************************************************************/
-
-void
-AcpiDmDisplayLocals (
- ACPI_WALK_STATE *WalkState)
-{
- UINT32 i;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_NAMESPACE_NODE *Node;
-
-
- ObjDesc = WalkState->MethodDesc;
- Node = WalkState->MethodNode;
- if (!Node)
- {
- AcpiOsPrintf (
- "No method node (Executing subtree for buffer or opregion)\n");
- return;
- }
-
- if (Node->Type != ACPI_TYPE_METHOD)
- {
- AcpiOsPrintf ("Executing subtree for Buffer/Package/Region\n");
- return;
- }
-
- AcpiOsPrintf ("Local Variables for method [%4.4s]:\n",
- AcpiUtGetNodeName (Node));
-
- for (i = 0; i < ACPI_METHOD_NUM_LOCALS; i++)
- {
- ObjDesc = WalkState->LocalVariables[i].Object;
- AcpiOsPrintf (" Local%X: ", i);
- AcpiDmDisplayInternalObject (ObjDesc, WalkState);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDisplayArguments
- *
- * PARAMETERS: WalkState - State for current method
- *
- * RETURN: None
- *
- * DESCRIPTION: Display all arguments for the currently running control method
- *
- ******************************************************************************/
-
-void
-AcpiDmDisplayArguments (
- ACPI_WALK_STATE *WalkState)
-{
- UINT32 i;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_NAMESPACE_NODE *Node;
-
-
- ObjDesc = WalkState->MethodDesc;
- Node = WalkState->MethodNode;
- if (!Node)
- {
- AcpiOsPrintf (
- "No method node (Executing subtree for buffer or opregion)\n");
- return;
- }
-
- if (Node->Type != ACPI_TYPE_METHOD)
- {
- AcpiOsPrintf ("Executing subtree for Buffer/Package/Region\n");
- return;
- }
-
- AcpiOsPrintf (
- "Arguments for Method [%4.4s]: (%X arguments defined, max concurrency = %X)\n",
- AcpiUtGetNodeName (Node), ObjDesc->Method.ParamCount, ObjDesc->Method.SyncLevel);
-
- for (i = 0; i < ACPI_METHOD_NUM_ARGS; i++)
- {
- ObjDesc = WalkState->Arguments[i].Object;
- AcpiOsPrintf (" Arg%d: ", i);
- AcpiDmDisplayInternalObject (ObjDesc, WalkState);
- }
-}
-
-#endif
-
-
diff --git a/sys/contrib/dev/acpica/dmopcode.c b/sys/contrib/dev/acpica/dmopcode.c
deleted file mode 100644
index bdb9eef..0000000
--- a/sys/contrib/dev/acpica/dmopcode.c
+++ /dev/null
@@ -1,631 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dmopcode - AML disassembler, specific AML opcodes
- * $Revision: 1.101 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acdisasm.h>
-
-#ifdef ACPI_DISASSEMBLER
-
-#define _COMPONENT ACPI_CA_DEBUGGER
- ACPI_MODULE_NAME ("dmopcode")
-
-/* Local prototypes */
-
-static void
-AcpiDmMatchKeyword (
- ACPI_PARSE_OBJECT *Op);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmMethodFlags
- *
- * PARAMETERS: Op - Method Object to be examined
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode control method flags
- *
- ******************************************************************************/
-
-void
-AcpiDmMethodFlags (
- ACPI_PARSE_OBJECT *Op)
-{
- UINT32 Flags;
- UINT32 Args;
-
-
- /* The next Op contains the flags */
-
- Op = AcpiPsGetDepthNext (NULL, Op);
- Flags = (UINT8) Op->Common.Value.Integer;
- Args = Flags & 0x07;
-
- /* Mark the Op as completed */
-
- Op->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
-
- /* 1) Method argument count */
-
- AcpiOsPrintf (", %d, ", Args);
-
- /* 2) Serialize rule */
-
- if (!(Flags & 0x08))
- {
- AcpiOsPrintf ("Not");
- }
-
- AcpiOsPrintf ("Serialized");
-
- /* 3) SyncLevel */
-
- if (Flags & 0xF0)
- {
- AcpiOsPrintf (", %d", Flags >> 4);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmFieldFlags
- *
- * PARAMETERS: Op - Field Object to be examined
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode Field definition flags
- *
- ******************************************************************************/
-
-void
-AcpiDmFieldFlags (
- ACPI_PARSE_OBJECT *Op)
-{
- UINT32 Flags;
-
-
- /* The next peer Op (not child op) contains the flags */
-
- Op = Op->Common.Next;
- Flags = (UINT8) Op->Common.Value.Integer;
-
- /* Mark the Op as completed */
-
- Op->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
-
- AcpiOsPrintf ("%s, ", AcpiGbl_AccessTypes [Flags & 0x07]);
- AcpiOsPrintf ("%s, ", AcpiGbl_LockRule [(Flags & 0x10) >> 4]);
- AcpiOsPrintf ("%s)", AcpiGbl_UpdateRules [(Flags & 0x60) >> 5]);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmAddressSpace
- *
- * PARAMETERS: SpaceId - ID to be translated
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode a SpaceId to an AddressSpaceKeyword
- *
- ******************************************************************************/
-
-void
-AcpiDmAddressSpace (
- UINT8 SpaceId)
-{
-
- if (SpaceId >= ACPI_NUM_PREDEFINED_REGIONS)
- {
- if (SpaceId == 0x7F)
- {
- AcpiOsPrintf ("FFixedHW, ");
- }
- else
- {
- AcpiOsPrintf ("0x%.2X, ", SpaceId);
- }
- }
- else
- {
- AcpiOsPrintf ("%s, ", AcpiGbl_RegionTypes [SpaceId]);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmRegionFlags
- *
- * PARAMETERS: Op - Object to be examined
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode OperationRegion flags
- *
- ******************************************************************************/
-
-void
-AcpiDmRegionFlags (
- ACPI_PARSE_OBJECT *Op)
-{
-
-
- /* The next Op contains the SpaceId */
-
- Op = AcpiPsGetDepthNext (NULL, Op);
-
- /* Mark the Op as completed */
-
- Op->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
-
- AcpiOsPrintf (", ");
- AcpiDmAddressSpace ((UINT8) Op->Common.Value.Integer);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmMatchOp
- *
- * PARAMETERS: Op - Match Object to be examined
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode Match opcode operands
- *
- ******************************************************************************/
-
-void
-AcpiDmMatchOp (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *NextOp;
-
-
- NextOp = AcpiPsGetDepthNext (NULL, Op);
- NextOp = NextOp->Common.Next;
-
- if (!NextOp)
- {
- /* Handle partial tree during single-step */
-
- return;
- }
-
- /* Mark the two nodes that contain the encoding for the match keywords */
-
- NextOp->Common.DisasmOpcode = ACPI_DASM_MATCHOP;
-
- NextOp = NextOp->Common.Next;
- NextOp = NextOp->Common.Next;
- NextOp->Common.DisasmOpcode = ACPI_DASM_MATCHOP;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmMatchKeyword
- *
- * PARAMETERS: Op - Match Object to be examined
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode Match opcode operands
- *
- ******************************************************************************/
-
-static void
-AcpiDmMatchKeyword (
- ACPI_PARSE_OBJECT *Op)
-{
-
-
- if (((UINT32) Op->Common.Value.Integer) > ACPI_MAX_MATCH_OPCODE)
- {
- AcpiOsPrintf ("/* Unknown Match Keyword encoding */");
- }
- else
- {
- AcpiOsPrintf ("%s", ACPI_CAST_PTR (char,
- AcpiGbl_MatchOps[(ACPI_SIZE) Op->Common.Value.Integer]));
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDisassembleOneOp
- *
- * PARAMETERS: WalkState - Current walk info
- * Info - Parse tree walk info
- * Op - Op that is to be printed
- *
- * RETURN: None
- *
- * DESCRIPTION: Disassemble a single AML opcode
- *
- ******************************************************************************/
-
-void
-AcpiDmDisassembleOneOp (
- ACPI_WALK_STATE *WalkState,
- ACPI_OP_WALK_INFO *Info,
- ACPI_PARSE_OBJECT *Op)
-{
- const ACPI_OPCODE_INFO *OpInfo = NULL;
- UINT32 Offset;
- UINT32 Length;
- ACPI_PARSE_OBJECT *Child;
- ACPI_STATUS Status;
-
-
- if (!Op)
- {
- AcpiOsPrintf ("<NULL OP PTR>");
- return;
- }
-
- switch (Op->Common.DisasmOpcode)
- {
- case ACPI_DASM_MATCHOP:
-
- AcpiDmMatchKeyword (Op);
- return;
-
- case ACPI_DASM_LNOT_SUFFIX:
- switch (Op->Common.AmlOpcode)
- {
- case AML_LEQUAL_OP:
- AcpiOsPrintf ("LNotEqual");
- break;
-
- case AML_LGREATER_OP:
- AcpiOsPrintf ("LLessEqual");
- break;
-
- case AML_LLESS_OP:
- AcpiOsPrintf ("LGreaterEqual");
- break;
- }
- Op->Common.DisasmOpcode = 0;
- Op->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
- return;
-
- default:
- break;
- }
-
-
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-
- /* The op and arguments */
-
- switch (Op->Common.AmlOpcode)
- {
- case AML_LNOT_OP:
-
- Child = Op->Common.Value.Arg;
- if ((Child->Common.AmlOpcode == AML_LEQUAL_OP) ||
- (Child->Common.AmlOpcode == AML_LGREATER_OP) ||
- (Child->Common.AmlOpcode == AML_LLESS_OP))
- {
- Child->Common.DisasmOpcode = ACPI_DASM_LNOT_SUFFIX;
- Op->Common.DisasmOpcode = ACPI_DASM_LNOT_PREFIX;
- }
- else
- {
- AcpiOsPrintf ("%s", OpInfo->Name);
- }
- break;
-
- case AML_BYTE_OP:
-
- AcpiOsPrintf ("0x%2.2X", (UINT32) Op->Common.Value.Integer);
- break;
-
-
- case AML_WORD_OP:
-
- if (Op->Common.DisasmOpcode == ACPI_DASM_EISAID)
- {
- AcpiDmEisaId ((UINT32) Op->Common.Value.Integer);
- }
- else
- {
- AcpiOsPrintf ("0x%4.4X", (UINT32) Op->Common.Value.Integer);
- }
- break;
-
-
- case AML_DWORD_OP:
-
- if (Op->Common.DisasmOpcode == ACPI_DASM_EISAID)
- {
- AcpiDmEisaId ((UINT32) Op->Common.Value.Integer);
- }
- else
- {
- AcpiOsPrintf ("0x%8.8X", (UINT32) Op->Common.Value.Integer);
- }
- break;
-
-
- case AML_QWORD_OP:
-
- AcpiOsPrintf ("0x%8.8X%8.8X", Op->Common.Value.Integer64.Hi,
- Op->Common.Value.Integer64.Lo);
- break;
-
-
- case AML_STRING_OP:
-
- AcpiUtPrintString (Op->Common.Value.String, ACPI_UINT8_MAX);
- break;
-
-
- case AML_BUFFER_OP:
-
- /*
- * Determine the type of buffer. We can have one of the following:
- *
- * 1) ResourceTemplate containing Resource Descriptors.
- * 2) Unicode String buffer
- * 3) ASCII String buffer
- * 4) Raw data buffer (if none of the above)
- *
- * Since there are no special AML opcodes to differentiate these
- * types of buffers, we have to closely look at the data in the
- * buffer to determine the type.
- */
- Status = AcpiDmIsResourceTemplate (Op);
- if (ACPI_SUCCESS (Status))
- {
- Op->Common.DisasmOpcode = ACPI_DASM_RESOURCE;
- AcpiOsPrintf ("ResourceTemplate");
- break;
- }
- else if (Status == AE_AML_NO_RESOURCE_END_TAG)
- {
- AcpiOsPrintf ("/**** Is ResourceTemplate, but EndTag not at buffer end ****/ ");
- }
-
- if (AcpiDmIsUnicodeBuffer (Op))
- {
- Op->Common.DisasmOpcode = ACPI_DASM_UNICODE;
- AcpiOsPrintf ("Unicode (");
- }
- else if (AcpiDmIsStringBuffer (Op))
- {
- Op->Common.DisasmOpcode = ACPI_DASM_STRING;
- AcpiOsPrintf ("Buffer");
- }
- else
- {
- Op->Common.DisasmOpcode = ACPI_DASM_BUFFER;
- AcpiOsPrintf ("Buffer");
- }
- break;
-
-
- case AML_INT_STATICSTRING_OP:
-
- if (Op->Common.Value.String)
- {
- AcpiOsPrintf ("%s", Op->Common.Value.String);
- }
- else
- {
- AcpiOsPrintf ("\"<NULL STATIC STRING PTR>\"");
- }
- break;
-
-
- case AML_INT_NAMEPATH_OP:
-
- AcpiDmNamestring (Op->Common.Value.Name);
- break;
-
-
- case AML_INT_NAMEDFIELD_OP:
-
- Length = AcpiDmDumpName ((char *) &Op->Named.Name);
- AcpiOsPrintf (",%*.s %d", (int) (5 - Length), " ",
- (UINT32) Op->Common.Value.Integer);
- AcpiDmCommaIfFieldMember (Op);
-
- Info->BitOffset += (UINT32) Op->Common.Value.Integer;
- break;
-
-
- case AML_INT_RESERVEDFIELD_OP:
-
- /* Offset() -- Must account for previous offsets */
-
- Offset = (UINT32) Op->Common.Value.Integer;
- Info->BitOffset += Offset;
-
- if (Info->BitOffset % 8 == 0)
- {
- AcpiOsPrintf (" Offset (0x%.2X)", ACPI_DIV_8 (Info->BitOffset));
- }
- else
- {
- AcpiOsPrintf (" , %d", Offset);
- }
-
- AcpiDmCommaIfFieldMember (Op);
- break;
-
-
- case AML_INT_ACCESSFIELD_OP:
-
- AcpiOsPrintf (" AccessAs (%s, ",
- AcpiGbl_AccessTypes [(UINT32) (Op->Common.Value.Integer >> 8) & 0x7]);
-
- AcpiDmDecodeAttribute ((UINT8) Op->Common.Value.Integer);
- AcpiOsPrintf (")");
- AcpiDmCommaIfFieldMember (Op);
- break;
-
-
- case AML_INT_BYTELIST_OP:
-
- AcpiDmByteList (Info, Op);
- break;
-
-
- case AML_INT_METHODCALL_OP:
-
- Op = AcpiPsGetDepthNext (NULL, Op);
- Op->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
-
- AcpiDmNamestring (Op->Common.Value.Name);
- break;
-
-
- default:
-
- /* Just get the opcode name and print it */
-
- AcpiOsPrintf ("%s", OpInfo->Name);
-
-
-#ifdef ACPI_DEBUGGER
-
- if ((Op->Common.AmlOpcode == AML_INT_RETURN_VALUE_OP) &&
- (WalkState) &&
- (WalkState->Results) &&
- (WalkState->ResultCount))
- {
- AcpiDmDecodeInternalObject (
- WalkState->Results->Results.ObjDesc [
- (WalkState->ResultCount - 1) %
- ACPI_RESULTS_FRAME_OBJ_NUM]);
- }
-#endif
-
- break;
- }
-}
-
-#endif /* ACPI_DISASSEMBLER */
diff --git a/sys/contrib/dev/acpica/dmresrc.c b/sys/contrib/dev/acpica/dmresrc.c
deleted file mode 100644
index 60b7896..0000000
--- a/sys/contrib/dev/acpica/dmresrc.c
+++ /dev/null
@@ -1,509 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dmresrc.c - Resource Descriptor disassembly
- * $Revision: 1.35 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acdisasm.h>
-
-#ifdef ACPI_DISASSEMBLER
-
-#define _COMPONENT ACPI_CA_DEBUGGER
- ACPI_MODULE_NAME ("dbresrc")
-
-
-/* Dispatch tables for Resource disassembly functions */
-
-typedef
-void (*ACPI_RESOURCE_HANDLER) (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level);
-
-static ACPI_RESOURCE_HANDLER AcpiGbl_DumpResourceDispatch [] =
-{
- /* Small descriptors */
-
- NULL, /* 0x00, Reserved */
- NULL, /* 0x01, Reserved */
- NULL, /* 0x02, Reserved */
- NULL, /* 0x03, Reserved */
- AcpiDmIrqDescriptor, /* 0x04, ACPI_RESOURCE_NAME_IRQ_FORMAT */
- AcpiDmDmaDescriptor, /* 0x05, ACPI_RESOURCE_NAME_DMA_FORMAT */
- AcpiDmStartDependentDescriptor, /* 0x06, ACPI_RESOURCE_NAME_START_DEPENDENT */
- AcpiDmEndDependentDescriptor, /* 0x07, ACPI_RESOURCE_NAME_END_DEPENDENT */
- AcpiDmIoDescriptor, /* 0x08, ACPI_RESOURCE_NAME_IO_PORT */
- AcpiDmFixedIoDescriptor, /* 0x09, ACPI_RESOURCE_NAME_FIXED_IO_PORT */
- NULL, /* 0x0A, Reserved */
- NULL, /* 0x0B, Reserved */
- NULL, /* 0x0C, Reserved */
- NULL, /* 0x0D, Reserved */
- AcpiDmVendorSmallDescriptor, /* 0x0E, ACPI_RESOURCE_NAME_SMALL_VENDOR */
- NULL, /* 0x0F, ACPI_RESOURCE_NAME_END_TAG (not used) */
-
- /* Large descriptors */
-
- NULL, /* 0x00, Reserved */
- AcpiDmMemory24Descriptor, /* 0x01, ACPI_RESOURCE_NAME_MEMORY_24 */
- AcpiDmGenericRegisterDescriptor,/* 0x02, ACPI_RESOURCE_NAME_GENERIC_REGISTER */
- NULL, /* 0x03, Reserved */
- AcpiDmVendorLargeDescriptor, /* 0x04, ACPI_RESOURCE_NAME_LARGE_VENDOR */
- AcpiDmMemory32Descriptor, /* 0x05, ACPI_RESOURCE_NAME_MEMORY_32 */
- AcpiDmFixedMemory32Descriptor, /* 0x06, ACPI_RESOURCE_NAME_FIXED_MEMORY_32 */
- AcpiDmDwordDescriptor, /* 0x07, ACPI_RESOURCE_NAME_DWORD_ADDRESS_SPACE */
- AcpiDmWordDescriptor, /* 0x08, ACPI_RESOURCE_NAME_WORD_ADDRESS_SPACE */
- AcpiDmInterruptDescriptor, /* 0x09, ACPI_RESOURCE_NAME_EXTENDED_XRUPT */
- AcpiDmQwordDescriptor, /* 0x0A, ACPI_RESOURCE_NAME_QWORD_ADDRESS_SPACE */
- AcpiDmExtendedDescriptor /* 0x0B, ACPI_RESOURCE_NAME_EXTENDED_ADDRESS_SPACE */
-};
-
-
-/* Only used for single-threaded applications */
-/* TBD: remove when name is passed as parameter to the dump functions */
-
-static UINT32 ResourceName;
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDescriptorName
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Emit a name for the descriptor if one is present (indicated
- * by the name being changed from the default name.) A name is only
- * emitted if a reference to the descriptor has been made somewhere
- * in the original ASL code.
- *
- ******************************************************************************/
-
-void
-AcpiDmDescriptorName (
- void)
-{
-
- if (ResourceName == ACPI_DEFAULT_RESNAME)
- {
- return;
- }
-
- AcpiOsPrintf ("%4.4s", (char *) &ResourceName);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDumpInteger*
- *
- * PARAMETERS: Value - Value to emit
- * Name - Associated name (emitted as a comment)
- *
- * RETURN: None
- *
- * DESCRIPTION: Integer output helper functions
- *
- ******************************************************************************/
-
-void
-AcpiDmDumpInteger8 (
- UINT8 Value,
- char *Name)
-{
- AcpiOsPrintf ("0x%2.2X, // %s\n", Value, Name);
-}
-
-void
-AcpiDmDumpInteger16 (
- UINT16 Value,
- char *Name)
-{
- AcpiOsPrintf ("0x%4.4X, // %s\n", Value, Name);
-}
-
-void
-AcpiDmDumpInteger32 (
- UINT32 Value,
- char *Name)
-{
- AcpiOsPrintf ("0x%8.8X, // %s\n", Value, Name);
-}
-
-void
-AcpiDmDumpInteger64 (
- UINT64 Value,
- char *Name)
-{
- AcpiOsPrintf ("0x%8.8X%8.8X, // %s\n", ACPI_FORMAT_UINT64 (Value), Name);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmBitList
- *
- * PARAMETERS: Mask - 16-bit value corresponding to 16 interrupt
- * or DMA values
- *
- * RETURN: None
- *
- * DESCRIPTION: Dump a bit mask as a list of individual interrupt/DMA levels.
- *
- ******************************************************************************/
-
-void
-AcpiDmBitList (
- UINT16 Mask)
-{
- UINT32 i;
- BOOLEAN Previous = FALSE;
-
-
- /* Open the initializer list */
-
- AcpiOsPrintf ("{");
-
- /* Examine each bit */
-
- for (i = 0; i < 16; i++)
- {
- /* Only interested in bits that are set to 1 */
-
- if (Mask & 1)
- {
- if (Previous)
- {
- AcpiOsPrintf (",");
- }
- Previous = TRUE;
- AcpiOsPrintf ("%d", i);
- }
-
- Mask >>= 1;
- }
-
- /* Close list */
-
- AcpiOsPrintf ("}\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmResourceTemplate
- *
- * PARAMETERS: Info - Curent parse tree walk info
- * ByteData - Pointer to the byte list data
- * ByteCount - Length of the byte list
- *
- * RETURN: None
- *
- * DESCRIPTION: Dump the contents of a Resource Template containing a set of
- * Resource Descriptors.
- *
- ******************************************************************************/
-
-void
-AcpiDmResourceTemplate (
- ACPI_OP_WALK_INFO *Info,
- ACPI_PARSE_OBJECT *Op,
- UINT8 *ByteData,
- UINT32 ByteCount)
-{
- ACPI_STATUS Status;
- ACPI_NATIVE_UINT CurrentByteOffset;
- UINT8 ResourceType;
- UINT32 ResourceLength;
- void *Aml;
- UINT32 Level;
- BOOLEAN DependentFns = FALSE;
- UINT8 ResourceIndex;
- ACPI_NAMESPACE_NODE *Node;
-
-
- Level = Info->Level;
- ResourceName = ACPI_DEFAULT_RESNAME;
- Node = Op->Common.Node;
- if (Node)
- {
- Node = Node->Child;
- }
-
- for (CurrentByteOffset = 0; CurrentByteOffset < ByteCount; )
- {
- Aml = &ByteData[CurrentByteOffset];
-
- /* Get the descriptor type and length */
-
- ResourceType = AcpiUtGetResourceType (Aml);
- ResourceLength = AcpiUtGetResourceLength (Aml);
-
- /* Validate the Resource Type and Resource Length */
-
- Status = AcpiUtValidateResource (Aml, &ResourceIndex);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("/*** Could not validate Resource, type (%X) %s***/\n",
- ResourceType, AcpiFormatException (Status));
- return;
- }
-
- /* Point to next descriptor */
-
- CurrentByteOffset += AcpiUtGetDescriptorLength (Aml);
-
- /* Descriptor pre-processing */
-
- switch (ResourceType)
- {
- case ACPI_RESOURCE_NAME_START_DEPENDENT:
-
- /* Finish a previous StartDependentFns */
-
- if (DependentFns)
- {
- Level--;
- AcpiDmIndent (Level);
- AcpiOsPrintf ("}\n");
- }
- break;
-
- case ACPI_RESOURCE_NAME_END_DEPENDENT:
-
- Level--;
- DependentFns = FALSE;
- break;
-
- case ACPI_RESOURCE_NAME_END_TAG:
-
- /* Normal exit, the resource list is finished */
-
- if (DependentFns)
- {
- /*
- * Close an open StartDependentDescriptor. This indicates a
- * missing EndDependentDescriptor.
- */
- Level--;
- DependentFns = FALSE;
-
- /* Go ahead and insert EndDependentFn() */
-
- AcpiDmEndDependentDescriptor (Aml, ResourceLength, Level);
-
- AcpiDmIndent (Level);
- AcpiOsPrintf (
- "/*** Disassembler: inserted missing EndDependentFn () ***/\n");
- }
- return;
-
- default:
- break;
- }
-
- /* Disassemble the resource structure */
-
- if (Node)
- {
- ResourceName = Node->Name.Integer;
- Node = Node->Peer;
- }
-
- AcpiGbl_DumpResourceDispatch [ResourceIndex] (
- Aml, ResourceLength, Level);
-
- /* Descriptor post-processing */
-
- if (ResourceType == ACPI_RESOURCE_NAME_START_DEPENDENT)
- {
- DependentFns = TRUE;
- Level++;
- }
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmIsResourceTemplate
- *
- * PARAMETERS: Op - Buffer Op to be examined
- *
- * RETURN: Status. AE_OK if valid template
- *
- * DESCRIPTION: Walk a byte list to determine if it consists of a valid set
- * of resource descriptors. Nothing is output.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDmIsResourceTemplate (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_STATUS Status;
- ACPI_PARSE_OBJECT *NextOp;
- UINT8 *Aml;
- UINT8 *EndAml;
- ACPI_SIZE Length;
-
-
- /* This op must be a buffer */
-
- if (Op->Common.AmlOpcode != AML_BUFFER_OP)
- {
- return (AE_TYPE);
- }
-
- /* Get the ByteData list and length */
-
- NextOp = Op->Common.Value.Arg;
- NextOp = NextOp->Common.Next;
- if (!NextOp)
- {
- return (AE_TYPE);
- }
-
- Aml = NextOp->Named.Data;
- Length = (ACPI_SIZE) NextOp->Common.Value.Integer;
-
- /* Walk the byte list, abort on any invalid descriptor type or length */
-
- Status = AcpiUtWalkAmlResources (Aml, Length, NULL, &EndAml);
- if (ACPI_FAILURE (Status))
- {
- return (AE_TYPE);
- }
-
- /*
- * For the resource template to be valid, one EndTag must appear
- * at the very end of the ByteList, not before. (For proper disassembly
- * of a ResourceTemplate, the buffer must not have any extra data after
- * the EndTag.)
- */
- if ((Aml + Length - sizeof (AML_RESOURCE_END_TAG)) != EndAml)
- {
- return (AE_AML_NO_RESOURCE_END_TAG);
- }
-
- /*
- * All resource descriptors are valid, therefore this list appears
- * to be a valid resource template
- */
- return (AE_OK);
-}
-
-#endif
diff --git a/sys/contrib/dev/acpica/dmresrcl.c b/sys/contrib/dev/acpica/dmresrcl.c
deleted file mode 100644
index 1cc375d..0000000
--- a/sys/contrib/dev/acpica/dmresrcl.c
+++ /dev/null
@@ -1,1125 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dmresrcl.c - "Large" Resource Descriptor disassembly
- * $Revision: 1.37 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acdisasm.h>
-
-
-#ifdef ACPI_DISASSEMBLER
-
-#define _COMPONENT ACPI_CA_DEBUGGER
- ACPI_MODULE_NAME ("dbresrcl")
-
-
-/* Common names for address and memory descriptors */
-
-static char *AcpiDmAddressNames[] =
-{
- "Granularity",
- "Range Minimum",
- "Range Maximum",
- "Translation Offset",
- "Length"
-};
-
-static char *AcpiDmMemoryNames[] =
-{
- "Range Minimum",
- "Range Maximum",
- "Alignment",
- "Length"
-};
-
-
-/* Local prototypes */
-
-static void
-AcpiDmSpaceFlags (
- UINT8 Flags);
-
-static void
-AcpiDmIoFlags (
- UINT8 Flags);
-
-static void
-AcpiDmIoFlags2 (
- UINT8 SpecificFlags);
-
-static void
-AcpiDmMemoryFlags (
- UINT8 Flags,
- UINT8 SpecificFlags);
-
-static void
-AcpiDmMemoryFlags2 (
- UINT8 SpecificFlags);
-
-static void
-AcpiDmResourceSource (
- AML_RESOURCE *Resource,
- ACPI_SIZE MinimumLength,
- UINT32 Length);
-
-static void
-AcpiDmAddressFields (
- void *Source,
- UINT8 Type,
- UINT32 Level);
-
-static void
-AcpiDmAddressPrefix (
- UINT8 Type);
-
-static void
-AcpiDmAddressCommon (
- AML_RESOURCE *Resource,
- UINT8 Type,
- UINT32 Level);
-
-static void
-AcpiDmAddressFlags (
- AML_RESOURCE *Resource);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmMemoryFields
- *
- * PARAMETERS: Source - Pointer to the contiguous data fields
- * Type - 16 or 32 (bit)
- * Level - Current source code indentation level
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode fields common to Memory24 and Memory32 descriptors
- *
- ******************************************************************************/
-
-static void
-AcpiDmMemoryFields (
- void *Source,
- UINT8 Type,
- UINT32 Level)
-{
- ACPI_NATIVE_UINT i;
-
-
- for (i = 0; i < 4; i++)
- {
- AcpiDmIndent (Level + 1);
-
- switch (Type)
- {
- case 16:
- AcpiDmDumpInteger16 (ACPI_CAST_PTR (UINT16, Source)[i],
- AcpiDmMemoryNames[i]);
- break;
-
- case 32:
- AcpiDmDumpInteger32 (ACPI_CAST_PTR (UINT32, Source)[i],
- AcpiDmMemoryNames[i]);
- break;
-
- default:
- return;
- }
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmAddressFields
- *
- * PARAMETERS: Source - Pointer to the contiguous data fields
- * Type - 16, 32, or 64 (bit)
- * Level - Current source code indentation level
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode fields common to address descriptors
- *
- ******************************************************************************/
-
-static void
-AcpiDmAddressFields (
- void *Source,
- UINT8 Type,
- UINT32 Level)
-{
- ACPI_NATIVE_UINT i;
-
-
- AcpiOsPrintf ("\n");
-
- for (i = 0; i < 5; i++)
- {
- AcpiDmIndent (Level + 1);
-
- switch (Type)
- {
- case 16:
- AcpiDmDumpInteger16 (ACPI_CAST_PTR (UINT16, Source)[i],
- AcpiDmAddressNames[i]);
- break;
-
- case 32:
- AcpiDmDumpInteger32 (ACPI_CAST_PTR (UINT32, Source)[i],
- AcpiDmAddressNames[i]);
- break;
-
- case 64:
- AcpiDmDumpInteger64 (ACPI_CAST_PTR (UINT64, Source)[i],
- AcpiDmAddressNames[i]);
- break;
-
- default:
- return;
- }
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmAddressPrefix
- *
- * PARAMETERS: Type - Descriptor type
- *
- * RETURN: None
- *
- * DESCRIPTION: Emit name prefix representing the address descriptor type
- *
- ******************************************************************************/
-
-static void
-AcpiDmAddressPrefix (
- UINT8 Type)
-{
-
- switch (Type)
- {
- case ACPI_RESOURCE_TYPE_ADDRESS16:
- AcpiOsPrintf ("Word");
- break;
-
- case ACPI_RESOURCE_TYPE_ADDRESS32:
- AcpiOsPrintf ("DWord");
- break;
-
- case ACPI_RESOURCE_TYPE_ADDRESS64:
- AcpiOsPrintf ("QWord");
- break;
-
- case ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64:
- AcpiOsPrintf ("Extended");
- break;
-
- default:
- return;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmAddressCommon
- *
- * PARAMETERS: Resource - Raw AML descriptor
- * Type - Descriptor type
- * Level - Current source code indentation level
- *
- * RETURN: None
- *
- * DESCRIPTION: Emit common name and flag fields common to address descriptors
- *
- ******************************************************************************/
-
-static void
-AcpiDmAddressCommon (
- AML_RESOURCE *Resource,
- UINT8 Type,
- UINT32 Level)
-{
- UINT8 ResourceType;
- UINT8 SpecificFlags;
- UINT8 Flags;
-
-
- ResourceType = Resource->Address.ResourceType;
- SpecificFlags = Resource->Address.SpecificFlags;
- Flags = Resource->Address.Flags;
-
- AcpiDmIndent (Level);
-
- /* Validate ResourceType */
-
- if ((ResourceType > 2) && (ResourceType < 0xC0))
- {
- AcpiOsPrintf ("/**** Invalid Resource Type: 0x%X ****/", ResourceType);
- return;
- }
-
- /* Prefix is either Word, DWord, QWord, or Extended */
-
- AcpiDmAddressPrefix (Type);
-
- /* Resource Types above 0xC0 are vendor-defined */
-
- if (ResourceType > 2)
- {
- AcpiOsPrintf ("Space (0x%2.2X, ", ResourceType);
- AcpiDmSpaceFlags (Flags);
- AcpiOsPrintf (" 0x%2.2X,", SpecificFlags);
- return;
- }
-
- /* This is either a Memory, IO, or BusNumber descriptor (0,1,2) */
-
- AcpiOsPrintf ("%s (", AcpiGbl_WordDecode [ResourceType & 0x3]);
-
- /* Decode the general and type-specific flags */
-
- if (ResourceType == ACPI_MEMORY_RANGE)
- {
- AcpiDmMemoryFlags (Flags, SpecificFlags);
- }
- else /* IO range or BusNumberRange */
- {
- AcpiDmIoFlags (Flags);
- if (ResourceType == ACPI_IO_RANGE)
- {
- AcpiOsPrintf (" %s,", AcpiGbl_RngDecode [SpecificFlags & 0x3]);
- }
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmAddressFlags
- *
- * PARAMETERS: Resource - Raw AML descriptor
- *
- * RETURN: None
- *
- * DESCRIPTION: Emit flags common to address descriptors
- *
- ******************************************************************************/
-
-static void
-AcpiDmAddressFlags (
- AML_RESOURCE *Resource)
-{
-
- if (Resource->Address.ResourceType == ACPI_IO_RANGE)
- {
- AcpiDmIoFlags2 (Resource->Address.SpecificFlags);
- }
- else if (Resource->Address.ResourceType == ACPI_MEMORY_RANGE)
- {
- AcpiDmMemoryFlags2 (Resource->Address.SpecificFlags);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmSpaceFlags
- *
- * PARAMETERS: Flags - Flag byte to be decoded
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode the flags specific to Space Address space descriptors
- *
- ******************************************************************************/
-
-static void
-AcpiDmSpaceFlags (
- UINT8 Flags)
-{
-
- AcpiOsPrintf ("%s, %s, %s, %s,",
- AcpiGbl_ConsumeDecode [(Flags & 1)],
- AcpiGbl_DecDecode [(Flags & 0x2) >> 1],
- AcpiGbl_MinDecode [(Flags & 0x4) >> 2],
- AcpiGbl_MaxDecode [(Flags & 0x8) >> 3]);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmIoFlags
- *
- * PARAMETERS: Flags - Flag byte to be decoded
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode the flags specific to IO Address space descriptors
- *
- ******************************************************************************/
-
-static void
-AcpiDmIoFlags (
- UINT8 Flags)
-{
- AcpiOsPrintf ("%s, %s, %s, %s,",
- AcpiGbl_ConsumeDecode [(Flags & 1)],
- AcpiGbl_MinDecode [(Flags & 0x4) >> 2],
- AcpiGbl_MaxDecode [(Flags & 0x8) >> 3],
- AcpiGbl_DecDecode [(Flags & 0x2) >> 1]);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmIoFlags2
- *
- * PARAMETERS: SpecificFlags - "Specific" flag byte to be decoded
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode the flags specific to IO Address space descriptors
- *
- ******************************************************************************/
-
-static void
-AcpiDmIoFlags2 (
- UINT8 SpecificFlags)
-{
-
- AcpiOsPrintf (", %s",
- AcpiGbl_TtpDecode [(SpecificFlags & 0x10) >> 4]);
-
- /* TRS is only used if TTP is TypeTranslation */
-
- if (SpecificFlags & 0x10)
- {
- AcpiOsPrintf (", %s",
- AcpiGbl_TrsDecode [(SpecificFlags & 0x20) >> 5]);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmMemoryFlags
- *
- * PARAMETERS: Flags - Flag byte to be decoded
- * SpecificFlags - "Specific" flag byte to be decoded
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode flags specific to Memory Address Space descriptors
- *
- ******************************************************************************/
-
-static void
-AcpiDmMemoryFlags (
- UINT8 Flags,
- UINT8 SpecificFlags)
-{
-
- AcpiOsPrintf ("%s, %s, %s, %s, %s, %s,",
- AcpiGbl_ConsumeDecode [(Flags & 1)],
- AcpiGbl_DecDecode [(Flags & 0x2) >> 1],
- AcpiGbl_MinDecode [(Flags & 0x4) >> 2],
- AcpiGbl_MaxDecode [(Flags & 0x8) >> 3],
- AcpiGbl_MemDecode [(SpecificFlags & 0x6) >> 1],
- AcpiGbl_RwDecode [(SpecificFlags & 0x1)]);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmMemoryFlags2
- *
- * PARAMETERS: SpecificFlags - "Specific" flag byte to be decoded
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode flags specific to Memory Address Space descriptors
- *
- ******************************************************************************/
-
-static void
-AcpiDmMemoryFlags2 (
- UINT8 SpecificFlags)
-{
-
- AcpiOsPrintf (", %s, %s",
- AcpiGbl_MtpDecode [(SpecificFlags & 0x18) >> 3],
- AcpiGbl_TtpDecode [(SpecificFlags & 0x20) >> 5]);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmResourceSource
- *
- * PARAMETERS: Resource - Raw AML descriptor
- * MinimumLength - descriptor length without optional fields
- * ResourceLength
- *
- * RETURN: None
- *
- * DESCRIPTION: Dump optional ResourceSource fields of an address descriptor
- *
- ******************************************************************************/
-
-static void
-AcpiDmResourceSource (
- AML_RESOURCE *Resource,
- ACPI_SIZE MinimumTotalLength,
- UINT32 ResourceLength)
-{
- UINT8 *AmlResourceSource;
- UINT32 TotalLength;
-
-
- TotalLength = ResourceLength + sizeof (AML_RESOURCE_LARGE_HEADER);
-
- /* Check if the optional ResourceSource fields are present */
-
- if (TotalLength <= MinimumTotalLength)
- {
- /* The two optional fields are not used */
-
- AcpiOsPrintf (",, ");
- return;
- }
-
- /* Get a pointer to the ResourceSource */
-
- AmlResourceSource = ACPI_ADD_PTR (UINT8, Resource, MinimumTotalLength);
-
- /*
- * Always emit the ResourceSourceIndex (Byte)
- *
- * NOTE: Some ASL compilers always create a 0 byte (in the AML) for the
- * Index even if the String does not exist. Although this is in violation
- * of the ACPI specification, it is very important to emit ASL code that
- * can be compiled back to the identical AML. There may be fields and/or
- * indexes into the resource template buffer that are compiled to absolute
- * offsets, and these will be broken if the AML length is changed.
- */
- AcpiOsPrintf ("0x%2.2X,", (UINT32) AmlResourceSource[0]);
-
- /* Make sure that the ResourceSource string exists before dumping it */
-
- if (TotalLength > (MinimumTotalLength + 1))
- {
- AcpiOsPrintf (" ");
- AcpiUtPrintString ((char *) &AmlResourceSource[1], ACPI_UINT8_MAX);
- }
-
- AcpiOsPrintf (", ");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmWordDescriptor
- *
- * PARAMETERS: Resource - Pointer to the resource descriptor
- * Length - Length of the descriptor in bytes
- * Level - Current source code indentation level
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode a Word Address Space descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmWordDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level)
-{
-
- /* Dump resource name and flags */
-
- AcpiDmAddressCommon (Resource, ACPI_RESOURCE_TYPE_ADDRESS16, Level);
-
- /* Dump the 5 contiguous WORD values */
-
- AcpiDmAddressFields (&Resource->Address16.Granularity, 16, Level);
-
- /* The ResourceSource fields are optional */
-
- AcpiDmIndent (Level + 1);
- AcpiDmResourceSource (Resource, sizeof (AML_RESOURCE_ADDRESS16), Length);
-
- /* Insert a descriptor name */
-
- AcpiDmDescriptorName ();
-
- /* Type-specific flags */
-
- AcpiDmAddressFlags (Resource);
- AcpiOsPrintf (")\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDwordDescriptor
- *
- * PARAMETERS: Resource - Pointer to the resource descriptor
- * Length - Length of the descriptor in bytes
- * Level - Current source code indentation level
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode a DWord Address Space descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmDwordDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level)
-{
-
- /* Dump resource name and flags */
-
- AcpiDmAddressCommon (Resource, ACPI_RESOURCE_TYPE_ADDRESS32, Level);
-
- /* Dump the 5 contiguous DWORD values */
-
- AcpiDmAddressFields (&Resource->Address32.Granularity, 32, Level);
-
- /* The ResourceSource fields are optional */
-
- AcpiDmIndent (Level + 1);
- AcpiDmResourceSource (Resource, sizeof (AML_RESOURCE_ADDRESS32), Length);
-
- /* Insert a descriptor name */
-
- AcpiDmDescriptorName ();
-
- /* Type-specific flags */
-
- AcpiDmAddressFlags (Resource);
- AcpiOsPrintf (")\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmQwordDescriptor
- *
- * PARAMETERS: Resource - Pointer to the resource descriptor
- * Length - Length of the descriptor in bytes
- * Level - Current source code indentation level
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode a QWord Address Space descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmQwordDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level)
-{
-
- /* Dump resource name and flags */
-
- AcpiDmAddressCommon (Resource, ACPI_RESOURCE_TYPE_ADDRESS64, Level);
-
- /* Dump the 5 contiguous QWORD values */
-
- AcpiDmAddressFields (&Resource->Address64.Granularity, 64, Level);
-
- /* The ResourceSource fields are optional */
-
- AcpiDmIndent (Level + 1);
- AcpiDmResourceSource (Resource, sizeof (AML_RESOURCE_ADDRESS64), Length);
-
- /* Insert a descriptor name */
-
- AcpiDmDescriptorName ();
-
- /* Type-specific flags */
-
- AcpiDmAddressFlags (Resource);
- AcpiOsPrintf (")\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmExtendedDescriptor
- *
- * PARAMETERS: Resource - Pointer to the resource descriptor
- * Length - Length of the descriptor in bytes
- * Level - Current source code indentation level
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode a Extended Address Space descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmExtendedDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level)
-{
-
- /* Dump resource name and flags */
-
- AcpiDmAddressCommon (Resource, ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64, Level);
-
- /* Dump the 5 contiguous QWORD values */
-
- AcpiDmAddressFields (&Resource->ExtAddress64.Granularity, 64, Level);
-
- /* Extra field for this descriptor only */
-
- AcpiDmIndent (Level + 1);
- AcpiDmDumpInteger64 (Resource->ExtAddress64.TypeSpecific,
- "Type-Specific Attributes");
-
- /* Insert a descriptor name */
-
- AcpiDmIndent (Level + 1);
- AcpiDmDescriptorName ();
-
- /* Type-specific flags */
-
- AcpiDmAddressFlags (Resource);
- AcpiOsPrintf (")\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmMemory24Descriptor
- *
- * PARAMETERS: Resource - Pointer to the resource descriptor
- * Length - Length of the descriptor in bytes
- * Level - Current source code indentation level
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode a Memory24 descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmMemory24Descriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level)
-{
-
- /* Dump name and read/write flag */
-
- AcpiDmIndent (Level);
- AcpiOsPrintf ("Memory24 (%s,\n",
- AcpiGbl_RwDecode [Resource->Memory24.Flags & 1]);
-
- /* Dump the 4 contiguous WORD values */
-
- AcpiDmMemoryFields (&Resource->Memory24.Minimum, 16, Level);
-
- /* Insert a descriptor name */
-
- AcpiDmIndent (Level + 1);
- AcpiDmDescriptorName ();
- AcpiOsPrintf (")\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmMemory32Descriptor
- *
- * PARAMETERS: Resource - Pointer to the resource descriptor
- * Length - Length of the descriptor in bytes
- * Level - Current source code indentation level
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode a Memory32 descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmMemory32Descriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level)
-{
-
- /* Dump name and read/write flag */
-
- AcpiDmIndent (Level);
- AcpiOsPrintf ("Memory32 (%s,\n",
- AcpiGbl_RwDecode [Resource->Memory32.Flags & 1]);
-
- /* Dump the 4 contiguous DWORD values */
-
- AcpiDmMemoryFields (&Resource->Memory32.Minimum, 32, Level);
-
- /* Insert a descriptor name */
-
- AcpiDmIndent (Level + 1);
- AcpiDmDescriptorName ();
- AcpiOsPrintf (")\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmFixedMemory32Descriptor
- *
- * PARAMETERS: Resource - Pointer to the resource descriptor
- * Length - Length of the descriptor in bytes
- * Level - Current source code indentation level
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode a Fixed Memory32 descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmFixedMemory32Descriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level)
-{
-
- /* Dump name and read/write flag */
-
- AcpiDmIndent (Level);
- AcpiOsPrintf ("Memory32Fixed (%s,\n",
- AcpiGbl_RwDecode [Resource->FixedMemory32.Flags & 1]);
-
- AcpiDmIndent (Level + 1);
- AcpiDmDumpInteger32 (Resource->FixedMemory32.Address, "Address Base");
-
- AcpiDmIndent (Level + 1);
- AcpiDmDumpInteger32 (Resource->FixedMemory32.AddressLength, "Address Length");
-
- /* Insert a descriptor name */
-
- AcpiDmIndent (Level + 1);
- AcpiDmDescriptorName ();
- AcpiOsPrintf (")\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmGenericRegisterDescriptor
- *
- * PARAMETERS: Resource - Pointer to the resource descriptor
- * Length - Length of the descriptor in bytes
- * Level - Current source code indentation level
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode a Generic Register descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmGenericRegisterDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level)
-{
-
- AcpiDmIndent (Level);
- AcpiOsPrintf ("Register (");
- AcpiDmAddressSpace (Resource->GenericReg.AddressSpaceId);
- AcpiOsPrintf ("\n");
-
- AcpiDmIndent (Level + 1);
- AcpiDmDumpInteger8 (Resource->GenericReg.BitWidth, "Bit Width");
-
- AcpiDmIndent (Level + 1);
- AcpiDmDumpInteger8 (Resource->GenericReg.BitOffset, "Bit Offset");
-
- AcpiDmIndent (Level + 1);
- AcpiDmDumpInteger64 (Resource->GenericReg.Address, "Address");
-
- /* Optional field for ACPI 3.0 */
-
- AcpiDmIndent (Level + 1);
- if (Resource->GenericReg.AccessSize)
- {
- AcpiOsPrintf ("0x%2.2X, // %s\n",
- Resource->GenericReg.AccessSize, "Access Size");
- AcpiDmIndent (Level + 1);
- }
- else
- {
- AcpiOsPrintf (",");
- }
-
- /* DescriptorName was added for ACPI 3.0+ */
-
- AcpiDmDescriptorName ();
- AcpiOsPrintf (")\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmInterruptDescriptor
- *
- * PARAMETERS: Resource - Pointer to the resource descriptor
- * Length - Length of the descriptor in bytes
- * Level - Current source code indentation level
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode a extended Interrupt descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmInterruptDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level)
-{
- UINT32 i;
-
-
- AcpiDmIndent (Level);
- AcpiOsPrintf ("Interrupt (%s, %s, %s, %s, ",
- AcpiGbl_ConsumeDecode [(Resource->ExtendedIrq.Flags & 1)],
- AcpiGbl_HeDecode [(Resource->ExtendedIrq.Flags >> 1) & 1],
- AcpiGbl_LlDecode [(Resource->ExtendedIrq.Flags >> 2) & 1],
- AcpiGbl_ShrDecode [(Resource->ExtendedIrq.Flags >> 3) & 1]);
-
- /*
- * The ResourceSource fields are optional and appear after the interrupt
- * list. Must compute length based on length of the list. First xrupt
- * is included in the struct (reason for -1 below)
- */
- AcpiDmResourceSource (Resource,
- sizeof (AML_RESOURCE_EXTENDED_IRQ) +
- (Resource->ExtendedIrq.InterruptCount - 1) * sizeof (UINT32),
- Resource->ExtendedIrq.ResourceLength);
-
- /* Insert a descriptor name */
-
- AcpiDmDescriptorName ();
- AcpiOsPrintf (")\n");
-
- /* Dump the interrupt list */
-
- AcpiDmIndent (Level);
- AcpiOsPrintf ("{\n");
- for (i = 0; i < Resource->ExtendedIrq.InterruptCount; i++)
- {
- AcpiDmIndent (Level + 1);
- AcpiOsPrintf ("0x%8.8X,\n",
- (UINT32) Resource->ExtendedIrq.Interrupts[i]);
- }
-
- AcpiDmIndent (Level);
- AcpiOsPrintf ("}\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmVendorCommon
- *
- * PARAMETERS: Name - Descriptor name suffix
- * ByteData - Pointer to the vendor byte data
- * Length - Length of the byte data
- * Level - Current source code indentation level
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode a Vendor descriptor, both Large and Small
- *
- ******************************************************************************/
-
-void
-AcpiDmVendorCommon (
- char *Name,
- UINT8 *ByteData,
- UINT32 Length,
- UINT32 Level)
-{
-
- /* Dump macro name */
-
- AcpiDmIndent (Level);
- AcpiOsPrintf ("Vendor%s (", Name);
-
- /* Insert a descriptor name */
-
- AcpiDmDescriptorName ();
- AcpiOsPrintf (") // Length = 0x%.2X\n", Length);
-
- /* Dump the vendor bytes */
-
- AcpiDmIndent (Level);
- AcpiOsPrintf ("{\n");
-
- AcpiDmDisasmByteList (Level + 1, ByteData, Length);
-
- AcpiDmIndent (Level);
- AcpiOsPrintf ("}\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmVendorLargeDescriptor
- *
- * PARAMETERS: Resource - Pointer to the resource descriptor
- * Length - Length of the descriptor in bytes
- * Level - Current source code indentation level
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode a Vendor Large descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmVendorLargeDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level)
-{
-
- AcpiDmVendorCommon ("Long ",
- ACPI_ADD_PTR (UINT8, Resource, sizeof (AML_RESOURCE_LARGE_HEADER)),
- Length, Level);
-}
-
-#endif
-
diff --git a/sys/contrib/dev/acpica/dmresrcs.c b/sys/contrib/dev/acpica/dmresrcs.c
deleted file mode 100644
index b7df965..0000000
--- a/sys/contrib/dev/acpica/dmresrcs.c
+++ /dev/null
@@ -1,387 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dmresrcs.c - "Small" Resource Descriptor disassembly
- * $Revision: 1.16 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acdisasm.h>
-
-
-#ifdef ACPI_DISASSEMBLER
-
-#define _COMPONENT ACPI_CA_DEBUGGER
- ACPI_MODULE_NAME ("dbresrcs")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmIrqDescriptor
- *
- * PARAMETERS: Resource - Pointer to the resource descriptor
- * Length - Length of the descriptor in bytes
- * Level - Current source code indentation level
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode a IRQ descriptor, either Irq() or IrqNoFlags()
- *
- ******************************************************************************/
-
-void
-AcpiDmIrqDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level)
-{
-
- AcpiDmIndent (Level);
- AcpiOsPrintf ("%s (",
- AcpiGbl_IrqDecode [Length & 1]);
-
- /* Decode flags byte if present */
-
- if (Length & 1)
- {
- AcpiOsPrintf ("%s, %s, %s, ",
- AcpiGbl_HeDecode [Resource->Irq.Flags & 1],
- AcpiGbl_LlDecode [(Resource->Irq.Flags >> 3) & 1],
- AcpiGbl_ShrDecode [(Resource->Irq.Flags >> 4) & 1]);
- }
-
- /* Insert a descriptor name */
-
- AcpiDmDescriptorName ();
- AcpiOsPrintf (")\n");
-
- AcpiDmIndent (Level + 1);
- AcpiDmBitList (Resource->Irq.IrqMask);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDmaDescriptor
- *
- * PARAMETERS: Resource - Pointer to the resource descriptor
- * Length - Length of the descriptor in bytes
- * Level - Current source code indentation level
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode a DMA descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmDmaDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level)
-{
-
- AcpiDmIndent (Level);
- AcpiOsPrintf ("DMA (%s, %s, %s, ",
- AcpiGbl_TypDecode [(Resource->Dma.Flags >> 5) & 3],
- AcpiGbl_BmDecode [(Resource->Dma.Flags >> 2) & 1],
- AcpiGbl_SizDecode [(Resource->Dma.Flags >> 0) & 3]);
-
- /* Insert a descriptor name */
-
- AcpiDmDescriptorName ();
- AcpiOsPrintf (")\n");
-
- AcpiDmIndent (Level + 1);
- AcpiDmBitList (Resource->Dma.DmaChannelMask);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmIoDescriptor
- *
- * PARAMETERS: Resource - Pointer to the resource descriptor
- * Length - Length of the descriptor in bytes
- * Level - Current source code indentation level
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode an IO descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmIoDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level)
-{
-
- AcpiDmIndent (Level);
- AcpiOsPrintf ("IO (%s,\n",
- AcpiGbl_IoDecode [(Resource->Io.Flags & 1)]);
-
- AcpiDmIndent (Level + 1);
- AcpiDmDumpInteger16 (Resource->Io.Minimum, "Range Minimum");
-
- AcpiDmIndent (Level + 1);
- AcpiDmDumpInteger16 (Resource->Io.Maximum, "Range Maximum");
-
- AcpiDmIndent (Level + 1);
- AcpiDmDumpInteger8 (Resource->Io.Alignment, "Alignment");
-
- AcpiDmIndent (Level + 1);
- AcpiDmDumpInteger8 (Resource->Io.AddressLength, "Length");
-
- /* Insert a descriptor name */
-
- AcpiDmIndent (Level + 1);
- AcpiDmDescriptorName ();
- AcpiOsPrintf (")\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmFixedIoDescriptor
- *
- * PARAMETERS: Resource - Pointer to the resource descriptor
- * Length - Length of the descriptor in bytes
- * Level - Current source code indentation level
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode a Fixed IO descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmFixedIoDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level)
-{
-
- AcpiDmIndent (Level);
- AcpiOsPrintf ("FixedIO (\n");
-
- AcpiDmIndent (Level + 1);
- AcpiDmDumpInteger16 (Resource->FixedIo.Address, "Address");
-
- AcpiDmIndent (Level + 1);
- AcpiDmDumpInteger8 (Resource->FixedIo.AddressLength, "Length");
-
- /* Insert a descriptor name */
-
- AcpiDmIndent (Level + 1);
- AcpiDmDescriptorName ();
- AcpiOsPrintf (")\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmStartDependentDescriptor
- *
- * PARAMETERS: Resource - Pointer to the resource descriptor
- * Length - Length of the descriptor in bytes
- * Level - Current source code indentation level
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode a Start Dependendent functions descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmStartDependentDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level)
-{
-
- AcpiDmIndent (Level);
-
- if (Length & 1)
- {
- AcpiOsPrintf ("StartDependentFn (0x%2.2X, 0x%2.2X)\n",
- (UINT32) Resource->StartDpf.Flags & 3,
- (UINT32) (Resource->StartDpf.Flags >> 2) & 3);
- }
- else
- {
- AcpiOsPrintf ("StartDependentFnNoPri ()\n");
- }
-
- AcpiDmIndent (Level);
- AcpiOsPrintf ("{\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmEndDependentDescriptor
- *
- * PARAMETERS: Resource - Pointer to the resource descriptor
- * Length - Length of the descriptor in bytes
- * Level - Current source code indentation level
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode an End Dependent functions descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmEndDependentDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level)
-{
-
- AcpiDmIndent (Level);
- AcpiOsPrintf ("}\n");
- AcpiDmIndent (Level);
- AcpiOsPrintf ("EndDependentFn ()\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmVendorSmallDescriptor
- *
- * PARAMETERS: Resource - Pointer to the resource descriptor
- * Length - Length of the descriptor in bytes
- * Level - Current source code indentation level
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode a Vendor Small Descriptor
- *
- ******************************************************************************/
-
-void
-AcpiDmVendorSmallDescriptor (
- AML_RESOURCE *Resource,
- UINT32 Length,
- UINT32 Level)
-{
-
- AcpiDmVendorCommon ("Short",
- ACPI_ADD_PTR (UINT8, Resource, sizeof (AML_RESOURCE_SMALL_HEADER)),
- Length, Level);
-}
-
-#endif
-
diff --git a/sys/contrib/dev/acpica/dmutils.c b/sys/contrib/dev/acpica/dmutils.c
deleted file mode 100644
index e6340a2..0000000
--- a/sys/contrib/dev/acpica/dmutils.c
+++ /dev/null
@@ -1,493 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dmutils - AML disassembler utilities
- * $Revision: 1.25 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acdisasm.h>
-
-#ifdef ACPI_ASL_COMPILER
-#include <contrib/dev/acpica/acnamesp.h>
-#endif
-
-#ifdef ACPI_DISASSEMBLER
-
-#define _COMPONENT ACPI_CA_DEBUGGER
- ACPI_MODULE_NAME ("dmutils")
-
-
-ACPI_EXTERNAL_LIST *AcpiGbl_ExternalList = NULL;
-
-
-/* Data used in keeping track of fields */
-#if 0
-const char *AcpiGbl_FENames[] =
-{
- "skip",
- "?access?"
-}; /* FE = Field Element */
-#endif
-
-/* Operators for Match() */
-
-const char *AcpiGbl_MatchOps[] =
-{
- "MTR",
- "MEQ",
- "MLE",
- "MLT",
- "MGE",
- "MGT"
-};
-
-/* Access type decoding */
-
-const char *AcpiGbl_AccessTypes[] =
-{
- "AnyAcc",
- "ByteAcc",
- "WordAcc",
- "DWordAcc",
- "QWordAcc",
- "BufferAcc",
- "InvalidAccType",
- "InvalidAccType"
-};
-
-/* Lock rule decoding */
-
-const char *AcpiGbl_LockRule[] =
-{
- "NoLock",
- "Lock"
-};
-
-/* Update rule decoding */
-
-const char *AcpiGbl_UpdateRules[] =
-{
- "Preserve",
- "WriteAsOnes",
- "WriteAsZeros",
- "InvalidUpdateRule"
-};
-
-/* Strings used to decode resource descriptors */
-
-const char *AcpiGbl_WordDecode[] =
-{
- "Memory",
- "IO",
- "BusNumber",
- "UnknownResourceType"
-};
-
-const char *AcpiGbl_IrqDecode[] =
-{
- "IRQNoFlags",
- "IRQ"
-};
-
-
-#ifdef ACPI_ASL_COMPILER
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmAddToExternalList
- *
- * PARAMETERS: Path - Internal (AML) path to the object
- *
- * RETURN: None
- *
- * DESCRIPTION: Insert a new path into the list of Externals which will in
- * turn be emitted as an External() declaration in the disassembled
- * output.
- *
- ******************************************************************************/
-
-void
-AcpiDmAddToExternalList (
- char *Path,
- UINT8 Type,
- UINT32 Value)
-{
- char *ExternalPath;
- ACPI_EXTERNAL_LIST *NewExternal;
- ACPI_EXTERNAL_LIST *NextExternal;
- ACPI_EXTERNAL_LIST *PrevExternal = NULL;
- ACPI_STATUS Status;
-
-
- if (!Path)
- {
- return;
- }
-
- /* Externalize the ACPI path */
-
- Status = AcpiNsExternalizeName (ACPI_UINT32_MAX, Path,
- NULL, &ExternalPath);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- /* Ensure that we don't have duplicate externals */
-
- NextExternal = AcpiGbl_ExternalList;
- while (NextExternal)
- {
- /* Allow upgrade of type from ANY */
-
- if (!ACPI_STRCMP (ExternalPath, NextExternal->Path))
- {
- /* Duplicate method, check that the Value (ArgCount) is the same */
-
- if ((NextExternal->Type == ACPI_TYPE_METHOD) &&
- (NextExternal->Value != Value))
- {
- ACPI_ERROR ((AE_INFO, "Argument count mismatch for method %s %d %d",
- NextExternal->Path, NextExternal->Value, Value));
- }
- if (NextExternal->Type == ACPI_TYPE_ANY)
- {
- NextExternal->Type = Type;
- NextExternal->Value = Value;
- }
- ACPI_FREE (ExternalPath);
- return;
- }
- NextExternal = NextExternal->Next;
- }
-
- /* Allocate and init a new External() descriptor */
-
- NewExternal = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_EXTERNAL_LIST));
- NewExternal->InternalPath = Path;
- NewExternal->Path = ExternalPath;
- NewExternal->Type = Type;
- NewExternal->Value = Value;
- NewExternal->Length = (UINT16) ACPI_STRLEN (ExternalPath);
-
- /* Link the new descriptor into the global list, ordered by string length */
-
- NextExternal = AcpiGbl_ExternalList;
- while (NextExternal)
- {
- if (NewExternal->Length <= NextExternal->Length)
- {
- if (PrevExternal)
- {
- PrevExternal->Next = NewExternal;
- }
- else
- {
- AcpiGbl_ExternalList = NewExternal;
- }
-
- NewExternal->Next = NextExternal;
- return;
- }
-
- PrevExternal = NextExternal;
- NextExternal = NextExternal->Next;
- }
-
- if (PrevExternal)
- {
- PrevExternal->Next = NewExternal;
- }
- else
- {
- AcpiGbl_ExternalList = NewExternal;
- }
-}
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDecodeAttribute
- *
- * PARAMETERS: Attribute - Attribute field of AccessAs keyword
- *
- * RETURN: None
- *
- * DESCRIPTION: Decode the AccessAs attribute byte. (Mostly SMBus stuff)
- *
- ******************************************************************************/
-
-void
-AcpiDmDecodeAttribute (
- UINT8 Attribute)
-{
-
- switch (Attribute)
- {
- case AML_FIELD_ATTRIB_SMB_QUICK:
-
- AcpiOsPrintf ("SMBQuick");
- break;
-
- case AML_FIELD_ATTRIB_SMB_SEND_RCV:
-
- AcpiOsPrintf ("SMBSendReceive");
- break;
-
- case AML_FIELD_ATTRIB_SMB_BYTE:
-
- AcpiOsPrintf ("SMBByte");
- break;
-
- case AML_FIELD_ATTRIB_SMB_WORD:
-
- AcpiOsPrintf ("SMBWord");
- break;
-
- case AML_FIELD_ATTRIB_SMB_WORD_CALL:
-
- AcpiOsPrintf ("SMBProcessCall");
- break;
-
- case AML_FIELD_ATTRIB_SMB_BLOCK:
-
- AcpiOsPrintf ("SMBBlock");
- break;
-
- case AML_FIELD_ATTRIB_SMB_BLOCK_CALL:
-
- AcpiOsPrintf ("SMBBlockProcessCall");
- break;
-
- default:
-
- AcpiOsPrintf ("0x%.2X", Attribute);
- break;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmIndent
- *
- * PARAMETERS: Level - Current source code indentation level
- *
- * RETURN: None
- *
- * DESCRIPTION: Indent 4 spaces per indentation level.
- *
- ******************************************************************************/
-
-void
-AcpiDmIndent (
- UINT32 Level)
-{
-
- if (!Level)
- {
- return;
- }
-
- AcpiOsPrintf ("%*.s", ACPI_MUL_4 (Level), " ");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmCommaIfListMember
- *
- * PARAMETERS: Op - Current operator/operand
- *
- * RETURN: TRUE if a comma was inserted
- *
- * DESCRIPTION: Insert a comma if this Op is a member of an argument list.
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiDmCommaIfListMember (
- ACPI_PARSE_OBJECT *Op)
-{
-
- if (!Op->Common.Next)
- {
- return FALSE;
- }
-
- if (AcpiDmListType (Op->Common.Parent) & BLOCK_COMMA_LIST)
- {
- /* Check for a NULL target operand */
-
- if ((Op->Common.Next->Common.AmlOpcode == AML_INT_NAMEPATH_OP) &&
- (!Op->Common.Next->Common.Value.String))
- {
- /*
- * To handle the Divide() case where there are two optional
- * targets, look ahead one more op. If null, this null target
- * is the one and only target -- no comma needed. Otherwise,
- * we need a comma to prepare for the next target.
- */
- if (!Op->Common.Next->Common.Next)
- {
- return FALSE;
- }
- }
-
- if ((Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST) &&
- (!(Op->Common.Next->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST)))
- {
- return FALSE;
- }
-
- AcpiOsPrintf (", ");
- return (TRUE);
- }
-
- else if ((Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST) &&
- (Op->Common.Next->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST))
- {
- AcpiOsPrintf (", ");
- return (TRUE);
- }
-
- return (FALSE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmCommaIfFieldMember
- *
- * PARAMETERS: Op - Current operator/operand
- *
- * RETURN: None
- *
- * DESCRIPTION: Insert a comma if this Op is a member of a Field argument list.
- *
- ******************************************************************************/
-
-void
-AcpiDmCommaIfFieldMember (
- ACPI_PARSE_OBJECT *Op)
-{
-
- if (Op->Common.Next)
- {
- AcpiOsPrintf (", ");
- }
-}
-
-#endif
diff --git a/sys/contrib/dev/acpica/dmwalk.c b/sys/contrib/dev/acpica/dmwalk.c
deleted file mode 100644
index 12c74f4..0000000
--- a/sys/contrib/dev/acpica/dmwalk.c
+++ /dev/null
@@ -1,1043 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dmwalk - AML disassembly tree walk
- * $Revision: 1.33 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acdisasm.h>
-#include <contrib/dev/acpica/acdebug.h>
-
-
-#ifdef ACPI_DISASSEMBLER
-
-#define _COMPONENT ACPI_CA_DEBUGGER
- ACPI_MODULE_NAME ("dmwalk")
-
-
-#define DB_FULL_OP_INFO "[%4.4s] @%5.5X #%4.4X: "
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiDmDescendingOp (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-static ACPI_STATUS
-AcpiDmAscendingOp (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context);
-
-static UINT32
-AcpiDmBlockType (
- ACPI_PARSE_OBJECT *Op);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDisassemble
- *
- * PARAMETERS: WalkState - Current state
- * Origin - Starting object
- * NumOpcodes - Max number of opcodes to be displayed
- *
- * RETURN: None
- *
- * DESCRIPTION: Disassemble parser object and its children. This is the
- * main entry point of the disassembler.
- *
- ******************************************************************************/
-
-void
-AcpiDmDisassemble (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Origin,
- UINT32 NumOpcodes)
-{
- ACPI_PARSE_OBJECT *Op = Origin;
- ACPI_OP_WALK_INFO Info;
-
-
- if (!Op)
- {
- return;
- }
-
- Info.Flags = 0;
- Info.Level = 0;
- Info.Count = 0;
- Info.WalkState = WalkState;
- AcpiDmWalkParseTree (Op, AcpiDmDescendingOp, AcpiDmAscendingOp, &Info);
- return;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmWalkParseTree
- *
- * PARAMETERS: Op - Root Op object
- * DescendingCallback - Called during tree descent
- * AscendingCallback - Called during tree ascent
- * Context - To be passed to the callbacks
- *
- * RETURN: Status from callback(s)
- *
- * DESCRIPTION: Walk the entire parse tree.
- *
- ******************************************************************************/
-
-void
-AcpiDmWalkParseTree (
- ACPI_PARSE_OBJECT *Op,
- ASL_WALK_CALLBACK DescendingCallback,
- ASL_WALK_CALLBACK AscendingCallback,
- void *Context)
-{
- BOOLEAN NodePreviouslyVisited;
- ACPI_PARSE_OBJECT *StartOp = Op;
- ACPI_STATUS Status;
- ACPI_PARSE_OBJECT *Next;
- ACPI_OP_WALK_INFO *Info = Context;
-
-
- Info->Level = 0;
- NodePreviouslyVisited = FALSE;
-
- while (Op)
- {
- if (NodePreviouslyVisited)
- {
- if (AscendingCallback)
- {
- Status = AscendingCallback (Op, Info->Level, Context);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
- }
- }
- else
- {
- /* Let the callback process the node */
-
- Status = DescendingCallback (Op, Info->Level, Context);
- if (ACPI_SUCCESS (Status))
- {
- /* Visit children first, once */
-
- Next = AcpiPsGetArg (Op, 0);
- if (Next)
- {
- Info->Level++;
- Op = Next;
- continue;
- }
- }
- else if (Status != AE_CTRL_DEPTH)
- {
- /* Exit immediately on any error */
-
- return;
- }
- }
-
- /* Terminate walk at start op */
-
- if (Op == StartOp)
- {
- break;
- }
-
- /* No more children, re-visit this node */
-
- if (!NodePreviouslyVisited)
- {
- NodePreviouslyVisited = TRUE;
- continue;
- }
-
- /* No more children, visit peers */
-
- if (Op->Common.Next)
- {
- Op = Op->Common.Next;
- NodePreviouslyVisited = FALSE;
- }
- else
- {
- /* No peers, re-visit parent */
-
- if (Info->Level != 0 )
- {
- Info->Level--;
- }
-
- Op = Op->Common.Parent;
- NodePreviouslyVisited = TRUE;
- }
- }
-
- /* If we get here, the walk completed with no errors */
-
- return;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmBlockType
- *
- * PARAMETERS: Op - Object to be examined
- *
- * RETURN: BlockType - not a block, parens, braces, or even both.
- *
- * DESCRIPTION: Type of block for this op (parens or braces)
- *
- ******************************************************************************/
-
-static UINT32
-AcpiDmBlockType (
- ACPI_PARSE_OBJECT *Op)
-{
- const ACPI_OPCODE_INFO *OpInfo;
-
-
- if (!Op)
- {
- return (BLOCK_NONE);
- }
-
- switch (Op->Common.AmlOpcode)
- {
- case AML_ELSE_OP:
-
- return (BLOCK_BRACE);
-
- case AML_METHOD_OP:
- case AML_DEVICE_OP:
- case AML_SCOPE_OP:
- case AML_PROCESSOR_OP:
- case AML_POWER_RES_OP:
- case AML_THERMAL_ZONE_OP:
- case AML_IF_OP:
- case AML_WHILE_OP:
- case AML_FIELD_OP:
- case AML_INDEX_FIELD_OP:
- case AML_BANK_FIELD_OP:
-
- return (BLOCK_PAREN | BLOCK_BRACE);
-
- case AML_BUFFER_OP:
-
- if (Op->Common.DisasmOpcode == ACPI_DASM_UNICODE)
- {
- return (BLOCK_NONE);
- }
-
- /*lint -fallthrough */
-
- case AML_PACKAGE_OP:
- case AML_VAR_PACKAGE_OP:
-
- return (BLOCK_PAREN | BLOCK_BRACE);
-
- case AML_EVENT_OP:
-
- return (BLOCK_PAREN);
-
- default:
-
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- if (OpInfo->Flags & AML_HAS_ARGS)
- {
- return (BLOCK_PAREN);
- }
-
- return (BLOCK_NONE);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmListType
- *
- * PARAMETERS: Op - Object to be examined
- *
- * RETURN: ListType - has commas or not.
- *
- * DESCRIPTION: Type of block for this op (parens or braces)
- *
- ******************************************************************************/
-
-UINT32
-AcpiDmListType (
- ACPI_PARSE_OBJECT *Op)
-{
- const ACPI_OPCODE_INFO *OpInfo;
-
-
- if (!Op)
- {
- return (BLOCK_NONE);
- }
-
- switch (Op->Common.AmlOpcode)
- {
-
- case AML_ELSE_OP:
- case AML_METHOD_OP:
- case AML_DEVICE_OP:
- case AML_SCOPE_OP:
- case AML_POWER_RES_OP:
- case AML_PROCESSOR_OP:
- case AML_THERMAL_ZONE_OP:
- case AML_IF_OP:
- case AML_WHILE_OP:
- case AML_FIELD_OP:
- case AML_INDEX_FIELD_OP:
- case AML_BANK_FIELD_OP:
-
- return (BLOCK_NONE);
-
- case AML_BUFFER_OP:
- case AML_PACKAGE_OP:
- case AML_VAR_PACKAGE_OP:
-
- return (BLOCK_COMMA_LIST);
-
- default:
-
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- if (OpInfo->Flags & AML_HAS_ARGS)
- {
- return (BLOCK_COMMA_LIST);
- }
-
- return (BLOCK_NONE);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmDescendingOp
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: First visitation of a parse object during tree descent.
- * Decode opcode name and begin parameter list(s), if any.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDmDescendingOp (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- ACPI_OP_WALK_INFO *Info = Context;
- const ACPI_OPCODE_INFO *OpInfo;
- UINT32 Name;
- ACPI_PARSE_OBJECT *NextOp;
- ACPI_EXTERNAL_LIST *NextExternal;
-
-
- if (Op->Common.DisasmFlags & ACPI_PARSEOP_IGNORE)
- {
- /* Ignore this op -- it was handled elsewhere */
-
- return (AE_CTRL_DEPTH);
- }
-
- /* Level 0 is at the Definition Block level */
-
- if (Level == 0)
- {
- /* In verbose mode, print the AML offset, opcode and depth count */
-
- if (Info->WalkState)
- {
- VERBOSE_PRINT ((DB_FULL_OP_INFO,
- (Info->WalkState->MethodNode ?
- Info->WalkState->MethodNode->Name.Ascii : " "),
- Op->Common.AmlOffset, (UINT32) Op->Common.AmlOpcode));
- }
-
- if (Op->Common.AmlOpcode == AML_SCOPE_OP)
- {
- /* This is the beginning of the Definition Block */
-
- AcpiOsPrintf ("{\n");
-
- /* Emit all External() declarations here */
-
- if (AcpiGbl_ExternalList)
- {
- /*
- * Walk the list of externals (unresolved references)
- * found during parsing
- */
- while (AcpiGbl_ExternalList)
- {
- AcpiOsPrintf (" External (%s",
- AcpiGbl_ExternalList->Path);
-
- /* TBD: should be a lookup table */
-
- switch (AcpiGbl_ExternalList->Type)
- {
- case ACPI_TYPE_DEVICE:
- AcpiOsPrintf (", DeviceObj");
- break;
-
- case ACPI_TYPE_METHOD:
- AcpiOsPrintf (", MethodObj");
- break;
-
- case ACPI_TYPE_INTEGER:
- AcpiOsPrintf (", IntObj");
- break;
-
- default:
- break;
- }
-
- if (AcpiGbl_ExternalList->Type == ACPI_TYPE_METHOD)
- {
- AcpiOsPrintf (") // %d Arguments\n", AcpiGbl_ExternalList->Value);
- }
- else
- {
- AcpiOsPrintf (")\n");
- }
-
- NextExternal = AcpiGbl_ExternalList->Next;
- ACPI_FREE (AcpiGbl_ExternalList->Path);
- ACPI_FREE (AcpiGbl_ExternalList);
- AcpiGbl_ExternalList = NextExternal;
- }
- AcpiOsPrintf ("\n");
- }
-
- return (AE_OK);
- }
- }
- else if ((AcpiDmBlockType (Op->Common.Parent) & BLOCK_BRACE) &&
- (!(Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST)) &&
- (Op->Common.AmlOpcode != AML_INT_BYTELIST_OP))
- {
- /*
- * This is a first-level element of a term list,
- * indent a new line
- */
- AcpiDmIndent (Level);
- Info->LastLevel = Level;
- Info->Count = 0;
- }
-
- /*
- * This is an inexpensive mechanism to try and keep lines from getting
- * too long. When the limit is hit, start a new line at the previous
- * indent plus one. A better but more expensive mechanism would be to
- * keep track of the current column.
- */
- Info->Count++;
- if (Info->Count /*+Info->LastLevel*/ > 10)
- {
- Info->Count = 0;
- AcpiOsPrintf ("\n");
- AcpiDmIndent (Info->LastLevel + 1);
- }
-
- /* Print the opcode name */
-
- AcpiDmDisassembleOneOp (NULL, Info, Op);
-
- if (Op->Common.DisasmOpcode == ACPI_DASM_LNOT_PREFIX)
- {
- return (AE_OK);
- }
-
- if ((Op->Common.AmlOpcode == AML_NAME_OP) ||
- (Op->Common.AmlOpcode == AML_RETURN_OP))
- {
- Info->Level--;
- }
-
- /* Start the opcode argument list if necessary */
-
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-
- if ((OpInfo->Flags & AML_HAS_ARGS) ||
- (Op->Common.AmlOpcode == AML_EVENT_OP))
- {
- /* This opcode has an argument list */
-
- if (AcpiDmBlockType (Op) & BLOCK_PAREN)
- {
- AcpiOsPrintf (" (");
- }
-
- /* If this is a named opcode, print the associated name value */
-
- if (OpInfo->Flags & AML_NAMED)
- {
- switch (Op->Common.AmlOpcode)
- {
- case AML_ALIAS_OP:
-
- NextOp = AcpiPsGetDepthNext (NULL, Op);
- NextOp->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
- AcpiDmNamestring (NextOp->Common.Value.Name);
- AcpiOsPrintf (", ");
-
- /*lint -fallthrough */
-
- default:
-
- Name = AcpiPsGetName (Op);
- if (Op->Named.Path)
- {
- AcpiDmNamestring ((char *) Op->Named.Path);
- }
- else
- {
- AcpiDmDumpName ((char *) &Name);
- }
-
- if (Op->Common.AmlOpcode != AML_INT_NAMEDFIELD_OP)
- {
- if (AcpiGbl_DbOpt_verbose)
- {
- (void) AcpiPsDisplayObjectPathname (NULL, Op);
- }
- }
- break;
- }
-
- switch (Op->Common.AmlOpcode)
- {
- case AML_METHOD_OP:
-
- AcpiDmMethodFlags (Op);
- AcpiOsPrintf (")");
- break;
-
-
- case AML_NAME_OP:
-
- /* Check for _HID and related EISAID() */
-
- AcpiDmIsEisaId (Op);
- AcpiOsPrintf (", ");
- break;
-
-
- case AML_REGION_OP:
-
- AcpiDmRegionFlags (Op);
- break;
-
-
- case AML_POWER_RES_OP:
-
- /* Mark the next two Ops as part of the parameter list */
-
- AcpiOsPrintf (", ");
- NextOp = AcpiPsGetDepthNext (NULL, Op);
- NextOp->Common.DisasmFlags |= ACPI_PARSEOP_PARAMLIST;
-
- NextOp = NextOp->Common.Next;
- NextOp->Common.DisasmFlags |= ACPI_PARSEOP_PARAMLIST;
- return (AE_OK);
-
-
- case AML_PROCESSOR_OP:
-
- /* Mark the next three Ops as part of the parameter list */
-
- AcpiOsPrintf (", ");
- NextOp = AcpiPsGetDepthNext (NULL, Op);
- NextOp->Common.DisasmFlags |= ACPI_PARSEOP_PARAMLIST;
-
- NextOp = NextOp->Common.Next;
- NextOp->Common.DisasmFlags |= ACPI_PARSEOP_PARAMLIST;
-
- NextOp = NextOp->Common.Next;
- NextOp->Common.DisasmFlags |= ACPI_PARSEOP_PARAMLIST;
- return (AE_OK);
-
-
- case AML_MUTEX_OP:
- case AML_DATA_REGION_OP:
-
- AcpiOsPrintf (", ");
- return (AE_OK);
-
-
- case AML_EVENT_OP:
- case AML_ALIAS_OP:
-
- return (AE_OK);
-
-
- case AML_SCOPE_OP:
- case AML_DEVICE_OP:
- case AML_THERMAL_ZONE_OP:
-
- AcpiOsPrintf (")");
- break;
-
-
- default:
-
- AcpiOsPrintf ("*** Unhandled named opcode %X\n", Op->Common.AmlOpcode);
- break;
- }
- }
-
- else switch (Op->Common.AmlOpcode)
- {
- case AML_FIELD_OP:
- case AML_BANK_FIELD_OP:
- case AML_INDEX_FIELD_OP:
-
- Info->BitOffset = 0;
-
- /* Name of the parent OperationRegion */
-
- NextOp = AcpiPsGetDepthNext (NULL, Op);
- AcpiDmNamestring (NextOp->Common.Value.Name);
- AcpiOsPrintf (", ");
- NextOp->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
-
- switch (Op->Common.AmlOpcode)
- {
- case AML_BANK_FIELD_OP:
-
- /* Namestring - Bank Name */
-
- NextOp = AcpiPsGetDepthNext (NULL, NextOp);
- AcpiDmNamestring (NextOp->Common.Value.Name);
- NextOp->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
- AcpiOsPrintf (", ");
-
- /*
- * Bank Value. This is a TermArg in the middle of the parameter
- * list, must handle it here.
- *
- * Disassemble the TermArg parse tree. ACPI_PARSEOP_PARAMLIST
- * eliminates newline in the output.
- */
- NextOp = NextOp->Common.Next;
-
- Info->Flags = ACPI_PARSEOP_PARAMLIST;
- AcpiDmWalkParseTree (NextOp, AcpiDmDescendingOp, AcpiDmAscendingOp, Info);
- Info->Flags = 0;
- Info->Level = Level;
-
- NextOp->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
- AcpiOsPrintf (", ");
- break;
-
- case AML_INDEX_FIELD_OP:
-
- /* Namestring - Data Name */
-
- NextOp = AcpiPsGetDepthNext (NULL, NextOp);
- AcpiDmNamestring (NextOp->Common.Value.Name);
- AcpiOsPrintf (", ");
- NextOp->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE;
- break;
-
- default:
-
- break;
- }
-
- AcpiDmFieldFlags (NextOp);
- break;
-
-
- case AML_BUFFER_OP:
-
- /* The next op is the size parameter */
-
- NextOp = AcpiPsGetDepthNext (NULL, Op);
- if (!NextOp)
- {
- /* Single-step support */
-
- return (AE_OK);
- }
-
- if (Op->Common.DisasmOpcode == ACPI_DASM_RESOURCE)
- {
- /*
- * 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;
- NextOp = NextOp->Common.Next;
- AcpiOsPrintf (")\n");
- AcpiDmIndent (Info->Level);
- AcpiOsPrintf ("{\n");
- return (AE_OK);
- }
-
- /* Normal Buffer, mark size as in the parameter list */
-
- NextOp->Common.DisasmFlags |= ACPI_PARSEOP_PARAMLIST;
- return (AE_OK);
-
-
- case AML_VAR_PACKAGE_OP:
- case AML_IF_OP:
- case AML_WHILE_OP:
-
- /* The next op is the size or predicate parameter */
-
- NextOp = AcpiPsGetDepthNext (NULL, Op);
- if (NextOp)
- {
- NextOp->Common.DisasmFlags |= ACPI_PARSEOP_PARAMLIST;
- }
- return (AE_OK);
-
-
- case AML_PACKAGE_OP:
-
- /* The next op is the size or predicate parameter */
-
- NextOp = AcpiPsGetDepthNext (NULL, Op);
- if (NextOp)
- {
- NextOp->Common.DisasmFlags |= ACPI_PARSEOP_PARAMLIST;
- }
- return (AE_OK);
-
-
- case AML_MATCH_OP:
-
- AcpiDmMatchOp (Op);
- break;
-
-
- default:
-
- break;
- }
-
- if (AcpiDmBlockType (Op) & BLOCK_BRACE)
- {
- AcpiOsPrintf ("\n");
- AcpiDmIndent (Level);
- AcpiOsPrintf ("{\n");
- }
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDmAscendingOp
- *
- * PARAMETERS: ASL_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Second visitation of a parse object, during ascent of parse
- * tree. Close out any parameter lists and complete the opcode.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDmAscendingOp (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Level,
- void *Context)
-{
- ACPI_OP_WALK_INFO *Info = Context;
-
-
- if (Op->Common.DisasmFlags & ACPI_PARSEOP_IGNORE)
- {
- /* Ignore this op -- it was handled elsewhere */
-
- return (AE_OK);
- }
-
- if ((Level == 0) && (Op->Common.AmlOpcode == AML_SCOPE_OP))
- {
- /* Indicates the end of the current descriptor block (table) */
-
- AcpiOsPrintf ("}\n\n");
- return (AE_OK);
- }
-
- switch (AcpiDmBlockType (Op))
- {
- case BLOCK_PAREN:
-
- /* Completed an op that has arguments, add closing paren */
-
- AcpiOsPrintf (")");
-
- /* Could be a nested operator, check if comma required */
-
- if (!AcpiDmCommaIfListMember (Op))
- {
- if ((AcpiDmBlockType (Op->Common.Parent) & BLOCK_BRACE) &&
- (!(Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST)) &&
- (Op->Common.AmlOpcode != AML_INT_BYTELIST_OP))
- {
- /*
- * This is a first-level element of a term list
- * start a new line
- */
- if (!(Info->Flags & ACPI_PARSEOP_PARAMLIST))
- {
- AcpiOsPrintf ("\n");
- }
- }
- }
- break;
-
-
- case BLOCK_BRACE:
- case (BLOCK_BRACE | BLOCK_PAREN):
-
- /* Completed an op that has a term list, add closing brace */
-
- if (Op->Common.DisasmFlags & ACPI_PARSEOP_EMPTY_TERMLIST)
- {
- AcpiOsPrintf ("}");
- }
- else
- {
- AcpiDmIndent (Level);
- AcpiOsPrintf ("}");
- }
-
- AcpiDmCommaIfListMember (Op);
-
- if (AcpiDmBlockType (Op->Common.Parent) != BLOCK_PAREN)
- {
- AcpiOsPrintf ("\n");
- if (!(Op->Common.DisasmFlags & ACPI_PARSEOP_EMPTY_TERMLIST))
- {
- if ((Op->Common.AmlOpcode == AML_IF_OP) &&
- (Op->Common.Next) &&
- (Op->Common.Next->Common.AmlOpcode == AML_ELSE_OP))
- {
- break;
- }
-
- if ((AcpiDmBlockType (Op->Common.Parent) & BLOCK_BRACE) &&
- (!Op->Common.Next))
- {
- break;
- }
- AcpiOsPrintf ("\n");
- }
- }
- break;
-
-
- case BLOCK_NONE:
- default:
-
- /* Could be a nested operator, check if comma required */
-
- if (!AcpiDmCommaIfListMember (Op))
- {
- if ((AcpiDmBlockType (Op->Common.Parent) & BLOCK_BRACE) &&
- (!(Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST)) &&
- (Op->Common.AmlOpcode != AML_INT_BYTELIST_OP))
- {
- /*
- * This is a first-level element of a term list
- * start a new line
- */
- AcpiOsPrintf ("\n");
- }
- }
- else if (Op->Common.Parent)
- {
- switch (Op->Common.Parent->Common.AmlOpcode)
- {
- case AML_PACKAGE_OP:
- case AML_VAR_PACKAGE_OP:
-
- if (!(Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST))
- {
- AcpiOsPrintf ("\n");
- }
- break;
-
- default:
-
- break;
- }
- }
- break;
- }
-
- if (Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST)
- {
- if ((Op->Common.Next) &&
- (Op->Common.Next->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST))
- {
- return (AE_OK);
- }
-
- /*
- * Just completed a parameter node for something like "Buffer (param)".
- * Close the paren and open up the term list block with a brace
- */
- if (Op->Common.Next)
- {
- AcpiOsPrintf (")\n");
- AcpiDmIndent (Level - 1);
- AcpiOsPrintf ("{\n");
- }
- else
- {
- Op->Common.Parent->Common.DisasmFlags |=
- ACPI_PARSEOP_EMPTY_TERMLIST;
- AcpiOsPrintf (") {");
- }
- }
-
- if ((Op->Common.AmlOpcode == AML_NAME_OP) ||
- (Op->Common.AmlOpcode == AML_RETURN_OP))
- {
- Info->Level++;
- }
- return (AE_OK);
-}
-
-
-#endif /* ACPI_DISASSEMBLER */
diff --git a/sys/contrib/dev/acpica/dsfield.c b/sys/contrib/dev/acpica/dsfield.c
deleted file mode 100644
index a13fe1d..0000000
--- a/sys/contrib/dev/acpica/dsfield.c
+++ /dev/null
@@ -1,748 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dsfield - Dispatcher field routines
- * $Revision: 1.84 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __DSFIELD_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acparser.h>
-
-
-#define _COMPONENT ACPI_DISPATCHER
- ACPI_MODULE_NAME ("dsfield")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiDsGetFieldNames (
- ACPI_CREATE_FIELD_INFO *Info,
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Arg);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsCreateBufferField
- *
- * PARAMETERS: Op - Current parse op (CreateXXField)
- * WalkState - Current state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Execute the CreateField operators:
- * CreateBitFieldOp,
- * CreateByteFieldOp,
- * CreateWordFieldOp,
- * CreateDWordFieldOp,
- * CreateQWordFieldOp,
- * CreateFieldOp (all of which define a field in a buffer)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsCreateBufferField (
- ACPI_PARSE_OBJECT *Op,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_PARSE_OBJECT *Arg;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_OPERAND_OBJECT *SecondDesc = NULL;
- UINT32 Flags;
-
-
- ACPI_FUNCTION_TRACE (DsCreateBufferField);
-
-
- /* Get the NameString argument */
-
- if (Op->Common.AmlOpcode == AML_CREATE_FIELD_OP)
- {
- Arg = AcpiPsGetArg (Op, 3);
- }
- else
- {
- /* Create Bit/Byte/Word/Dword field */
-
- Arg = AcpiPsGetArg (Op, 2);
- }
-
- if (!Arg)
- {
- return_ACPI_STATUS (AE_AML_NO_OPERAND);
- }
-
- if (WalkState->DeferredNode)
- {
- Node = WalkState->DeferredNode;
- Status = AE_OK;
- }
- else
- {
- /*
- * During the load phase, we want to enter the name of the field into
- * the namespace. During the execute phase (when we evaluate the size
- * operand), we want to lookup the name
- */
- if (WalkState->ParseFlags & ACPI_PARSE_EXECUTE)
- {
- Flags = ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE;
- }
- else
- {
- Flags = ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE |
- ACPI_NS_ERROR_IF_FOUND;
- }
-
- /*
- * Enter the NameString into the namespace
- */
- Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String,
- ACPI_TYPE_ANY, ACPI_IMODE_LOAD_PASS1,
- Flags, WalkState, &(Node));
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR_NAMESPACE (Arg->Common.Value.String, Status);
- return_ACPI_STATUS (Status);
- }
- }
-
- /*
- * We could put the returned object (Node) on the object stack for later,
- * but for now, we will put it in the "op" object that the parser uses,
- * so we can get it again at the end of this scope
- */
- Op->Common.Node = Node;
-
- /*
- * If there is no object attached to the node, this node was just created
- * and we need to create the field object. Otherwise, this was a lookup
- * of an existing node and we don't want to create the field object again.
- */
- ObjDesc = AcpiNsGetAttachedObject (Node);
- if (ObjDesc)
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- /*
- * The Field definition is not fully parsed at this time.
- * (We must save the address of the AML for the buffer and index operands)
- */
-
- /* Create the buffer field object */
-
- ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_BUFFER_FIELD);
- if (!ObjDesc)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- /*
- * Remember location in AML stream of the field unit
- * opcode and operands -- since the buffer and index
- * operands must be evaluated.
- */
- SecondDesc = ObjDesc->Common.NextObject;
- SecondDesc->Extra.AmlStart = Op->Named.Data;
- SecondDesc->Extra.AmlLength = Op->Named.Length;
- ObjDesc->BufferField.Node = Node;
-
- /* Attach constructed field descriptors to parent node */
-
- Status = AcpiNsAttachObject (Node, ObjDesc, ACPI_TYPE_BUFFER_FIELD);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
-
-Cleanup:
-
- /* Remove local reference to the object */
-
- AcpiUtRemoveReference (ObjDesc);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsGetFieldNames
- *
- * PARAMETERS: Info - CreateField info structure
- * ` WalkState - Current method state
- * Arg - First parser arg for the field name list
- *
- * RETURN: Status
- *
- * DESCRIPTION: Process all named fields in a field declaration. Names are
- * entered into the namespace.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDsGetFieldNames (
- ACPI_CREATE_FIELD_INFO *Info,
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Arg)
-{
- ACPI_STATUS Status;
- ACPI_INTEGER Position;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsGetFieldNames, Info);
-
-
- /* First field starts at bit zero */
-
- Info->FieldBitPosition = 0;
-
- /* Process all elements in the field list (of parse nodes) */
-
- while (Arg)
- {
- /*
- * Three types of field elements are handled:
- * 1) Offset - specifies a bit offset
- * 2) AccessAs - changes the access mode
- * 3) Name - Enters a new named field into the namespace
- */
- switch (Arg->Common.AmlOpcode)
- {
- case AML_INT_RESERVEDFIELD_OP:
-
- Position = (ACPI_INTEGER) Info->FieldBitPosition
- + (ACPI_INTEGER) Arg->Common.Value.Size;
-
- if (Position > ACPI_UINT32_MAX)
- {
- ACPI_ERROR ((AE_INFO,
- "Bit offset within field too large (> 0xFFFFFFFF)"));
- return_ACPI_STATUS (AE_SUPPORT);
- }
-
- Info->FieldBitPosition = (UINT32) Position;
- break;
-
-
- case AML_INT_ACCESSFIELD_OP:
-
- /*
- * Get a new AccessType and AccessAttribute -- to be used for all
- * field units that follow, until field end or another AccessAs
- * keyword.
- *
- * In FieldFlags, preserve the flag bits other than the
- * ACCESS_TYPE bits
- */
- Info->FieldFlags = (UINT8)
- ((Info->FieldFlags & ~(AML_FIELD_ACCESS_TYPE_MASK)) |
- ((UINT8) ((UINT32) Arg->Common.Value.Integer >> 8)));
-
- Info->Attribute = (UINT8) (Arg->Common.Value.Integer);
- break;
-
-
- case AML_INT_NAMEDFIELD_OP:
-
- /* Lookup the name */
-
- Status = AcpiNsLookup (WalkState->ScopeInfo,
- (char *) &Arg->Named.Name,
- Info->FieldType, ACPI_IMODE_EXECUTE,
- ACPI_NS_DONT_OPEN_SCOPE,
- WalkState, &Info->FieldNode);
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR_NAMESPACE ((char *) &Arg->Named.Name, Status);
- if (Status != AE_ALREADY_EXISTS)
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Already exists, ignore error */
- }
- else
- {
- Arg->Common.Node = Info->FieldNode;
- Info->FieldBitLength = Arg->Common.Value.Size;
-
- /* Create and initialize an object for the new Field Node */
-
- Status = AcpiExPrepFieldValue (Info);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- /* Keep track of bit position for the next field */
-
- Position = (ACPI_INTEGER) Info->FieldBitPosition
- + (ACPI_INTEGER) Arg->Common.Value.Size;
-
- if (Position > ACPI_UINT32_MAX)
- {
- ACPI_ERROR ((AE_INFO,
- "Field [%4.4s] bit offset too large (> 0xFFFFFFFF)",
- ACPI_CAST_PTR (char, &Info->FieldNode->Name)));
- return_ACPI_STATUS (AE_SUPPORT);
- }
-
- Info->FieldBitPosition += Info->FieldBitLength;
- break;
-
-
- default:
-
- ACPI_ERROR ((AE_INFO,
- "Invalid opcode in field list: %X",
- Arg->Common.AmlOpcode));
- return_ACPI_STATUS (AE_AML_BAD_OPCODE);
- }
-
- Arg = Arg->Common.Next;
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsCreateField
- *
- * PARAMETERS: Op - Op containing the Field definition and args
- * RegionNode - Object for the containing Operation Region
- * ` WalkState - Current method state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create a new field in the specified operation region
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsCreateField (
- ACPI_PARSE_OBJECT *Op,
- ACPI_NAMESPACE_NODE *RegionNode,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status;
- ACPI_PARSE_OBJECT *Arg;
- ACPI_CREATE_FIELD_INFO Info;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsCreateField, Op);
-
-
- /* First arg is the name of the parent OpRegion (must already exist) */
-
- Arg = Op->Common.Value.Arg;
- if (!RegionNode)
- {
- Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.Name,
- ACPI_TYPE_REGION, ACPI_IMODE_EXECUTE,
- ACPI_NS_SEARCH_PARENT, WalkState, &RegionNode);
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR_NAMESPACE (Arg->Common.Value.Name, Status);
- return_ACPI_STATUS (Status);
- }
- }
-
- /* Second arg is the field flags */
-
- Arg = Arg->Common.Next;
- Info.FieldFlags = (UINT8) Arg->Common.Value.Integer;
- Info.Attribute = 0;
-
- /* Each remaining arg is a Named Field */
-
- Info.FieldType = ACPI_TYPE_LOCAL_REGION_FIELD;
- Info.RegionNode = RegionNode;
-
- Status = AcpiDsGetFieldNames (&Info, WalkState, Arg->Common.Next);
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsInitFieldObjects
- *
- * PARAMETERS: Op - Op containing the Field definition and args
- * ` WalkState - Current method state
- *
- * RETURN: Status
- *
- * DESCRIPTION: For each "Field Unit" name in the argument list that is
- * part of the field declaration, enter the name into the
- * namespace.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsInitFieldObjects (
- ACPI_PARSE_OBJECT *Op,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status;
- ACPI_PARSE_OBJECT *Arg = NULL;
- ACPI_NAMESPACE_NODE *Node;
- UINT8 Type = 0;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsInitFieldObjects, Op);
-
-
- switch (WalkState->Opcode)
- {
- case AML_FIELD_OP:
- Arg = AcpiPsGetArg (Op, 2);
- Type = ACPI_TYPE_LOCAL_REGION_FIELD;
- break;
-
- case AML_BANK_FIELD_OP:
- Arg = AcpiPsGetArg (Op, 4);
- Type = ACPI_TYPE_LOCAL_BANK_FIELD;
- break;
-
- case AML_INDEX_FIELD_OP:
- Arg = AcpiPsGetArg (Op, 3);
- Type = ACPI_TYPE_LOCAL_INDEX_FIELD;
- break;
-
- default:
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /*
- * Walk the list of entries in the FieldList
- */
- while (Arg)
- {
- /* Ignore OFFSET and ACCESSAS terms here */
-
- if (Arg->Common.AmlOpcode == AML_INT_NAMEDFIELD_OP)
- {
- Status = AcpiNsLookup (WalkState->ScopeInfo,
- (char *) &Arg->Named.Name,
- Type, ACPI_IMODE_LOAD_PASS1,
- ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE |
- ACPI_NS_ERROR_IF_FOUND,
- WalkState, &Node);
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR_NAMESPACE ((char *) &Arg->Named.Name, Status);
- if (Status != AE_ALREADY_EXISTS)
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Name already exists, just ignore this error */
-
- Status = AE_OK;
- }
-
- Arg->Common.Node = Node;
- }
-
- /* Move to next field in the list */
-
- Arg = Arg->Common.Next;
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsCreateBankField
- *
- * PARAMETERS: Op - Op containing the Field definition and args
- * RegionNode - Object for the containing Operation Region
- * ` WalkState - Current method state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create a new bank field in the specified operation region
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsCreateBankField (
- ACPI_PARSE_OBJECT *Op,
- ACPI_NAMESPACE_NODE *RegionNode,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status;
- ACPI_PARSE_OBJECT *Arg;
- ACPI_CREATE_FIELD_INFO Info;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsCreateBankField, Op);
-
-
- /* First arg is the name of the parent OpRegion (must already exist) */
-
- Arg = Op->Common.Value.Arg;
- if (!RegionNode)
- {
- Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.Name,
- ACPI_TYPE_REGION, ACPI_IMODE_EXECUTE,
- ACPI_NS_SEARCH_PARENT, WalkState, &RegionNode);
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR_NAMESPACE (Arg->Common.Value.Name, Status);
- return_ACPI_STATUS (Status);
- }
- }
-
- /* Second arg is the Bank Register (Field) (must already exist) */
-
- Arg = Arg->Common.Next;
- Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String,
- ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE,
- ACPI_NS_SEARCH_PARENT, WalkState, &Info.RegisterNode);
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR_NAMESPACE (Arg->Common.Value.String, Status);
- return_ACPI_STATUS (Status);
- }
-
- /* Third arg is the BankValue */
-
- /* TBD: This arg is a TermArg, not a constant, and must be evaluated */
-
- Arg = Arg->Common.Next;
-
- /* Currently, only the following constants are supported */
-
- switch (Arg->Common.AmlOpcode)
- {
- case AML_ZERO_OP:
- Info.BankValue = 0;
- break;
-
- case AML_ONE_OP:
- Info.BankValue = 1;
- break;
-
- case AML_BYTE_OP:
- case AML_WORD_OP:
- case AML_DWORD_OP:
- case AML_QWORD_OP:
- Info.BankValue = (UINT32) Arg->Common.Value.Integer;
- break;
-
- default:
- Info.BankValue = 0;
- ACPI_ERROR ((AE_INFO, "Non-constant BankValue for BankField is not implemented"));
- }
-
- /* Fourth arg is the field flags */
-
- Arg = Arg->Common.Next;
- Info.FieldFlags = (UINT8) Arg->Common.Value.Integer;
-
- /* Each remaining arg is a Named Field */
-
- Info.FieldType = ACPI_TYPE_LOCAL_BANK_FIELD;
- Info.RegionNode = RegionNode;
-
- Status = AcpiDsGetFieldNames (&Info, WalkState, Arg->Common.Next);
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsCreateIndexField
- *
- * PARAMETERS: Op - Op containing the Field definition and args
- * RegionNode - Object for the containing Operation Region
- * ` WalkState - Current method state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create a new index field in the specified operation region
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsCreateIndexField (
- ACPI_PARSE_OBJECT *Op,
- ACPI_NAMESPACE_NODE *RegionNode,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status;
- ACPI_PARSE_OBJECT *Arg;
- ACPI_CREATE_FIELD_INFO Info;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsCreateIndexField, Op);
-
-
- /* First arg is the name of the Index register (must already exist) */
-
- Arg = Op->Common.Value.Arg;
- Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String,
- ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE,
- ACPI_NS_SEARCH_PARENT, WalkState, &Info.RegisterNode);
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR_NAMESPACE (Arg->Common.Value.String, Status);
- return_ACPI_STATUS (Status);
- }
-
- /* Second arg is the data register (must already exist) */
-
- Arg = Arg->Common.Next;
- Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String,
- ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE,
- ACPI_NS_SEARCH_PARENT, WalkState, &Info.DataRegisterNode);
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR_NAMESPACE (Arg->Common.Value.String, Status);
- return_ACPI_STATUS (Status);
- }
-
- /* Next arg is the field flags */
-
- Arg = Arg->Common.Next;
- Info.FieldFlags = (UINT8) Arg->Common.Value.Integer;
-
- /* Each remaining arg is a Named Field */
-
- Info.FieldType = ACPI_TYPE_LOCAL_INDEX_FIELD;
- Info.RegionNode = RegionNode;
-
- Status = AcpiDsGetFieldNames (&Info, WalkState, Arg->Common.Next);
-
- return_ACPI_STATUS (Status);
-}
-
-
diff --git a/sys/contrib/dev/acpica/dsinit.c b/sys/contrib/dev/acpica/dsinit.c
deleted file mode 100644
index 32335e5..0000000
--- a/sys/contrib/dev/acpica/dsinit.c
+++ /dev/null
@@ -1,299 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dsinit - Object initialization namespace walk
- * $Revision: 1.28 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __DSINIT_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/actables.h>
-
-#define _COMPONENT ACPI_DISPATCHER
- ACPI_MODULE_NAME ("dsinit")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiDsInitOneObject (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *Context,
- void **ReturnValue);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsInitOneObject
- *
- * PARAMETERS: ObjHandle - Node for the object
- * Level - Current nesting level
- * Context - Points to a init info struct
- * ReturnValue - Not used
- *
- * RETURN: Status
- *
- * DESCRIPTION: Callback from AcpiWalkNamespace. Invoked for every object
- * within the namespace.
- *
- * Currently, the only objects that require initialization are:
- * 1) Methods
- * 2) Operation Regions
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDsInitOneObject (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *Context,
- void **ReturnValue)
-{
- ACPI_INIT_WALK_INFO *Info = (ACPI_INIT_WALK_INFO *) Context;
- ACPI_NAMESPACE_NODE *Node = (ACPI_NAMESPACE_NODE *) ObjHandle;
- ACPI_OBJECT_TYPE Type;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /*
- * We are only interested in NS nodes owned by the table that
- * was just loaded
- */
- if (Node->OwnerId != Info->OwnerId)
- {
- return (AE_OK);
- }
-
- Info->ObjectCount++;
-
- /* And even then, we are only interested in a few object types */
-
- Type = AcpiNsGetType (ObjHandle);
-
- switch (Type)
- {
- case ACPI_TYPE_REGION:
-
- Status = AcpiDsInitializeRegion (ObjHandle);
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "During Region initialization %p [%4.4s]",
- ObjHandle, AcpiUtGetNodeName (ObjHandle)));
- }
-
- Info->OpRegionCount++;
- break;
-
-
- case ACPI_TYPE_METHOD:
-
- Info->MethodCount++;
- break;
-
-
- case ACPI_TYPE_DEVICE:
-
- Info->DeviceCount++;
- break;
-
-
- default:
- break;
- }
-
- /*
- * We ignore errors from above, and always return OK, since
- * we don't want to abort the walk on a single error.
- */
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsInitializeObjects
- *
- * PARAMETERS: TableDesc - Descriptor for parent ACPI table
- * StartNode - Root of subtree to be initialized.
- *
- * RETURN: Status
- *
- * DESCRIPTION: Walk the namespace starting at "StartNode" and perform any
- * necessary initialization on the objects found therein
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsInitializeObjects (
- ACPI_NATIVE_UINT TableIndex,
- ACPI_NAMESPACE_NODE *StartNode)
-{
- ACPI_STATUS Status;
- ACPI_INIT_WALK_INFO Info;
- ACPI_TABLE_HEADER *Table;
- ACPI_OWNER_ID OwnerId;
-
-
- ACPI_FUNCTION_TRACE (DsInitializeObjects);
-
-
- Status = AcpiTbGetOwnerId (TableIndex, &OwnerId);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "**** Starting initialization of namespace objects ****\n"));
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, "Parsing all Control Methods:"));
-
- Info.MethodCount = 0;
- Info.OpRegionCount = 0;
- Info.ObjectCount = 0;
- Info.DeviceCount = 0;
- Info.TableIndex = TableIndex;
- Info.OwnerId = OwnerId;
-
- /* Walk entire namespace from the supplied root */
-
- Status = AcpiWalkNamespace (ACPI_TYPE_ANY, StartNode, ACPI_UINT32_MAX,
- AcpiDsInitOneObject, &Info, NULL);
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status, "During WalkNamespace"));
- }
-
- Status = AcpiGetTableByIndex (TableIndex, &Table);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
- "\nTable [%4.4s](id %4.4X) - %hd Objects with %hd Devices %hd Methods %hd Regions\n",
- Table->Signature, OwnerId, Info.ObjectCount,
- Info.DeviceCount, Info.MethodCount, Info.OpRegionCount));
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "%hd Methods, %hd Regions\n", Info.MethodCount, Info.OpRegionCount));
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
diff --git a/sys/contrib/dev/acpica/dsmethod.c b/sys/contrib/dev/acpica/dsmethod.c
deleted file mode 100644
index 514f3a1..0000000
--- a/sys/contrib/dev/acpica/dsmethod.c
+++ /dev/null
@@ -1,754 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dsmethod - Parser/Interpreter interface - control method parsing
- * $Revision: 1.136 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __DSMETHOD_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acdisasm.h>
-
-
-#define _COMPONENT ACPI_DISPATCHER
- ACPI_MODULE_NAME ("dsmethod")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiDsCreateMethodMutex (
- ACPI_OPERAND_OBJECT *MethodDesc);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsMethodError
- *
- * PARAMETERS: Status - Execution status
- * WalkState - Current state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Called on method error. Invoke the global exception handler if
- * present, dump the method data if the disassembler is configured
- *
- * Note: Allows the exception handler to change the status code
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsMethodError (
- ACPI_STATUS Status,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_FUNCTION_ENTRY ();
-
-
- /* Ignore AE_OK and control exception codes */
-
- if (ACPI_SUCCESS (Status) ||
- (Status & AE_CODE_CONTROL))
- {
- return (Status);
- }
-
- /* Invoke the global exception handler */
-
- if (AcpiGbl_ExceptionHandler)
- {
- /* Exit the interpreter, allow handler to execute methods */
-
- AcpiExExitInterpreter ();
-
- /*
- * Handler can map the exception code to anything it wants, including
- * AE_OK, in which case the executing method will not be aborted.
- */
- Status = AcpiGbl_ExceptionHandler (Status,
- WalkState->MethodNode ?
- WalkState->MethodNode->Name.Integer : 0,
- WalkState->Opcode, WalkState->AmlOffset, NULL);
- (void) AcpiExEnterInterpreter ();
- }
-
-#ifdef ACPI_DISASSEMBLER
- if (ACPI_FAILURE (Status))
- {
- /* Display method locals/args if disassembler is present */
-
- AcpiDmDumpMethodInfo (Status, WalkState, WalkState->Op);
- }
-#endif
-
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsCreateMethodMutex
- *
- * PARAMETERS: ObjDesc - The method object
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create a mutex object for a serialized control method
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDsCreateMethodMutex (
- ACPI_OPERAND_OBJECT *MethodDesc)
-{
- ACPI_OPERAND_OBJECT *MutexDesc;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (DsCreateMethodMutex);
-
-
- /* Create the new mutex object */
-
- MutexDesc = AcpiUtCreateInternalObject (ACPI_TYPE_MUTEX);
- if (!MutexDesc)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* Create the actual OS Mutex */
-
- Status = AcpiOsCreateMutex (&MutexDesc->Mutex.OsMutex);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- MutexDesc->Mutex.SyncLevel = MethodDesc->Method.SyncLevel;
- MethodDesc->Method.Mutex = MutexDesc;
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsBeginMethodExecution
- *
- * PARAMETERS: MethodNode - Node of the method
- * ObjDesc - The method object
- * WalkState - current state, NULL if not yet executing
- * a method.
- *
- * RETURN: Status
- *
- * DESCRIPTION: Prepare a method for execution. Parses the method if necessary,
- * increments the thread count, and waits at the method semaphore
- * for clearance to execute.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsBeginMethodExecution (
- ACPI_NAMESPACE_NODE *MethodNode,
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsBeginMethodExecution, MethodNode);
-
-
- if (!MethodNode)
- {
- return_ACPI_STATUS (AE_NULL_ENTRY);
- }
-
- /* Prevent wraparound of thread count */
-
- if (ObjDesc->Method.ThreadCount == ACPI_UINT8_MAX)
- {
- ACPI_ERROR ((AE_INFO,
- "Method reached maximum reentrancy limit (255)"));
- return_ACPI_STATUS (AE_AML_METHOD_LIMIT);
- }
-
- /*
- * If this method is serialized, we need to acquire the method mutex.
- */
- if (ObjDesc->Method.MethodFlags & AML_METHOD_SERIALIZED)
- {
- /*
- * Create a mutex for the method if it is defined to be Serialized
- * and a mutex has not already been created. We defer the mutex creation
- * until a method is actually executed, to minimize the object count
- */
- if (!ObjDesc->Method.Mutex)
- {
- Status = AcpiDsCreateMethodMutex (ObjDesc);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- /*
- * The CurrentSyncLevel (per-thread) must be less than or equal to
- * the sync level of the method. This mechanism provides some
- * deadlock prevention
- *
- * Top-level method invocation has no walk state at this point
- */
- if (WalkState &&
- (WalkState->Thread->CurrentSyncLevel > ObjDesc->Method.Mutex->Mutex.SyncLevel))
- {
- ACPI_ERROR ((AE_INFO,
- "Cannot acquire Mutex for method [%4.4s], current SyncLevel is too large (%d)",
- AcpiUtGetNodeName (MethodNode),
- WalkState->Thread->CurrentSyncLevel));
-
- return_ACPI_STATUS (AE_AML_MUTEX_ORDER);
- }
-
- /*
- * Obtain the method mutex if necessary. Do not acquire mutex for a
- * recursive call.
- */
- if (!WalkState ||
- !ObjDesc->Method.Mutex->Mutex.ThreadId ||
- (WalkState->Thread->ThreadId != ObjDesc->Method.Mutex->Mutex.ThreadId))
- {
- /*
- * Acquire the method mutex. This releases the interpreter if we
- * block (and reacquires it before it returns)
- */
- Status = AcpiExSystemWaitMutex (ObjDesc->Method.Mutex->Mutex.OsMutex,
- ACPI_WAIT_FOREVER);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Update the mutex and walk info and save the original SyncLevel */
-
- if (WalkState)
- {
- ObjDesc->Method.Mutex->Mutex.OriginalSyncLevel =
- WalkState->Thread->CurrentSyncLevel;
-
- ObjDesc->Method.Mutex->Mutex.ThreadId = WalkState->Thread->ThreadId;
- WalkState->Thread->CurrentSyncLevel = ObjDesc->Method.SyncLevel;
- }
- else
- {
- ObjDesc->Method.Mutex->Mutex.OriginalSyncLevel =
- ObjDesc->Method.Mutex->Mutex.SyncLevel;
- }
- }
-
- /* Always increase acquisition depth */
-
- ObjDesc->Method.Mutex->Mutex.AcquisitionDepth++;
- }
-
- /*
- * Allocate an Owner ID for this method, only if this is the first thread
- * to begin concurrent execution. We only need one OwnerId, even if the
- * method is invoked recursively.
- */
- if (!ObjDesc->Method.OwnerId)
- {
- Status = AcpiUtAllocateOwnerId (&ObjDesc->Method.OwnerId);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
- }
-
- /*
- * Increment the method parse tree thread count since it has been
- * reentered one more time (even if it is the same thread)
- */
- ObjDesc->Method.ThreadCount++;
- return_ACPI_STATUS (Status);
-
-
-Cleanup:
- /* On error, must release the method mutex (if present) */
-
- if (ObjDesc->Method.Mutex)
- {
- AcpiOsReleaseMutex (ObjDesc->Method.Mutex->Mutex.OsMutex);
- }
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsCallControlMethod
- *
- * PARAMETERS: Thread - Info for this thread
- * ThisWalkState - Current walk state
- * Op - Current Op to be walked
- *
- * RETURN: Status
- *
- * DESCRIPTION: Transfer execution to a called control method
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsCallControlMethod (
- ACPI_THREAD_STATE *Thread,
- ACPI_WALK_STATE *ThisWalkState,
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *MethodNode;
- ACPI_WALK_STATE *NextWalkState = NULL;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_EVALUATE_INFO *Info;
- UINT32 i;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsCallControlMethod, ThisWalkState);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Calling method %p, currentstate=%p\n",
- ThisWalkState->PrevOp, ThisWalkState));
-
- /*
- * Get the namespace entry for the control method we are about to call
- */
- MethodNode = ThisWalkState->MethodCallNode;
- if (!MethodNode)
- {
- return_ACPI_STATUS (AE_NULL_ENTRY);
- }
-
- ObjDesc = AcpiNsGetAttachedObject (MethodNode);
- if (!ObjDesc)
- {
- return_ACPI_STATUS (AE_NULL_OBJECT);
- }
-
- /* Init for new method, possibly wait on method mutex */
-
- Status = AcpiDsBeginMethodExecution (MethodNode, ObjDesc,
- ThisWalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Begin method parse/execution. Create a new walk state */
-
- NextWalkState = AcpiDsCreateWalkState (ObjDesc->Method.OwnerId,
- NULL, ObjDesc, Thread);
- if (!NextWalkState)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- /*
- * The resolved arguments were put on the previous walk state's operand
- * stack. Operands on the previous walk state stack always
- * start at index 0. Also, null terminate the list of arguments
- */
- ThisWalkState->Operands [ThisWalkState->NumOperands] = NULL;
-
- /*
- * Allocate and initialize the evaluation information block
- * TBD: this is somewhat inefficient, should change interface to
- * DsInitAmlWalk. For now, keeps this struct off the CPU stack
- */
- Info = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_EVALUATE_INFO));
- if (!Info)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- Info->Parameters = &ThisWalkState->Operands[0];
- Info->ParameterType = ACPI_PARAM_ARGS;
-
- Status = AcpiDsInitAmlWalk (NextWalkState, NULL, MethodNode,
- ObjDesc->Method.AmlStart, ObjDesc->Method.AmlLength,
- Info, ACPI_IMODE_EXECUTE);
-
- ACPI_FREE (Info);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- /*
- * Delete the operands on the previous walkstate operand stack
- * (they were copied to new objects)
- */
- for (i = 0; i < ObjDesc->Method.ParamCount; i++)
- {
- AcpiUtRemoveReference (ThisWalkState->Operands [i]);
- ThisWalkState->Operands [i] = NULL;
- }
-
- /* Clear the operand stack */
-
- ThisWalkState->NumOperands = 0;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "**** Begin nested execution of [%4.4s] **** WalkState=%p\n",
- MethodNode->Name.Ascii, NextWalkState));
-
- /* Invoke an internal method if necessary */
-
- if (ObjDesc->Method.MethodFlags & AML_METHOD_INTERNAL_ONLY)
- {
- Status = ObjDesc->Method.Implementation (NextWalkState);
- }
-
- return_ACPI_STATUS (Status);
-
-
-Cleanup:
-
- /* On error, we must terminate the method properly */
-
- AcpiDsTerminateControlMethod (ObjDesc, NextWalkState);
- if (NextWalkState)
- {
- AcpiDsDeleteWalkState (NextWalkState);
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsRestartControlMethod
- *
- * PARAMETERS: WalkState - State for preempted method (caller)
- * ReturnDesc - Return value from the called method
- *
- * RETURN: Status
- *
- * DESCRIPTION: Restart a method that was preempted by another (nested) method
- * invocation. Handle the return value (if any) from the callee.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsRestartControlMethod (
- ACPI_WALK_STATE *WalkState,
- ACPI_OPERAND_OBJECT *ReturnDesc)
-{
- ACPI_STATUS Status;
- int SameAsImplicitReturn;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsRestartControlMethod, WalkState);
-
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "****Restart [%4.4s] Op %p ReturnValueFromCallee %p\n",
- AcpiUtGetNodeName (WalkState->MethodNode),
- WalkState->MethodCallOp, ReturnDesc));
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- " ReturnFromThisMethodUsed?=%X ResStack %p Walk %p\n",
- WalkState->ReturnUsed,
- WalkState->Results, WalkState));
-
- /* Did the called method return a value? */
-
- if (ReturnDesc)
- {
- /* Is the implicit return object the same as the return desc? */
-
- SameAsImplicitReturn = (WalkState->ImplicitReturnObj == ReturnDesc);
-
- /* Are we actually going to use the return value? */
-
- if (WalkState->ReturnUsed)
- {
- /* Save the return value from the previous method */
-
- Status = AcpiDsResultPush (ReturnDesc, WalkState);
- if (ACPI_FAILURE (Status))
- {
- AcpiUtRemoveReference (ReturnDesc);
- return_ACPI_STATUS (Status);
- }
-
- /*
- * Save as THIS method's return value in case it is returned
- * immediately to yet another method
- */
- WalkState->ReturnDesc = ReturnDesc;
- }
-
- /*
- * The following code is the optional support for the so-called
- * "implicit return". Some AML code assumes that the last value of the
- * method is "implicitly" returned to the caller, in the absence of an
- * explicit return value.
- *
- * Just save the last result of the method as the return value.
- *
- * NOTE: this is optional because the ASL language does not actually
- * support this behavior.
- */
- else if (!AcpiDsDoImplicitReturn (ReturnDesc, WalkState, FALSE) ||
- SameAsImplicitReturn)
- {
- /*
- * Delete the return value if it will not be used by the
- * calling method or remove one reference if the explicit return
- * is the same as the implicit return value.
- */
- AcpiUtRemoveReference (ReturnDesc);
- }
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsTerminateControlMethod
- *
- * PARAMETERS: MethodDesc - Method object
- * WalkState - State associated with the method
- *
- * RETURN: None
- *
- * DESCRIPTION: Terminate a control method. Delete everything that the method
- * created, delete all locals and arguments, and delete the parse
- * tree if requested.
- *
- * MUTEX: Interpreter is locked
- *
- ******************************************************************************/
-
-void
-AcpiDsTerminateControlMethod (
- ACPI_OPERAND_OBJECT *MethodDesc,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsTerminateControlMethod, WalkState);
-
-
- /* MethodDesc is required, WalkState is optional */
-
- if (!MethodDesc)
- {
- return_VOID;
- }
-
- if (WalkState)
- {
- /* Delete all arguments and locals */
-
- AcpiDsMethodDataDeleteAll (WalkState);
- }
-
- /*
- * If method is serialized, release the mutex and restore the
- * current sync level for this thread
- */
- if (MethodDesc->Method.Mutex)
- {
- /* Acquisition Depth handles recursive calls */
-
- MethodDesc->Method.Mutex->Mutex.AcquisitionDepth--;
- if (!MethodDesc->Method.Mutex->Mutex.AcquisitionDepth)
- {
- WalkState->Thread->CurrentSyncLevel =
- MethodDesc->Method.Mutex->Mutex.OriginalSyncLevel;
-
- AcpiOsReleaseMutex (MethodDesc->Method.Mutex->Mutex.OsMutex);
- MethodDesc->Method.Mutex->Mutex.ThreadId = 0;
- }
- }
-
- if (WalkState)
- {
- /*
- * Delete any namespace objects created anywhere within
- * the namespace by the execution of this method
- */
- AcpiNsDeleteNamespaceByOwner (MethodDesc->Method.OwnerId);
- }
-
- /* Decrement the thread count on the method */
-
- if (MethodDesc->Method.ThreadCount)
- {
- MethodDesc->Method.ThreadCount--;
- }
- else
- {
- ACPI_ERROR ((AE_INFO,
- "Invalid zero thread count in method"));
- }
-
- /* Are there any other threads currently executing this method? */
-
- if (MethodDesc->Method.ThreadCount)
- {
- /*
- * Additional threads. Do not release the OwnerId in this case,
- * we immediately reuse it for the next thread executing this method
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "*** Completed execution of one thread, %d threads remaining\n",
- MethodDesc->Method.ThreadCount));
- }
- else
- {
- /* This is the only executing thread for this method */
-
- /*
- * Support to dynamically change a method from NotSerialized to
- * Serialized if it appears that the method is incorrectly written and
- * does not support multiple thread execution. The best example of this
- * is if such a method creates namespace objects and blocks. A second
- * thread will fail with an AE_ALREADY_EXISTS exception
- *
- * This code is here because we must wait until the last thread exits
- * before creating the synchronization semaphore.
- */
- if ((MethodDesc->Method.MethodFlags & AML_METHOD_SERIALIZED) &&
- (!MethodDesc->Method.Mutex))
- {
- Status = AcpiDsCreateMethodMutex (MethodDesc);
- }
-
- /* No more threads, we can free the OwnerId */
-
- AcpiUtReleaseOwnerId (&MethodDesc->Method.OwnerId);
- }
-
- return_VOID;
-}
-
-
diff --git a/sys/contrib/dev/acpica/dsmthdat.c b/sys/contrib/dev/acpica/dsmthdat.c
deleted file mode 100644
index 10c1a9b..0000000
--- a/sys/contrib/dev/acpica/dsmthdat.c
+++ /dev/null
@@ -1,844 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dsmthdat - control method arguments and local variables
- * $Revision: 1.92 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __DSMTHDAT_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acinterp.h>
-
-
-#define _COMPONENT ACPI_DISPATCHER
- ACPI_MODULE_NAME ("dsmthdat")
-
-/* Local prototypes */
-
-static void
-AcpiDsMethodDataDeleteValue (
- UINT16 Opcode,
- UINT32 Index,
- ACPI_WALK_STATE *WalkState);
-
-static ACPI_STATUS
-AcpiDsMethodDataSetValue (
- UINT16 Opcode,
- UINT32 Index,
- ACPI_OPERAND_OBJECT *Object,
- ACPI_WALK_STATE *WalkState);
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-ACPI_OBJECT_TYPE
-AcpiDsMethodDataGetType (
- UINT16 Opcode,
- UINT32 Index,
- ACPI_WALK_STATE *WalkState);
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsMethodDataInit
- *
- * PARAMETERS: WalkState - Current walk state object
- *
- * RETURN: Status
- *
- * DESCRIPTION: Initialize the data structures that hold the method's arguments
- * and locals. The data struct is an array of namespace nodes for
- * each - this allows RefOf and DeRefOf to work properly for these
- * special data types.
- *
- * NOTES: WalkState fields are initialized to zero by the
- * ACPI_ALLOCATE_ZEROED().
- *
- * A pseudo-Namespace Node is assigned to each argument and local
- * so that RefOf() can return a pointer to the Node.
- *
- ******************************************************************************/
-
-void
-AcpiDsMethodDataInit (
- ACPI_WALK_STATE *WalkState)
-{
- UINT32 i;
-
-
- ACPI_FUNCTION_TRACE (DsMethodDataInit);
-
-
- /* Init the method arguments */
-
- for (i = 0; i < ACPI_METHOD_NUM_ARGS; i++)
- {
- ACPI_MOVE_32_TO_32 (&WalkState->Arguments[i].Name, NAMEOF_ARG_NTE);
- WalkState->Arguments[i].Name.Integer |= (i << 24);
- WalkState->Arguments[i].DescriptorType = ACPI_DESC_TYPE_NAMED;
- WalkState->Arguments[i].Type = ACPI_TYPE_ANY;
- WalkState->Arguments[i].Flags =
- ANOBJ_END_OF_PEER_LIST | ANOBJ_METHOD_ARG;
- }
-
- /* Init the method locals */
-
- for (i = 0; i < ACPI_METHOD_NUM_LOCALS; i++)
- {
- ACPI_MOVE_32_TO_32 (&WalkState->LocalVariables[i].Name, NAMEOF_LOCAL_NTE);
-
- WalkState->LocalVariables[i].Name.Integer |= (i << 24);
- WalkState->LocalVariables[i].DescriptorType = ACPI_DESC_TYPE_NAMED;
- WalkState->LocalVariables[i].Type = ACPI_TYPE_ANY;
- WalkState->LocalVariables[i].Flags =
- ANOBJ_END_OF_PEER_LIST | ANOBJ_METHOD_LOCAL;
- }
-
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsMethodDataDeleteAll
- *
- * PARAMETERS: WalkState - Current walk state object
- *
- * RETURN: None
- *
- * DESCRIPTION: Delete method locals and arguments. Arguments are only
- * deleted if this method was called from another method.
- *
- ******************************************************************************/
-
-void
-AcpiDsMethodDataDeleteAll (
- ACPI_WALK_STATE *WalkState)
-{
- UINT32 Index;
-
-
- ACPI_FUNCTION_TRACE (DsMethodDataDeleteAll);
-
-
- /* Detach the locals */
-
- for (Index = 0; Index < ACPI_METHOD_NUM_LOCALS; Index++)
- {
- if (WalkState->LocalVariables[Index].Object)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Deleting Local%d=%p\n",
- Index, WalkState->LocalVariables[Index].Object));
-
- /* Detach object (if present) and remove a reference */
-
- AcpiNsDetachObject (&WalkState->LocalVariables[Index]);
- }
- }
-
- /* Detach the arguments */
-
- for (Index = 0; Index < ACPI_METHOD_NUM_ARGS; Index++)
- {
- if (WalkState->Arguments[Index].Object)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Deleting Arg%d=%p\n",
- Index, WalkState->Arguments[Index].Object));
-
- /* Detach object (if present) and remove a reference */
-
- AcpiNsDetachObject (&WalkState->Arguments[Index]);
- }
- }
-
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsMethodDataInitArgs
- *
- * PARAMETERS: *Params - Pointer to a parameter list for the method
- * MaxParamCount - The arg count for this method
- * WalkState - Current walk state object
- *
- * RETURN: Status
- *
- * DESCRIPTION: Initialize arguments for a method. The parameter list is a list
- * of ACPI operand objects, either null terminated or whose length
- * is defined by MaxParamCount.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsMethodDataInitArgs (
- ACPI_OPERAND_OBJECT **Params,
- UINT32 MaxParamCount,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status;
- UINT32 Index = 0;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsMethodDataInitArgs, Params);
-
-
- if (!Params)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "No param list passed to method\n"));
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Copy passed parameters into the new method stack frame */
-
- while ((Index < ACPI_METHOD_NUM_ARGS) &&
- (Index < MaxParamCount) &&
- Params[Index])
- {
- /*
- * A valid parameter.
- * Store the argument in the method/walk descriptor.
- * Do not copy the arg in order to implement call by reference
- */
- Status = AcpiDsMethodDataSetValue (AML_ARG_OP, Index,
- Params[Index], WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- Index++;
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%d args passed to method\n", Index));
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsMethodDataGetNode
- *
- * PARAMETERS: Opcode - Either AML_LOCAL_OP or AML_ARG_OP
- * Index - Which Local or Arg whose type to get
- * WalkState - Current walk state object
- * Node - Where the node is returned.
- *
- * RETURN: Status and node
- *
- * DESCRIPTION: Get the Node associated with a local or arg.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsMethodDataGetNode (
- UINT16 Opcode,
- UINT32 Index,
- ACPI_WALK_STATE *WalkState,
- ACPI_NAMESPACE_NODE **Node)
-{
- ACPI_FUNCTION_TRACE (DsMethodDataGetNode);
-
-
- /*
- * Method Locals and Arguments are supported
- */
- switch (Opcode)
- {
- case AML_LOCAL_OP:
-
- if (Index > ACPI_METHOD_MAX_LOCAL)
- {
- ACPI_ERROR ((AE_INFO,
- "Local index %d is invalid (max %d)",
- Index, ACPI_METHOD_MAX_LOCAL));
- return_ACPI_STATUS (AE_AML_INVALID_INDEX);
- }
-
- /* Return a pointer to the pseudo-node */
-
- *Node = &WalkState->LocalVariables[Index];
- break;
-
- case AML_ARG_OP:
-
- if (Index > ACPI_METHOD_MAX_ARG)
- {
- ACPI_ERROR ((AE_INFO,
- "Arg index %d is invalid (max %d)",
- Index, ACPI_METHOD_MAX_ARG));
- return_ACPI_STATUS (AE_AML_INVALID_INDEX);
- }
-
- /* Return a pointer to the pseudo-node */
-
- *Node = &WalkState->Arguments[Index];
- break;
-
- default:
- ACPI_ERROR ((AE_INFO, "Opcode %d is invalid", Opcode));
- return_ACPI_STATUS (AE_AML_BAD_OPCODE);
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsMethodDataSetValue
- *
- * PARAMETERS: Opcode - Either AML_LOCAL_OP or AML_ARG_OP
- * Index - Which Local or Arg to get
- * Object - Object to be inserted into the stack entry
- * WalkState - Current walk state object
- *
- * RETURN: Status
- *
- * DESCRIPTION: Insert an object onto the method stack at entry Opcode:Index.
- * Note: There is no "implicit conversion" for locals.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDsMethodDataSetValue (
- UINT16 Opcode,
- UINT32 Index,
- ACPI_OPERAND_OBJECT *Object,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node;
-
-
- ACPI_FUNCTION_TRACE (DsMethodDataSetValue);
-
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "NewObj %p Opcode %X, Refs=%d [%s]\n", Object,
- Opcode, Object->Common.ReferenceCount,
- AcpiUtGetTypeName (Object->Common.Type)));
-
- /* Get the namespace node for the arg/local */
-
- Status = AcpiDsMethodDataGetNode (Opcode, Index, WalkState, &Node);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * Increment ref count so object can't be deleted while installed.
- * NOTE: We do not copy the object in order to preserve the call by
- * reference semantics of ACPI Control Method invocation.
- * (See ACPI Specification 2.0C)
- */
- AcpiUtAddReference (Object);
-
- /* Install the object */
-
- Node->Object = Object;
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsMethodDataGetValue
- *
- * PARAMETERS: Opcode - Either AML_LOCAL_OP or AML_ARG_OP
- * Index - Which localVar or argument to get
- * WalkState - Current walk state object
- * DestDesc - Where Arg or Local value is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Retrieve value of selected Arg or Local for this method
- * Used only in AcpiExResolveToValue().
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsMethodDataGetValue (
- UINT16 Opcode,
- UINT32 Index,
- ACPI_WALK_STATE *WalkState,
- ACPI_OPERAND_OBJECT **DestDesc)
-{
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_OPERAND_OBJECT *Object;
-
-
- ACPI_FUNCTION_TRACE (DsMethodDataGetValue);
-
-
- /* Validate the object descriptor */
-
- if (!DestDesc)
- {
- ACPI_ERROR ((AE_INFO, "Null object descriptor pointer"));
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /* Get the namespace node for the arg/local */
-
- Status = AcpiDsMethodDataGetNode (Opcode, Index, WalkState, &Node);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Get the object from the node */
-
- Object = Node->Object;
-
- /* Examine the returned object, it must be valid. */
-
- if (!Object)
- {
- /*
- * Index points to uninitialized object.
- * This means that either 1) The expected argument was
- * not passed to the method, or 2) A local variable
- * was referenced by the method (via the ASL)
- * before it was initialized. Either case is an error.
- */
-
- /* If slack enabled, init the LocalX/ArgX to an Integer of value zero */
-
- if (AcpiGbl_EnableInterpreterSlack)
- {
- Object = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
- if (!Object)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- Object->Integer.Value = 0;
- Node->Object = Object;
- }
-
- /* Otherwise, return the error */
-
- else switch (Opcode)
- {
- case AML_ARG_OP:
-
- ACPI_ERROR ((AE_INFO,
- "Uninitialized Arg[%d] at node %p",
- Index, Node));
-
- return_ACPI_STATUS (AE_AML_UNINITIALIZED_ARG);
-
- case AML_LOCAL_OP:
-
- ACPI_ERROR ((AE_INFO,
- "Uninitialized Local[%d] at node %p",
- Index, Node));
-
- return_ACPI_STATUS (AE_AML_UNINITIALIZED_LOCAL);
-
- default:
- ACPI_ERROR ((AE_INFO, "Not a Arg/Local opcode: %X", Opcode));
- return_ACPI_STATUS (AE_AML_INTERNAL);
- }
- }
-
- /*
- * The Index points to an initialized and valid object.
- * Return an additional reference to the object
- */
- *DestDesc = Object;
- AcpiUtAddReference (Object);
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsMethodDataDeleteValue
- *
- * PARAMETERS: Opcode - Either AML_LOCAL_OP or AML_ARG_OP
- * Index - Which localVar or argument to delete
- * WalkState - Current walk state object
- *
- * RETURN: None
- *
- * DESCRIPTION: Delete the entry at Opcode:Index. Inserts
- * a null into the stack slot after the object is deleted.
- *
- ******************************************************************************/
-
-static void
-AcpiDsMethodDataDeleteValue (
- UINT16 Opcode,
- UINT32 Index,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_OPERAND_OBJECT *Object;
-
-
- ACPI_FUNCTION_TRACE (DsMethodDataDeleteValue);
-
-
- /* Get the namespace node for the arg/local */
-
- Status = AcpiDsMethodDataGetNode (Opcode, Index, WalkState, &Node);
- if (ACPI_FAILURE (Status))
- {
- return_VOID;
- }
-
- /* Get the associated object */
-
- Object = AcpiNsGetAttachedObject (Node);
-
- /*
- * Undefine the Arg or Local by setting its descriptor
- * pointer to NULL. Locals/Args can contain both
- * ACPI_OPERAND_OBJECTS and ACPI_NAMESPACE_NODEs
- */
- Node->Object = NULL;
-
- if ((Object) &&
- (ACPI_GET_DESCRIPTOR_TYPE (Object) == ACPI_DESC_TYPE_OPERAND))
- {
- /*
- * There is a valid object.
- * Decrement the reference count by one to balance the
- * increment when the object was stored.
- */
- AcpiUtRemoveReference (Object);
- }
-
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsStoreObjectToLocal
- *
- * PARAMETERS: Opcode - Either AML_LOCAL_OP or AML_ARG_OP
- * Index - Which Local or Arg to set
- * ObjDesc - Value to be stored
- * WalkState - Current walk state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Store a value in an Arg or Local. The ObjDesc is installed
- * as the new value for the Arg or Local and the reference count
- * for ObjDesc is incremented.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsStoreObjectToLocal (
- UINT16 Opcode,
- UINT32 Index,
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_OPERAND_OBJECT *CurrentObjDesc;
- ACPI_OPERAND_OBJECT *NewObjDesc;
-
-
- ACPI_FUNCTION_TRACE (DsStoreObjectToLocal);
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Opcode=%X Index=%d Obj=%p\n",
- Opcode, Index, ObjDesc));
-
- /* Parameter validation */
-
- if (!ObjDesc)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /* Get the namespace node for the arg/local */
-
- Status = AcpiDsMethodDataGetNode (Opcode, Index, WalkState, &Node);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- CurrentObjDesc = AcpiNsGetAttachedObject (Node);
- if (CurrentObjDesc == ObjDesc)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Obj=%p already installed!\n",
- ObjDesc));
- return_ACPI_STATUS (Status);
- }
-
- /*
- * If the reference count on the object is more than one, we must
- * take a copy of the object before we store. A reference count
- * of exactly 1 means that the object was just created during the
- * evaluation of an expression, and we can safely use it since it
- * is not used anywhere else.
- */
- NewObjDesc = ObjDesc;
- if (ObjDesc->Common.ReferenceCount > 1)
- {
- Status = AcpiUtCopyIobjectToIobject (ObjDesc, &NewObjDesc, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- /*
- * If there is an object already in this slot, we either
- * have to delete it, or if this is an argument and there
- * is an object reference stored there, we have to do
- * an indirect store!
- */
- if (CurrentObjDesc)
- {
- /*
- * Check for an indirect store if an argument
- * contains an object reference (stored as an Node).
- * We don't allow this automatic dereferencing for
- * locals, since a store to a local should overwrite
- * anything there, including an object reference.
- *
- * If both Arg0 and Local0 contain RefOf (Local4):
- *
- * Store (1, Arg0) - Causes indirect store to local4
- * Store (1, Local0) - Stores 1 in local0, overwriting
- * the reference to local4
- * Store (1, DeRefof (Local0)) - Causes indirect store to local4
- *
- * Weird, but true.
- */
- if (Opcode == AML_ARG_OP)
- {
- /*
- * If we have a valid reference object that came from RefOf(),
- * do the indirect store
- */
- if ((ACPI_GET_DESCRIPTOR_TYPE (CurrentObjDesc) == ACPI_DESC_TYPE_OPERAND) &&
- (CurrentObjDesc->Common.Type == ACPI_TYPE_LOCAL_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",
- NewObjDesc, CurrentObjDesc));
-
- /*
- * Store this object to the Node (perform the indirect store)
- * NOTE: No implicit conversion is performed, as per the ACPI
- * specification rules on storing to Locals/Args.
- */
- Status = AcpiExStoreObjectToNode (NewObjDesc,
- CurrentObjDesc->Reference.Object, WalkState,
- ACPI_NO_IMPLICIT_CONVERSION);
-
- /* Remove local reference if we copied the object above */
-
- if (NewObjDesc != ObjDesc)
- {
- AcpiUtRemoveReference (NewObjDesc);
- }
- return_ACPI_STATUS (Status);
- }
- }
-
- /*
- * Delete the existing object
- * before storing the new one
- */
- AcpiDsMethodDataDeleteValue (Opcode, Index, WalkState);
- }
-
- /*
- * Install the Obj descriptor (*NewObjDesc) into
- * the descriptor for the Arg or Local.
- * (increments the object reference count by one)
- */
- Status = AcpiDsMethodDataSetValue (Opcode, Index, NewObjDesc, WalkState);
-
- /* Remove local reference if we copied the object above */
-
- if (NewObjDesc != ObjDesc)
- {
- AcpiUtRemoveReference (NewObjDesc);
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsMethodDataGetType
- *
- * PARAMETERS: Opcode - Either AML_LOCAL_OP or AML_ARG_OP
- * Index - Which Local or Arg whose type to get
- * WalkState - Current walk state object
- *
- * RETURN: Data type of current value of the selected Arg or Local
- *
- * DESCRIPTION: Get the type of the object stored in the Local or Arg
- *
- ******************************************************************************/
-
-ACPI_OBJECT_TYPE
-AcpiDsMethodDataGetType (
- UINT16 Opcode,
- UINT32 Index,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_OPERAND_OBJECT *Object;
-
-
- ACPI_FUNCTION_TRACE (DsMethodDataGetType);
-
-
- /* Get the namespace node for the arg/local */
-
- Status = AcpiDsMethodDataGetNode (Opcode, Index, WalkState, &Node);
- if (ACPI_FAILURE (Status))
- {
- return_VALUE ((ACPI_TYPE_NOT_FOUND));
- }
-
- /* Get the object */
-
- Object = AcpiNsGetAttachedObject (Node);
- if (!Object)
- {
- /* Uninitialized local/arg, return TYPE_ANY */
-
- return_VALUE (ACPI_TYPE_ANY);
- }
-
- /* Get the object type */
-
- return_VALUE (ACPI_GET_OBJECT_TYPE (Object));
-}
-#endif
-
-
diff --git a/sys/contrib/dev/acpica/dsobject.c b/sys/contrib/dev/acpica/dsobject.c
deleted file mode 100644
index a058299..0000000
--- a/sys/contrib/dev/acpica/dsobject.c
+++ /dev/null
@@ -1,789 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dsobject - Dispatcher object management routines
- * $Revision: 1.135 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __DSOBJECT_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acinterp.h>
-
-#define _COMPONENT ACPI_DISPATCHER
- ACPI_MODULE_NAME ("dsobject")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiDsBuildInternalObject (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op,
- ACPI_OPERAND_OBJECT **ObjDescPtr);
-
-
-#ifndef ACPI_NO_METHOD_EXECUTION
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsBuildInternalObject
- *
- * PARAMETERS: WalkState - Current walk state
- * Op - Parser object to be translated
- * ObjDescPtr - Where the ACPI internal object is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Translate a parser Op object to the equivalent namespace object
- * Simple objects are any objects other than a package object!
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDsBuildInternalObject (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op,
- ACPI_OPERAND_OBJECT **ObjDescPtr)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (DsBuildInternalObject);
-
-
- *ObjDescPtr = NULL;
- if (Op->Common.AmlOpcode == AML_INT_NAMEPATH_OP)
- {
- /*
- * This is a named object reference. If this name was
- * previously looked up in the namespace, it was stored in this op.
- * Otherwise, go ahead and look it up now
- */
- if (!Op->Common.Node)
- {
- Status = AcpiNsLookup (WalkState->ScopeInfo,
- Op->Common.Value.String,
- ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE,
- ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, NULL,
- ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, &(Op->Common.Node)));
- if (ACPI_FAILURE (Status))
- {
- /* Check if we are resolving a named reference within a package */
-
- if ((Status == AE_NOT_FOUND) && (AcpiGbl_EnableInterpreterSlack) &&
-
- ((Op->Common.Parent->Common.AmlOpcode == AML_PACKAGE_OP) ||
- (Op->Common.Parent->Common.AmlOpcode == AML_VAR_PACKAGE_OP)))
- {
- /*
- * We didn't find the target and we are populating elements
- * of a package - ignore if slack enabled. Some ASL code
- * contains dangling invalid references in packages and
- * expects that no exception will be issued. Leave the
- * element as a null element. It cannot be used, but it
- * can be overwritten by subsequent ASL code - this is
- * typically the case.
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "Ignoring unresolved reference in package [%4.4s]\n",
- WalkState->ScopeInfo->Scope.Node->Name.Ascii));
-
- return_ACPI_STATUS (AE_OK);
- }
- else
- {
- ACPI_ERROR_NAMESPACE (Op->Common.Value.String, Status);
- }
-
- return_ACPI_STATUS (Status);
- }
- }
- }
-
- /* Create and init a new internal ACPI object */
-
- ObjDesc = AcpiUtCreateInternalObject (
- (AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode))->ObjectType);
- if (!ObjDesc)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- Status = AcpiDsInitObjectFromOp (WalkState, Op, Op->Common.AmlOpcode,
- &ObjDesc);
- if (ACPI_FAILURE (Status))
- {
- AcpiUtRemoveReference (ObjDesc);
- return_ACPI_STATUS (Status);
- }
-
- *ObjDescPtr = ObjDesc;
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsBuildInternalBufferObj
- *
- * PARAMETERS: WalkState - Current walk state
- * Op - Parser object to be translated
- * BufferLength - Length of the buffer
- * ObjDescPtr - Where the ACPI internal object is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Translate a parser Op package object to the equivalent
- * namespace object
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsBuildInternalBufferObj (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op,
- UINT32 BufferLength,
- ACPI_OPERAND_OBJECT **ObjDescPtr)
-{
- ACPI_PARSE_OBJECT *Arg;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_PARSE_OBJECT *ByteList;
- UINT32 ByteListLength = 0;
-
-
- ACPI_FUNCTION_TRACE (DsBuildInternalBufferObj);
-
-
- /*
- * If we are evaluating a Named buffer object "Name (xxxx, Buffer)".
- * The buffer object already exists (from the NS node), otherwise it must
- * be created.
- */
- ObjDesc = *ObjDescPtr;
- if (!ObjDesc)
- {
- /* Create a new buffer object */
-
- ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_BUFFER);
- *ObjDescPtr = ObjDesc;
- if (!ObjDesc)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
- }
-
- /*
- * Second arg is the buffer data (optional) ByteList can be either
- * individual bytes or a string initializer. In either case, a
- * ByteList appears in the AML.
- */
- Arg = Op->Common.Value.Arg; /* skip first arg */
-
- ByteList = Arg->Named.Next;
- if (ByteList)
- {
- if (ByteList->Common.AmlOpcode != AML_INT_BYTELIST_OP)
- {
- ACPI_ERROR ((AE_INFO,
- "Expecting bytelist, got AML opcode %X in op %p",
- ByteList->Common.AmlOpcode, ByteList));
-
- AcpiUtRemoveReference (ObjDesc);
- return (AE_TYPE);
- }
-
- ByteListLength = (UINT32) ByteList->Common.Value.Integer;
- }
-
- /*
- * The buffer length (number of bytes) will be the larger of:
- * 1) The specified buffer length and
- * 2) The length of the initializer byte list
- */
- ObjDesc->Buffer.Length = BufferLength;
- if (ByteListLength > BufferLength)
- {
- ObjDesc->Buffer.Length = ByteListLength;
- }
-
- /* Allocate the buffer */
-
- if (ObjDesc->Buffer.Length == 0)
- {
- ObjDesc->Buffer.Pointer = NULL;
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "Buffer defined with zero length in AML, creating\n"));
- }
- else
- {
- ObjDesc->Buffer.Pointer = ACPI_ALLOCATE_ZEROED (
- ObjDesc->Buffer.Length);
- if (!ObjDesc->Buffer.Pointer)
- {
- AcpiUtDeleteObjectDesc (ObjDesc);
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* Initialize buffer from the ByteList (if present) */
-
- if (ByteList)
- {
- ACPI_MEMCPY (ObjDesc->Buffer.Pointer, ByteList->Named.Data,
- ByteListLength);
- }
- }
-
- ObjDesc->Buffer.Flags |= AOPOBJ_DATA_VALID;
- Op->Common.Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, ObjDesc);
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsBuildInternalPackageObj
- *
- * PARAMETERS: WalkState - Current walk state
- * Op - Parser object to be translated
- * ElementCount - Number of elements in the package - this is
- * the NumElements argument to Package()
- * ObjDescPtr - Where the ACPI internal object is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Translate a parser Op package object to the equivalent
- * namespace object
- *
- * NOTE: The number of elements in the package will be always be the NumElements
- * count, regardless of the number of elements in the package list. If
- * NumElements is smaller, only that many package list elements are used.
- * if NumElements is larger, the Package object is padded out with
- * objects of type Uninitialized (as per ACPI spec.)
- *
- * Even though the ASL compilers do not allow NumElements to be smaller
- * than the Package list length (for the fixed length package opcode), some
- * BIOS code modifies the AML on the fly to adjust the NumElements, and
- * this code compensates for that. This also provides compatibility with
- * other AML interpreters.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsBuildInternalPackageObj (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op,
- UINT32 ElementCount,
- ACPI_OPERAND_OBJECT **ObjDescPtr)
-{
- ACPI_PARSE_OBJECT *Arg;
- ACPI_PARSE_OBJECT *Parent;
- ACPI_OPERAND_OBJECT *ObjDesc = NULL;
- ACPI_STATUS Status = AE_OK;
- ACPI_NATIVE_UINT i;
- UINT16 Index;
- UINT16 ReferenceCount;
-
-
- ACPI_FUNCTION_TRACE (DsBuildInternalPackageObj);
-
-
- /* Find the parent of a possibly nested package */
-
- Parent = Op->Common.Parent;
- while ((Parent->Common.AmlOpcode == AML_PACKAGE_OP) ||
- (Parent->Common.AmlOpcode == AML_VAR_PACKAGE_OP))
- {
- Parent = Parent->Common.Parent;
- }
-
- /*
- * If we are evaluating a Named package object "Name (xxxx, Package)",
- * the package object already exists, otherwise it must be created.
- */
- ObjDesc = *ObjDescPtr;
- if (!ObjDesc)
- {
- ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_PACKAGE);
- *ObjDescPtr = ObjDesc;
- if (!ObjDesc)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- ObjDesc->Package.Node = Parent->Common.Node;
- }
-
- /*
- * Allocate the element array (array of pointers to the individual
- * objects) based on the NumElements parameter. Add an extra pointer slot
- * so that the list is always null terminated.
- */
- ObjDesc->Package.Elements = ACPI_ALLOCATE_ZEROED (
- ((ACPI_SIZE) ElementCount + 1) * sizeof (void *));
-
- if (!ObjDesc->Package.Elements)
- {
- AcpiUtDeleteObjectDesc (ObjDesc);
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- ObjDesc->Package.Count = ElementCount;
-
- /*
- * Initialize the elements of the package, up to the NumElements count.
- * Package is automatically padded with uninitialized (NULL) elements
- * if NumElements is greater than the package list length. Likewise,
- * Package is truncated if NumElements is less than the list length.
- */
- Arg = Op->Common.Value.Arg;
- Arg = Arg->Common.Next;
- for (i = 0; Arg && (i < ElementCount); i++)
- {
- if (Arg->Common.AmlOpcode == AML_INT_RETURN_VALUE_OP)
- {
- /* This package element is already built, just get it */
-
- ObjDesc->Package.Elements[i] =
- ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, Arg->Common.Node);
- }
- else
- {
- Status = AcpiDsBuildInternalObject (WalkState, Arg,
- &ObjDesc->Package.Elements[i]);
- }
-
- if (*ObjDescPtr)
- {
- /* Existing package, get existing reference count */
-
- ReferenceCount = (*ObjDescPtr)->Common.ReferenceCount;
- if (ReferenceCount > 1)
- {
- /* Make new element ref count match original ref count */
-
- for (Index = 0; Index < (ReferenceCount - 1); Index++)
- {
- AcpiUtAddReference ((ObjDesc->Package.Elements[i]));
- }
- }
- }
-
- Arg = Arg->Common.Next;
- }
-
- if (!Arg)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "Package List length larger than NumElements count (%X), truncated\n",
- ElementCount));
- }
-
- ObjDesc->Package.Flags |= AOPOBJ_DATA_VALID;
- Op->Common.Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, ObjDesc);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsCreateNode
- *
- * PARAMETERS: WalkState - Current walk state
- * Node - NS Node to be initialized
- * Op - Parser object to be translated
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create the object to be associated with a namespace node
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsCreateNode (
- ACPI_WALK_STATE *WalkState,
- ACPI_NAMESPACE_NODE *Node,
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_STATUS Status;
- ACPI_OPERAND_OBJECT *ObjDesc;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsCreateNode, Op);
-
-
- /*
- * Because of the execution pass through the non-control-method
- * parts of the table, we can arrive here twice. Only init
- * the named object node the first time through
- */
- if (AcpiNsGetAttachedObject (Node))
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- if (!Op->Common.Value.Arg)
- {
- /* No arguments, there is nothing to do */
-
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Build an internal object for the argument(s) */
-
- Status = AcpiDsBuildInternalObject (WalkState, Op->Common.Value.Arg,
- &ObjDesc);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Re-type the object according to its argument */
-
- Node->Type = ACPI_GET_OBJECT_TYPE (ObjDesc);
-
- /* Attach obj to node */
-
- Status = AcpiNsAttachObject (Node, ObjDesc, Node->Type);
-
- /* Remove local reference to the object */
-
- AcpiUtRemoveReference (ObjDesc);
- return_ACPI_STATUS (Status);
-}
-
-#endif /* ACPI_NO_METHOD_EXECUTION */
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsInitObjectFromOp
- *
- * PARAMETERS: WalkState - Current walk state
- * Op - Parser op used to init the internal object
- * Opcode - AML opcode associated with the object
- * RetObjDesc - Namespace object to be initialized
- *
- * RETURN: Status
- *
- * DESCRIPTION: Initialize a namespace object from a parser Op and its
- * associated arguments. The namespace object is a more compact
- * representation of the Op and its arguments.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsInitObjectFromOp (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op,
- UINT16 Opcode,
- ACPI_OPERAND_OBJECT **RetObjDesc)
-{
- const ACPI_OPCODE_INFO *OpInfo;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (DsInitObjectFromOp);
-
-
- ObjDesc = *RetObjDesc;
- OpInfo = AcpiPsGetOpcodeInfo (Opcode);
- if (OpInfo->Class == AML_CLASS_UNKNOWN)
- {
- /* Unknown opcode */
-
- return_ACPI_STATUS (AE_TYPE);
- }
-
- /* Perform per-object initialization */
-
- switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
- {
- case ACPI_TYPE_BUFFER:
-
- /*
- * Defer evaluation of Buffer TermArg operand
- */
- ObjDesc->Buffer.Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE,
- WalkState->Operands[0]);
- ObjDesc->Buffer.AmlStart = Op->Named.Data;
- ObjDesc->Buffer.AmlLength = Op->Named.Length;
- break;
-
-
- case ACPI_TYPE_PACKAGE:
-
- /*
- * Defer evaluation of Package TermArg operand
- */
- ObjDesc->Package.Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE,
- WalkState->Operands[0]);
- ObjDesc->Package.AmlStart = Op->Named.Data;
- ObjDesc->Package.AmlLength = Op->Named.Length;
- break;
-
-
- case ACPI_TYPE_INTEGER:
-
- switch (OpInfo->Type)
- {
- case AML_TYPE_CONSTANT:
- /*
- * Resolve AML Constants here - AND ONLY HERE!
- * All constants are integers.
- * We mark the integer with a flag that indicates that it started
- * life as a constant -- so that stores to constants will perform
- * as expected (noop). ZeroOp is used as a placeholder for optional
- * target operands.
- */
- ObjDesc->Common.Flags = AOPOBJ_AML_CONSTANT;
-
- switch (Opcode)
- {
- case AML_ZERO_OP:
-
- ObjDesc->Integer.Value = 0;
- break;
-
- case AML_ONE_OP:
-
- ObjDesc->Integer.Value = 1;
- break;
-
- case AML_ONES_OP:
-
- ObjDesc->Integer.Value = ACPI_INTEGER_MAX;
-
- /* Truncate value if we are executing from a 32-bit ACPI table */
-
-#ifndef ACPI_NO_METHOD_EXECUTION
- AcpiExTruncateFor32bitTable (ObjDesc);
-#endif
- break;
-
- case AML_REVISION_OP:
-
- ObjDesc->Integer.Value = ACPI_CA_VERSION;
- break;
-
- default:
-
- ACPI_ERROR ((AE_INFO,
- "Unknown constant opcode %X", Opcode));
- Status = AE_AML_OPERAND_TYPE;
- break;
- }
- break;
-
-
- case AML_TYPE_LITERAL:
-
- ObjDesc->Integer.Value = Op->Common.Value.Integer;
-#ifndef ACPI_NO_METHOD_EXECUTION
- AcpiExTruncateFor32bitTable (ObjDesc);
-#endif
- break;
-
-
- default:
- ACPI_ERROR ((AE_INFO, "Unknown Integer type %X",
- OpInfo->Type));
- Status = AE_AML_OPERAND_TYPE;
- break;
- }
- break;
-
-
- case ACPI_TYPE_STRING:
-
- ObjDesc->String.Pointer = Op->Common.Value.String;
- ObjDesc->String.Length = (UINT32) ACPI_STRLEN (Op->Common.Value.String);
-
- /*
- * The string is contained in the ACPI table, don't ever try
- * to delete it
- */
- ObjDesc->Common.Flags |= AOPOBJ_STATIC_POINTER;
- break;
-
-
- case ACPI_TYPE_METHOD:
- break;
-
-
- case ACPI_TYPE_LOCAL_REFERENCE:
-
- switch (OpInfo->Type)
- {
- case AML_TYPE_LOCAL_VARIABLE:
-
- /* Split the opcode into a base opcode + offset */
-
- ObjDesc->Reference.Opcode = AML_LOCAL_OP;
- ObjDesc->Reference.Offset = Opcode - AML_LOCAL_OP;
-
-#ifndef ACPI_NO_METHOD_EXECUTION
- Status = AcpiDsMethodDataGetNode (AML_LOCAL_OP,
- ObjDesc->Reference.Offset,
- WalkState,
- (ACPI_NAMESPACE_NODE **) &ObjDesc->Reference.Object);
-#endif
- break;
-
-
- case AML_TYPE_METHOD_ARGUMENT:
-
- /* Split the opcode into a base opcode + offset */
-
- ObjDesc->Reference.Opcode = AML_ARG_OP;
- ObjDesc->Reference.Offset = Opcode - AML_ARG_OP;
-
-#ifndef ACPI_NO_METHOD_EXECUTION
- Status = AcpiDsMethodDataGetNode (AML_ARG_OP,
- ObjDesc->Reference.Offset,
- WalkState,
- (ACPI_NAMESPACE_NODE **) &ObjDesc->Reference.Object);
-#endif
- break;
-
- default: /* Other literals, etc.. */
-
- if (Op->Common.AmlOpcode == AML_INT_NAMEPATH_OP)
- {
- /* Node was saved in Op */
-
- ObjDesc->Reference.Node = Op->Common.Node;
- }
-
- ObjDesc->Reference.Opcode = Opcode;
- break;
- }
- break;
-
-
- default:
-
- ACPI_ERROR ((AE_INFO, "Unimplemented data type: %X",
- ACPI_GET_OBJECT_TYPE (ObjDesc)));
-
- Status = AE_AML_OPERAND_TYPE;
- break;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
diff --git a/sys/contrib/dev/acpica/dsopcode.c b/sys/contrib/dev/acpica/dsopcode.c
deleted file mode 100644
index 7760ac6..0000000
--- a/sys/contrib/dev/acpica/dsopcode.c
+++ /dev/null
@@ -1,1344 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dsopcode - Dispatcher Op Region support and handling of
- * "control" opcodes
- * $Revision: 1.111 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __DSOPCODE_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acevents.h>
-
-#define _COMPONENT ACPI_DISPATCHER
- ACPI_MODULE_NAME ("dsopcode")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiDsExecuteArguments (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_NAMESPACE_NODE *ScopeNode,
- UINT32 AmlLength,
- UINT8 *AmlStart);
-
-static ACPI_STATUS
-AcpiDsInitBufferField (
- UINT16 AmlOpcode,
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_OPERAND_OBJECT *BufferDesc,
- ACPI_OPERAND_OBJECT *OffsetDesc,
- ACPI_OPERAND_OBJECT *LengthDesc,
- ACPI_OPERAND_OBJECT *ResultDesc);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsExecuteArguments
- *
- * PARAMETERS: Node - Object NS node
- * ScopeNode - Parent NS node
- * AmlLength - Length of executable AML
- * AmlStart - Pointer to the AML
- *
- * RETURN: Status.
- *
- * DESCRIPTION: Late (deferred) execution of region or field arguments
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDsExecuteArguments (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_NAMESPACE_NODE *ScopeNode,
- UINT32 AmlLength,
- UINT8 *AmlStart)
-{
- ACPI_STATUS Status;
- ACPI_PARSE_OBJECT *Op;
- ACPI_WALK_STATE *WalkState;
-
-
- ACPI_FUNCTION_TRACE (DsExecuteArguments);
-
-
- /*
- * Allocate a new parser op to be the root of the parsed tree
- */
- Op = AcpiPsAllocOp (AML_INT_EVAL_SUBTREE_OP);
- if (!Op)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* Save the Node for use in AcpiPsParseAml */
-
- Op->Common.Node = ScopeNode;
-
- /* Create and initialize a new parser state */
-
- WalkState = AcpiDsCreateWalkState (0, NULL, NULL, NULL);
- if (!WalkState)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- Status = AcpiDsInitAmlWalk (WalkState, Op, NULL, AmlStart,
- AmlLength, NULL, ACPI_IMODE_LOAD_PASS1);
- if (ACPI_FAILURE (Status))
- {
- AcpiDsDeleteWalkState (WalkState);
- goto Cleanup;
- }
-
- /* Mark this parse as a deferred opcode */
-
- WalkState->ParseFlags = ACPI_PARSE_DEFERRED_OP;
- WalkState->DeferredNode = Node;
-
- /* Pass1: Parse the entire declaration */
-
- Status = AcpiPsParseAml (WalkState);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- /* Get and init the Op created above */
-
- Op->Common.Node = Node;
- AcpiPsDeleteParseTree (Op);
-
- /* Evaluate the deferred arguments */
-
- Op = AcpiPsAllocOp (AML_INT_EVAL_SUBTREE_OP);
- if (!Op)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- Op->Common.Node = ScopeNode;
-
- /* Create and initialize a new parser state */
-
- WalkState = AcpiDsCreateWalkState (0, NULL, NULL, NULL);
- if (!WalkState)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- /* Execute the opcode and arguments */
-
- Status = AcpiDsInitAmlWalk (WalkState, Op, NULL, AmlStart,
- AmlLength, NULL, ACPI_IMODE_EXECUTE);
- if (ACPI_FAILURE (Status))
- {
- AcpiDsDeleteWalkState (WalkState);
- goto Cleanup;
- }
-
- /* Mark this execution as a deferred opcode */
-
- WalkState->DeferredNode = Node;
- Status = AcpiPsParseAml (WalkState);
-
-Cleanup:
- AcpiPsDeleteParseTree (Op);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsGetBufferFieldArguments
- *
- * PARAMETERS: ObjDesc - A valid BufferField object
- *
- * RETURN: Status.
- *
- * DESCRIPTION: Get BufferField Buffer and Index. This implements the late
- * evaluation of these field attributes.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsGetBufferFieldArguments (
- ACPI_OPERAND_OBJECT *ObjDesc)
-{
- ACPI_OPERAND_OBJECT *ExtraDesc;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsGetBufferFieldArguments, ObjDesc);
-
-
- if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Get the AML pointer (method object) and BufferField node */
-
- ExtraDesc = AcpiNsGetSecondaryObject (ObjDesc);
- Node = ObjDesc->BufferField.Node;
-
- ACPI_DEBUG_EXEC(AcpiUtDisplayInitPathname (ACPI_TYPE_BUFFER_FIELD, Node, NULL));
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[%4.4s] BufferField Arg Init\n",
- AcpiUtGetNodeName (Node)));
-
- /* Execute the AML code for the TermArg arguments */
-
- Status = AcpiDsExecuteArguments (Node, AcpiNsGetParentNode (Node),
- ExtraDesc->Extra.AmlLength, ExtraDesc->Extra.AmlStart);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsGetBufferArguments
- *
- * PARAMETERS: ObjDesc - A valid Buffer object
- *
- * RETURN: Status.
- *
- * DESCRIPTION: Get Buffer length and initializer byte list. This implements
- * the late evaluation of these attributes.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsGetBufferArguments (
- ACPI_OPERAND_OBJECT *ObjDesc)
-{
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsGetBufferArguments, ObjDesc);
-
-
- if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Get the Buffer node */
-
- Node = ObjDesc->Buffer.Node;
- if (!Node)
- {
- ACPI_ERROR ((AE_INFO,
- "No pointer back to NS node in buffer obj %p", ObjDesc));
- return_ACPI_STATUS (AE_AML_INTERNAL);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Buffer Arg Init\n"));
-
- /* Execute the AML code for the TermArg arguments */
-
- Status = AcpiDsExecuteArguments (Node, Node,
- ObjDesc->Buffer.AmlLength, ObjDesc->Buffer.AmlStart);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsGetPackageArguments
- *
- * PARAMETERS: ObjDesc - A valid Package object
- *
- * RETURN: Status.
- *
- * DESCRIPTION: Get Package length and initializer byte list. This implements
- * the late evaluation of these attributes.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsGetPackageArguments (
- ACPI_OPERAND_OBJECT *ObjDesc)
-{
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsGetPackageArguments, ObjDesc);
-
-
- if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Get the Package node */
-
- Node = ObjDesc->Package.Node;
- if (!Node)
- {
- ACPI_ERROR ((AE_INFO,
- "No pointer back to NS node in package %p", ObjDesc));
- return_ACPI_STATUS (AE_AML_INTERNAL);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Package Arg Init\n"));
-
- /* Execute the AML code for the TermArg arguments */
-
- Status = AcpiDsExecuteArguments (Node, Node,
- ObjDesc->Package.AmlLength, ObjDesc->Package.AmlStart);
- return_ACPI_STATUS (Status);
-}
-
-
-/*****************************************************************************
- *
- * FUNCTION: AcpiDsGetRegionArguments
- *
- * PARAMETERS: ObjDesc - A valid region object
- *
- * RETURN: Status.
- *
- * DESCRIPTION: Get region address and length. This implements the late
- * evaluation of these region attributes.
- *
- ****************************************************************************/
-
-ACPI_STATUS
-AcpiDsGetRegionArguments (
- ACPI_OPERAND_OBJECT *ObjDesc)
-{
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
- ACPI_OPERAND_OBJECT *ExtraDesc;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsGetRegionArguments, ObjDesc);
-
-
- if (ObjDesc->Region.Flags & AOPOBJ_DATA_VALID)
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- ExtraDesc = AcpiNsGetSecondaryObject (ObjDesc);
- if (!ExtraDesc)
- {
- return_ACPI_STATUS (AE_NOT_EXIST);
- }
-
- /* Get the Region node */
-
- Node = ObjDesc->Region.Node;
-
- ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname (ACPI_TYPE_REGION, Node, NULL));
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[%4.4s] OpRegion Arg Init at AML %p\n",
- AcpiUtGetNodeName (Node), ExtraDesc->Extra.AmlStart));
-
- /* Execute the argument AML */
-
- Status = AcpiDsExecuteArguments (Node, AcpiNsGetParentNode (Node),
- ExtraDesc->Extra.AmlLength, ExtraDesc->Extra.AmlStart);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Validate the region address/length via the host OS */
-
- Status = AcpiOsValidateAddress (ObjDesc->Region.SpaceId,
- ObjDesc->Region.Address, (ACPI_SIZE) ObjDesc->Region.Length);
- if (ACPI_FAILURE (Status))
- {
- /*
- * Invalid address/length. We will emit an error message and mark
- * the region as invalid, so that it will cause an additional error if
- * it is ever used. Then return AE_OK.
- */
- ACPI_EXCEPTION ((AE_INFO, Status,
- "During address validation of OpRegion [%4.4s]", Node->Name.Ascii));
- ObjDesc->Common.Flags |= AOPOBJ_INVALID;
- Status = AE_OK;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsInitializeRegion
- *
- * PARAMETERS: ObjHandle - Region namespace node
- *
- * RETURN: Status
- *
- * DESCRIPTION: Front end to EvInitializeRegion
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsInitializeRegion (
- ACPI_HANDLE ObjHandle)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_STATUS Status;
-
-
- ObjDesc = AcpiNsGetAttachedObject (ObjHandle);
-
- /* Namespace is NOT locked */
-
- Status = AcpiEvInitializeRegion (ObjDesc, FALSE);
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsInitBufferField
- *
- * PARAMETERS: AmlOpcode - CreateXxxField
- * ObjDesc - BufferField object
- * BufferDesc - Host Buffer
- * OffsetDesc - Offset into buffer
- * LengthDesc - Length of field (CREATE_FIELD_OP only)
- * ResultDesc - Where to store the result
- *
- * RETURN: Status
- *
- * DESCRIPTION: Perform actual initialization of a buffer field
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDsInitBufferField (
- UINT16 AmlOpcode,
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_OPERAND_OBJECT *BufferDesc,
- ACPI_OPERAND_OBJECT *OffsetDesc,
- ACPI_OPERAND_OBJECT *LengthDesc,
- ACPI_OPERAND_OBJECT *ResultDesc)
-{
- UINT32 Offset;
- UINT32 BitOffset;
- UINT32 BitCount;
- UINT8 FieldFlags;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsInitBufferField, ObjDesc);
-
-
- /* Host object must be a Buffer */
-
- if (ACPI_GET_OBJECT_TYPE (BufferDesc) != ACPI_TYPE_BUFFER)
- {
- ACPI_ERROR ((AE_INFO,
- "Target of Create Field is not a Buffer object - %s",
- AcpiUtGetObjectTypeName (BufferDesc)));
-
- Status = AE_AML_OPERAND_TYPE;
- goto Cleanup;
- }
-
- /*
- * 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().
- */
- if (ACPI_GET_DESCRIPTOR_TYPE (ResultDesc) != ACPI_DESC_TYPE_NAMED)
- {
- ACPI_ERROR ((AE_INFO,
- "(%s) destination not a NS Node [%s]",
- AcpiPsGetOpcodeName (AmlOpcode),
- AcpiUtGetDescriptorName (ResultDesc)));
-
- Status = AE_AML_OPERAND_TYPE;
- goto Cleanup;
- }
-
- Offset = (UINT32) OffsetDesc->Integer.Value;
-
- /*
- * Setup the Bit offsets and counts, according to the opcode
- */
- switch (AmlOpcode)
- {
- case AML_CREATE_FIELD_OP:
-
- /* Offset is in bits, count is in bits */
-
- FieldFlags = AML_FIELD_ACCESS_BYTE;
- BitOffset = Offset;
- BitCount = (UINT32) LengthDesc->Integer.Value;
-
- /* Must have a valid (>0) bit count */
-
- if (BitCount == 0)
- {
- ACPI_ERROR ((AE_INFO,
- "Attempt to CreateField of length zero"));
- Status = AE_AML_OPERAND_VALUE;
- goto Cleanup;
- }
- break;
-
- case AML_CREATE_BIT_FIELD_OP:
-
- /* Offset is in bits, Field is one bit */
-
- BitOffset = Offset;
- BitCount = 1;
- FieldFlags = AML_FIELD_ACCESS_BYTE;
- break;
-
- case AML_CREATE_BYTE_FIELD_OP:
-
- /* Offset is in bytes, field is one byte */
-
- BitOffset = 8 * Offset;
- BitCount = 8;
- FieldFlags = AML_FIELD_ACCESS_BYTE;
- break;
-
- case AML_CREATE_WORD_FIELD_OP:
-
- /* Offset is in bytes, field is one word */
-
- BitOffset = 8 * Offset;
- BitCount = 16;
- FieldFlags = AML_FIELD_ACCESS_WORD;
- break;
-
- case AML_CREATE_DWORD_FIELD_OP:
-
- /* Offset is in bytes, field is one dword */
-
- BitOffset = 8 * Offset;
- BitCount = 32;
- FieldFlags = AML_FIELD_ACCESS_DWORD;
- break;
-
- case AML_CREATE_QWORD_FIELD_OP:
-
- /* Offset is in bytes, field is one qword */
-
- BitOffset = 8 * Offset;
- BitCount = 64;
- FieldFlags = AML_FIELD_ACCESS_QWORD;
- break;
-
- default:
-
- ACPI_ERROR ((AE_INFO,
- "Unknown field creation opcode %02x",
- AmlOpcode));
- Status = AE_AML_BAD_OPCODE;
- goto Cleanup;
- }
-
- /* Entire field must fit within the current length of the buffer */
-
- if ((BitOffset + BitCount) >
- (8 * (UINT32) BufferDesc->Buffer.Length))
- {
- ACPI_ERROR ((AE_INFO,
- "Field [%4.4s] at %d exceeds Buffer [%4.4s] size %d (bits)",
- AcpiUtGetNodeName (ResultDesc),
- BitOffset + BitCount,
- AcpiUtGetNodeName (BufferDesc->Buffer.Node),
- 8 * (UINT32) BufferDesc->Buffer.Length));
- Status = AE_AML_BUFFER_LIMIT;
- goto Cleanup;
- }
-
- /*
- * Initialize areas of the field object that are common to all fields
- * For FieldFlags, use LOCK_RULE = 0 (NO_LOCK),
- * UPDATE_RULE = 0 (UPDATE_PRESERVE)
- */
- Status = AcpiExPrepCommonFieldObject (ObjDesc, FieldFlags, 0,
- BitOffset, BitCount);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- ObjDesc->BufferField.BufferObj = BufferDesc;
-
- /* Reference count for BufferDesc inherits ObjDesc count */
-
- BufferDesc->Common.ReferenceCount = (UINT16)
- (BufferDesc->Common.ReferenceCount + ObjDesc->Common.ReferenceCount);
-
-
-Cleanup:
-
- /* Always delete the operands */
-
- AcpiUtRemoveReference (OffsetDesc);
- AcpiUtRemoveReference (BufferDesc);
-
- if (AmlOpcode == AML_CREATE_FIELD_OP)
- {
- AcpiUtRemoveReference (LengthDesc);
- }
-
- /* On failure, delete the result descriptor */
-
- if (ACPI_FAILURE (Status))
- {
- AcpiUtRemoveReference (ResultDesc); /* Result descriptor */
- }
- else
- {
- /* Now the address and length are valid for this BufferField */
-
- ObjDesc->BufferField.Flags |= AOPOBJ_DATA_VALID;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsEvalBufferFieldOperands
- *
- * PARAMETERS: WalkState - Current walk
- * Op - A valid BufferField Op object
- *
- * RETURN: Status
- *
- * DESCRIPTION: Get BufferField Buffer and Index
- * Called from AcpiDsExecEndOp during BufferField parse tree walk
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsEvalBufferFieldOperands (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_STATUS Status;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_PARSE_OBJECT *NextOp;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsEvalBufferFieldOperands, Op);
-
-
- /*
- * This is where we evaluate the address and length fields of the
- * CreateXxxField declaration
- */
- Node = Op->Common.Node;
-
- /* NextOp points to the op that holds the Buffer */
-
- NextOp = Op->Common.Value.Arg;
-
- /* Evaluate/create the address and length operands */
-
- Status = AcpiDsCreateOperands (WalkState, NextOp);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- ObjDesc = AcpiNsGetAttachedObject (Node);
- if (!ObjDesc)
- {
- return_ACPI_STATUS (AE_NOT_EXIST);
- }
-
- /* Resolve the operands */
-
- Status = AcpiExResolveOperands (Op->Common.AmlOpcode,
- ACPI_WALK_OPERANDS, WalkState);
-
- ACPI_DUMP_OPERANDS (ACPI_WALK_OPERANDS, ACPI_IMODE_EXECUTE,
- AcpiPsGetOpcodeName (Op->Common.AmlOpcode),
- WalkState->NumOperands, "after AcpiExResolveOperands");
-
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR ((AE_INFO, "(%s) bad operand(s) (%X)",
- AcpiPsGetOpcodeName (Op->Common.AmlOpcode), Status));
-
- return_ACPI_STATUS (Status);
- }
-
- /* Initialize the Buffer Field */
-
- if (Op->Common.AmlOpcode == AML_CREATE_FIELD_OP)
- {
- /* NOTE: Slightly different operands for this opcode */
-
- 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],
- NULL, WalkState->Operands[2]);
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsEvalRegionOperands
- *
- * PARAMETERS: WalkState - Current walk
- * Op - A valid region Op object
- *
- * RETURN: Status
- *
- * DESCRIPTION: Get region address and length
- * Called from AcpiDsExecEndOp during OpRegion parse tree walk
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsEvalRegionOperands (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_STATUS Status;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_OPERAND_OBJECT *OperandDesc;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_PARSE_OBJECT *NextOp;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsEvalRegionOperands, Op);
-
-
- /*
- * This is where we evaluate the address and length fields of the
- * OpRegion declaration
- */
- Node = Op->Common.Node;
-
- /* NextOp points to the op that holds the SpaceID */
-
- NextOp = Op->Common.Value.Arg;
-
- /* NextOp points to address op */
-
- NextOp = NextOp->Common.Next;
-
- /* Evaluate/create the address and length operands */
-
- Status = AcpiDsCreateOperands (WalkState, NextOp);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Resolve the length and address operands to numbers */
-
- Status = AcpiExResolveOperands (Op->Common.AmlOpcode,
- ACPI_WALK_OPERANDS, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- ACPI_DUMP_OPERANDS (ACPI_WALK_OPERANDS, ACPI_IMODE_EXECUTE,
- AcpiPsGetOpcodeName (Op->Common.AmlOpcode),
- 1, "after AcpiExResolveOperands");
-
- ObjDesc = AcpiNsGetAttachedObject (Node);
- if (!ObjDesc)
- {
- return_ACPI_STATUS (AE_NOT_EXIST);
- }
-
- /*
- * Get the length operand and save it
- * (at Top of stack)
- */
- OperandDesc = WalkState->Operands[WalkState->NumOperands - 1];
-
- ObjDesc->Region.Length = (UINT32) OperandDesc->Integer.Value;
- AcpiUtRemoveReference (OperandDesc);
-
- /*
- * Get the address and save it
- * (at top of stack - 1)
- */
- OperandDesc = WalkState->Operands[WalkState->NumOperands - 2];
-
- ObjDesc->Region.Address = (ACPI_PHYSICAL_ADDRESS)
- OperandDesc->Integer.Value;
- AcpiUtRemoveReference (OperandDesc);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "RgnObj %p Addr %8.8X%8.8X Len %X\n",
- ObjDesc,
- ACPI_FORMAT_UINT64 (ObjDesc->Region.Address),
- ObjDesc->Region.Length));
-
- /* Now the address and length are valid for this opregion */
-
- ObjDesc->Region.Flags |= AOPOBJ_DATA_VALID;
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsEvalDataObjectOperands
- *
- * PARAMETERS: WalkState - Current walk
- * Op - A valid DataObject Op object
- * ObjDesc - DataObject
- *
- * RETURN: Status
- *
- * DESCRIPTION: Get the operands and complete the following data object types:
- * Buffer, Package.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsEvalDataObjectOperands (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op,
- ACPI_OPERAND_OBJECT *ObjDesc)
-{
- ACPI_STATUS Status;
- ACPI_OPERAND_OBJECT *ArgDesc;
- UINT32 Length;
-
-
- ACPI_FUNCTION_TRACE (DsEvalDataObjectOperands);
-
-
- /* The first operand (for all of these data objects) is the length */
-
- /*
- * Set proper index into operand stack for AcpiDsObjStackPush
- * invoked inside AcpiDsCreateOperand.
- */
- WalkState->OperandIndex = WalkState->NumOperands;
-
- Status = AcpiDsCreateOperand (WalkState, Op->Common.Value.Arg, 1);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- Status = AcpiExResolveOperands (WalkState->Opcode,
- &(WalkState->Operands [WalkState->NumOperands -1]),
- WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Extract length operand */
-
- ArgDesc = WalkState->Operands [WalkState->NumOperands - 1];
- Length = (UINT32) ArgDesc->Integer.Value;
-
- /* Cleanup for length operand */
-
- Status = AcpiDsObjStackPop (1, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- AcpiUtRemoveReference (ArgDesc);
-
- /*
- * Create the actual data object
- */
- switch (Op->Common.AmlOpcode)
- {
- case AML_BUFFER_OP:
-
- Status = AcpiDsBuildInternalBufferObj (WalkState, Op, Length, &ObjDesc);
- break;
-
- case AML_PACKAGE_OP:
- case AML_VAR_PACKAGE_OP:
-
- Status = AcpiDsBuildInternalPackageObj (WalkState, Op, Length, &ObjDesc);
- break;
-
- default:
- return_ACPI_STATUS (AE_AML_BAD_OPCODE);
- }
-
- if (ACPI_SUCCESS (Status))
- {
- /*
- * Return the object in the WalkState, unless the parent is a package -
- * in this case, the return object will be stored in the parse tree
- * for the package.
- */
- if ((!Op->Common.Parent) ||
- ((Op->Common.Parent->Common.AmlOpcode != AML_PACKAGE_OP) &&
- (Op->Common.Parent->Common.AmlOpcode != AML_VAR_PACKAGE_OP) &&
- (Op->Common.Parent->Common.AmlOpcode != AML_NAME_OP)))
- {
- WalkState->ResultObj = ObjDesc;
- }
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsExecBeginControlOp
- *
- * PARAMETERS: WalkList - The list that owns the walk stack
- * Op - The control Op
- *
- * RETURN: Status
- *
- * DESCRIPTION: Handles all control ops encountered during control method
- * execution.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsExecBeginControlOp (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_GENERIC_STATE *ControlState;
-
-
- ACPI_FUNCTION_NAME (DsExecBeginControlOp);
-
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Op=%p Opcode=%2.2X State=%p\n", Op,
- Op->Common.AmlOpcode, WalkState));
-
- switch (Op->Common.AmlOpcode)
- {
- case AML_IF_OP:
- case AML_WHILE_OP:
-
- /*
- * IF/WHILE: Create a new control state to manage these
- * constructs. We need to manage these as a stack, in order
- * to handle nesting.
- */
- ControlState = AcpiUtCreateControlState ();
- if (!ControlState)
- {
- Status = AE_NO_MEMORY;
- break;
- }
- /*
- * Save a pointer to the predicate for multiple executions
- * of a loop
- */
- ControlState->Control.AmlPredicateStart = WalkState->ParserState.Aml - 1;
- ControlState->Control.PackageEnd = WalkState->ParserState.PkgEnd;
- ControlState->Control.Opcode = Op->Common.AmlOpcode;
-
-
- /* Push the control state on this walk's control stack */
-
- AcpiUtPushGenericState (&WalkState->ControlState, ControlState);
- break;
-
- case AML_ELSE_OP:
-
- /* Predicate is in the state object */
- /* If predicate is true, the IF was executed, ignore ELSE part */
-
- if (WalkState->LastPredicate)
- {
- Status = AE_CTRL_TRUE;
- }
-
- break;
-
- case AML_RETURN_OP:
-
- break;
-
- default:
- break;
- }
-
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsExecEndControlOp
- *
- * PARAMETERS: WalkList - The list that owns the walk stack
- * Op - The control Op
- *
- * RETURN: Status
- *
- * DESCRIPTION: Handles all control ops encountered during control method
- * execution.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsExecEndControlOp (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_GENERIC_STATE *ControlState;
-
-
- ACPI_FUNCTION_NAME (DsExecEndControlOp);
-
-
- switch (Op->Common.AmlOpcode)
- {
- case AML_IF_OP:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "[IF_OP] Op=%p\n", Op));
-
- /*
- * Save the result of the predicate in case there is an
- * ELSE to come
- */
- WalkState->LastPredicate =
- (BOOLEAN) WalkState->ControlState->Common.Value;
-
- /*
- * Pop the control state that was created at the start
- * of the IF and free it
- */
- ControlState = AcpiUtPopGenericState (&WalkState->ControlState);
- AcpiUtDeleteGenericState (ControlState);
- break;
-
-
- case AML_ELSE_OP:
-
- break;
-
-
- case AML_WHILE_OP:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "[WHILE_OP] Op=%p\n", Op));
-
- if (WalkState->ControlState->Common.Value)
- {
- /* Predicate was true, go back and evaluate it again! */
-
- Status = AE_CTRL_PENDING;
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "[WHILE_OP] termination! Op=%p\n",Op));
-
- /* Pop this control state and free it */
-
- ControlState = AcpiUtPopGenericState (&WalkState->ControlState);
-
- WalkState->AmlLastWhile = ControlState->Control.AmlPredicateStart;
- AcpiUtDeleteGenericState (ControlState);
- break;
-
-
- case AML_RETURN_OP:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "[RETURN_OP] Op=%p Arg=%p\n",Op, Op->Common.Value.Arg));
-
- /*
- * One optional operand -- the return value
- * It can be either an immediate operand or a result that
- * has been bubbled up the tree
- */
- if (Op->Common.Value.Arg)
- {
- /* Since we have a real Return(), delete any implicit return */
-
- AcpiDsClearImplicitReturn (WalkState);
-
- /* Return statement has an immediate operand */
-
- Status = AcpiDsCreateOperands (WalkState, Op->Common.Value.Arg);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- /*
- * If value being returned is a Reference (such as
- * an arg or local), resolve it now because it may
- * cease to exist at the end of the method.
- */
- Status = AcpiExResolveToValue (&WalkState->Operands [0], WalkState);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- /*
- * Get the return value and save as the last result
- * value. This is the only place where WalkState->ReturnDesc
- * is set to anything other than zero!
- */
- WalkState->ReturnDesc = WalkState->Operands[0];
- }
- else if (WalkState->ResultCount)
- {
- /* Since we have a real Return(), delete any implicit return */
-
- AcpiDsClearImplicitReturn (WalkState);
-
- /*
- * The return value has come from a previous calculation.
- *
- * If value being returned is a Reference (such as
- * an arg or local), resolve it now because it may
- * cease to exist at the end of the method.
- *
- * Allow references created by the Index operator to return unchanged.
- */
- if ((ACPI_GET_DESCRIPTOR_TYPE (WalkState->Results->Results.ObjDesc[0]) == ACPI_DESC_TYPE_OPERAND) &&
- (ACPI_GET_OBJECT_TYPE (WalkState->Results->Results.ObjDesc [0]) == ACPI_TYPE_LOCAL_REFERENCE) &&
- ((WalkState->Results->Results.ObjDesc [0])->Reference.Opcode != AML_INDEX_OP))
- {
- Status = AcpiExResolveToValue (&WalkState->Results->Results.ObjDesc [0], WalkState);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
- }
-
- WalkState->ReturnDesc = WalkState->Results->Results.ObjDesc [0];
- }
- else
- {
- /* No return operand */
-
- if (WalkState->NumOperands)
- {
- AcpiUtRemoveReference (WalkState->Operands [0]);
- }
-
- WalkState->Operands [0] = NULL;
- WalkState->NumOperands = 0;
- WalkState->ReturnDesc = NULL;
- }
-
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "Completed RETURN_OP State=%p, RetVal=%p\n",
- WalkState, WalkState->ReturnDesc));
-
- /* End the control method execution right now */
-
- Status = AE_CTRL_TERMINATE;
- break;
-
-
- case AML_NOOP_OP:
-
- /* Just do nothing! */
- break;
-
-
- case AML_BREAK_POINT_OP:
-
- /* Call up to the OS service layer to handle this */
-
- Status = AcpiOsSignal (ACPI_SIGNAL_BREAKPOINT, "Executed AML Breakpoint opcode");
-
- /* If and when it returns, all done. */
-
- break;
-
-
- case AML_BREAK_OP:
- case AML_CONTINUE_OP: /* ACPI 2.0 */
-
-
- /* Pop and delete control states until we find a while */
-
- while (WalkState->ControlState &&
- (WalkState->ControlState->Control.Opcode != AML_WHILE_OP))
- {
- ControlState = AcpiUtPopGenericState (&WalkState->ControlState);
- AcpiUtDeleteGenericState (ControlState);
- }
-
- /* No while found? */
-
- if (!WalkState->ControlState)
- {
- return (AE_AML_NO_WHILE);
- }
-
- /* Was: WalkState->AmlLastWhile = WalkState->ControlState->Control.AmlPredicateStart; */
-
- WalkState->AmlLastWhile = WalkState->ControlState->Control.PackageEnd;
-
- /* Return status depending on opcode */
-
- if (Op->Common.AmlOpcode == AML_BREAK_OP)
- {
- Status = AE_CTRL_BREAK;
- }
- else
- {
- Status = AE_CTRL_CONTINUE;
- }
- break;
-
-
- default:
-
- ACPI_ERROR ((AE_INFO, "Unknown control opcode=%X Op=%p",
- Op->Common.AmlOpcode, Op));
-
- Status = AE_AML_BAD_OPCODE;
- break;
- }
-
- return (Status);
-}
-
diff --git a/sys/contrib/dev/acpica/dsutils.c b/sys/contrib/dev/acpica/dsutils.c
deleted file mode 100644
index eb75947..0000000
--- a/sys/contrib/dev/acpica/dsutils.c
+++ /dev/null
@@ -1,1010 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: dsutils - Dispatcher utilities
- * $Revision: 1.124 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __DSUTILS_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acdebug.h>
-
-#define _COMPONENT ACPI_DISPATCHER
- ACPI_MODULE_NAME ("dsutils")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsClearImplicitReturn
- *
- * PARAMETERS: WalkState - Current State
- *
- * RETURN: None.
- *
- * DESCRIPTION: Clear and remove a reference on an implicit return value. Used
- * to delete "stale" return values (if enabled, the return value
- * from every operator is saved at least momentarily, in case the
- * parent method exits.)
- *
- ******************************************************************************/
-
-void
-AcpiDsClearImplicitReturn (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_FUNCTION_NAME (DsClearImplicitReturn);
-
-
- /*
- * Slack must be enabled for this feature
- */
- if (!AcpiGbl_EnableInterpreterSlack)
- {
- return;
- }
-
- if (WalkState->ImplicitReturnObj)
- {
- /*
- * Delete any "stale" implicit return. However, in
- * complex statements, the implicit return value can be
- * bubbled up several levels.
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "Removing reference on stale implicit return obj %p\n",
- WalkState->ImplicitReturnObj));
-
- AcpiUtRemoveReference (WalkState->ImplicitReturnObj);
- WalkState->ImplicitReturnObj = NULL;
- }
-}
-
-
-#ifndef ACPI_NO_METHOD_EXECUTION
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsDoImplicitReturn
- *
- * PARAMETERS: ReturnDesc - The return value
- * WalkState - Current State
- * AddReference - True if a reference should be added to the
- * return object
- *
- * RETURN: TRUE if implicit return enabled, FALSE otherwise
- *
- * DESCRIPTION: Implements the optional "implicit return". We save the result
- * of every ASL operator and control method invocation in case the
- * parent method exit. Before storing a new return value, we
- * delete the previous return value.
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiDsDoImplicitReturn (
- ACPI_OPERAND_OBJECT *ReturnDesc,
- ACPI_WALK_STATE *WalkState,
- BOOLEAN AddReference)
-{
- ACPI_FUNCTION_NAME (DsDoImplicitReturn);
-
-
- /*
- * Slack must be enabled for this feature, and we must
- * have a valid return object
- */
- if ((!AcpiGbl_EnableInterpreterSlack) ||
- (!ReturnDesc))
- {
- return (FALSE);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "Result %p will be implicitly returned; Prev=%p\n",
- ReturnDesc,
- WalkState->ImplicitReturnObj));
-
- /*
- * Delete any "stale" implicit return value first. However, in
- * complex statements, the implicit return value can be
- * bubbled up several levels, so we don't clear the value if it
- * is the same as the ReturnDesc.
- */
- if (WalkState->ImplicitReturnObj)
- {
- if (WalkState->ImplicitReturnObj == ReturnDesc)
- {
- return (TRUE);
- }
- AcpiDsClearImplicitReturn (WalkState);
- }
-
- /* Save the implicit return value, add a reference if requested */
-
- WalkState->ImplicitReturnObj = ReturnDesc;
- if (AddReference)
- {
- AcpiUtAddReference (ReturnDesc);
- }
-
- return (TRUE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsIsResultUsed
- *
- * PARAMETERS: Op - Current Op
- * WalkState - Current State
- *
- * RETURN: TRUE if result is used, FALSE otherwise
- *
- * DESCRIPTION: Check if a result object will be used by the parent
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiDsIsResultUsed (
- ACPI_PARSE_OBJECT *Op,
- ACPI_WALK_STATE *WalkState)
-{
- const ACPI_OPCODE_INFO *ParentInfo;
-
- ACPI_FUNCTION_TRACE_PTR (DsIsResultUsed, Op);
-
-
- /* Must have both an Op and a Result Object */
-
- if (!Op)
- {
- ACPI_ERROR ((AE_INFO, "Null Op"));
- return_UINT8 (TRUE);
- }
-
- /*
- * We know that this operator is not a
- * Return() operator (would not come here.) The following code is the
- * optional support for a so-called "implicit return". Some AML code
- * assumes that the last value of the method is "implicitly" returned
- * to the caller. Just save the last result as the return value.
- * NOTE: this is optional because the ASL language does not actually
- * support this behavior.
- */
- (void) AcpiDsDoImplicitReturn (WalkState->ResultObj, WalkState, TRUE);
-
- /*
- * Now determine if the parent will use the result
- *
- * If there is no parent, or the parent is a ScopeOp, we are executing
- * at the method level. An executing method typically has no parent,
- * since each method is parsed separately. A method invoked externally
- * via ExecuteControlMethod has a ScopeOp as the parent.
- */
- if ((!Op->Common.Parent) ||
- (Op->Common.Parent->Common.AmlOpcode == AML_SCOPE_OP))
- {
- /* No parent, the return value cannot possibly be used */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "At Method level, result of [%s] not used\n",
- AcpiPsGetOpcodeName (Op->Common.AmlOpcode)));
- return_UINT8 (FALSE);
- }
-
- /* Get info on the parent. The RootOp is AML_SCOPE */
-
- ParentInfo = AcpiPsGetOpcodeInfo (Op->Common.Parent->Common.AmlOpcode);
- if (ParentInfo->Class == AML_CLASS_UNKNOWN)
- {
- ACPI_ERROR ((AE_INFO,
- "Unknown parent opcode Op=%p", Op));
- return_UINT8 (FALSE);
- }
-
- /*
- * Decide what to do with the result based on the parent. If
- * the parent opcode will not use the result, delete the object.
- * Otherwise leave it as is, it will be deleted when it is used
- * as an operand later.
- */
- switch (ParentInfo->Class)
- {
- case AML_CLASS_CONTROL:
-
- switch (Op->Common.Parent->Common.AmlOpcode)
- {
- case AML_RETURN_OP:
-
- /* Never delete the return value associated with a return opcode */
-
- goto ResultUsed;
-
- case AML_IF_OP:
- case AML_WHILE_OP:
-
- /*
- * If we are executing the predicate AND this is the predicate op,
- * we will use the return value
- */
- if ((WalkState->ControlState->Common.State == ACPI_CONTROL_PREDICATE_EXECUTING) &&
- (WalkState->ControlState->Control.PredicateOp == Op))
- {
- goto ResultUsed;
- }
- break;
-
- default:
- /* Ignore other control opcodes */
- break;
- }
-
- /* The general control opcode returns no result */
-
- goto ResultNotUsed;
-
-
- case AML_CLASS_CREATE:
-
- /*
- * These opcodes allow TermArg(s) as operands and therefore
- * the operands can be method calls. The result is used.
- */
- goto ResultUsed;
-
-
- case AML_CLASS_NAMED_OBJECT:
-
- if ((Op->Common.Parent->Common.AmlOpcode == AML_REGION_OP) ||
- (Op->Common.Parent->Common.AmlOpcode == AML_DATA_REGION_OP) ||
- (Op->Common.Parent->Common.AmlOpcode == AML_PACKAGE_OP) ||
- (Op->Common.Parent->Common.AmlOpcode == AML_VAR_PACKAGE_OP) ||
- (Op->Common.Parent->Common.AmlOpcode == AML_BUFFER_OP) ||
- (Op->Common.Parent->Common.AmlOpcode == AML_INT_EVAL_SUBTREE_OP))
- {
- /*
- * These opcodes allow TermArg(s) as operands and therefore
- * the operands can be method calls. The result is used.
- */
- goto ResultUsed;
- }
-
- goto ResultNotUsed;
-
-
- default:
-
- /*
- * In all other cases. the parent will actually use the return
- * object, so keep it.
- */
- goto ResultUsed;
- }
-
-
-ResultUsed:
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "Result of [%s] used by Parent [%s] Op=%p\n",
- AcpiPsGetOpcodeName (Op->Common.AmlOpcode),
- AcpiPsGetOpcodeName (Op->Common.Parent->Common.AmlOpcode), Op));
-
- return_UINT8 (TRUE);
-
-
-ResultNotUsed:
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "Result of [%s] not used by Parent [%s] Op=%p\n",
- AcpiPsGetOpcodeName (Op->Common.AmlOpcode),
- AcpiPsGetOpcodeName (Op->Common.Parent->Common.AmlOpcode), Op));
-
- return_UINT8 (FALSE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsDeleteResultIfNotUsed
- *
- * PARAMETERS: Op - Current parse Op
- * ResultObj - Result of the operation
- * WalkState - Current state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Used after interpretation of an opcode. If there is an internal
- * result descriptor, check if the parent opcode will actually use
- * this result. If not, delete the result now so that it will
- * not become orphaned.
- *
- ******************************************************************************/
-
-void
-AcpiDsDeleteResultIfNotUsed (
- ACPI_PARSE_OBJECT *Op,
- ACPI_OPERAND_OBJECT *ResultObj,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsDeleteResultIfNotUsed, ResultObj);
-
-
- if (!Op)
- {
- ACPI_ERROR ((AE_INFO, "Null Op"));
- return_VOID;
- }
-
- if (!ResultObj)
- {
- return_VOID;
- }
-
- if (!AcpiDsIsResultUsed (Op, WalkState))
- {
- /* Must pop the result stack (ObjDesc should be equal to ResultObj) */
-
- Status = AcpiDsResultPop (&ObjDesc, WalkState);
- if (ACPI_SUCCESS (Status))
- {
- AcpiUtRemoveReference (ResultObj);
- }
- }
-
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsResolveOperands
- *
- * PARAMETERS: WalkState - Current walk state with operands on stack
- *
- * RETURN: Status
- *
- * DESCRIPTION: Resolve all operands to their values. Used to prepare
- * arguments to a control method invocation (a call from one
- * method to another.)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsResolveOperands (
- ACPI_WALK_STATE *WalkState)
-{
- UINT32 i;
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsResolveOperands, WalkState);
-
-
- /*
- * Attempt to resolve each of the valid operands
- * Method arguments are passed by reference, not by value. This means
- * that the actual objects are passed, not copies of the objects.
- */
- for (i = 0; i < WalkState->NumOperands; i++)
- {
- Status = AcpiExResolveToValue (&WalkState->Operands[i], WalkState);
- if (ACPI_FAILURE (Status))
- {
- break;
- }
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsClearOperands
- *
- * PARAMETERS: WalkState - Current walk state with operands on stack
- *
- * RETURN: None
- *
- * DESCRIPTION: Clear all operands on the current walk state operand stack.
- *
- ******************************************************************************/
-
-void
-AcpiDsClearOperands (
- ACPI_WALK_STATE *WalkState)
-{
- UINT32 i;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsClearOperands, WalkState);
-
-
- /* Remove a reference on each operand on the stack */
-
- for (i = 0; i < WalkState->NumOperands; i++)
- {
- /*
- * Remove a reference to all operands, including both
- * "Arguments" and "Targets".
- */
- AcpiUtRemoveReference (WalkState->Operands[i]);
- WalkState->Operands[i] = NULL;
- }
-
- WalkState->NumOperands = 0;
- return_VOID;
-}
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsCreateOperand
- *
- * PARAMETERS: WalkState - Current walk state
- * Arg - Parse object for the argument
- * ArgIndex - Which argument (zero based)
- *
- * RETURN: Status
- *
- * DESCRIPTION: Translate a parse tree object that is an argument to an AML
- * opcode to the equivalent interpreter object. This may include
- * looking up a name or entering a new name into the internal
- * namespace.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsCreateOperand (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Arg,
- UINT32 ArgIndex)
-{
- ACPI_STATUS Status = AE_OK;
- char *NameString;
- UINT32 NameLength;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_PARSE_OBJECT *ParentOp;
- UINT16 Opcode;
- ACPI_INTERPRETER_MODE InterpreterMode;
- const ACPI_OPCODE_INFO *OpInfo;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsCreateOperand, Arg);
-
-
- /* A valid name must be looked up in the namespace */
-
- if ((Arg->Common.AmlOpcode == AML_INT_NAMEPATH_OP) &&
- (Arg->Common.Value.String) &&
- !(Arg->Common.Flags & ACPI_PARSEOP_IN_STACK))
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Getting a name: Arg=%p\n", Arg));
-
- /* Get the entire name string from the AML stream */
-
- Status = AcpiExGetNameString (ACPI_TYPE_ANY, Arg->Common.Value.Buffer,
- &NameString, &NameLength);
-
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* All prefixes have been handled, and the name is in NameString */
-
- /*
- * Special handling for BufferField declarations. This is a deferred
- * opcode that unfortunately defines the field name as the last
- * parameter instead of the first. We get here when we are performing
- * the deferred execution, so the actual name of the field is already
- * in the namespace. We don't want to attempt to look it up again
- * because we may be executing in a different scope than where the
- * actual opcode exists.
- */
- if ((WalkState->DeferredNode) &&
- (WalkState->DeferredNode->Type == ACPI_TYPE_BUFFER_FIELD) &&
- (ArgIndex == (UINT32) ((WalkState->Opcode == AML_CREATE_FIELD_OP) ? 3 : 2)))
- {
- ObjDesc = ACPI_CAST_PTR (
- ACPI_OPERAND_OBJECT, WalkState->DeferredNode);
- Status = AE_OK;
- }
- else /* All other opcodes */
- {
- /*
- * Differentiate between a namespace "create" operation
- * versus a "lookup" operation (IMODE_LOAD_PASS2 vs.
- * IMODE_EXECUTE) in order to support the creation of
- * namespace objects during the execution of control methods.
- */
- ParentOp = Arg->Common.Parent;
- OpInfo = AcpiPsGetOpcodeInfo (ParentOp->Common.AmlOpcode);
- if ((OpInfo->Flags & AML_NSNODE) &&
- (ParentOp->Common.AmlOpcode != AML_INT_METHODCALL_OP) &&
- (ParentOp->Common.AmlOpcode != AML_REGION_OP) &&
- (ParentOp->Common.AmlOpcode != AML_INT_NAMEPATH_OP))
- {
- /* Enter name into namespace if not found */
-
- InterpreterMode = ACPI_IMODE_LOAD_PASS2;
- }
- else
- {
- /* Return a failure if name not found */
-
- InterpreterMode = ACPI_IMODE_EXECUTE;
- }
-
- Status = AcpiNsLookup (WalkState->ScopeInfo, NameString,
- ACPI_TYPE_ANY, InterpreterMode,
- ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE,
- WalkState,
- ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, &ObjDesc));
- /*
- * The only case where we pass through (ignore) a NOT_FOUND
- * error is for the CondRefOf opcode.
- */
- if (Status == AE_NOT_FOUND)
- {
- if (ParentOp->Common.AmlOpcode == AML_COND_REF_OF_OP)
- {
- /*
- * For the Conditional Reference op, it's OK if
- * the name is not found; We just need a way to
- * indicate this to the interpreter, set the
- * object to the root
- */
- ObjDesc = ACPI_CAST_PTR (
- ACPI_OPERAND_OBJECT, AcpiGbl_RootNode);
- Status = AE_OK;
- }
- else
- {
- /*
- * We just plain didn't find it -- which is a
- * very serious error at this point
- */
- Status = AE_AML_NAME_NOT_FOUND;
- }
- }
-
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR_NAMESPACE (NameString, Status);
- }
- }
-
- /* Free the namestring created above */
-
- ACPI_FREE (NameString);
-
- /* Check status from the lookup */
-
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Put the resulting object onto the current object stack */
-
- Status = AcpiDsObjStackPush (ObjDesc, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- ACPI_DEBUGGER_EXEC (AcpiDbDisplayArgumentObject (ObjDesc, WalkState));
- }
- else
- {
- /* Check for null name case */
-
- if ((Arg->Common.AmlOpcode == AML_INT_NAMEPATH_OP) &&
- !(Arg->Common.Flags & ACPI_PARSEOP_IN_STACK))
- {
- /*
- * If the name is null, this means that this is an
- * optional result parameter that was not specified
- * in the original ASL. Create a Zero Constant for a
- * placeholder. (Store to a constant is a Noop.)
- */
- Opcode = AML_ZERO_OP; /* Has no arguments! */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "Null namepath: Arg=%p\n", Arg));
- }
- else
- {
- Opcode = Arg->Common.AmlOpcode;
- }
-
- /* Get the object type of the argument */
-
- OpInfo = AcpiPsGetOpcodeInfo (Opcode);
- if (OpInfo->ObjectType == ACPI_TYPE_INVALID)
- {
- return_ACPI_STATUS (AE_NOT_IMPLEMENTED);
- }
-
- if ((OpInfo->Flags & AML_HAS_RETVAL) || (Arg->Common.Flags & ACPI_PARSEOP_IN_STACK))
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "Argument previously created, already stacked\n"));
-
- ACPI_DEBUGGER_EXEC (AcpiDbDisplayArgumentObject (
- WalkState->Operands [WalkState->NumOperands - 1], WalkState));
-
- /*
- * Use value that was already previously returned
- * by the evaluation of this argument
- */
- Status = AcpiDsResultPop (&ObjDesc, WalkState);
- if (ACPI_FAILURE (Status))
- {
- /*
- * Only error is underflow, and this indicates
- * a missing or null operand!
- */
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Missing or null operand"));
- return_ACPI_STATUS (Status);
- }
- }
- else
- {
- /* Create an ACPI_INTERNAL_OBJECT for the argument */
-
- ObjDesc = AcpiUtCreateInternalObject (OpInfo->ObjectType);
- if (!ObjDesc)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* Initialize the new object */
-
- Status = AcpiDsInitObjectFromOp (
- WalkState, Arg, Opcode, &ObjDesc);
- if (ACPI_FAILURE (Status))
- {
- AcpiUtDeleteObjectDesc (ObjDesc);
- return_ACPI_STATUS (Status);
- }
- }
-
- /* Put the operand object on the object stack */
-
- Status = AcpiDsObjStackPush (ObjDesc, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- ACPI_DEBUGGER_EXEC (AcpiDbDisplayArgumentObject (ObjDesc, WalkState));
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsCreateOperands
- *
- * PARAMETERS: WalkState - Current state
- * FirstArg - First argument of a parser argument tree
- *
- * RETURN: Status
- *
- * DESCRIPTION: Convert an operator's arguments from a parse tree format to
- * namespace objects and place those argument object on the object
- * stack in preparation for evaluation by the interpreter.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsCreateOperands (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *FirstArg)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_PARSE_OBJECT *Arg;
- ACPI_PARSE_OBJECT *Arguments[ACPI_OBJ_NUM_OPERANDS];
- UINT8 ArgCount = 0;
- UINT8 Count = 0;
- UINT8 Index = WalkState->NumOperands;
- UINT8 i;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsCreateOperands, FirstArg);
-
-
- /* Get all arguments in the list */
-
- Arg = FirstArg;
- while (Arg)
- {
- if (Index >= ACPI_OBJ_NUM_OPERANDS)
- {
- return_ACPI_STATUS (AE_BAD_DATA);
- }
-
- Arguments[Index] = Arg;
- WalkState->Operands [Index] = NULL;
-
- /* Move on to next argument, if any */
-
- Arg = Arg->Common.Next;
- ArgCount++;
- Index++;
- }
-
- Index--;
-
- /* It is the appropriate order to get objects from the Result stack */
-
- for (i = 0; i < ArgCount; i++)
- {
- Arg = Arguments[Index];
-
- /* Force the filling of the operand stack in inverse order */
-
- WalkState->OperandIndex = Index;
-
- Status = AcpiDsCreateOperand (WalkState, Arg, Index);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- Count++;
- Index--;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Arg #%d (%p) done, Arg1=%p\n",
- Index, Arg, FirstArg));
- }
-
- return_ACPI_STATUS (Status);
-
-
-Cleanup:
- /*
- * We must undo everything done above; meaning that we must
- * pop everything off of the operand stack and delete those
- * objects
- */
- AcpiDsObjStackPopAndDelete (ArgCount, WalkState);
-
- ACPI_EXCEPTION ((AE_INFO, Status, "While creating Arg %d", Index));
- return_ACPI_STATUS (Status);
-}
-
-
-/*****************************************************************************
- *
- * FUNCTION: AcpiDsEvaluateNamePath
- *
- * PARAMETERS: WalkState - Current state of the parse tree walk,
- * the opcode of current operation should be
- * AML_INT_NAMEPATH_OP
- *
- * RETURN: Status
- *
- * DESCRIPTION: Translate the -NamePath- parse tree object to the equivalent
- * interpreter object, convert it to value, if needed, duplicate
- * it, if needed, and push it onto the current result stack.
- *
- ****************************************************************************/
-
-ACPI_STATUS
-AcpiDsEvaluateNamePath (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_PARSE_OBJECT *Op = WalkState->Op;
- ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0];
- ACPI_OPERAND_OBJECT *NewObjDesc;
- UINT8 Type;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsEvaluateNamePath, WalkState);
-
-
- if (!Op->Common.Parent)
- {
- /* This happens after certain exception processing */
-
- goto Exit;
- }
-
- if ((Op->Common.Parent->Common.AmlOpcode == AML_PACKAGE_OP) ||
- (Op->Common.Parent->Common.AmlOpcode == AML_VAR_PACKAGE_OP) ||
- (Op->Common.Parent->Common.AmlOpcode == AML_REF_OF_OP))
- {
- /* TBD: Should we specify this feature as a bit of OpInfo->Flags of these opcodes? */
-
- goto Exit;
- }
-
- Status = AcpiDsCreateOperand (WalkState, Op, 0);
- if (ACPI_FAILURE (Status))
- {
- goto Exit;
- }
-
- if (Op->Common.Flags & ACPI_PARSEOP_TARGET)
- {
- NewObjDesc = *Operand;
- goto PushResult;
- }
-
- Type = ACPI_GET_OBJECT_TYPE (*Operand);
-
- Status = AcpiExResolveToValue (Operand, WalkState);
- if (ACPI_FAILURE (Status))
- {
- goto Exit;
- }
-
- if (Type == ACPI_TYPE_INTEGER)
- {
- /* It was incremented by AcpiExResolveToValue */
-
- AcpiUtRemoveReference (*Operand);
-
- Status = AcpiUtCopyIobjectToIobject (*Operand, &NewObjDesc, WalkState);
- if (ACPI_FAILURE (Status))
- {
- goto Exit;
- }
- }
- else
- {
- /*
- * The object either was anew created or is
- * a Namespace node - don't decrement it.
- */
- NewObjDesc = *Operand;
- }
-
- /* Cleanup for name-path operand */
-
- Status = AcpiDsObjStackPop (1, WalkState);
- if (ACPI_FAILURE (Status))
- {
- WalkState->ResultObj = NewObjDesc;
- goto Exit;
- }
-
-PushResult:
-
- WalkState->ResultObj = NewObjDesc;
-
- Status = AcpiDsResultPush (WalkState->ResultObj, WalkState);
- if (ACPI_SUCCESS (Status))
- {
- /* Force to take it from stack */
-
- Op->Common.Flags |= ACPI_PARSEOP_IN_STACK;
- }
-
-Exit:
-
- return_ACPI_STATUS (Status);
-}
diff --git a/sys/contrib/dev/acpica/dswexec.c b/sys/contrib/dev/acpica/dswexec.c
deleted file mode 100644
index 0eef999..0000000
--- a/sys/contrib/dev/acpica/dswexec.c
+++ /dev/null
@@ -1,833 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dswexec - Dispatcher method execution callbacks;
- * dispatch to interpreter.
- * $Revision: 1.134 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __DSWEXEC_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acdebug.h>
-
-
-#define _COMPONENT ACPI_DISPATCHER
- ACPI_MODULE_NAME ("dswexec")
-
-/*
- * Dispatch table for opcode classes
- */
-static ACPI_EXECUTE_OP AcpiGbl_OpTypeDispatch [] =
-{
- AcpiExOpcode_0A_0T_1R,
- AcpiExOpcode_1A_0T_0R,
- AcpiExOpcode_1A_0T_1R,
- AcpiExOpcode_1A_1T_0R,
- AcpiExOpcode_1A_1T_1R,
- AcpiExOpcode_2A_0T_0R,
- AcpiExOpcode_2A_0T_1R,
- AcpiExOpcode_2A_1T_1R,
- AcpiExOpcode_2A_2T_1R,
- AcpiExOpcode_3A_0T_0R,
- AcpiExOpcode_3A_1T_1R,
- AcpiExOpcode_6A_0T_1R
-};
-
-
-/*****************************************************************************
- *
- * FUNCTION: AcpiDsGetPredicateValue
- *
- * PARAMETERS: WalkState - Current state of the parse tree walk
- * ResultObj - if non-zero, pop result from result stack
- *
- * RETURN: Status
- *
- * DESCRIPTION: Get the result of a predicate evaluation
- *
- ****************************************************************************/
-
-ACPI_STATUS
-AcpiDsGetPredicateValue (
- ACPI_WALK_STATE *WalkState,
- ACPI_OPERAND_OBJECT *ResultObj)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_OPERAND_OBJECT *LocalObjDesc = NULL;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsGetPredicateValue, WalkState);
-
-
- WalkState->ControlState->Common.State = 0;
-
- if (ResultObj)
- {
- Status = AcpiDsResultPop (&ObjDesc, WalkState);
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Could not get result from predicate evaluation"));
-
- return_ACPI_STATUS (Status);
- }
- }
- else
- {
- Status = AcpiDsCreateOperand (WalkState, WalkState->Op, 0);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- Status = AcpiExResolveToValue (&WalkState->Operands [0], WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- ObjDesc = WalkState->Operands [0];
- }
-
- if (!ObjDesc)
- {
- ACPI_ERROR ((AE_INFO,
- "No predicate ObjDesc=%p State=%p",
- ObjDesc, WalkState));
-
- return_ACPI_STATUS (AE_AML_NO_OPERAND);
- }
-
- /*
- * Result of predicate evaluation must be an Integer
- * object. Implicitly convert the argument if necessary.
- */
- Status = AcpiExConvertToInteger (ObjDesc, &LocalObjDesc, 16);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- if (ACPI_GET_OBJECT_TYPE (LocalObjDesc) != ACPI_TYPE_INTEGER)
- {
- ACPI_ERROR ((AE_INFO,
- "Bad predicate (not an integer) ObjDesc=%p State=%p Type=%X",
- ObjDesc, WalkState, ACPI_GET_OBJECT_TYPE (ObjDesc)));
-
- Status = AE_AML_OPERAND_TYPE;
- goto Cleanup;
- }
-
- /* Truncate the predicate to 32-bits if necessary */
-
- AcpiExTruncateFor32bitTable (LocalObjDesc);
-
- /*
- * Save the result of the predicate evaluation on
- * the control stack
- */
- if (LocalObjDesc->Integer.Value)
- {
- WalkState->ControlState->Common.Value = TRUE;
- }
- else
- {
- /*
- * Predicate is FALSE, we will just toss the
- * rest of the package
- */
- WalkState->ControlState->Common.Value = FALSE;
- Status = AE_CTRL_FALSE;
- }
-
-
-Cleanup:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Completed a predicate eval=%X Op=%p\n",
- WalkState->ControlState->Common.Value, WalkState->Op));
-
- /* Break to debugger to display result */
-
- ACPI_DEBUGGER_EXEC (AcpiDbDisplayResultObject (LocalObjDesc, WalkState));
-
- /*
- * Delete the predicate result object (we know that
- * we don't need it anymore)
- */
- if (LocalObjDesc != ObjDesc)
- {
- AcpiUtRemoveReference (LocalObjDesc);
- }
- AcpiUtRemoveReference (ObjDesc);
-
- WalkState->ControlState->Common.State = ACPI_CONTROL_NORMAL;
- return_ACPI_STATUS (Status);
-}
-
-
-/*****************************************************************************
- *
- * FUNCTION: AcpiDsExecBeginOp
- *
- * PARAMETERS: WalkState - Current state of the parse tree walk
- * OutOp - Where to return op if a new one is created
- *
- * RETURN: Status
- *
- * DESCRIPTION: Descending callback used during the execution of control
- * methods. This is where most operators and operands are
- * dispatched to the interpreter.
- *
- ****************************************************************************/
-
-ACPI_STATUS
-AcpiDsExecBeginOp (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT **OutOp)
-{
- ACPI_PARSE_OBJECT *Op;
- ACPI_STATUS Status = AE_OK;
- UINT32 OpcodeClass;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsExecBeginOp, WalkState);
-
-
- Op = WalkState->Op;
- if (!Op)
- {
- Status = AcpiDsLoad2BeginOp (WalkState, OutOp);
- if (ACPI_FAILURE (Status))
- {
- goto ErrorExit;
- }
-
- Op = *OutOp;
- WalkState->Op = Op;
- WalkState->Opcode = Op->Common.AmlOpcode;
- WalkState->OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-
- if (AcpiNsOpensScope (WalkState->OpInfo->ObjectType))
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "(%s) Popping scope for Op %p\n",
- AcpiUtGetTypeName (WalkState->OpInfo->ObjectType), Op));
-
- Status = AcpiDsScopeStackPop (WalkState);
- if (ACPI_FAILURE (Status))
- {
- goto ErrorExit;
- }
- }
- }
-
- if (Op == WalkState->Origin)
- {
- if (OutOp)
- {
- *OutOp = Op;
- }
-
- return_ACPI_STATUS (AE_OK);
- }
-
- /*
- * If the previous opcode was a conditional, this opcode
- * must be the beginning of the associated predicate.
- * Save this knowledge in the current scope descriptor
- */
- if ((WalkState->ControlState) &&
- (WalkState->ControlState->Common.State ==
- ACPI_CONTROL_CONDITIONAL_EXECUTING))
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Exec predicate Op=%p State=%p\n",
- Op, WalkState));
-
- WalkState->ControlState->Common.State = ACPI_CONTROL_PREDICATE_EXECUTING;
-
- /* Save start of predicate */
-
- WalkState->ControlState->Control.PredicateOp = Op;
- }
-
-
- OpcodeClass = WalkState->OpInfo->Class;
-
- /* We want to send namepaths to the load code */
-
- if (Op->Common.AmlOpcode == AML_INT_NAMEPATH_OP)
- {
- OpcodeClass = AML_CLASS_NAMED_OBJECT;
- }
-
- /*
- * Handle the opcode based upon the opcode type
- */
- switch (OpcodeClass)
- {
- case AML_CLASS_CONTROL:
-
- Status = AcpiDsExecBeginControlOp (WalkState, Op);
- break;
-
-
- case AML_CLASS_NAMED_OBJECT:
-
- if (WalkState->WalkType & ACPI_WALK_METHOD)
- {
- /*
- * Found a named object declaration during method execution;
- * we must enter this object into the namespace. The created
- * object is temporary and will be deleted upon completion of
- * the execution of this method.
- */
- Status = AcpiDsLoad2BeginOp (WalkState, NULL);
- }
-
- break;
-
-
- case AML_CLASS_EXECUTE:
- case AML_CLASS_CREATE:
-
- break;
-
-
- default:
- break;
- }
-
- /* Nothing to do here during method execution */
-
- return_ACPI_STATUS (Status);
-
-
-ErrorExit:
- Status = AcpiDsMethodError (Status, WalkState);
- return_ACPI_STATUS (Status);
-}
-
-
-/*****************************************************************************
- *
- * FUNCTION: AcpiDsExecEndOp
- *
- * PARAMETERS: WalkState - Current state of the parse tree walk
- *
- * RETURN: Status
- *
- * DESCRIPTION: Ascending callback used during the execution of control
- * methods. The only thing we really need to do here is to
- * notice the beginning of IF, ELSE, and WHILE blocks.
- *
- ****************************************************************************/
-
-ACPI_STATUS
-AcpiDsExecEndOp (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_PARSE_OBJECT *Op;
- ACPI_STATUS Status = AE_OK;
- UINT32 OpType;
- UINT32 OpClass;
- ACPI_PARSE_OBJECT *NextOp;
- ACPI_PARSE_OBJECT *FirstArg;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsExecEndOp, WalkState);
-
-
- Op = WalkState->Op;
- OpType = WalkState->OpInfo->Type;
- OpClass = WalkState->OpInfo->Class;
-
- if (OpClass == AML_CLASS_UNKNOWN)
- {
- ACPI_ERROR ((AE_INFO, "Unknown opcode %X", Op->Common.AmlOpcode));
- return_ACPI_STATUS (AE_NOT_IMPLEMENTED);
- }
-
- FirstArg = Op->Common.Value.Arg;
-
- /* Init the walk state */
-
- WalkState->NumOperands = 0;
- WalkState->OperandIndex = 0;
- WalkState->ReturnDesc = NULL;
- WalkState->ResultObj = NULL;
-
- /* Call debugger for single step support (DEBUG build only) */
-
- ACPI_DEBUGGER_EXEC (Status = AcpiDbSingleStep (WalkState, Op, OpClass));
- ACPI_DEBUGGER_EXEC (if (ACPI_FAILURE (Status)) {return_ACPI_STATUS (Status);});
-
- /* Decode the Opcode Class */
-
- switch (OpClass)
- {
- case AML_CLASS_ARGUMENT: /* Constants, literals, etc. */
-
- if (WalkState->Opcode == AML_INT_NAMEPATH_OP)
- {
- Status = AcpiDsEvaluateNamePath (WalkState);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
- }
- break;
-
-
- case AML_CLASS_EXECUTE: /* Most operators with arguments */
-
- /* Build resolved operand stack */
-
- Status = AcpiDsCreateOperands (WalkState, FirstArg);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- /*
- * All opcodes require operand resolution, with the only exceptions
- * being the ObjectType and SizeOf operators.
- */
- if (!(WalkState->OpInfo->Flags & AML_NO_OPERAND_RESOLVE))
- {
- /* Resolve all operands */
-
- Status = AcpiExResolveOperands (WalkState->Opcode,
- &(WalkState->Operands [WalkState->NumOperands -1]),
- WalkState);
- if (ACPI_SUCCESS (Status))
- {
- ACPI_DUMP_OPERANDS (ACPI_WALK_OPERANDS, ACPI_IMODE_EXECUTE,
- AcpiPsGetOpcodeName (WalkState->Opcode),
- WalkState->NumOperands, "after ExResolveOperands");
- }
- }
-
- if (ACPI_SUCCESS (Status))
- {
- /*
- * Dispatch the request to the appropriate interpreter handler
- * routine. There is one routine per opcode "type" based upon the
- * number of opcode arguments and return type.
- */
- Status = AcpiGbl_OpTypeDispatch[OpType] (WalkState);
- }
- else
- {
- /*
- * Treat constructs of the form "Store(LocalX,LocalX)" as noops when the
- * Local is uninitialized.
- */
- if ((Status == AE_AML_UNINITIALIZED_LOCAL) &&
- (WalkState->Opcode == AML_STORE_OP) &&
- (WalkState->Operands[0]->Common.Type == ACPI_TYPE_LOCAL_REFERENCE) &&
- (WalkState->Operands[1]->Common.Type == ACPI_TYPE_LOCAL_REFERENCE) &&
- (WalkState->Operands[0]->Reference.Opcode ==
- WalkState->Operands[1]->Reference.Opcode) &&
- (WalkState->Operands[0]->Reference.Offset ==
- WalkState->Operands[1]->Reference.Offset))
- {
- Status = AE_OK;
- }
- else
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "While resolving operands for [%s]",
- AcpiPsGetOpcodeName (WalkState->Opcode)));
- }
- }
-
- /* Always delete the argument objects and clear the operand stack */
-
- AcpiDsClearOperands (WalkState);
-
- /*
- * If a result object was returned from above, push it on the
- * current result stack
- */
- if (ACPI_SUCCESS (Status) &&
- WalkState->ResultObj)
- {
- Status = AcpiDsResultPush (WalkState->ResultObj, WalkState);
- }
- break;
-
-
- default:
-
- switch (OpType)
- {
- case AML_TYPE_CONTROL: /* Type 1 opcode, IF/ELSE/WHILE/NOOP */
-
- /* 1 Operand, 0 ExternalResult, 0 InternalResult */
-
- Status = AcpiDsExecEndControlOp (WalkState, Op);
-
- break;
-
-
- case AML_TYPE_METHOD_CALL:
-
- /*
- * If the method is referenced from within a package
- * declaration, it is not a invocation of the method, just
- * a reference to it.
- */
- if ((Op->Asl.Parent) &&
- ((Op->Asl.Parent->Asl.AmlOpcode == AML_PACKAGE_OP) ||
- (Op->Asl.Parent->Asl.AmlOpcode == AML_VAR_PACKAGE_OP)))
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "Method Reference in a Package, Op=%p\n", Op));
-
- Op->Common.Node = (ACPI_NAMESPACE_NODE *) Op->Asl.Value.Arg->Asl.Node->Object;
- AcpiUtAddReference (Op->Asl.Value.Arg->Asl.Node->Object);
- return_ACPI_STATUS (AE_OK);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Method invocation, Op=%p\n", Op));
-
- /*
- * (AML_METHODCALL) Op->Asl.Value.Arg->Asl.Node contains
- * the method Node pointer
- */
- /* NextOp points to the op that holds the method name */
-
- NextOp = FirstArg;
-
- /* NextOp points to first argument op */
-
- NextOp = NextOp->Common.Next;
-
- /*
- * Get the method's arguments and put them on the operand stack
- */
- Status = AcpiDsCreateOperands (WalkState, NextOp);
- if (ACPI_FAILURE (Status))
- {
- break;
- }
-
- /*
- * Since the operands will be passed to another control method,
- * we must resolve all local references here (Local variables,
- * arguments to *this* method, etc.)
- */
- Status = AcpiDsResolveOperands (WalkState);
- if (ACPI_FAILURE (Status))
- {
- /* On error, clear all resolved operands */
-
- AcpiDsClearOperands (WalkState);
- break;
- }
-
- /*
- * Tell the walk loop to preempt this running method and
- * execute the new method
- */
- Status = AE_CTRL_TRANSFER;
-
- /*
- * Return now; we don't want to disturb anything,
- * especially the operand count!
- */
- return_ACPI_STATUS (Status);
-
-
- case AML_TYPE_CREATE_FIELD:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "Executing CreateField Buffer/Index Op=%p\n", Op));
-
- Status = AcpiDsLoad2EndOp (WalkState);
- if (ACPI_FAILURE (Status))
- {
- break;
- }
-
- Status = AcpiDsEvalBufferFieldOperands (WalkState, Op);
- break;
-
-
- case AML_TYPE_CREATE_OBJECT:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "Executing CreateObject (Buffer/Package) Op=%p\n", Op));
-
- switch (Op->Common.Parent->Common.AmlOpcode)
- {
- case AML_NAME_OP:
-
- /*
- * Put the Node on the object stack (Contains the ACPI Name
- * of this object)
- */
- WalkState->Operands[0] = (void *) Op->Common.Parent->Common.Node;
- WalkState->NumOperands = 1;
-
- Status = AcpiDsCreateNode (WalkState,
- Op->Common.Parent->Common.Node,
- Op->Common.Parent);
- if (ACPI_FAILURE (Status))
- {
- break;
- }
-
- /* Fall through */
- /*lint -fallthrough */
-
- case AML_INT_EVAL_SUBTREE_OP:
-
- Status = AcpiDsEvalDataObjectOperands (WalkState, Op,
- AcpiNsGetAttachedObject (Op->Common.Parent->Common.Node));
- break;
-
- default:
-
- Status = AcpiDsEvalDataObjectOperands (WalkState, Op, NULL);
- break;
- }
-
- /*
- * If a result object was returned from above, push it on the
- * current result stack
- */
- if (WalkState->ResultObj)
- {
- Status = AcpiDsResultPush (WalkState->ResultObj, WalkState);
- }
- break;
-
-
- case AML_TYPE_NAMED_FIELD:
- case AML_TYPE_NAMED_COMPLEX:
- case AML_TYPE_NAMED_SIMPLE:
- case AML_TYPE_NAMED_NO_OBJ:
-
- Status = AcpiDsLoad2EndOp (WalkState);
- if (ACPI_FAILURE (Status))
- {
- break;
- }
-
- if (Op->Common.AmlOpcode == AML_REGION_OP)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "Executing OpRegion Address/Length Op=%p\n", Op));
-
- Status = AcpiDsEvalRegionOperands (WalkState, Op);
- if (ACPI_FAILURE (Status))
- {
- break;
- }
- }
- break;
-
-
- case AML_TYPE_UNDEFINED:
-
- ACPI_ERROR ((AE_INFO,
- "Undefined opcode type Op=%p", Op));
- return_ACPI_STATUS (AE_NOT_IMPLEMENTED);
-
-
- case AML_TYPE_BOGUS:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "Internal opcode=%X type Op=%p\n",
- WalkState->Opcode, Op));
- break;
-
-
- default:
-
- ACPI_ERROR ((AE_INFO,
- "Unimplemented opcode, class=%X type=%X Opcode=%X Op=%p",
- OpClass, OpType, Op->Common.AmlOpcode, Op));
-
- Status = AE_NOT_IMPLEMENTED;
- break;
- }
- }
-
- /*
- * ACPI 2.0 support for 64-bit integers: Truncate numeric
- * result value if we are executing from a 32-bit ACPI table
- */
- AcpiExTruncateFor32bitTable (WalkState->ResultObj);
-
- /*
- * Check if we just completed the evaluation of a
- * conditional predicate
- */
- if ((ACPI_SUCCESS (Status)) &&
- (WalkState->ControlState) &&
- (WalkState->ControlState->Common.State ==
- ACPI_CONTROL_PREDICATE_EXECUTING) &&
- (WalkState->ControlState->Control.PredicateOp == Op))
- {
- Status = AcpiDsGetPredicateValue (WalkState, WalkState->ResultObj);
- WalkState->ResultObj = NULL;
- }
-
-
-Cleanup:
-
- if (WalkState->ResultObj)
- {
- /* Break to debugger to display result */
-
- ACPI_DEBUGGER_EXEC (AcpiDbDisplayResultObject (WalkState->ResultObj,
- WalkState));
-
- /*
- * Delete the result op if and only if:
- * Parent will not use the result -- such as any
- * non-nested type2 op in a method (parent will be method)
- */
- AcpiDsDeleteResultIfNotUsed (Op, WalkState->ResultObj, WalkState);
- }
-
-#ifdef _UNDER_DEVELOPMENT
-
- if (WalkState->ParserState.Aml == WalkState->ParserState.AmlEnd)
- {
- AcpiDbMethodEnd (WalkState);
- }
-#endif
-
- /* Invoke exception handler on error */
-
- if (ACPI_FAILURE (Status))
- {
- Status = AcpiDsMethodError (Status, WalkState);
- }
-
- /* Always clear the object stack */
-
- WalkState->NumOperands = 0;
- return_ACPI_STATUS (Status);
-}
-
-
diff --git a/sys/contrib/dev/acpica/dswload.c b/sys/contrib/dev/acpica/dswload.c
deleted file mode 100644
index 7a65942..0000000
--- a/sys/contrib/dev/acpica/dswload.c
+++ /dev/null
@@ -1,1294 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dswload - Dispatcher namespace load callbacks
- * $Revision: 1.117 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __DSWLOAD_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acevents.h>
-
-#ifdef ACPI_ASL_COMPILER
-#include <contrib/dev/acpica/acdisasm.h>
-#endif
-
-#define _COMPONENT ACPI_DISPATCHER
- ACPI_MODULE_NAME ("dswload")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsInitCallbacks
- *
- * PARAMETERS: WalkState - Current state of the parse tree walk
- * PassNumber - 1, 2, or 3
- *
- * RETURN: Status
- *
- * DESCRIPTION: Init walk state callbacks
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsInitCallbacks (
- ACPI_WALK_STATE *WalkState,
- UINT32 PassNumber)
-{
-
- switch (PassNumber)
- {
- case 1:
- WalkState->ParseFlags = ACPI_PARSE_LOAD_PASS1 |
- ACPI_PARSE_DELETE_TREE;
- WalkState->DescendingCallback = AcpiDsLoad1BeginOp;
- WalkState->AscendingCallback = AcpiDsLoad1EndOp;
- break;
-
- case 2:
- WalkState->ParseFlags = ACPI_PARSE_LOAD_PASS1 |
- ACPI_PARSE_DELETE_TREE;
- WalkState->DescendingCallback = AcpiDsLoad2BeginOp;
- WalkState->AscendingCallback = AcpiDsLoad2EndOp;
- break;
-
- case 3:
-#ifndef ACPI_NO_METHOD_EXECUTION
- WalkState->ParseFlags |= ACPI_PARSE_EXECUTE |
- ACPI_PARSE_DELETE_TREE;
- WalkState->DescendingCallback = AcpiDsExecBeginOp;
- WalkState->AscendingCallback = AcpiDsExecEndOp;
-#endif
- break;
-
- default:
- return (AE_BAD_PARAMETER);
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsLoad1BeginOp
- *
- * PARAMETERS: WalkState - Current state of the parse tree walk
- * OutOp - Where to return op if a new one is created
- *
- * RETURN: Status
- *
- * DESCRIPTION: Descending callback used during the loading of ACPI tables.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsLoad1BeginOp (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT **OutOp)
-{
- ACPI_PARSE_OBJECT *Op;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
- ACPI_OBJECT_TYPE ObjectType;
- char *Path;
- UINT32 Flags;
-
-
- ACPI_FUNCTION_TRACE (DsLoad1BeginOp);
-
-
- Op = WalkState->Op;
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Op=%p State=%p\n", Op, WalkState));
-
- /* We are only interested in opcodes that have an associated name */
-
- if (Op)
- {
- if (!(WalkState->OpInfo->Flags & AML_NAMED))
- {
- *OutOp = Op;
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Check if this object has already been installed in the namespace */
-
- if (Op->Common.Node)
- {
- *OutOp = Op;
- return_ACPI_STATUS (AE_OK);
- }
- }
-
- Path = AcpiPsGetNextNamestring (&WalkState->ParserState);
-
- /* Map the raw opcode into an internal object type */
-
- ObjectType = WalkState->OpInfo->ObjectType;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "State=%p Op=%p [%s]\n", WalkState, Op, AcpiUtGetTypeName (ObjectType)));
-
- switch (WalkState->Opcode)
- {
- case AML_SCOPE_OP:
-
- /*
- * The target name of the Scope() operator must exist at this point so
- * that we can actually open the scope to enter new names underneath it.
- * Allow search-to-root for single namesegs.
- */
- Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType,
- ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, WalkState, &(Node));
-#ifdef ACPI_ASL_COMPILER
- if (Status == AE_NOT_FOUND)
- {
- /*
- * Table disassembly:
- * Target of Scope() not found. Generate an External for it, and
- * insert the name into the namespace.
- */
- AcpiDmAddToExternalList (Path, ACPI_TYPE_DEVICE, 0);
- Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType,
- ACPI_IMODE_LOAD_PASS1, ACPI_NS_SEARCH_PARENT,
- WalkState, &Node);
- }
-#endif
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR_NAMESPACE (Path, Status);
- return_ACPI_STATUS (Status);
- }
-
- /*
- * Check to make sure that the target is
- * one of the opcodes that actually opens a scope
- */
- switch (Node->Type)
- {
- case ACPI_TYPE_ANY:
- case ACPI_TYPE_LOCAL_SCOPE: /* Scope */
- case ACPI_TYPE_DEVICE:
- case ACPI_TYPE_POWER:
- case ACPI_TYPE_PROCESSOR:
- case ACPI_TYPE_THERMAL:
-
- /* These are acceptable types */
- break;
-
- case ACPI_TYPE_INTEGER:
- case ACPI_TYPE_STRING:
- case ACPI_TYPE_BUFFER:
-
- /*
- * These types we will allow, but we will change the type. This
- * enables some existing code of the form:
- *
- * Name (DEB, 0)
- * Scope (DEB) { ... }
- *
- * Note: silently change the type here. On the second pass, we will report
- * a warning
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "Type override - [%4.4s] had invalid type (%s) for Scope operator, changed to (Scope)\n",
- Path, AcpiUtGetTypeName (Node->Type)));
-
- Node->Type = ACPI_TYPE_ANY;
- WalkState->ScopeInfo->Common.Value = ACPI_TYPE_ANY;
- break;
-
- default:
-
- /* All other types are an error */
-
- ACPI_ERROR ((AE_INFO,
- "Invalid type (%s) for target of Scope operator [%4.4s] (Cannot override)",
- AcpiUtGetTypeName (Node->Type), Path));
-
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
- break;
-
-
- default:
- /*
- * For all other named opcodes, we will enter the name into
- * the namespace.
- *
- * Setup the search flags.
- * Since we are entering a name into the namespace, we do not want to
- * enable the search-to-root upsearch.
- *
- * There are only two conditions where it is acceptable that the name
- * already exists:
- * 1) the Scope() operator can reopen a scoping object that was
- * previously defined (Scope, Method, Device, etc.)
- * 2) Whenever we are parsing a deferred opcode (OpRegion, Buffer,
- * BufferField, or Package), the name of the object is already
- * in the namespace.
- */
- if (WalkState->DeferredNode)
- {
- /* This name is already in the namespace, get the node */
-
- Node = WalkState->DeferredNode;
- Status = AE_OK;
- break;
- }
-
- /*
- * If we are executing a method, do not create any namespace objects
- * during the load phase, only during execution.
- */
- if (WalkState->MethodNode)
- {
- Node = NULL;
- Status = AE_OK;
- break;
- }
-
- Flags = ACPI_NS_NO_UPSEARCH;
- if ((WalkState->Opcode != AML_SCOPE_OP) &&
- (!(WalkState->ParseFlags & ACPI_PARSE_DEFERRED_OP)))
- {
- Flags |= ACPI_NS_ERROR_IF_FOUND;
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "[%s] Cannot already exist\n",
- AcpiUtGetTypeName (ObjectType)));
- }
- else
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "[%s] Both Find or Create allowed\n",
- AcpiUtGetTypeName (ObjectType)));
- }
-
- /*
- * Enter the named type into the internal namespace. We enter the name
- * as we go downward in the parse tree. Any necessary subobjects that
- * involve arguments to the opcode must be created as we go back up the
- * parse tree later.
- */
- Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType,
- ACPI_IMODE_LOAD_PASS1, Flags, WalkState, &Node);
- if (ACPI_FAILURE (Status))
- {
- if (Status == AE_ALREADY_EXISTS)
- {
- /* The name already exists in this scope */
-
- if (Node->Flags & ANOBJ_IS_EXTERNAL)
- {
- /*
- * Allow one create on an object or segment that was
- * previously declared External
- */
- Node->Flags &= ~ANOBJ_IS_EXTERNAL;
- Node->Type = (UINT8) ObjectType;
-
- /* Just retyped a node, probably will need to open a scope */
-
- if (AcpiNsOpensScope (ObjectType))
- {
- Status = AcpiDsScopeStackPush (Node, ObjectType, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- Status = AE_OK;
- }
- }
-
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR_NAMESPACE (Path, Status);
- return_ACPI_STATUS (Status);
- }
- }
- break;
- }
-
- /* Common exit */
-
- if (!Op)
- {
- /* Create a new op */
-
- Op = AcpiPsAllocOp (WalkState->Opcode);
- if (!Op)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
- }
-
- /* Initialize the op */
-
-#if (defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY))
- Op->Named.Path = ACPI_CAST_PTR (UINT8, Path);
-#endif
-
- if (Node)
- {
- /*
- * Put the Node in the "op" object that the parser uses, so we
- * can get it again quickly when this scope is closed
- */
- Op->Common.Node = Node;
- Op->Named.Name = Node->Name.Integer;
- }
-
- AcpiPsAppendArg (AcpiPsGetParentScope (&WalkState->ParserState), Op);
- *OutOp = Op;
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsLoad1EndOp
- *
- * PARAMETERS: WalkState - Current state of the parse tree walk
- *
- * RETURN: Status
- *
- * DESCRIPTION: Ascending callback used during the loading of the namespace,
- * both control methods and everything else.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsLoad1EndOp (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_PARSE_OBJECT *Op;
- ACPI_OBJECT_TYPE ObjectType;
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (DsLoad1EndOp);
-
-
- Op = WalkState->Op;
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Op=%p State=%p\n", Op, WalkState));
-
- /* We are only interested in opcodes that have an associated name */
-
- if (!(WalkState->OpInfo->Flags & (AML_NAMED | AML_FIELD)))
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Get the object type to determine if we should pop the scope */
-
- ObjectType = WalkState->OpInfo->ObjectType;
-
-#ifndef ACPI_NO_METHOD_EXECUTION
- if (WalkState->OpInfo->Flags & AML_FIELD)
- {
- /*
- * If we are executing a method, do not create any namespace objects
- * during the load phase, only during execution.
- */
- if (!WalkState->MethodNode)
- {
- if (WalkState->Opcode == AML_FIELD_OP ||
- WalkState->Opcode == AML_BANK_FIELD_OP ||
- WalkState->Opcode == AML_INDEX_FIELD_OP)
- {
- Status = AcpiDsInitFieldObjects (Op, WalkState);
- }
- }
- return_ACPI_STATUS (Status);
- }
-
- /*
- * If we are executing a method, do not create any namespace objects
- * during the load phase, only during execution.
- */
- if (!WalkState->MethodNode)
- {
- if (Op->Common.AmlOpcode == AML_REGION_OP)
- {
- Status = AcpiExCreateRegion (Op->Named.Data, Op->Named.Length,
- (ACPI_ADR_SPACE_TYPE) ((Op->Common.Value.Arg)->Common.Value.Integer),
- WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
- }
-#endif
-
- if (Op->Common.AmlOpcode == AML_NAME_OP)
- {
- /* For Name opcode, get the object type from the argument */
-
- if (Op->Common.Value.Arg)
- {
- ObjectType = (AcpiPsGetOpcodeInfo (
- (Op->Common.Value.Arg)->Common.AmlOpcode))->ObjectType;
-
- /* Set node type if we have a namespace node */
-
- if (Op->Common.Node)
- {
- Op->Common.Node->Type = (UINT8) ObjectType;
- }
- }
- }
-
- /*
- * If we are executing a method, do not create any namespace objects
- * during the load phase, only during execution.
- */
- if (!WalkState->MethodNode)
- {
- if (Op->Common.AmlOpcode == AML_METHOD_OP)
- {
- /*
- * MethodOp PkgLength NameString MethodFlags TermList
- *
- * Note: We must create the method node/object pair as soon as we
- * see the method declaration. This allows later pass1 parsing
- * of invocations of the method (need to know the number of
- * arguments.)
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "LOADING-Method: State=%p Op=%p NamedObj=%p\n",
- WalkState, Op, Op->Named.Node));
-
- if (!AcpiNsGetAttachedObject (Op->Named.Node))
- {
- WalkState->Operands[0] = ACPI_CAST_PTR (void, Op->Named.Node);
- WalkState->NumOperands = 1;
-
- Status = AcpiDsCreateOperands (WalkState, Op->Common.Value.Arg);
- if (ACPI_SUCCESS (Status))
- {
- Status = AcpiExCreateMethod (Op->Named.Data,
- Op->Named.Length, WalkState);
- }
-
- WalkState->Operands[0] = NULL;
- WalkState->NumOperands = 0;
-
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
- }
- }
-
- /* Pop the scope stack (only if loading a table) */
-
- if (!WalkState->MethodNode &&
- AcpiNsOpensScope (ObjectType))
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "(%s): Popping scope for Op %p\n",
- AcpiUtGetTypeName (ObjectType), Op));
-
- Status = AcpiDsScopeStackPop (WalkState);
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsLoad2BeginOp
- *
- * PARAMETERS: WalkState - Current state of the parse tree walk
- * OutOp - Wher to return op if a new one is created
- *
- * RETURN: Status
- *
- * DESCRIPTION: Descending callback used during the loading of ACPI tables.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsLoad2BeginOp (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT **OutOp)
-{
- ACPI_PARSE_OBJECT *Op;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
- ACPI_OBJECT_TYPE ObjectType;
- char *BufferPtr;
- UINT32 Flags;
-
-
- ACPI_FUNCTION_TRACE (DsLoad2BeginOp);
-
-
- Op = WalkState->Op;
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Op=%p State=%p\n", Op, WalkState));
-
- if (Op)
- {
- if ((WalkState->ControlState) &&
- (WalkState->ControlState->Common.State ==
- ACPI_CONTROL_CONDITIONAL_EXECUTING))
- {
- /* We are executing a while loop outside of a method */
-
- Status = AcpiDsExecBeginOp (WalkState, OutOp);
- return_ACPI_STATUS (Status);
- }
-
- /* We only care about Namespace opcodes here */
-
- if ((!(WalkState->OpInfo->Flags & AML_NSOPCODE) &&
- (WalkState->Opcode != AML_INT_NAMEPATH_OP)) ||
- (!(WalkState->OpInfo->Flags & AML_NAMED)))
- {
-#ifdef ACPI_ENABLE_MODULE_LEVEL_CODE
- if ((WalkState->OpInfo->Class == AML_CLASS_EXECUTE) ||
- (WalkState->OpInfo->Class == AML_CLASS_CONTROL))
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "Begin/EXEC: %s (fl %8.8X)\n", WalkState->OpInfo->Name,
- WalkState->OpInfo->Flags));
-
- /* Executing a type1 or type2 opcode outside of a method */
-
- Status = AcpiDsExecBeginOp (WalkState, OutOp);
- return_ACPI_STATUS (Status);
- }
-#endif
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Get the name we are going to enter or lookup in the namespace */
-
- if (WalkState->Opcode == AML_INT_NAMEPATH_OP)
- {
- /* For Namepath op, get the path string */
-
- BufferPtr = Op->Common.Value.String;
- if (!BufferPtr)
- {
- /* No name, just exit */
-
- return_ACPI_STATUS (AE_OK);
- }
- }
- else
- {
- /* Get name from the op */
-
- BufferPtr = ACPI_CAST_PTR (char, &Op->Named.Name);
- }
- }
- else
- {
- /* Get the namestring from the raw AML */
-
- BufferPtr = AcpiPsGetNextNamestring (&WalkState->ParserState);
- }
-
- /* Map the opcode into an internal object type */
-
- ObjectType = WalkState->OpInfo->ObjectType;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "State=%p Op=%p Type=%X\n", WalkState, Op, ObjectType));
-
- switch (WalkState->Opcode)
- {
- case AML_FIELD_OP:
- case AML_BANK_FIELD_OP:
- case AML_INDEX_FIELD_OP:
-
- Node = NULL;
- Status = AE_OK;
- break;
-
- case AML_INT_NAMEPATH_OP:
- /*
- * The NamePath is an object reference to an existing object.
- * Don't enter the name into the namespace, but look it up
- * for use later.
- */
- Status = AcpiNsLookup (WalkState->ScopeInfo, BufferPtr, ObjectType,
- ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT,
- WalkState, &(Node));
- break;
-
- case AML_SCOPE_OP:
- /*
- * The Path is an object reference to an existing object.
- * Don't enter the name into the namespace, but look it up
- * for use later.
- */
- Status = AcpiNsLookup (WalkState->ScopeInfo, BufferPtr, ObjectType,
- ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT,
- WalkState, &(Node));
- if (ACPI_FAILURE (Status))
- {
-#ifdef ACPI_ASL_COMPILER
- if (Status == AE_NOT_FOUND)
- {
- Status = AE_OK;
- }
- else
- {
- ACPI_ERROR_NAMESPACE (BufferPtr, Status);
- }
-#else
- ACPI_ERROR_NAMESPACE (BufferPtr, Status);
-#endif
- return_ACPI_STATUS (Status);
- }
-
- /*
- * We must check to make sure that the target is
- * one of the opcodes that actually opens a scope
- */
- switch (Node->Type)
- {
- case ACPI_TYPE_ANY:
- case ACPI_TYPE_LOCAL_SCOPE: /* Scope */
- case ACPI_TYPE_DEVICE:
- case ACPI_TYPE_POWER:
- case ACPI_TYPE_PROCESSOR:
- case ACPI_TYPE_THERMAL:
-
- /* These are acceptable types */
- break;
-
- case ACPI_TYPE_INTEGER:
- case ACPI_TYPE_STRING:
- case ACPI_TYPE_BUFFER:
-
- /*
- * These types we will allow, but we will change the type. This
- * enables some existing code of the form:
- *
- * Name (DEB, 0)
- * Scope (DEB) { ... }
- */
- ACPI_WARNING ((AE_INFO,
- "Type override - [%4.4s] had invalid type (%s) for Scope operator, changed to (Scope)",
- BufferPtr, AcpiUtGetTypeName (Node->Type)));
-
- Node->Type = ACPI_TYPE_ANY;
- WalkState->ScopeInfo->Common.Value = ACPI_TYPE_ANY;
- break;
-
- default:
-
- /* All other types are an error */
-
- ACPI_ERROR ((AE_INFO,
- "Invalid type (%s) for target of Scope operator [%4.4s]",
- AcpiUtGetTypeName (Node->Type), BufferPtr));
-
- return (AE_AML_OPERAND_TYPE);
- }
- break;
-
- default:
-
- /* All other opcodes */
-
- if (Op && Op->Common.Node)
- {
- /* This op/node was previously entered into the namespace */
-
- Node = Op->Common.Node;
-
- if (AcpiNsOpensScope (ObjectType))
- {
- Status = AcpiDsScopeStackPush (Node, ObjectType, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- return_ACPI_STATUS (AE_OK);
- }
-
- /*
- * Enter the named type into the internal namespace. We enter the name
- * as we go downward in the parse tree. Any necessary subobjects that
- * involve arguments to the opcode must be created as we go back up the
- * parse tree later.
- *
- * Note: Name may already exist if we are executing a deferred opcode.
- */
- if (WalkState->DeferredNode)
- {
- /* This name is already in the namespace, get the node */
-
- Node = WalkState->DeferredNode;
- Status = AE_OK;
- break;
- }
-
- Flags = ACPI_NS_NO_UPSEARCH;
- if (WalkState->PassNumber == ACPI_IMODE_EXECUTE)
- {
- /* Execution mode, node cannot already exist, node is temporary */
-
- Flags |= (ACPI_NS_ERROR_IF_FOUND | ACPI_NS_TEMPORARY);
- }
-
- /* Add new entry or lookup existing entry */
-
- Status = AcpiNsLookup (WalkState->ScopeInfo, BufferPtr, ObjectType,
- ACPI_IMODE_LOAD_PASS2, Flags, WalkState, &Node);
- break;
- }
-
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR_NAMESPACE (BufferPtr, Status);
- return_ACPI_STATUS (Status);
- }
-
- if (!Op)
- {
- /* Create a new op */
-
- Op = AcpiPsAllocOp (WalkState->Opcode);
- if (!Op)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* Initialize the new op */
-
- if (Node)
- {
- Op->Named.Name = Node->Name.Integer;
- }
- *OutOp = Op;
- }
-
- /*
- * Put the Node in the "op" object that the parser uses, so we
- * can get it again quickly when this scope is closed
- */
- Op->Common.Node = Node;
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsLoad2EndOp
- *
- * PARAMETERS: WalkState - Current state of the parse tree walk
- *
- * RETURN: Status
- *
- * DESCRIPTION: Ascending callback used during the loading of the namespace,
- * both control methods and everything else.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsLoad2EndOp (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_PARSE_OBJECT *Op;
- ACPI_STATUS Status = AE_OK;
- ACPI_OBJECT_TYPE ObjectType;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_PARSE_OBJECT *Arg;
- ACPI_NAMESPACE_NODE *NewNode;
-#ifndef ACPI_NO_METHOD_EXECUTION
- UINT32 i;
-#endif
-
-
- ACPI_FUNCTION_TRACE (DsLoad2EndOp);
-
- Op = WalkState->Op;
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Opcode [%s] Op %p State %p\n",
- WalkState->OpInfo->Name, Op, WalkState));
-
- /* Check if opcode had an associated namespace object */
-
- if (!(WalkState->OpInfo->Flags & AML_NSOBJECT))
- {
-#ifndef ACPI_NO_METHOD_EXECUTION
-#ifdef ACPI_ENABLE_MODULE_LEVEL_CODE
- /* No namespace object. Executable opcode? */
-
- if ((WalkState->OpInfo->Class == AML_CLASS_EXECUTE) ||
- (WalkState->OpInfo->Class == AML_CLASS_CONTROL))
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "End/EXEC: %s (fl %8.8X)\n", WalkState->OpInfo->Name,
- WalkState->OpInfo->Flags));
-
- /* Executing a type1 or type2 opcode outside of a method */
-
- Status = AcpiDsExecEndOp (WalkState);
- return_ACPI_STATUS (Status);
- }
-#endif
-#endif
- return_ACPI_STATUS (AE_OK);
- }
-
- if (Op->Common.AmlOpcode == AML_SCOPE_OP)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "Ending scope Op=%p State=%p\n", Op, WalkState));
- }
-
- ObjectType = WalkState->OpInfo->ObjectType;
-
- /*
- * Get the Node/name from the earlier lookup
- * (It was saved in the *op structure)
- */
- Node = Op->Common.Node;
-
- /*
- * Put the Node on the object stack (Contains the ACPI Name of
- * this object)
- */
- WalkState->Operands[0] = (void *) Node;
- WalkState->NumOperands = 1;
-
- /* Pop the scope stack */
-
- 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));
-
- Status = AcpiDsScopeStackPop (WalkState);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
- }
-
- /*
- * Named operations are as follows:
- *
- * AML_ALIAS
- * AML_BANKFIELD
- * AML_CREATEBITFIELD
- * AML_CREATEBYTEFIELD
- * AML_CREATEDWORDFIELD
- * AML_CREATEFIELD
- * AML_CREATEQWORDFIELD
- * AML_CREATEWORDFIELD
- * AML_DATA_REGION
- * AML_DEVICE
- * AML_EVENT
- * AML_FIELD
- * AML_INDEXFIELD
- * AML_METHOD
- * AML_METHODCALL
- * AML_MUTEX
- * AML_NAME
- * AML_NAMEDFIELD
- * AML_OPREGION
- * AML_POWERRES
- * AML_PROCESSOR
- * AML_SCOPE
- * AML_THERMALZONE
- */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "Create-Load [%s] State=%p Op=%p NamedObj=%p\n",
- AcpiPsGetOpcodeName (Op->Common.AmlOpcode), WalkState, Op, Node));
-
- /* Decode the opcode */
-
- Arg = Op->Common.Value.Arg;
-
- switch (WalkState->OpInfo->Type)
- {
-#ifndef ACPI_NO_METHOD_EXECUTION
-
- case AML_TYPE_CREATE_FIELD:
- /*
- * Create the field object, but the field buffer and index must
- * be evaluated later during the execution phase
- */
- Status = AcpiDsCreateBufferField (Op, WalkState);
- break;
-
-
- case AML_TYPE_NAMED_FIELD:
- /*
- * If we are executing a method, initialize the field
- */
- if (WalkState->MethodNode)
- {
- Status = AcpiDsInitFieldObjects (Op, WalkState);
- }
-
- switch (Op->Common.AmlOpcode)
- {
- case AML_INDEX_FIELD_OP:
-
- Status = AcpiDsCreateIndexField (Op, (ACPI_HANDLE) Arg->Common.Node,
- WalkState);
- break;
-
- case AML_BANK_FIELD_OP:
-
- Status = AcpiDsCreateBankField (Op, Arg->Common.Node, WalkState);
- break;
-
- case AML_FIELD_OP:
-
- Status = AcpiDsCreateField (Op, Arg->Common.Node, WalkState);
- break;
-
- default:
- /* All NAMED_FIELD opcodes must be handled above */
- break;
- }
- break;
-
-
- case AML_TYPE_NAMED_SIMPLE:
-
- Status = AcpiDsCreateOperands (WalkState, Arg);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- switch (Op->Common.AmlOpcode)
- {
- case AML_PROCESSOR_OP:
-
- Status = AcpiExCreateProcessor (WalkState);
- break;
-
- case AML_POWER_RES_OP:
-
- Status = AcpiExCreatePowerResource (WalkState);
- break;
-
- case AML_MUTEX_OP:
-
- Status = AcpiExCreateMutex (WalkState);
- break;
-
- case AML_EVENT_OP:
-
- Status = AcpiExCreateEvent (WalkState);
- break;
-
- case AML_DATA_REGION_OP:
-
- Status = AcpiExCreateTableRegion (WalkState);
- break;
-
- case AML_ALIAS_OP:
-
- Status = AcpiExCreateAlias (WalkState);
- break;
-
- default:
- /* Unknown opcode */
-
- Status = AE_OK;
- goto Cleanup;
- }
-
- /* Delete operands */
-
- for (i = 1; i < WalkState->NumOperands; i++)
- {
- AcpiUtRemoveReference (WalkState->Operands[i]);
- WalkState->Operands[i] = NULL;
- }
-
- break;
-#endif /* ACPI_NO_METHOD_EXECUTION */
-
- case AML_TYPE_NAMED_COMPLEX:
-
- switch (Op->Common.AmlOpcode)
- {
-#ifndef ACPI_NO_METHOD_EXECUTION
- case AML_REGION_OP:
-
- /*
- * If we are executing a method, initialize the region
- */
- if (WalkState->MethodNode)
- {
- Status = AcpiExCreateRegion (Op->Named.Data, Op->Named.Length,
- (ACPI_ADR_SPACE_TYPE)
- ((Op->Common.Value.Arg)->Common.Value.Integer),
- WalkState);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
- }
-
- /*
- * The OpRegion is not fully parsed at this time. Only valid
- * argument is the SpaceId. (We must save the address of the
- * AML of the address and length operands)
- */
-
- /*
- * If we have a valid region, initialize it
- * Namespace is NOT locked at this point.
- *
- * TBD: need to unlock interpreter if it is locked, in order
- * to allow _REG methods to be run.
- */
- Status = AcpiEvInitializeRegion (AcpiNsGetAttachedObject (Node),
- FALSE);
- if (ACPI_FAILURE (Status))
- {
- /*
- * If AE_NOT_EXIST is returned, it is not fatal
- * because many regions get created before a handler
- * is installed for said region.
- */
- if (AE_NOT_EXIST == Status)
- {
- Status = AE_OK;
- }
- }
- break;
-
-
- case AML_NAME_OP:
-
- Status = AcpiDsCreateNode (WalkState, Node, Op);
- break;
-
-
- case AML_METHOD_OP:
- /*
- * MethodOp PkgLength NameString MethodFlags TermList
- *
- * Note: We must create the method node/object pair as soon as we
- * see the method declaration. This allows later pass1 parsing
- * of invocations of the method (need to know the number of
- * arguments.)
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "LOADING-Method: State=%p Op=%p NamedObj=%p\n",
- WalkState, Op, Op->Named.Node));
-
- if (!AcpiNsGetAttachedObject (Op->Named.Node))
- {
- WalkState->Operands[0] = ACPI_CAST_PTR (void, Op->Named.Node);
- WalkState->NumOperands = 1;
-
- Status = AcpiDsCreateOperands (WalkState, Op->Common.Value.Arg);
- if (ACPI_SUCCESS (Status))
- {
- Status = AcpiExCreateMethod (Op->Named.Data,
- Op->Named.Length, WalkState);
- }
- WalkState->Operands[0] = NULL;
- WalkState->NumOperands = 0;
-
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
- break;
-
-#endif /* ACPI_NO_METHOD_EXECUTION */
-
- default:
- /* All NAMED_COMPLEX opcodes must be handled above */
- break;
- }
- break;
-
-
- case AML_CLASS_INTERNAL:
-
- /* case AML_INT_NAMEPATH_OP: */
- break;
-
-
- case AML_CLASS_METHOD_CALL:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "RESOLVING-MethodCall: State=%p Op=%p NamedObj=%p\n",
- WalkState, Op, Node));
-
- /*
- * Lookup the method name and save the Node
- */
- Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String,
- ACPI_TYPE_ANY, ACPI_IMODE_LOAD_PASS2,
- ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE,
- WalkState, &(NewNode));
- if (ACPI_SUCCESS (Status))
- {
- /*
- * Make sure that what we found is indeed a method
- * We didn't search for a method on purpose, to see if the name
- * would resolve
- */
- if (NewNode->Type != ACPI_TYPE_METHOD)
- {
- Status = AE_AML_OPERAND_TYPE;
- }
-
- /* We could put the returned object (Node) on the object stack for
- * later, but for now, we will put it in the "op" object that the
- * parser uses, so we can get it again at the end of this scope
- */
- Op->Common.Node = NewNode;
- }
- else
- {
- ACPI_ERROR_NAMESPACE (Arg->Common.Value.String, Status);
- }
- break;
-
-
- default:
- break;
- }
-
-Cleanup:
-
- /* Remove the Node pushed at the very beginning */
-
- WalkState->Operands[0] = NULL;
- WalkState->NumOperands = 0;
- return_ACPI_STATUS (Status);
-}
-
-
diff --git a/sys/contrib/dev/acpica/dswscope.c b/sys/contrib/dev/acpica/dswscope.c
deleted file mode 100644
index fc55f13..0000000
--- a/sys/contrib/dev/acpica/dswscope.c
+++ /dev/null
@@ -1,311 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dswscope - Scope stack manipulation
- * $Revision: 1.69 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __DSWSCOPE_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acdispat.h>
-
-
-#define _COMPONENT ACPI_DISPATCHER
- ACPI_MODULE_NAME ("dswscope")
-
-
-/****************************************************************************
- *
- * FUNCTION: AcpiDsScopeStackClear
- *
- * PARAMETERS: WalkState - Current state
- *
- * RETURN: None
- *
- * DESCRIPTION: Pop (and free) everything on the scope stack except the
- * root scope object (which remains at the stack top.)
- *
- ***************************************************************************/
-
-void
-AcpiDsScopeStackClear (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_GENERIC_STATE *ScopeInfo;
-
- ACPI_FUNCTION_NAME (DsScopeStackClear);
-
-
- while (WalkState->ScopeInfo)
- {
- /* Pop a scope off the stack */
-
- ScopeInfo = WalkState->ScopeInfo;
- WalkState->ScopeInfo = ScopeInfo->Scope.Next;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "Popped object type (%s)\n",
- AcpiUtGetTypeName (ScopeInfo->Common.Value)));
- AcpiUtDeleteGenericState (ScopeInfo);
- }
-}
-
-
-/****************************************************************************
- *
- * FUNCTION: AcpiDsScopeStackPush
- *
- * PARAMETERS: Node - Name to be made current
- * Type - Type of frame being pushed
- * WalkState - Current state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Push the current scope on the scope stack, and make the
- * passed Node current.
- *
- ***************************************************************************/
-
-ACPI_STATUS
-AcpiDsScopeStackPush (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_OBJECT_TYPE Type,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_GENERIC_STATE *ScopeInfo;
- ACPI_GENERIC_STATE *OldScopeInfo;
-
-
- ACPI_FUNCTION_TRACE (DsScopeStackPush);
-
-
- if (!Node)
- {
- /* Invalid scope */
-
- ACPI_ERROR ((AE_INFO, "Null scope parameter"));
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /* Make sure object type is valid */
-
- if (!AcpiUtValidObjectType (Type))
- {
- ACPI_WARNING ((AE_INFO,
- "Invalid object type: 0x%X", Type));
- }
-
- /* Allocate a new scope object */
-
- ScopeInfo = AcpiUtCreateGenericState ();
- if (!ScopeInfo)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* Init new scope object */
-
- ScopeInfo->Common.DescriptorType = ACPI_DESC_TYPE_STATE_WSCOPE;
- ScopeInfo->Scope.Node = Node;
- ScopeInfo->Common.Value = (UINT16) Type;
-
- WalkState->ScopeDepth++;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "[%.2d] Pushed scope ", (UINT32) WalkState->ScopeDepth));
-
- OldScopeInfo = WalkState->ScopeInfo;
- if (OldScopeInfo)
- {
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EXEC,
- "[%4.4s] (%s)",
- AcpiUtGetNodeName (OldScopeInfo->Scope.Node),
- AcpiUtGetTypeName (OldScopeInfo->Common.Value)));
- }
- else
- {
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EXEC,
- "[\\___] (%s)", "ROOT"));
- }
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EXEC,
- ", New scope -> [%4.4s] (%s)\n",
- AcpiUtGetNodeName (ScopeInfo->Scope.Node),
- AcpiUtGetTypeName (ScopeInfo->Common.Value)));
-
- /* Push new scope object onto stack */
-
- AcpiUtPushGenericState (&WalkState->ScopeInfo, ScopeInfo);
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/****************************************************************************
- *
- * FUNCTION: AcpiDsScopeStackPop
- *
- * PARAMETERS: WalkState - Current state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Pop the scope stack once.
- *
- ***************************************************************************/
-
-ACPI_STATUS
-AcpiDsScopeStackPop (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_GENERIC_STATE *ScopeInfo;
- ACPI_GENERIC_STATE *NewScopeInfo;
-
-
- ACPI_FUNCTION_TRACE (DsScopeStackPop);
-
-
- /*
- * Pop scope info object off the stack.
- */
- ScopeInfo = AcpiUtPopGenericState (&WalkState->ScopeInfo);
- if (!ScopeInfo)
- {
- return_ACPI_STATUS (AE_STACK_UNDERFLOW);
- }
-
- WalkState->ScopeDepth--;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "[%.2d] Popped scope [%4.4s] (%s), New scope -> ",
- (UINT32) WalkState->ScopeDepth,
- AcpiUtGetNodeName (ScopeInfo->Scope.Node),
- AcpiUtGetTypeName (ScopeInfo->Common.Value)));
-
- NewScopeInfo = WalkState->ScopeInfo;
- if (NewScopeInfo)
- {
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EXEC,
- "[%4.4s] (%s)\n",
- AcpiUtGetNodeName (NewScopeInfo->Scope.Node),
- AcpiUtGetTypeName (NewScopeInfo->Common.Value)));
- }
- else
- {
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EXEC,
- "[\\___] (ROOT)\n"));
- }
-
- AcpiUtDeleteGenericState (ScopeInfo);
- return_ACPI_STATUS (AE_OK);
-}
-
-
diff --git a/sys/contrib/dev/acpica/dswstate.c b/sys/contrib/dev/acpica/dswstate.c
deleted file mode 100644
index f6f7bd2..0000000
--- a/sys/contrib/dev/acpica/dswstate.c
+++ /dev/null
@@ -1,926 +0,0 @@
-/******************************************************************************
- *
- * Module Name: dswstate - Dispatcher parse tree walk management routines
- * $Revision: 1.101 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __DSWSTATE_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-#define _COMPONENT ACPI_DISPATCHER
- ACPI_MODULE_NAME ("dswstate")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiDsResultStackPush (
- ACPI_WALK_STATE *WalkState);
-
-static ACPI_STATUS
-AcpiDsResultStackPop (
- ACPI_WALK_STATE *WalkState);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsResultPop
- *
- * PARAMETERS: Object - Where to return the popped object
- * WalkState - Current Walk state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Pop an object off the top of this walk's result stack
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsResultPop (
- ACPI_OPERAND_OBJECT **Object,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_NATIVE_UINT Index;
- ACPI_GENERIC_STATE *State;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_NAME (DsResultPop);
-
-
- State = WalkState->Results;
-
- /* Incorrect state of result stack */
-
- if (State && !WalkState->ResultCount)
- {
- ACPI_ERROR ((AE_INFO, "No results on result stack"));
- return (AE_AML_INTERNAL);
- }
-
- if (!State && WalkState->ResultCount)
- {
- ACPI_ERROR ((AE_INFO, "No result state for result stack"));
- return (AE_AML_INTERNAL);
- }
-
- /* Empty result stack */
-
- if (!State)
- {
- ACPI_ERROR ((AE_INFO, "Result stack is empty! State=%p", WalkState));
- return (AE_AML_NO_RETURN_VALUE);
- }
-
- /* Return object of the top element and clean that top element result stack */
-
- WalkState->ResultCount--;
- Index = WalkState->ResultCount % ACPI_RESULTS_FRAME_OBJ_NUM;
-
- *Object = State->Results.ObjDesc [Index];
- if (!*Object)
- {
- ACPI_ERROR ((AE_INFO, "No result objects on result stack, State=%p",
- WalkState));
- return (AE_AML_NO_RETURN_VALUE);
- }
-
- State->Results.ObjDesc [Index] = NULL;
- if (Index == 0)
- {
- Status = AcpiDsResultStackPop (WalkState);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "Obj=%p [%s] Index=%X State=%p Num=%X\n", *Object,
- AcpiUtGetObjectTypeName (*Object),
- (UINT32) Index, WalkState, WalkState->ResultCount));
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsResultPush
- *
- * PARAMETERS: Object - Where to return the popped object
- * WalkState - Current Walk state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Push an object onto the current result stack
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsResultPush (
- ACPI_OPERAND_OBJECT *Object,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_GENERIC_STATE *State;
- ACPI_STATUS Status;
- ACPI_NATIVE_UINT Index;
-
-
- ACPI_FUNCTION_NAME (DsResultPush);
-
-
- if (WalkState->ResultCount > WalkState->ResultSize)
- {
- ACPI_ERROR ((AE_INFO, "Result stack is full"));
- return (AE_AML_INTERNAL);
- }
- else if (WalkState->ResultCount == WalkState->ResultSize)
- {
- /* Extend the result stack */
-
- Status = AcpiDsResultStackPush (WalkState);
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR ((AE_INFO, "Failed to extend the result stack"));
- return (Status);
- }
- }
-
- if (!(WalkState->ResultCount < WalkState->ResultSize))
- {
- ACPI_ERROR ((AE_INFO, "No free elements in result stack"));
- return (AE_AML_INTERNAL);
- }
-
- State = WalkState->Results;
- if (!State)
- {
- ACPI_ERROR ((AE_INFO, "No result stack frame during push"));
- return (AE_AML_INTERNAL);
- }
-
- if (!Object)
- {
- ACPI_ERROR ((AE_INFO,
- "Null Object! Obj=%p State=%p Num=%X",
- Object, WalkState, WalkState->ResultCount));
- return (AE_BAD_PARAMETER);
- }
-
- /* Assign the address of object to the top free element of result stack */
-
- Index = WalkState->ResultCount % ACPI_RESULTS_FRAME_OBJ_NUM;
- State->Results.ObjDesc [Index] = Object;
- WalkState->ResultCount++;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Obj=%p [%s] State=%p Num=%X Cur=%X\n",
- Object, AcpiUtGetObjectTypeName ((ACPI_OPERAND_OBJECT *) Object),
- WalkState, WalkState->ResultCount, WalkState->CurrentResult));
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsResultStackPush
- *
- * PARAMETERS: WalkState - Current Walk state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Push an object onto the WalkState result stack
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDsResultStackPush (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_GENERIC_STATE *State;
-
-
- ACPI_FUNCTION_NAME (DsResultStackPush);
-
-
- /* Check for stack overflow */
-
- if ((WalkState->ResultSize + ACPI_RESULTS_FRAME_OBJ_NUM) >
- ACPI_RESULTS_OBJ_NUM_MAX)
- {
- ACPI_ERROR ((AE_INFO, "Result stack overflow: State=%p Num=%X",
- WalkState, WalkState->ResultSize));
- return (AE_STACK_OVERFLOW);
- }
-
- State = AcpiUtCreateGenericState ();
- if (!State)
- {
- return (AE_NO_MEMORY);
- }
-
- State->Common.DescriptorType = ACPI_DESC_TYPE_STATE_RESULT;
- AcpiUtPushGenericState (&WalkState->Results, State);
-
- /* Increase the length of the result stack by the length of frame */
-
- WalkState->ResultSize += ACPI_RESULTS_FRAME_OBJ_NUM;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Results=%p State=%p\n",
- State, WalkState));
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsResultStackPop
- *
- * PARAMETERS: WalkState - Current Walk state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Pop an object off of the WalkState result stack
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiDsResultStackPop (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_GENERIC_STATE *State;
-
-
- ACPI_FUNCTION_NAME (DsResultStackPop);
-
-
- /* Check for stack underflow */
-
- if (WalkState->Results == NULL)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Result stack underflow - State=%p\n",
- WalkState));
- return (AE_AML_NO_OPERAND);
- }
-
- if (WalkState->ResultSize < ACPI_RESULTS_FRAME_OBJ_NUM)
- {
- ACPI_ERROR ((AE_INFO, "Insufficient result stack size"));
- return (AE_AML_INTERNAL);
- }
-
- State = AcpiUtPopGenericState (&WalkState->Results);
- AcpiUtDeleteGenericState (State);
-
- /* Decrease the length of result stack by the length of frame */
-
- WalkState->ResultSize -= ACPI_RESULTS_FRAME_OBJ_NUM;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "Result=%p RemainingResults=%X State=%p\n",
- State, WalkState->ResultCount, WalkState));
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsObjStackPush
- *
- * PARAMETERS: Object - Object to push
- * WalkState - Current Walk state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Push an object onto this walk's object/operand stack
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsObjStackPush (
- void *Object,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_FUNCTION_NAME (DsObjStackPush);
-
-
- /* Check for stack overflow */
-
- if (WalkState->NumOperands >= ACPI_OBJ_NUM_OPERANDS)
- {
- ACPI_ERROR ((AE_INFO,
- "Object stack overflow! Obj=%p State=%p #Ops=%X",
- Object, WalkState, WalkState->NumOperands));
- return (AE_STACK_OVERFLOW);
- }
-
- /* Put the object onto the stack */
-
- WalkState->Operands [WalkState->OperandIndex] = Object;
- WalkState->NumOperands++;
-
- /* For the usual order of filling the operand stack */
-
- WalkState->OperandIndex++;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Obj=%p [%s] State=%p #Ops=%X\n",
- Object, AcpiUtGetObjectTypeName ((ACPI_OPERAND_OBJECT *) Object),
- WalkState, WalkState->NumOperands));
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsObjStackPop
- *
- * PARAMETERS: PopCount - Number of objects/entries to pop
- * WalkState - Current Walk state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Pop this walk's object stack. Objects on the stack are NOT
- * deleted by this routine.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsObjStackPop (
- UINT32 PopCount,
- ACPI_WALK_STATE *WalkState)
-{
- UINT32 i;
-
-
- ACPI_FUNCTION_NAME (DsObjStackPop);
-
-
- for (i = 0; i < PopCount; i++)
- {
- /* Check for stack underflow */
-
- if (WalkState->NumOperands == 0)
- {
- ACPI_ERROR ((AE_INFO,
- "Object stack underflow! Count=%X State=%p #Ops=%X",
- PopCount, WalkState, WalkState->NumOperands));
- return (AE_STACK_UNDERFLOW);
- }
-
- /* Just set the stack entry to null */
-
- WalkState->NumOperands--;
- WalkState->Operands [WalkState->NumOperands] = NULL;
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Count=%X State=%p #Ops=%X\n",
- PopCount, WalkState, WalkState->NumOperands));
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsObjStackPopAndDelete
- *
- * PARAMETERS: PopCount - Number of objects/entries to pop
- * WalkState - Current Walk state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Pop this walk's object stack and delete each object that is
- * popped off.
- *
- ******************************************************************************/
-
-void
-AcpiDsObjStackPopAndDelete (
- UINT32 PopCount,
- ACPI_WALK_STATE *WalkState)
-{
- UINT32 i;
- ACPI_OPERAND_OBJECT *ObjDesc;
-
-
- ACPI_FUNCTION_NAME (DsObjStackPopAndDelete);
-
-
- if (PopCount == 0)
- {
- return;
- }
-
- for (i = (PopCount - 1); i >= 0; i--)
- {
- if (WalkState->NumOperands == 0)
- {
- return;
- }
-
- /* Pop the stack and delete an object if present in this stack entry */
-
- WalkState->NumOperands--;
- ObjDesc = WalkState->Operands [i];
- if (ObjDesc)
- {
- AcpiUtRemoveReference (WalkState->Operands [i]);
- WalkState->Operands [i] = NULL;
- }
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Count=%X State=%p #Ops=%X\n",
- PopCount, WalkState, WalkState->NumOperands));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsGetCurrentWalkState
- *
- * PARAMETERS: Thread - Get current active state for this Thread
- *
- * RETURN: Pointer to the current walk state
- *
- * DESCRIPTION: Get the walk state that is at the head of the list (the "current"
- * walk state.)
- *
- ******************************************************************************/
-
-ACPI_WALK_STATE *
-AcpiDsGetCurrentWalkState (
- ACPI_THREAD_STATE *Thread)
-{
- ACPI_FUNCTION_NAME (DsGetCurrentWalkState);
-
-
- if (!Thread)
- {
- return (NULL);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Current WalkState %p\n",
- Thread->WalkStateList));
-
- return (Thread->WalkStateList);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsPushWalkState
- *
- * PARAMETERS: WalkState - State to push
- * Thread - Thread state object
- *
- * RETURN: None
- *
- * DESCRIPTION: Place the Thread state at the head of the state list
- *
- ******************************************************************************/
-
-void
-AcpiDsPushWalkState (
- ACPI_WALK_STATE *WalkState,
- ACPI_THREAD_STATE *Thread)
-{
- ACPI_FUNCTION_TRACE (DsPushWalkState);
-
-
- WalkState->Next = Thread->WalkStateList;
- Thread->WalkStateList = WalkState;
-
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsPopWalkState
- *
- * PARAMETERS: Thread - Current thread state
- *
- * RETURN: A WalkState object popped from the thread's stack
- *
- * DESCRIPTION: Remove and return the walkstate object that is at the head of
- * the walk stack for the given walk list. NULL indicates that
- * the list is empty.
- *
- ******************************************************************************/
-
-ACPI_WALK_STATE *
-AcpiDsPopWalkState (
- ACPI_THREAD_STATE *Thread)
-{
- ACPI_WALK_STATE *WalkState;
-
-
- ACPI_FUNCTION_TRACE (DsPopWalkState);
-
-
- WalkState = Thread->WalkStateList;
-
- if (WalkState)
- {
- /* Next walk state becomes the current walk state */
-
- Thread->WalkStateList = WalkState->Next;
-
- /*
- * Don't clear the NEXT field, this serves as an indicator
- * that there is a parent WALK STATE
- * Do Not: WalkState->Next = NULL;
- */
- }
-
- return_PTR (WalkState);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsCreateWalkState
- *
- * PARAMETERS: OwnerId - ID for object creation
- * Origin - Starting point for this walk
- * MethodDesc - Method object
- * Thread - Current thread state
- *
- * RETURN: Pointer to the new walk state.
- *
- * DESCRIPTION: Allocate and initialize a new walk state. The current walk
- * state is set to this new state.
- *
- ******************************************************************************/
-
-ACPI_WALK_STATE *
-AcpiDsCreateWalkState (
- ACPI_OWNER_ID OwnerId,
- ACPI_PARSE_OBJECT *Origin,
- ACPI_OPERAND_OBJECT *MethodDesc,
- ACPI_THREAD_STATE *Thread)
-{
- ACPI_WALK_STATE *WalkState;
-
-
- ACPI_FUNCTION_TRACE (DsCreateWalkState);
-
-
- WalkState = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_WALK_STATE));
- if (!WalkState)
- {
- return_PTR (NULL);
- }
-
- WalkState->DescriptorType = ACPI_DESC_TYPE_WALK;
- WalkState->MethodDesc = MethodDesc;
- WalkState->OwnerId = OwnerId;
- WalkState->Origin = Origin;
- WalkState->Thread = Thread;
-
- WalkState->ParserState.StartOp = Origin;
-
- /* Init the method args/local */
-
-#if (!defined (ACPI_NO_METHOD_EXECUTION) && !defined (ACPI_CONSTANT_EVAL_ONLY))
- AcpiDsMethodDataInit (WalkState);
-#endif
-
- /* Put the new state at the head of the walk list */
-
- if (Thread)
- {
- AcpiDsPushWalkState (WalkState, Thread);
- }
-
- return_PTR (WalkState);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsInitAmlWalk
- *
- * PARAMETERS: WalkState - New state to be initialized
- * Op - Current parse op
- * MethodNode - Control method NS node, if any
- * AmlStart - Start of AML
- * AmlLength - Length of AML
- * Info - Method info block (params, etc.)
- * PassNumber - 1, 2, or 3
- *
- * RETURN: Status
- *
- * DESCRIPTION: Initialize a walk state for a pass 1 or 2 parse tree walk
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDsInitAmlWalk (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op,
- ACPI_NAMESPACE_NODE *MethodNode,
- UINT8 *AmlStart,
- UINT32 AmlLength,
- ACPI_EVALUATE_INFO *Info,
- UINT8 PassNumber)
-{
- ACPI_STATUS Status;
- ACPI_PARSE_STATE *ParserState = &WalkState->ParserState;
- ACPI_PARSE_OBJECT *ExtraOp;
-
-
- ACPI_FUNCTION_TRACE (DsInitAmlWalk);
-
-
- WalkState->ParserState.Aml =
- WalkState->ParserState.AmlStart = AmlStart;
- WalkState->ParserState.AmlEnd =
- WalkState->ParserState.PkgEnd = AmlStart + AmlLength;
-
- /* The NextOp of the NextWalk will be the beginning of the method */
-
- WalkState->NextOp = NULL;
- WalkState->PassNumber = PassNumber;
-
- if (Info)
- {
- if (Info->ParameterType == ACPI_PARAM_GPE)
- {
- WalkState->GpeEventInfo =
- ACPI_CAST_PTR (ACPI_GPE_EVENT_INFO, Info->Parameters);
- }
- else
- {
- WalkState->Params = Info->Parameters;
- WalkState->CallerReturnDesc = &Info->ReturnObject;
- }
- }
-
- Status = AcpiPsInitScope (&WalkState->ParserState, Op);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- if (MethodNode)
- {
- WalkState->ParserState.StartNode = MethodNode;
- WalkState->WalkType = ACPI_WALK_METHOD;
- WalkState->MethodNode = MethodNode;
- WalkState->MethodDesc = AcpiNsGetAttachedObject (MethodNode);
-
- /* Push start scope on scope stack and make it current */
-
- Status = AcpiDsScopeStackPush (MethodNode, ACPI_TYPE_METHOD, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Init the method arguments */
-
- Status = AcpiDsMethodDataInitArgs (WalkState->Params,
- ACPI_METHOD_NUM_ARGS, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
- else
- {
- /*
- * 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 */
-
- Status = AcpiDsScopeStackPush (ParserState->StartNode,
- ParserState->StartNode->Type, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
- }
-
- Status = AcpiDsInitCallbacks (WalkState, PassNumber);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDsDeleteWalkState
- *
- * PARAMETERS: WalkState - State to delete
- *
- * RETURN: Status
- *
- * DESCRIPTION: Delete a walk state including all internal data structures
- *
- ******************************************************************************/
-
-void
-AcpiDsDeleteWalkState (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_GENERIC_STATE *State;
-
-
- ACPI_FUNCTION_TRACE_PTR (DsDeleteWalkState, WalkState);
-
-
- if (!WalkState)
- {
- return;
- }
-
- if (WalkState->DescriptorType != ACPI_DESC_TYPE_WALK)
- {
- ACPI_ERROR ((AE_INFO, "%p is not a valid walk state",
- WalkState));
- return;
- }
-
- /* There should not be any open scopes */
-
- if (WalkState->ParserState.Scope)
- {
- ACPI_ERROR ((AE_INFO, "%p walk still has a scope list",
- WalkState));
- AcpiPsCleanupScope (&WalkState->ParserState);
- }
-
- /* Always must free any linked control states */
-
- while (WalkState->ControlState)
- {
- State = WalkState->ControlState;
- WalkState->ControlState = State->Common.Next;
-
- AcpiUtDeleteGenericState (State);
- }
-
- /* Always must free any linked parse states */
-
- while (WalkState->ScopeInfo)
- {
- State = WalkState->ScopeInfo;
- WalkState->ScopeInfo = State->Common.Next;
-
- AcpiUtDeleteGenericState (State);
- }
-
- /* Always must free any stacked result states */
-
- while (WalkState->Results)
- {
- State = WalkState->Results;
- WalkState->Results = State->Common.Next;
-
- AcpiUtDeleteGenericState (State);
- }
-
- ACPI_FREE (WalkState);
- return_VOID;
-}
-
-
diff --git a/sys/contrib/dev/acpica/evevent.c b/sys/contrib/dev/acpica/evevent.c
deleted file mode 100644
index 0e15049..0000000
--- a/sys/contrib/dev/acpica/evevent.c
+++ /dev/null
@@ -1,427 +0,0 @@
-/******************************************************************************
- *
- * Module Name: evevent - Fixed Event handling and dispatch
- * $Revision: 1.125 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acevents.h>
-
-#define _COMPONENT ACPI_EVENTS
- ACPI_MODULE_NAME ("evevent")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiEvFixedEventInitialize (
- void);
-
-static UINT32
-AcpiEvFixedEventDispatch (
- UINT32 Event);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvInitializeEvents
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Initialize global data structures for ACPI events (Fixed, GPE)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvInitializeEvents (
- void)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (EvInitializeEvents);
-
-
- /*
- * Initialize the Fixed and General Purpose Events. This is done prior to
- * enabling SCIs to prevent interrupts from occurring before the handlers are
- * installed.
- */
- Status = AcpiEvFixedEventInitialize ();
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Unable to initialize fixed events"));
- return_ACPI_STATUS (Status);
- }
-
- Status = AcpiEvGpeInitialize ();
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Unable to initialize general purpose events"));
- return_ACPI_STATUS (Status);
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvInstallFadtGpes
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Completes initialization of the FADT-defined GPE blocks
- * (0 and 1). This causes the _PRW methods to be run, so the HW
- * must be fully initialized at this point, including global lock
- * support.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvInstallFadtGpes (
- void)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (EvInstallFadtGpes);
-
-
- /* Namespace must be locked */
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- /* FADT GPE Block 0 */
-
- (void) AcpiEvInitializeGpeBlock (
- AcpiGbl_FadtGpeDevice, AcpiGbl_GpeFadtBlocks[0]);
-
- /* FADT GPE Block 1 */
-
- (void) AcpiEvInitializeGpeBlock (
- AcpiGbl_FadtGpeDevice, AcpiGbl_GpeFadtBlocks[1]);
-
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvInstallXruptHandlers
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Install interrupt handlers for the SCI and Global Lock
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvInstallXruptHandlers (
- void)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (EvInstallXruptHandlers);
-
-
- /* Install the SCI handler */
-
- Status = AcpiEvInstallSciHandler ();
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Unable to install System Control Interrupt handler"));
- return_ACPI_STATUS (Status);
- }
-
- /* Install the handler for the Global Lock */
-
- Status = AcpiEvInitGlobalLockHandler ();
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Unable to initialize Global Lock handler"));
- return_ACPI_STATUS (Status);
- }
-
- AcpiGbl_EventsInitialized = TRUE;
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvFixedEventInitialize
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Install the fixed event handlers and enable the fixed events.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiEvFixedEventInitialize (
- void)
-{
- ACPI_NATIVE_UINT i;
- ACPI_STATUS Status;
-
-
- /*
- * Initialize the structure that keeps track of fixed event handlers
- * and enable the fixed events.
- */
- for (i = 0; i < ACPI_NUM_FIXED_EVENTS; i++)
- {
- AcpiGbl_FixedEventHandlers[i].Handler = NULL;
- AcpiGbl_FixedEventHandlers[i].Context = NULL;
-
- /* Enable the fixed event */
-
- if (AcpiGbl_FixedEventInfo[i].EnableRegisterId != 0xFF)
- {
- Status = AcpiSetRegister (
- AcpiGbl_FixedEventInfo[i].EnableRegisterId, 0);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
- }
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvFixedEventDetect
- *
- * PARAMETERS: None
- *
- * RETURN: INTERRUPT_HANDLED or INTERRUPT_NOT_HANDLED
- *
- * DESCRIPTION: Checks the PM status register for active fixed events
- *
- ******************************************************************************/
-
-UINT32
-AcpiEvFixedEventDetect (
- void)
-{
- UINT32 IntStatus = ACPI_INTERRUPT_NOT_HANDLED;
- UINT32 FixedStatus;
- UINT32 FixedEnable;
- ACPI_NATIVE_UINT i;
-
-
- ACPI_FUNCTION_NAME (EvFixedEventDetect);
-
-
- /*
- * Read the fixed feature status and enable registers, as all the cases
- * depend on their values. Ignore errors here.
- */
- (void) AcpiHwRegisterRead (ACPI_MTX_DO_NOT_LOCK, ACPI_REGISTER_PM1_STATUS,
- &FixedStatus);
- (void) AcpiHwRegisterRead (ACPI_MTX_DO_NOT_LOCK, ACPI_REGISTER_PM1_ENABLE,
- &FixedEnable);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INTERRUPTS,
- "Fixed Event Block: Enable %08X Status %08X\n",
- FixedEnable, FixedStatus));
-
- /*
- * Check for all possible Fixed Events and dispatch those that are active
- */
- for (i = 0; i < ACPI_NUM_FIXED_EVENTS; i++)
- {
- /* Both the status and enable bits must be on for this event */
-
- if ((FixedStatus & AcpiGbl_FixedEventInfo[i].StatusBitMask) &&
- (FixedEnable & AcpiGbl_FixedEventInfo[i].EnableBitMask))
- {
- /* Found an active (signalled) event */
-
- IntStatus |= AcpiEvFixedEventDispatch ((UINT32) i);
- }
- }
-
- return (IntStatus);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvFixedEventDispatch
- *
- * PARAMETERS: Event - Event type
- *
- * RETURN: INTERRUPT_HANDLED or INTERRUPT_NOT_HANDLED
- *
- * DESCRIPTION: Clears the status bit for the requested event, calls the
- * handler that previously registered for the event.
- *
- ******************************************************************************/
-
-static UINT32
-AcpiEvFixedEventDispatch (
- UINT32 Event)
-{
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /* Clear the status bit */
-
- (void) AcpiSetRegister (AcpiGbl_FixedEventInfo[Event].StatusRegisterId, 1);
-
- /*
- * Make sure we've got a handler. If not, report an error.
- * The event is disabled to prevent further interrupts.
- */
- if (NULL == AcpiGbl_FixedEventHandlers[Event].Handler)
- {
- (void) AcpiSetRegister (AcpiGbl_FixedEventInfo[Event].EnableRegisterId, 0);
-
- ACPI_ERROR ((AE_INFO,
- "No installed handler for fixed event [%08X]",
- Event));
-
- return (ACPI_INTERRUPT_NOT_HANDLED);
- }
-
- /* Invoke the Fixed Event handler */
-
- return ((AcpiGbl_FixedEventHandlers[Event].Handler)(
- AcpiGbl_FixedEventHandlers[Event].Context));
-}
-
-
diff --git a/sys/contrib/dev/acpica/evgpe.c b/sys/contrib/dev/acpica/evgpe.c
deleted file mode 100644
index d18a1d7..0000000
--- a/sys/contrib/dev/acpica/evgpe.c
+++ /dev/null
@@ -1,866 +0,0 @@
-/******************************************************************************
- *
- * Module Name: evgpe - General Purpose Event handling and dispatch
- * $Revision: 1.68 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acevents.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-#define _COMPONENT ACPI_EVENTS
- ACPI_MODULE_NAME ("evgpe")
-
-/* Local prototypes */
-
-static void
-AcpiEvAsynchEnableGpe (
- void *Context);
-
-static void ACPI_SYSTEM_XFACE
-AcpiEvAsynchExecuteGpeMethod (
- void *Context);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvSetGpeType
- *
- * PARAMETERS: GpeEventInfo - GPE to set
- * Type - New type
- *
- * RETURN: Status
- *
- * DESCRIPTION: Sets the new type for the GPE (wake, run, or wake/run)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvSetGpeType (
- ACPI_GPE_EVENT_INFO *GpeEventInfo,
- UINT8 Type)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (EvSetGpeType);
-
-
- /* Validate type and update register enable masks */
-
- switch (Type)
- {
- case ACPI_GPE_TYPE_WAKE:
- case ACPI_GPE_TYPE_RUNTIME:
- case ACPI_GPE_TYPE_WAKE_RUN:
- break;
-
- default:
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /* Disable the GPE if currently enabled */
-
- Status = AcpiEvDisableGpe (GpeEventInfo);
-
- /* Type was validated above */
-
- GpeEventInfo->Flags &= ~ACPI_GPE_TYPE_MASK; /* Clear type bits */
- GpeEventInfo->Flags |= Type; /* Insert type */
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvUpdateGpeEnableMasks
- *
- * PARAMETERS: GpeEventInfo - GPE to update
- * Type - What to do: ACPI_GPE_DISABLE or
- * ACPI_GPE_ENABLE
- *
- * RETURN: Status
- *
- * DESCRIPTION: Updates GPE register enable masks based on the GPE type
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvUpdateGpeEnableMasks (
- ACPI_GPE_EVENT_INFO *GpeEventInfo,
- UINT8 Type)
-{
- ACPI_GPE_REGISTER_INFO *GpeRegisterInfo;
- UINT8 RegisterBit;
-
-
- ACPI_FUNCTION_TRACE (EvUpdateGpeEnableMasks);
-
-
- GpeRegisterInfo = GpeEventInfo->RegisterInfo;
- if (!GpeRegisterInfo)
- {
- return_ACPI_STATUS (AE_NOT_EXIST);
- }
- RegisterBit = (UINT8)
- (1 << (GpeEventInfo->GpeNumber - GpeRegisterInfo->BaseGpeNumber));
-
- /* 1) Disable case. Simply clear all enable bits */
-
- if (Type == ACPI_GPE_DISABLE)
- {
- ACPI_CLEAR_BIT (GpeRegisterInfo->EnableForWake, RegisterBit);
- ACPI_CLEAR_BIT (GpeRegisterInfo->EnableForRun, RegisterBit);
- return_ACPI_STATUS (AE_OK);
- }
-
- /* 2) Enable case. Set/Clear the appropriate enable bits */
-
- switch (GpeEventInfo->Flags & ACPI_GPE_TYPE_MASK)
- {
- case ACPI_GPE_TYPE_WAKE:
- ACPI_SET_BIT (GpeRegisterInfo->EnableForWake, RegisterBit);
- ACPI_CLEAR_BIT (GpeRegisterInfo->EnableForRun, RegisterBit);
- break;
-
- case ACPI_GPE_TYPE_RUNTIME:
- ACPI_CLEAR_BIT (GpeRegisterInfo->EnableForWake, RegisterBit);
- ACPI_SET_BIT (GpeRegisterInfo->EnableForRun, RegisterBit);
- break;
-
- case ACPI_GPE_TYPE_WAKE_RUN:
- ACPI_SET_BIT (GpeRegisterInfo->EnableForWake, RegisterBit);
- ACPI_SET_BIT (GpeRegisterInfo->EnableForRun, RegisterBit);
- break;
-
- default:
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvEnableGpe
- *
- * PARAMETERS: GpeEventInfo - GPE to enable
- * WriteToHardware - Enable now, or just mark data structs
- * (WAKE GPEs should be deferred)
- *
- * RETURN: Status
- *
- * DESCRIPTION: Enable a GPE based on the GPE type
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvEnableGpe (
- ACPI_GPE_EVENT_INFO *GpeEventInfo,
- BOOLEAN WriteToHardware)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (EvEnableGpe);
-
-
- /* Make sure HW enable masks are updated */
-
- Status = AcpiEvUpdateGpeEnableMasks (GpeEventInfo, ACPI_GPE_ENABLE);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Mark wake-enabled or HW enable, or both */
-
- switch (GpeEventInfo->Flags & ACPI_GPE_TYPE_MASK)
- {
- case ACPI_GPE_TYPE_WAKE:
-
- ACPI_SET_BIT (GpeEventInfo->Flags, ACPI_GPE_WAKE_ENABLED);
- break;
-
- case ACPI_GPE_TYPE_WAKE_RUN:
-
- ACPI_SET_BIT (GpeEventInfo->Flags, ACPI_GPE_WAKE_ENABLED);
-
- /*lint -fallthrough */
-
- case ACPI_GPE_TYPE_RUNTIME:
-
- ACPI_SET_BIT (GpeEventInfo->Flags, ACPI_GPE_RUN_ENABLED);
-
- if (WriteToHardware)
- {
- /* Clear the GPE (of stale events), then enable it */
-
- Status = AcpiHwClearGpe (GpeEventInfo);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Enable the requested runtime GPE */
-
- Status = AcpiHwWriteGpeEnableReg (GpeEventInfo);
- }
- break;
-
- default:
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvDisableGpe
- *
- * PARAMETERS: GpeEventInfo - GPE to disable
- *
- * RETURN: Status
- *
- * DESCRIPTION: Disable a GPE based on the GPE type
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvDisableGpe (
- ACPI_GPE_EVENT_INFO *GpeEventInfo)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (EvDisableGpe);
-
-
- if (!(GpeEventInfo->Flags & ACPI_GPE_ENABLE_MASK))
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Make sure HW enable masks are updated */
-
- Status = AcpiEvUpdateGpeEnableMasks (GpeEventInfo, ACPI_GPE_DISABLE);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Mark wake-disabled or HW disable, or both */
-
- switch (GpeEventInfo->Flags & ACPI_GPE_TYPE_MASK)
- {
- case ACPI_GPE_TYPE_WAKE:
- ACPI_CLEAR_BIT (GpeEventInfo->Flags, ACPI_GPE_WAKE_ENABLED);
- break;
-
- case ACPI_GPE_TYPE_WAKE_RUN:
- ACPI_CLEAR_BIT (GpeEventInfo->Flags, ACPI_GPE_WAKE_ENABLED);
-
- /*lint -fallthrough */
-
- case ACPI_GPE_TYPE_RUNTIME:
-
- /* Disable the requested runtime GPE */
-
- ACPI_CLEAR_BIT (GpeEventInfo->Flags, ACPI_GPE_RUN_ENABLED);
- Status = AcpiHwWriteGpeEnableReg (GpeEventInfo);
- break;
-
- default:
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvGetGpeEventInfo
- *
- * PARAMETERS: GpeDevice - Device node. NULL for GPE0/GPE1
- * GpeNumber - Raw GPE number
- *
- * RETURN: A GPE EventInfo struct. NULL if not a valid GPE
- *
- * DESCRIPTION: Returns the EventInfo struct associated with this GPE.
- * Validates the GpeBlock and the GpeNumber
- *
- * Should be called only when the GPE lists are semaphore locked
- * and not subject to change.
- *
- ******************************************************************************/
-
-ACPI_GPE_EVENT_INFO *
-AcpiEvGetGpeEventInfo (
- ACPI_HANDLE GpeDevice,
- UINT32 GpeNumber)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_GPE_BLOCK_INFO *GpeBlock;
- ACPI_NATIVE_UINT i;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /* A NULL GpeBlock means use the FADT-defined GPE block(s) */
-
- if (!GpeDevice)
- {
- /* Examine GPE Block 0 and 1 (These blocks are permanent) */
-
- for (i = 0; i < ACPI_MAX_GPE_BLOCKS; i++)
- {
- GpeBlock = AcpiGbl_GpeFadtBlocks[i];
- if (GpeBlock)
- {
- if ((GpeNumber >= GpeBlock->BlockBaseNumber) &&
- (GpeNumber < GpeBlock->BlockBaseNumber +
- (GpeBlock->RegisterCount * 8)))
- {
- return (&GpeBlock->EventInfo[GpeNumber -
- GpeBlock->BlockBaseNumber]);
- }
- }
- }
-
- /* The GpeNumber was not in the range of either FADT GPE block */
-
- return (NULL);
- }
-
- /* A Non-NULL GpeDevice means this is a GPE Block Device */
-
- ObjDesc = AcpiNsGetAttachedObject ((ACPI_NAMESPACE_NODE *) GpeDevice);
- if (!ObjDesc ||
- !ObjDesc->Device.GpeBlock)
- {
- return (NULL);
- }
-
- GpeBlock = ObjDesc->Device.GpeBlock;
-
- if ((GpeNumber >= GpeBlock->BlockBaseNumber) &&
- (GpeNumber < GpeBlock->BlockBaseNumber + (GpeBlock->RegisterCount * 8)))
- {
- return (&GpeBlock->EventInfo[GpeNumber - GpeBlock->BlockBaseNumber]);
- }
-
- return (NULL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvGpeDetect
- *
- * PARAMETERS: GpeXruptList - Interrupt block for this interrupt.
- * Can have multiple GPE blocks attached.
- *
- * RETURN: INTERRUPT_HANDLED or INTERRUPT_NOT_HANDLED
- *
- * DESCRIPTION: Detect if any GP events have occurred. This function is
- * executed at interrupt level.
- *
- ******************************************************************************/
-
-UINT32
-AcpiEvGpeDetect (
- ACPI_GPE_XRUPT_INFO *GpeXruptList)
-{
- ACPI_STATUS Status;
- ACPI_GPE_BLOCK_INFO *GpeBlock;
- ACPI_GPE_REGISTER_INFO *GpeRegisterInfo;
- UINT32 IntStatus = ACPI_INTERRUPT_NOT_HANDLED;
- UINT8 EnabledStatusByte;
- UINT32 StatusReg;
- UINT32 EnableReg;
- ACPI_CPU_FLAGS Flags;
- ACPI_NATIVE_UINT i;
- ACPI_NATIVE_UINT j;
-
-
- ACPI_FUNCTION_NAME (EvGpeDetect);
-
- /* Check for the case where there are no GPEs */
-
- if (!GpeXruptList)
- {
- return (IntStatus);
- }
-
- /*
- * We need to obtain the GPE lock for both the data structs and registers
- * Note: Not necessary to obtain the hardware lock, since the GPE registers
- * are owned by the GpeLock.
- */
- Flags = AcpiOsAcquireLock (AcpiGbl_GpeLock);
-
- /* Examine all GPE blocks attached to this interrupt level */
-
- GpeBlock = GpeXruptList->GpeBlockListHead;
- while (GpeBlock)
- {
- /*
- * Read all of the 8-bit GPE status and enable registers
- * in this GPE block, saving all of them.
- * Find all currently active GP events.
- */
- for (i = 0; i < GpeBlock->RegisterCount; i++)
- {
- /* Get the next status/enable pair */
-
- GpeRegisterInfo = &GpeBlock->RegisterInfo[i];
-
- /* Read the Status Register */
-
- Status = AcpiHwLowLevelRead (ACPI_GPE_REGISTER_WIDTH, &StatusReg,
- &GpeRegisterInfo->StatusAddress);
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
-
- /* Read the Enable Register */
-
- Status = AcpiHwLowLevelRead (ACPI_GPE_REGISTER_WIDTH, &EnableReg,
- &GpeRegisterInfo->EnableAddress);
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INTERRUPTS,
- "Read GPE Register at GPE%X: Status=%02X, Enable=%02X\n",
- GpeRegisterInfo->BaseGpeNumber, StatusReg, EnableReg));
-
- /* Check if there is anything active at all in this register */
-
- EnabledStatusByte = (UINT8) (StatusReg & EnableReg);
- if (!EnabledStatusByte)
- {
- /* No active GPEs in this register, move on */
-
- continue;
- }
-
- /* Now look at the individual GPEs in this byte register */
-
- for (j = 0; j < ACPI_GPE_REGISTER_WIDTH; j++)
- {
- /* Examine one GPE bit */
-
- if (EnabledStatusByte & (1 << j))
- {
- /*
- * Found an active GPE. Dispatch the event to a handler
- * or method.
- */
- IntStatus |= AcpiEvGpeDispatch (
- &GpeBlock->EventInfo[(i * ACPI_GPE_REGISTER_WIDTH) + j],
- (UINT32) j + GpeRegisterInfo->BaseGpeNumber);
- }
- }
- }
-
- GpeBlock = GpeBlock->Next;
- }
-
-UnlockAndExit:
-
- AcpiOsReleaseLock (AcpiGbl_GpeLock, Flags);
- return (IntStatus);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvAsynchExecuteGpeMethod
- *
- * PARAMETERS: Context (GpeEventInfo) - Info for this GPE
- *
- * RETURN: None
- *
- * DESCRIPTION: Perform the actual execution of a GPE control method. This
- * function is called from an invocation of AcpiOsExecute and
- * therefore does NOT execute at interrupt level - so that
- * the control method itself is not executed in the context of
- * an interrupt handler.
- *
- ******************************************************************************/
-
-static void ACPI_SYSTEM_XFACE
-AcpiEvAsynchExecuteGpeMethod (
- void *Context)
-{
- ACPI_GPE_EVENT_INFO *GpeEventInfo = (void *) Context;
- ACPI_STATUS Status;
- ACPI_GPE_EVENT_INFO LocalGpeEventInfo;
- ACPI_EVALUATE_INFO *Info;
-
-
- ACPI_FUNCTION_TRACE (EvAsynchExecuteGpeMethod);
-
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
- if (ACPI_FAILURE (Status))
- {
- return_VOID;
- }
-
- /* Must revalidate the GpeNumber/GpeBlock */
-
- if (!AcpiEvValidGpeEvent (GpeEventInfo))
- {
- Status = AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
- return_VOID;
- }
-
- /* Set the GPE flags for return to enabled state */
-
- (void) AcpiEvEnableGpe (GpeEventInfo, FALSE);
-
- /*
- * Take a snapshot of the GPE info for this level - we copy the
- * info to prevent a race condition with RemoveHandler/RemoveBlock.
- */
- ACPI_MEMCPY (&LocalGpeEventInfo, GpeEventInfo,
- sizeof (ACPI_GPE_EVENT_INFO));
-
- Status = AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
- if (ACPI_FAILURE (Status))
- {
- return_VOID;
- }
-
- /*
- * Must check for control method type dispatch one more
- * time to avoid race with EvGpeInstallHandler
- */
- if ((LocalGpeEventInfo.Flags & ACPI_GPE_DISPATCH_MASK) ==
- ACPI_GPE_DISPATCH_METHOD)
- {
- /* Allocate the evaluation information block */
-
- Info = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_EVALUATE_INFO));
- if (!Info)
- {
- Status = AE_NO_MEMORY;
- }
- else
- {
- /*
- * Invoke the GPE Method (_Lxx, _Exx) i.e., evaluate the _Lxx/_Exx
- * control method that corresponds to this GPE
- */
- Info->PrefixNode = LocalGpeEventInfo.Dispatch.MethodNode;
- Info->Parameters = ACPI_CAST_PTR (ACPI_OPERAND_OBJECT *, GpeEventInfo);
- Info->ParameterType = ACPI_PARAM_GPE;
- Info->Flags = ACPI_IGNORE_RETURN_VALUE;
-
- Status = AcpiNsEvaluate (Info);
- ACPI_FREE (Info);
- }
-
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "while evaluating GPE method [%4.4s]",
- AcpiUtGetNodeName (LocalGpeEventInfo.Dispatch.MethodNode)));
- }
- }
-
- /* Defer enabling of GPE until all notify handlers are done */
- AcpiOsExecute(OSL_NOTIFY_HANDLER, AcpiEvAsynchEnableGpe, GpeEventInfo);
- return_VOID;
-}
-
-static void
-AcpiEvAsynchEnableGpe (
- void *Context)
-{
- ACPI_GPE_EVENT_INFO *GpeEventInfo = (void *) Context;
- ACPI_STATUS Status;
-
- if ((GpeEventInfo->Flags & ACPI_GPE_XRUPT_TYPE_MASK) ==
- ACPI_GPE_LEVEL_TRIGGERED)
- {
- /*
- * GPE is level-triggered, we clear the GPE status bit after
- * handling the event.
- */
- Status = AcpiHwClearGpe (GpeEventInfo);
- if (ACPI_FAILURE (Status))
- {
- return_VOID;
- }
- }
-
- /* Enable this GPE */
-
- (void) AcpiHwWriteGpeEnableReg (GpeEventInfo);
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvGpeDispatch
- *
- * PARAMETERS: GpeEventInfo - Info for this GPE
- * GpeNumber - Number relative to the parent GPE block
- *
- * RETURN: INTERRUPT_HANDLED or INTERRUPT_NOT_HANDLED
- *
- * DESCRIPTION: Dispatch a General Purpose Event to either a function (e.g. EC)
- * or method (e.g. _Lxx/_Exx) handler.
- *
- * This function executes at interrupt level.
- *
- ******************************************************************************/
-
-UINT32
-AcpiEvGpeDispatch (
- ACPI_GPE_EVENT_INFO *GpeEventInfo,
- UINT32 GpeNumber)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (EvGpeDispatch);
-
-
- AcpiGpeCount++;
-
- /*
- * If edge-triggered, clear the GPE status bit now. Note that
- * level-triggered events are cleared after the GPE is serviced.
- */
- if ((GpeEventInfo->Flags & ACPI_GPE_XRUPT_TYPE_MASK) ==
- ACPI_GPE_EDGE_TRIGGERED)
- {
- Status = AcpiHwClearGpe (GpeEventInfo);
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Unable to clear GPE[%2X]", GpeNumber));
- return_UINT32 (ACPI_INTERRUPT_NOT_HANDLED);
- }
- }
-
- if (!AcpiGbl_SystemAwakeAndRunning)
- {
- /*
- * We just woke up because of a wake GPE. Disable any further GPEs
- * until we are fully up and running (Only wake GPEs should be enabled
- * at this time, but we just brute-force disable them all.)
- * 1) We must disable this particular wake GPE so it won't fire again
- * 2) We want to disable all wake GPEs, since we are now awake
- */
- (void) AcpiHwDisableAllGpes ();
- }
-
- /*
- * Dispatch the GPE to either an installed handler, or the control method
- * associated with this GPE (_Lxx or _Exx). If a handler exists, we invoke
- * it and do not attempt to run the method. If there is neither a handler
- * nor a method, we disable this GPE to prevent further such pointless
- * events from firing.
- */
- switch (GpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK)
- {
- case ACPI_GPE_DISPATCH_HANDLER:
-
- /*
- * Invoke the installed handler (at interrupt level)
- * Ignore return status for now. TBD: leave GPE disabled on error?
- */
- (void) GpeEventInfo->Dispatch.Handler->Address (
- GpeEventInfo->Dispatch.Handler->Context);
-
- /* It is now safe to clear level-triggered events. */
-
- if ((GpeEventInfo->Flags & ACPI_GPE_XRUPT_TYPE_MASK) ==
- ACPI_GPE_LEVEL_TRIGGERED)
- {
- Status = AcpiHwClearGpe (GpeEventInfo);
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Unable to clear GPE[%2X]", GpeNumber));
- return_UINT32 (ACPI_INTERRUPT_NOT_HANDLED);
- }
- }
- break;
-
- case ACPI_GPE_DISPATCH_METHOD:
-
- /*
- * Disable the GPE, so it doesn't keep firing before the method has a
- * chance to run (it runs asynchronously with interrupts enabled).
- */
- Status = AcpiEvDisableGpe (GpeEventInfo);
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Unable to disable GPE[%2X]", GpeNumber));
- return_UINT32 (ACPI_INTERRUPT_NOT_HANDLED);
- }
-
- /*
- * Execute the method associated with the GPE
- * NOTE: Level-triggered GPEs are cleared after the method completes.
- */
- Status = AcpiOsExecute (OSL_GPE_HANDLER,
- AcpiEvAsynchExecuteGpeMethod, GpeEventInfo);
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Unable to queue handler for GPE[%2X] - event disabled",
- GpeNumber));
- }
- break;
-
- default:
-
- /* No handler or method to run! */
-
- ACPI_ERROR ((AE_INFO,
- "No handler or method for GPE[%2X], disabling event",
- GpeNumber));
-
- /*
- * Disable the GPE. The GPE will remain disabled until the ACPI
- * Core Subsystem is restarted, or a handler is installed.
- */
- Status = AcpiEvDisableGpe (GpeEventInfo);
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Unable to disable GPE[%2X]", GpeNumber));
- return_UINT32 (ACPI_INTERRUPT_NOT_HANDLED);
- }
- break;
- }
-
- return_UINT32 (ACPI_INTERRUPT_HANDLED);
-}
-
diff --git a/sys/contrib/dev/acpica/evgpeblk.c b/sys/contrib/dev/acpica/evgpeblk.c
deleted file mode 100644
index 5e1bdb7..0000000
--- a/sys/contrib/dev/acpica/evgpeblk.c
+++ /dev/null
@@ -1,1372 +0,0 @@
-/******************************************************************************
- *
- * Module Name: evgpeblk - GPE block creation and initialization.
- * $Revision: 1.60 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acevents.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-#define _COMPONENT ACPI_EVENTS
- ACPI_MODULE_NAME ("evgpeblk")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiEvSaveMethodInfo (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *ObjDesc,
- void **ReturnValue);
-
-static ACPI_STATUS
-AcpiEvMatchPrwAndGpe (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *Info,
- void **ReturnValue);
-
-static ACPI_GPE_XRUPT_INFO *
-AcpiEvGetGpeXruptBlock (
- UINT32 InterruptNumber);
-
-static ACPI_STATUS
-AcpiEvDeleteGpeXrupt (
- ACPI_GPE_XRUPT_INFO *GpeXrupt);
-
-static ACPI_STATUS
-AcpiEvInstallGpeBlock (
- ACPI_GPE_BLOCK_INFO *GpeBlock,
- UINT32 InterruptNumber);
-
-static ACPI_STATUS
-AcpiEvCreateGpeInfoBlocks (
- ACPI_GPE_BLOCK_INFO *GpeBlock);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvValidGpeEvent
- *
- * PARAMETERS: GpeEventInfo - Info for this GPE
- *
- * RETURN: TRUE if the GpeEvent is valid
- *
- * DESCRIPTION: Validate a GPE event. DO NOT CALL FROM INTERRUPT LEVEL.
- * Should be called only when the GPE lists are semaphore locked
- * and not subject to change.
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiEvValidGpeEvent (
- ACPI_GPE_EVENT_INFO *GpeEventInfo)
-{
- ACPI_GPE_XRUPT_INFO *GpeXruptBlock;
- ACPI_GPE_BLOCK_INFO *GpeBlock;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /* No need for spin lock since we are not changing any list elements */
-
- /* Walk the GPE interrupt levels */
-
- GpeXruptBlock = AcpiGbl_GpeXruptListHead;
- while (GpeXruptBlock)
- {
- GpeBlock = GpeXruptBlock->GpeBlockListHead;
-
- /* Walk the GPE blocks on this interrupt level */
-
- while (GpeBlock)
- {
- if ((&GpeBlock->EventInfo[0] <= GpeEventInfo) &&
- (&GpeBlock->EventInfo[((ACPI_SIZE) GpeBlock->RegisterCount) * 8] > GpeEventInfo))
- {
- return (TRUE);
- }
-
- GpeBlock = GpeBlock->Next;
- }
-
- GpeXruptBlock = GpeXruptBlock->Next;
- }
-
- return (FALSE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvWalkGpeList
- *
- * PARAMETERS: GpeWalkCallback - Routine called for each GPE block
- *
- * RETURN: Status
- *
- * DESCRIPTION: Walk the GPE lists.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvWalkGpeList (
- ACPI_GPE_CALLBACK GpeWalkCallback)
-{
- ACPI_GPE_BLOCK_INFO *GpeBlock;
- ACPI_GPE_XRUPT_INFO *GpeXruptInfo;
- ACPI_STATUS Status = AE_OK;
- ACPI_CPU_FLAGS Flags;
-
-
- ACPI_FUNCTION_TRACE (EvWalkGpeList);
-
-
- Flags = AcpiOsAcquireLock (AcpiGbl_GpeLock);
-
- /* Walk the interrupt level descriptor list */
-
- GpeXruptInfo = AcpiGbl_GpeXruptListHead;
- while (GpeXruptInfo)
- {
- /* Walk all Gpe Blocks attached to this interrupt level */
-
- GpeBlock = GpeXruptInfo->GpeBlockListHead;
- while (GpeBlock)
- {
- /* One callback per GPE block */
-
- Status = GpeWalkCallback (GpeXruptInfo, GpeBlock);
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
-
- GpeBlock = GpeBlock->Next;
- }
-
- GpeXruptInfo = GpeXruptInfo->Next;
- }
-
-UnlockAndExit:
- AcpiOsReleaseLock (AcpiGbl_GpeLock, Flags);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvDeleteGpeHandlers
- *
- * PARAMETERS: GpeXruptInfo - GPE Interrupt info
- * GpeBlock - Gpe Block info
- *
- * RETURN: Status
- *
- * DESCRIPTION: Delete all Handler objects found in the GPE data structs.
- * Used only prior to termination.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvDeleteGpeHandlers (
- ACPI_GPE_XRUPT_INFO *GpeXruptInfo,
- ACPI_GPE_BLOCK_INFO *GpeBlock)
-{
- ACPI_GPE_EVENT_INFO *GpeEventInfo;
- ACPI_NATIVE_UINT i;
- ACPI_NATIVE_UINT j;
-
-
- ACPI_FUNCTION_TRACE (EvDeleteGpeHandlers);
-
-
- /* Examine each GPE Register within the block */
-
- for (i = 0; i < GpeBlock->RegisterCount; i++)
- {
- /* Now look at the individual GPEs in this byte register */
-
- for (j = 0; j < ACPI_GPE_REGISTER_WIDTH; j++)
- {
- GpeEventInfo = &GpeBlock->EventInfo[(i * ACPI_GPE_REGISTER_WIDTH) + j];
-
- if ((GpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK) ==
- ACPI_GPE_DISPATCH_HANDLER)
- {
- ACPI_FREE (GpeEventInfo->Dispatch.Handler);
- GpeEventInfo->Dispatch.Handler = NULL;
- GpeEventInfo->Flags &= ~ACPI_GPE_DISPATCH_MASK;
- }
- }
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvSaveMethodInfo
- *
- * PARAMETERS: Callback from WalkNamespace
- *
- * RETURN: Status
- *
- * DESCRIPTION: Called from AcpiWalkNamespace. Expects each object to be a
- * control method under the _GPE portion of the namespace.
- * Extract the name and GPE type from the object, saving this
- * information for quick lookup during GPE dispatch
- *
- * The name of each GPE control method is of the form:
- * "_Lxx" or "_Exx"
- * Where:
- * L - means that the GPE is level triggered
- * E - means that the GPE is edge triggered
- * xx - is the GPE number [in HEX]
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiEvSaveMethodInfo (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *ObjDesc,
- void **ReturnValue)
-{
- ACPI_GPE_BLOCK_INFO *GpeBlock = (void *) ObjDesc;
- ACPI_GPE_EVENT_INFO *GpeEventInfo;
- UINT32 GpeNumber;
- char Name[ACPI_NAME_SIZE + 1];
- UINT8 Type;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (EvSaveMethodInfo);
-
-
- /*
- * _Lxx and _Exx GPE method support
- *
- * 1) Extract the name from the object and convert to a string
- */
- ACPI_MOVE_32_TO_32 (
- Name, &((ACPI_NAMESPACE_NODE *) ObjHandle)->Name.Integer);
- Name[ACPI_NAME_SIZE] = 0;
-
- /*
- * 2) Edge/Level determination is based on the 2nd character
- * of the method name
- *
- * NOTE: Default GPE type is RUNTIME. May be changed later to WAKE
- * if a _PRW object is found that points to this GPE.
- */
- switch (Name[1])
- {
- case 'L':
- Type = ACPI_GPE_LEVEL_TRIGGERED;
- break;
-
- case 'E':
- Type = ACPI_GPE_EDGE_TRIGGERED;
- break;
-
- default:
- /* Unknown method type, just ignore it! */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_LOAD,
- "Ignoring unknown GPE method type: %s (name not of form _Lxx or _Exx)",
- Name));
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Convert the last two characters of the name to the GPE Number */
-
- GpeNumber = ACPI_STRTOUL (&Name[2], NULL, 16);
- if (GpeNumber == ACPI_UINT32_MAX)
- {
- /* Conversion failed; invalid method, just ignore it */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_LOAD,
- "Could not extract GPE number from name: %s (name is not of form _Lxx or _Exx)",
- Name));
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Ensure that we have a valid GPE number for this GPE block */
-
- if ((GpeNumber < GpeBlock->BlockBaseNumber) ||
- (GpeNumber >= (GpeBlock->BlockBaseNumber + (GpeBlock->RegisterCount * 8))))
- {
- /*
- * Not valid for this GPE block, just ignore it
- * However, it may be valid for a different GPE block, since GPE0 and GPE1
- * methods both appear under \_GPE.
- */
- return_ACPI_STATUS (AE_OK);
- }
-
- /*
- * Now we can add this information to the GpeEventInfo block
- * for use during dispatch of this GPE. Default type is RUNTIME, although
- * this may change when the _PRW methods are executed later.
- */
- GpeEventInfo = &GpeBlock->EventInfo[GpeNumber - GpeBlock->BlockBaseNumber];
-
- GpeEventInfo->Flags = (UINT8)
- (Type | ACPI_GPE_DISPATCH_METHOD | ACPI_GPE_TYPE_RUNTIME);
-
- GpeEventInfo->Dispatch.MethodNode = (ACPI_NAMESPACE_NODE *) ObjHandle;
-
- /* Update enable mask, but don't enable the HW GPE as of yet */
-
- Status = AcpiEvEnableGpe (GpeEventInfo, FALSE);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_LOAD,
- "Registered GPE method %s as GPE number 0x%.2X\n",
- Name, GpeNumber));
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvMatchPrwAndGpe
- *
- * PARAMETERS: Callback from WalkNamespace
- *
- * RETURN: Status. NOTE: We ignore errors so that the _PRW walk is
- * not aborted on a single _PRW failure.
- *
- * DESCRIPTION: Called from AcpiWalkNamespace. Expects each object to be a
- * Device. Run the _PRW method. If present, extract the GPE
- * number and mark the GPE as a WAKE GPE.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiEvMatchPrwAndGpe (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *Info,
- void **ReturnValue)
-{
- ACPI_GPE_WALK_INFO *GpeInfo = (void *) Info;
- ACPI_NAMESPACE_NODE *GpeDevice;
- ACPI_GPE_BLOCK_INFO *GpeBlock;
- ACPI_NAMESPACE_NODE *TargetGpeDevice;
- ACPI_GPE_EVENT_INFO *GpeEventInfo;
- ACPI_OPERAND_OBJECT *PkgDesc;
- ACPI_OPERAND_OBJECT *ObjDesc;
- UINT32 GpeNumber;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (EvMatchPrwAndGpe);
-
-
- /* Check for a _PRW method under this device */
-
- Status = AcpiUtEvaluateObject (ObjHandle, METHOD_NAME__PRW,
- ACPI_BTYPE_PACKAGE, &PkgDesc);
- if (ACPI_FAILURE (Status))
- {
- /* Ignore all errors from _PRW, we don't want to abort the subsystem */
-
- return_ACPI_STATUS (AE_OK);
- }
-
- /* The returned _PRW package must have at least two elements */
-
- if (PkgDesc->Package.Count < 2)
- {
- goto Cleanup;
- }
-
- /* Extract pointers from the input context */
-
- GpeDevice = GpeInfo->GpeDevice;
- GpeBlock = GpeInfo->GpeBlock;
-
- /*
- * The _PRW object must return a package, we are only interested
- * in the first element
- */
- ObjDesc = PkgDesc->Package.Elements[0];
-
- if (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_INTEGER)
- {
- /* Use FADT-defined GPE device (from definition of _PRW) */
-
- TargetGpeDevice = AcpiGbl_FadtGpeDevice;
-
- /* Integer is the GPE number in the FADT described GPE blocks */
-
- GpeNumber = (UINT32) ObjDesc->Integer.Value;
- }
- else if (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_PACKAGE)
- {
- /* Package contains a GPE reference and GPE number within a GPE block */
-
- if ((ObjDesc->Package.Count < 2) ||
- (ACPI_GET_OBJECT_TYPE (ObjDesc->Package.Elements[0]) != ACPI_TYPE_LOCAL_REFERENCE) ||
- (ACPI_GET_OBJECT_TYPE (ObjDesc->Package.Elements[1]) != ACPI_TYPE_INTEGER))
- {
- goto Cleanup;
- }
-
- /* Get GPE block reference and decode */
-
- TargetGpeDevice = ObjDesc->Package.Elements[0]->Reference.Node;
- GpeNumber = (UINT32) ObjDesc->Package.Elements[1]->Integer.Value;
- }
- else
- {
- /* Unknown type, just ignore it */
-
- goto Cleanup;
- }
-
- /*
- * Is this GPE within this block?
- *
- * TRUE iff these conditions are true:
- * 1) The GPE devices match.
- * 2) The GPE index(number) is within the range of the Gpe Block
- * associated with the GPE device.
- */
- if ((GpeDevice == TargetGpeDevice) &&
- (GpeNumber >= GpeBlock->BlockBaseNumber) &&
- (GpeNumber < GpeBlock->BlockBaseNumber + (GpeBlock->RegisterCount * 8)))
- {
- GpeEventInfo = &GpeBlock->EventInfo[GpeNumber - GpeBlock->BlockBaseNumber];
-
- /* Mark GPE for WAKE-ONLY but WAKE_DISABLED */
-
- GpeEventInfo->Flags &= ~(ACPI_GPE_WAKE_ENABLED | ACPI_GPE_RUN_ENABLED);
-
- Status = AcpiEvSetGpeType (GpeEventInfo, ACPI_GPE_TYPE_WAKE);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
- Status = AcpiEvUpdateGpeEnableMasks (GpeEventInfo, ACPI_GPE_DISABLE);
- }
-
-Cleanup:
- AcpiUtRemoveReference (PkgDesc);
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvGetGpeXruptBlock
- *
- * PARAMETERS: InterruptNumber - Interrupt for a GPE block
- *
- * RETURN: A GPE interrupt block
- *
- * DESCRIPTION: Get or Create a GPE interrupt block. There is one interrupt
- * block per unique interrupt level used for GPEs.
- * Should be called only when the GPE lists are semaphore locked
- * and not subject to change.
- *
- ******************************************************************************/
-
-static ACPI_GPE_XRUPT_INFO *
-AcpiEvGetGpeXruptBlock (
- UINT32 InterruptNumber)
-{
- ACPI_GPE_XRUPT_INFO *NextGpeXrupt;
- ACPI_GPE_XRUPT_INFO *GpeXrupt;
- ACPI_STATUS Status;
- ACPI_CPU_FLAGS Flags;
-
-
- ACPI_FUNCTION_TRACE (EvGetGpeXruptBlock);
-
-
- /* No need for lock since we are not changing any list elements here */
-
- NextGpeXrupt = AcpiGbl_GpeXruptListHead;
- while (NextGpeXrupt)
- {
- if (NextGpeXrupt->InterruptNumber == InterruptNumber)
- {
- return_PTR (NextGpeXrupt);
- }
-
- NextGpeXrupt = NextGpeXrupt->Next;
- }
-
- /* Not found, must allocate a new xrupt descriptor */
-
- GpeXrupt = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_GPE_XRUPT_INFO));
- if (!GpeXrupt)
- {
- return_PTR (NULL);
- }
-
- GpeXrupt->InterruptNumber = InterruptNumber;
-
- /* Install new interrupt descriptor with spin lock */
-
- Flags = AcpiOsAcquireLock (AcpiGbl_GpeLock);
- if (AcpiGbl_GpeXruptListHead)
- {
- NextGpeXrupt = AcpiGbl_GpeXruptListHead;
- while (NextGpeXrupt->Next)
- {
- NextGpeXrupt = NextGpeXrupt->Next;
- }
-
- NextGpeXrupt->Next = GpeXrupt;
- GpeXrupt->Previous = NextGpeXrupt;
- }
- else
- {
- AcpiGbl_GpeXruptListHead = GpeXrupt;
- }
- AcpiOsReleaseLock (AcpiGbl_GpeLock, Flags);
-
- /* Install new interrupt handler if not SCI_INT */
-
- if (InterruptNumber != AcpiGbl_FADT.SciInterrupt)
- {
- Status = AcpiOsInstallInterruptHandler (InterruptNumber,
- AcpiEvGpeXruptHandler, GpeXrupt);
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR ((AE_INFO,
- "Could not install GPE interrupt handler at level 0x%X",
- InterruptNumber));
- return_PTR (NULL);
- }
- }
-
- return_PTR (GpeXrupt);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvDeleteGpeXrupt
- *
- * PARAMETERS: GpeXrupt - A GPE interrupt info block
- *
- * RETURN: Status
- *
- * DESCRIPTION: Remove and free a GpeXrupt block. Remove an associated
- * interrupt handler if not the SCI interrupt.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiEvDeleteGpeXrupt (
- ACPI_GPE_XRUPT_INFO *GpeXrupt)
-{
- ACPI_STATUS Status;
- ACPI_CPU_FLAGS Flags;
-
-
- ACPI_FUNCTION_TRACE (EvDeleteGpeXrupt);
-
-
- /* We never want to remove the SCI interrupt handler */
-
- if (GpeXrupt->InterruptNumber == AcpiGbl_FADT.SciInterrupt)
- {
- GpeXrupt->GpeBlockListHead = NULL;
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Disable this interrupt */
-
- Status = AcpiOsRemoveInterruptHandler (
- GpeXrupt->InterruptNumber, AcpiEvGpeXruptHandler);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Unlink the interrupt block with lock */
-
- Flags = AcpiOsAcquireLock (AcpiGbl_GpeLock);
- if (GpeXrupt->Previous)
- {
- GpeXrupt->Previous->Next = GpeXrupt->Next;
- }
-
- if (GpeXrupt->Next)
- {
- GpeXrupt->Next->Previous = GpeXrupt->Previous;
- }
- AcpiOsReleaseLock (AcpiGbl_GpeLock, Flags);
-
- /* Free the block */
-
- ACPI_FREE (GpeXrupt);
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvInstallGpeBlock
- *
- * PARAMETERS: GpeBlock - New GPE block
- * InterruptNumber - Xrupt to be associated with this GPE block
- *
- * RETURN: Status
- *
- * DESCRIPTION: Install new GPE block with mutex support
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiEvInstallGpeBlock (
- ACPI_GPE_BLOCK_INFO *GpeBlock,
- UINT32 InterruptNumber)
-{
- ACPI_GPE_BLOCK_INFO *NextGpeBlock;
- ACPI_GPE_XRUPT_INFO *GpeXruptBlock;
- ACPI_STATUS Status;
- ACPI_CPU_FLAGS Flags;
-
-
- ACPI_FUNCTION_TRACE (EvInstallGpeBlock);
-
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- GpeXruptBlock = AcpiEvGetGpeXruptBlock (InterruptNumber);
- if (!GpeXruptBlock)
- {
- Status = AE_NO_MEMORY;
- goto UnlockAndExit;
- }
-
- /* Install the new block at the end of the list with lock */
-
- Flags = AcpiOsAcquireLock (AcpiGbl_GpeLock);
- if (GpeXruptBlock->GpeBlockListHead)
- {
- NextGpeBlock = GpeXruptBlock->GpeBlockListHead;
- while (NextGpeBlock->Next)
- {
- NextGpeBlock = NextGpeBlock->Next;
- }
-
- NextGpeBlock->Next = GpeBlock;
- GpeBlock->Previous = NextGpeBlock;
- }
- else
- {
- GpeXruptBlock->GpeBlockListHead = GpeBlock;
- }
-
- GpeBlock->XruptBlock = GpeXruptBlock;
- AcpiOsReleaseLock (AcpiGbl_GpeLock, Flags);
-
-
-UnlockAndExit:
- Status = AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvDeleteGpeBlock
- *
- * PARAMETERS: GpeBlock - Existing GPE block
- *
- * RETURN: Status
- *
- * DESCRIPTION: Remove a GPE block
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvDeleteGpeBlock (
- ACPI_GPE_BLOCK_INFO *GpeBlock)
-{
- ACPI_STATUS Status;
- ACPI_CPU_FLAGS Flags;
-
-
- ACPI_FUNCTION_TRACE (EvInstallGpeBlock);
-
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Disable all GPEs in this block */
-
- Status = AcpiHwDisableGpeBlock (GpeBlock->XruptBlock, GpeBlock);
-
- if (!GpeBlock->Previous && !GpeBlock->Next)
- {
- /* This is the last GpeBlock on this interrupt */
-
- Status = AcpiEvDeleteGpeXrupt (GpeBlock->XruptBlock);
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
- }
- else
- {
- /* Remove the block on this interrupt with lock */
-
- Flags = AcpiOsAcquireLock (AcpiGbl_GpeLock);
- if (GpeBlock->Previous)
- {
- GpeBlock->Previous->Next = GpeBlock->Next;
- }
- else
- {
- GpeBlock->XruptBlock->GpeBlockListHead = GpeBlock->Next;
- }
-
- if (GpeBlock->Next)
- {
- GpeBlock->Next->Previous = GpeBlock->Previous;
- }
- AcpiOsReleaseLock (AcpiGbl_GpeLock, Flags);
- }
-
- /* Free the GpeBlock */
-
- ACPI_FREE (GpeBlock->RegisterInfo);
- ACPI_FREE (GpeBlock->EventInfo);
- ACPI_FREE (GpeBlock);
-
-UnlockAndExit:
- Status = AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvCreateGpeInfoBlocks
- *
- * PARAMETERS: GpeBlock - New GPE block
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create the RegisterInfo and EventInfo blocks for this GPE block
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiEvCreateGpeInfoBlocks (
- ACPI_GPE_BLOCK_INFO *GpeBlock)
-{
- ACPI_GPE_REGISTER_INFO *GpeRegisterInfo = NULL;
- ACPI_GPE_EVENT_INFO *GpeEventInfo = NULL;
- ACPI_GPE_EVENT_INFO *ThisEvent;
- ACPI_GPE_REGISTER_INFO *ThisRegister;
- ACPI_NATIVE_UINT i;
- ACPI_NATIVE_UINT j;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (EvCreateGpeInfoBlocks);
-
-
- /* Allocate the GPE register information block */
-
- GpeRegisterInfo = ACPI_ALLOCATE_ZEROED (
- (ACPI_SIZE) GpeBlock->RegisterCount *
- sizeof (ACPI_GPE_REGISTER_INFO));
- if (!GpeRegisterInfo)
- {
- ACPI_ERROR ((AE_INFO,
- "Could not allocate the GpeRegisterInfo table"));
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /*
- * Allocate the GPE EventInfo block. There are eight distinct GPEs
- * per register. Initialization to zeros is sufficient.
- */
- GpeEventInfo = ACPI_ALLOCATE_ZEROED (
- ((ACPI_SIZE) GpeBlock->RegisterCount *
- ACPI_GPE_REGISTER_WIDTH) *
- sizeof (ACPI_GPE_EVENT_INFO));
- if (!GpeEventInfo)
- {
- ACPI_ERROR ((AE_INFO,
- "Could not allocate the GpeEventInfo table"));
- Status = AE_NO_MEMORY;
- goto ErrorExit;
- }
-
- /* Save the new Info arrays in the GPE block */
-
- GpeBlock->RegisterInfo = GpeRegisterInfo;
- GpeBlock->EventInfo = GpeEventInfo;
-
- /*
- * Initialize the GPE Register and Event structures. A goal of these
- * tables is to hide the fact that there are two separate GPE register sets
- * in a given GPE hardware block, the status registers occupy the first half,
- * and the enable registers occupy the second half.
- */
- ThisRegister = GpeRegisterInfo;
- ThisEvent = GpeEventInfo;
-
- for (i = 0; i < GpeBlock->RegisterCount; i++)
- {
- /* Init the RegisterInfo for this GPE register (8 GPEs) */
-
- ThisRegister->BaseGpeNumber = (UINT8) (GpeBlock->BlockBaseNumber +
- (i * ACPI_GPE_REGISTER_WIDTH));
-
- ThisRegister->StatusAddress.Address =
- GpeBlock->BlockAddress.Address + i;
-
- ThisRegister->EnableAddress.Address =
- GpeBlock->BlockAddress.Address + i + GpeBlock->RegisterCount;
-
- ThisRegister->StatusAddress.SpaceId = GpeBlock->BlockAddress.SpaceId;
- ThisRegister->EnableAddress.SpaceId = GpeBlock->BlockAddress.SpaceId;
- ThisRegister->StatusAddress.BitWidth = ACPI_GPE_REGISTER_WIDTH;
- ThisRegister->EnableAddress.BitWidth = ACPI_GPE_REGISTER_WIDTH;
- ThisRegister->StatusAddress.BitOffset = ACPI_GPE_REGISTER_WIDTH;
- ThisRegister->EnableAddress.BitOffset = ACPI_GPE_REGISTER_WIDTH;
-
- /* Init the EventInfo for each GPE within this register */
-
- for (j = 0; j < ACPI_GPE_REGISTER_WIDTH; j++)
- {
- ThisEvent->GpeNumber = (UINT8) (ThisRegister->BaseGpeNumber + j);
- ThisEvent->RegisterInfo = ThisRegister;
- ThisEvent++;
- }
-
- /* Disable all GPEs within this register */
-
- Status = AcpiHwLowLevelWrite (ACPI_GPE_REGISTER_WIDTH, 0x00,
- &ThisRegister->EnableAddress);
- if (ACPI_FAILURE (Status))
- {
- goto ErrorExit;
- }
-
- /* Clear any pending GPE events within this register */
-
- Status = AcpiHwLowLevelWrite (ACPI_GPE_REGISTER_WIDTH, 0xFF,
- &ThisRegister->StatusAddress);
- if (ACPI_FAILURE (Status))
- {
- goto ErrorExit;
- }
-
- ThisRegister++;
- }
-
- return_ACPI_STATUS (AE_OK);
-
-
-ErrorExit:
- if (GpeRegisterInfo)
- {
- ACPI_FREE (GpeRegisterInfo);
- }
- if (GpeEventInfo)
- {
- ACPI_FREE (GpeEventInfo);
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvCreateGpeBlock
- *
- * PARAMETERS: GpeDevice - Handle to the parent GPE block
- * GpeBlockAddress - Address and SpaceID
- * RegisterCount - Number of GPE register pairs in the block
- * GpeBlockBaseNumber - Starting GPE number for the block
- * InterruptNumber - H/W interrupt for the block
- * ReturnGpeBlock - Where the new block descriptor is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create and Install a block of GPE registers. All GPEs within
- * the block are disabled at exit.
- * Note: Assumes namespace is locked.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvCreateGpeBlock (
- ACPI_NAMESPACE_NODE *GpeDevice,
- ACPI_GENERIC_ADDRESS *GpeBlockAddress,
- UINT32 RegisterCount,
- UINT8 GpeBlockBaseNumber,
- UINT32 InterruptNumber,
- ACPI_GPE_BLOCK_INFO **ReturnGpeBlock)
-{
- ACPI_STATUS Status;
- ACPI_GPE_BLOCK_INFO *GpeBlock;
-
-
- ACPI_FUNCTION_TRACE (EvCreateGpeBlock);
-
-
- if (!RegisterCount)
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Allocate a new GPE block */
-
- GpeBlock = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_GPE_BLOCK_INFO));
- if (!GpeBlock)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* Initialize the new GPE block */
-
- GpeBlock->Node = GpeDevice;
- GpeBlock->RegisterCount = RegisterCount;
- GpeBlock->BlockBaseNumber = GpeBlockBaseNumber;
-
- ACPI_MEMCPY (&GpeBlock->BlockAddress, GpeBlockAddress,
- sizeof (ACPI_GENERIC_ADDRESS));
-
- /*
- * Create the RegisterInfo and EventInfo sub-structures
- * Note: disables and clears all GPEs in the block
- */
- Status = AcpiEvCreateGpeInfoBlocks (GpeBlock);
- if (ACPI_FAILURE (Status))
- {
- ACPI_FREE (GpeBlock);
- return_ACPI_STATUS (Status);
- }
-
- /* Install the new block in the global lists */
-
- Status = AcpiEvInstallGpeBlock (GpeBlock, InterruptNumber);
- if (ACPI_FAILURE (Status))
- {
- ACPI_FREE (GpeBlock);
- return_ACPI_STATUS (Status);
- }
-
- /* Find all GPE methods (_Lxx, _Exx) for this block */
-
- Status = AcpiNsWalkNamespace (ACPI_TYPE_METHOD, GpeDevice,
- ACPI_UINT32_MAX, ACPI_NS_WALK_NO_UNLOCK,
- AcpiEvSaveMethodInfo, GpeBlock, NULL);
-
- /* Return the new block */
-
- if (ReturnGpeBlock)
- {
- (*ReturnGpeBlock) = GpeBlock;
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INIT,
- "GPE %02X to %02X [%4.4s] %u regs on int 0x%X\n",
- (UINT32) GpeBlock->BlockBaseNumber,
- (UINT32) (GpeBlock->BlockBaseNumber +
- ((GpeBlock->RegisterCount * ACPI_GPE_REGISTER_WIDTH) -1)),
- GpeDevice->Name.Ascii,
- GpeBlock->RegisterCount,
- InterruptNumber));
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvInitializeGpeBlock
- *
- * PARAMETERS: GpeDevice - Handle to the parent GPE block
- * GpeBlock - Gpe Block info
- *
- * RETURN: Status
- *
- * DESCRIPTION: Initialize and enable a GPE block. First find and run any
- * _PRT methods associated with the block, then enable the
- * appropriate GPEs.
- * Note: Assumes namespace is locked.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvInitializeGpeBlock (
- ACPI_NAMESPACE_NODE *GpeDevice,
- ACPI_GPE_BLOCK_INFO *GpeBlock)
-{
- ACPI_STATUS Status;
- ACPI_GPE_EVENT_INFO *GpeEventInfo;
- ACPI_GPE_WALK_INFO GpeInfo;
- UINT32 WakeGpeCount;
- UINT32 GpeEnabledCount;
- ACPI_NATIVE_UINT i;
- ACPI_NATIVE_UINT j;
-
-
- ACPI_FUNCTION_TRACE (EvInitializeGpeBlock);
-
-
- /* Ignore a null GPE block (e.g., if no GPE block 1 exists) */
-
- if (!GpeBlock)
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- /*
- * Runtime option: Should wake GPEs be enabled at runtime? The default
- * is no, they should only be enabled just as the machine goes to sleep.
- */
- if (AcpiGbl_LeaveWakeGpesDisabled)
- {
- /*
- * Differentiate runtime vs wake GPEs, via the _PRW control methods.
- * Each GPE that has one or more _PRWs that reference it is by
- * definition a wake GPE and will not be enabled while the machine
- * is running.
- */
- GpeInfo.GpeBlock = GpeBlock;
- GpeInfo.GpeDevice = GpeDevice;
-
- Status = AcpiNsWalkNamespace (ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT,
- ACPI_UINT32_MAX, ACPI_NS_WALK_UNLOCK,
- AcpiEvMatchPrwAndGpe, &GpeInfo, NULL);
- }
-
- /*
- * Enable all GPEs in this block that have these attributes:
- * 1) are "runtime" or "run/wake" GPEs, and
- * 2) have a corresponding _Lxx or _Exx method
- *
- * Any other GPEs within this block must be enabled via the AcpiEnableGpe()
- * external interface.
- */
- WakeGpeCount = 0;
- GpeEnabledCount = 0;
-
- for (i = 0; i < GpeBlock->RegisterCount; i++)
- {
- for (j = 0; j < 8; j++)
- {
- /* Get the info block for this particular GPE */
-
- GpeEventInfo = &GpeBlock->EventInfo[(i * ACPI_GPE_REGISTER_WIDTH) + j];
-
- if (((GpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK) == ACPI_GPE_DISPATCH_METHOD) &&
- (GpeEventInfo->Flags & ACPI_GPE_TYPE_RUNTIME))
- {
- GpeEnabledCount++;
- }
-
- if (GpeEventInfo->Flags & ACPI_GPE_TYPE_WAKE)
- {
- WakeGpeCount++;
- }
- }
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INIT,
- "Found %u Wake, Enabled %u Runtime GPEs in this block\n",
- WakeGpeCount, GpeEnabledCount));
-
- /* Enable all valid runtime GPEs found above */
-
- Status = AcpiHwEnableRuntimeGpeBlock (NULL, GpeBlock);
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR ((AE_INFO, "Could not enable GPEs in GpeBlock %p",
- GpeBlock));
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvGpeInitialize
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Initialize the GPE data structures
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvGpeInitialize (
- void)
-{
- UINT32 RegisterCount0 = 0;
- UINT32 RegisterCount1 = 0;
- UINT32 GpeNumberMax = 0;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (EvGpeInitialize);
-
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * Initialize the GPE Block(s) defined in the FADT
- *
- * Why the GPE register block lengths are divided by 2: From the ACPI Spec,
- * section "General-Purpose Event Registers", we have:
- *
- * "Each register block contains two registers of equal length
- * GPEx_STS and GPEx_EN (where x is 0 or 1). The length of the
- * GPE0_STS and GPE0_EN registers is equal to half the GPE0_LEN
- * The length of the GPE1_STS and GPE1_EN registers is equal to
- * half the GPE1_LEN. If a generic register block is not supported
- * then its respective block pointer and block length values in the
- * FADT table contain zeros. The GPE0_LEN and GPE1_LEN do not need
- * to be the same size."
- */
-
- /*
- * Determine the maximum GPE number for this machine.
- *
- * Note: both GPE0 and GPE1 are optional, and either can exist without
- * the other.
- *
- * If EITHER the register length OR the block address are zero, then that
- * particular block is not supported.
- */
- if (AcpiGbl_FADT.Gpe0BlockLength &&
- AcpiGbl_FADT.XGpe0Block.Address)
- {
- /* GPE block 0 exists (has both length and address > 0) */
-
- RegisterCount0 = (UINT16) (AcpiGbl_FADT.Gpe0BlockLength / 2);
-
- GpeNumberMax = (RegisterCount0 * ACPI_GPE_REGISTER_WIDTH) - 1;
-
- /* Install GPE Block 0 */
-
- Status = AcpiEvCreateGpeBlock (AcpiGbl_FadtGpeDevice,
- &AcpiGbl_FADT.XGpe0Block, RegisterCount0, 0,
- AcpiGbl_FADT.SciInterrupt, &AcpiGbl_GpeFadtBlocks[0]);
-
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Could not create GPE Block 0"));
- }
- }
-
- if (AcpiGbl_FADT.Gpe1BlockLength &&
- AcpiGbl_FADT.XGpe1Block.Address)
- {
- /* GPE block 1 exists (has both length and address > 0) */
-
- RegisterCount1 = (UINT16) (AcpiGbl_FADT.Gpe1BlockLength / 2);
-
- /* Check for GPE0/GPE1 overlap (if both banks exist) */
-
- if ((RegisterCount0) &&
- (GpeNumberMax >= AcpiGbl_FADT.Gpe1Base))
- {
- ACPI_ERROR ((AE_INFO,
- "GPE0 block (GPE 0 to %d) overlaps the GPE1 block (GPE %d to %d) - Ignoring GPE1",
- GpeNumberMax, AcpiGbl_FADT.Gpe1Base,
- AcpiGbl_FADT.Gpe1Base +
- ((RegisterCount1 * ACPI_GPE_REGISTER_WIDTH) - 1)));
-
- /* Ignore GPE1 block by setting the register count to zero */
-
- RegisterCount1 = 0;
- }
- else
- {
- /* Install GPE Block 1 */
-
- Status = AcpiEvCreateGpeBlock (AcpiGbl_FadtGpeDevice,
- &AcpiGbl_FADT.XGpe1Block, RegisterCount1,
- AcpiGbl_FADT.Gpe1Base,
- AcpiGbl_FADT.SciInterrupt, &AcpiGbl_GpeFadtBlocks[1]);
-
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Could not create GPE Block 1"));
- }
-
- /*
- * GPE0 and GPE1 do not have to be contiguous in the GPE number
- * space. However, GPE0 always starts at GPE number zero.
- */
- GpeNumberMax = AcpiGbl_FADT.Gpe1Base +
- ((RegisterCount1 * ACPI_GPE_REGISTER_WIDTH) - 1);
- }
- }
-
- /* Exit if there are no GPE registers */
-
- if ((RegisterCount0 + RegisterCount1) == 0)
- {
- /* GPEs are not required by ACPI, this is OK */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INIT,
- "There are no GPE blocks defined in the FADT\n"));
- Status = AE_OK;
- goto Cleanup;
- }
-
- /* Check for Max GPE number out-of-range */
-
- if (GpeNumberMax > ACPI_GPE_MAX)
- {
- ACPI_ERROR ((AE_INFO,
- "Maximum GPE number from FADT is too large: 0x%X",
- GpeNumberMax));
- Status = AE_BAD_VALUE;
- goto Cleanup;
- }
-
-Cleanup:
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- return_ACPI_STATUS (AE_OK);
-}
-
-
diff --git a/sys/contrib/dev/acpica/evmisc.c b/sys/contrib/dev/acpica/evmisc.c
deleted file mode 100644
index 7000543..0000000
--- a/sys/contrib/dev/acpica/evmisc.c
+++ /dev/null
@@ -1,763 +0,0 @@
-/******************************************************************************
- *
- * Module Name: evmisc - Miscellaneous event manager support functions
- * $Revision: 1.103 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acevents.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acinterp.h>
-
-#define _COMPONENT ACPI_EVENTS
- ACPI_MODULE_NAME ("evmisc")
-
-
-/* Names for Notify() values, used for debug output */
-
-#ifdef ACPI_DEBUG_OUTPUT
-static const char *AcpiNotifyValueNames[] =
-{
- "Bus Check",
- "Device Check",
- "Device Wake",
- "Eject Request",
- "Device Check Light",
- "Frequency Mismatch",
- "Bus Mode Mismatch",
- "Power Fault"
-};
-#endif
-
-/* Pointer to FACS needed for the Global Lock */
-
-static ACPI_TABLE_FACS *Facs = NULL;
-
-/* Local prototypes */
-
-static void ACPI_SYSTEM_XFACE
-AcpiEvNotifyDispatch (
- void *Context);
-
-static UINT32
-AcpiEvGlobalLockHandler (
- void *Context);
-
-static ACPI_STATUS
-AcpiEvRemoveGlobalLockHandler (
- void);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvIsNotifyObject
- *
- * PARAMETERS: Node - Node to check
- *
- * RETURN: TRUE if notifies allowed on this object
- *
- * DESCRIPTION: Check type of node for a object that supports notifies.
- *
- * TBD: This could be replaced by a flag bit in the node.
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiEvIsNotifyObject (
- ACPI_NAMESPACE_NODE *Node)
-{
- switch (Node->Type)
- {
- case ACPI_TYPE_DEVICE:
- case ACPI_TYPE_PROCESSOR:
- case ACPI_TYPE_POWER:
- case ACPI_TYPE_THERMAL:
- /*
- * These are the ONLY objects that can receive ACPI notifications
- */
- return (TRUE);
-
- default:
- return (FALSE);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvQueueNotifyRequest
- *
- * PARAMETERS: Node - NS node for the notified object
- * NotifyValue - Value from the Notify() request
- *
- * RETURN: Status
- *
- * DESCRIPTION: Dispatch a device notification event to a previously
- * installed handler.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvQueueNotifyRequest (
- ACPI_NAMESPACE_NODE *Node,
- UINT32 NotifyValue)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_OPERAND_OBJECT *HandlerObj = NULL;
- ACPI_GENERIC_STATE *NotifyInfo;
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_NAME (EvQueueNotifyRequest);
-
-
- /*
- * For value 3 (Ejection Request), some device method may need to be run.
- * For value 2 (Device Wake) if _PRW exists, the _PS0 method may need
- * to be run.
- * For value 0x80 (Status Change) on the power button or sleep button,
- * initiate soft-off or sleep operation?
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "Dispatching Notify(%X) on node %p\n", NotifyValue, Node));
-
- if (NotifyValue <= 7)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Notify value: %s\n",
- AcpiNotifyValueNames[NotifyValue]));
- }
- else
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "Notify value: 0x%2.2X **Device Specific**\n",
- NotifyValue));
- }
-
- /* Get the notify object attached to the NS Node */
-
- ObjDesc = AcpiNsGetAttachedObject (Node);
- if (ObjDesc)
- {
- /* We have the notify object, Get the right handler */
-
- switch (Node->Type)
- {
- case ACPI_TYPE_DEVICE:
- case ACPI_TYPE_THERMAL:
- case ACPI_TYPE_PROCESSOR:
- case ACPI_TYPE_POWER:
-
- if (NotifyValue <= ACPI_MAX_SYS_NOTIFY)
- {
- HandlerObj = ObjDesc->CommonNotify.SystemNotify;
- }
- else
- {
- HandlerObj = ObjDesc->CommonNotify.DeviceNotify;
- }
- break;
-
- default:
- /* All other types are not supported */
- return (AE_TYPE);
- }
- }
-
- /* If there is any handler to run, schedule the dispatcher */
-
- if ((AcpiGbl_SystemNotify.Handler && (NotifyValue <= ACPI_MAX_SYS_NOTIFY)) ||
- (AcpiGbl_DeviceNotify.Handler && (NotifyValue > ACPI_MAX_SYS_NOTIFY)) ||
- HandlerObj)
- {
- NotifyInfo = AcpiUtCreateGenericState ();
- if (!NotifyInfo)
- {
- return (AE_NO_MEMORY);
- }
-
- NotifyInfo->Common.DescriptorType = ACPI_DESC_TYPE_STATE_NOTIFY;
- NotifyInfo->Notify.Node = Node;
- NotifyInfo->Notify.Value = (UINT16) NotifyValue;
- NotifyInfo->Notify.HandlerObj = HandlerObj;
-
- Status = AcpiOsExecute (
- OSL_NOTIFY_HANDLER, AcpiEvNotifyDispatch, NotifyInfo);
- if (ACPI_FAILURE (Status))
- {
- AcpiUtDeleteGenericState (NotifyInfo);
- }
- }
-
- if (!HandlerObj)
- {
- /*
- * There is no per-device notify handler for this device.
- * This may or may not be a problem.
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "No notify handler for Notify(%4.4s, %X) node %p\n",
- AcpiUtGetNodeName (Node), NotifyValue, Node));
- }
-
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvNotifyDispatch
- *
- * PARAMETERS: Context - To be passed to the notify handler
- *
- * RETURN: None.
- *
- * DESCRIPTION: Dispatch a device notification event to a previously
- * installed handler.
- *
- ******************************************************************************/
-
-static void ACPI_SYSTEM_XFACE
-AcpiEvNotifyDispatch (
- void *Context)
-{
- ACPI_GENERIC_STATE *NotifyInfo = (ACPI_GENERIC_STATE *) Context;
- ACPI_NOTIFY_HANDLER GlobalHandler = NULL;
- void *GlobalContext = NULL;
- ACPI_OPERAND_OBJECT *HandlerObj;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /*
- * We will invoke a global notify handler if installed.
- * This is done _before_ we invoke the per-device handler attached
- * to the device.
- */
- if (NotifyInfo->Notify.Value <= ACPI_MAX_SYS_NOTIFY)
- {
- /* Global system notification handler */
-
- if (AcpiGbl_SystemNotify.Handler)
- {
- GlobalHandler = AcpiGbl_SystemNotify.Handler;
- GlobalContext = AcpiGbl_SystemNotify.Context;
- }
- }
- else
- {
- /* Global driver notification handler */
-
- if (AcpiGbl_DeviceNotify.Handler)
- {
- GlobalHandler = AcpiGbl_DeviceNotify.Handler;
- GlobalContext = AcpiGbl_DeviceNotify.Context;
- }
- }
-
- /* Invoke the system handler first, if present */
-
- if (GlobalHandler)
- {
- GlobalHandler (NotifyInfo->Notify.Node, NotifyInfo->Notify.Value,
- GlobalContext);
- }
-
- /* Now invoke the per-device handler, if present */
-
- HandlerObj = NotifyInfo->Notify.HandlerObj;
- if (HandlerObj)
- {
- HandlerObj->Notify.Handler (NotifyInfo->Notify.Node,
- NotifyInfo->Notify.Value,
- HandlerObj->Notify.Context);
- }
-
- /* All done with the info object */
-
- AcpiUtDeleteGenericState (NotifyInfo);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvGlobalLockHandler
- *
- * PARAMETERS: Context - From thread interface, not used
- *
- * RETURN: ACPI_INTERRUPT_HANDLED
- *
- * DESCRIPTION: Invoked directly from the SCI handler when a global lock
- * release interrupt occurs. Attempt to acquire the global lock,
- * if successful, signal the thread waiting for the lock.
- *
- * NOTE: Assumes that the semaphore can be signaled from interrupt level. If
- * this is not possible for some reason, a separate thread will have to be
- * scheduled to do this.
- *
- ******************************************************************************/
-
-static UINT32
-AcpiEvGlobalLockHandler (
- void *Context)
-{
- BOOLEAN Acquired = FALSE;
- ACPI_STATUS Status;
-
-
- /*
- * Attempt to get the lock.
- *
- * If we don't get it now, it will be marked pending and we will
- * take another interrupt when it becomes free.
- */
- ACPI_ACQUIRE_GLOBAL_LOCK (Facs, Acquired);
- if (Acquired)
- {
- /* Got the lock, now wake the thread waiting for it */
-
- AcpiGbl_GlobalLockAcquired = TRUE;
-
- /* Send a unit to the semaphore */
-
- Status = AcpiOsSignalSemaphore (AcpiGbl_GlobalLockSemaphore, 1);
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR ((AE_INFO, "Could not signal Global Lock semaphore"));
- }
- }
-
- return (ACPI_INTERRUPT_HANDLED);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvInitGlobalLockHandler
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Install a handler for the global lock release event
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvInitGlobalLockHandler (
- void)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (EvInitGlobalLockHandler);
-
-
- Status = AcpiGetTableByIndex (ACPI_TABLE_INDEX_FACS,
- ACPI_CAST_INDIRECT_PTR (ACPI_TABLE_HEADER, &Facs));
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- AcpiGbl_GlobalLockPresent = TRUE;
- Status = AcpiInstallFixedEventHandler (ACPI_EVENT_GLOBAL,
- AcpiEvGlobalLockHandler, NULL);
-
- /*
- * If the global lock does not exist on this platform, the attempt
- * to enable GBL_STATUS will fail (the GBL_ENABLE bit will not stick)
- * Map to AE_OK, but mark global lock as not present.
- * Any attempt to actually use the global lock will be flagged
- * with an error.
- */
- if (Status == AE_NO_HARDWARE_RESPONSE)
- {
- ACPI_ERROR ((AE_INFO,
- "No response from Global Lock hardware, disabling lock"));
-
- AcpiGbl_GlobalLockPresent = FALSE;
- Status = AE_OK;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvRemoveGlobalLockHandler
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Remove the handler for the Global Lock
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiEvRemoveGlobalLockHandler (
- void)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (EvRemoveGlobalLockHandler);
-
- AcpiGbl_GlobalLockPresent = FALSE;
- Status = AcpiRemoveFixedEventHandler (ACPI_EVENT_GLOBAL,
- AcpiEvGlobalLockHandler);
-
- return_ACPI_STATUS (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiEvAcquireGlobalLock
- *
- * PARAMETERS: Timeout - Max time to wait for the lock, in millisec.
- *
- * RETURN: Status
- *
- * DESCRIPTION: Attempt to gain ownership of the Global Lock.
- *
- * MUTEX: Interpreter must be locked
- *
- * Note: The original implementation allowed multiple threads to "acquire" the
- * Global Lock, and the OS would hold the lock until the last thread had
- * released it. However, this could potentially starve the BIOS out of the
- * lock, especially in the case where there is a tight handshake between the
- * Embedded Controller driver and the BIOS. Therefore, this implementation
- * allows only one thread to acquire the HW Global Lock at a time, and makes
- * the global lock appear as a standard mutex on the OS side.
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiEvAcquireGlobalLock (
- UINT16 Timeout)
-{
- ACPI_STATUS Status = AE_OK;
- BOOLEAN Acquired = FALSE;
-
-
- ACPI_FUNCTION_TRACE (EvAcquireGlobalLock);
-
-
- /*
- * Only one thread can acquire the GL at a time, the GlobalLockMutex
- * enforces this. This interface releases the interpreter if we must wait.
- */
- Status = AcpiExSystemWaitMutex (AcpiGbl_GlobalLockMutex->Mutex.OsMutex,
- Timeout);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * Update the global lock handle and check for wraparound. The handle is
- * only used for the external global lock interfaces, but it is updated
- * here to properly handle the case where a single thread may acquire the
- * lock via both the AML and the AcpiAcquireGlobalLock interfaces. The
- * handle is therefore updated on the first acquire from a given thread
- * regardless of where the acquisition request originated.
- */
- AcpiGbl_GlobalLockHandle++;
- if (AcpiGbl_GlobalLockHandle == 0)
- {
- AcpiGbl_GlobalLockHandle = 1;
- }
-
- /*
- * Make sure that a global lock actually exists. If not, just treat
- * the lock as a standard mutex.
- */
- if (!AcpiGbl_GlobalLockPresent)
- {
- AcpiGbl_GlobalLockAcquired = TRUE;
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Attempt to acquire the actual hardware lock */
-
- ACPI_ACQUIRE_GLOBAL_LOCK (Facs, Acquired);
- if (Acquired)
- {
- /* We got the lock */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Acquired hardware Global Lock\n"));
-
- AcpiGbl_GlobalLockAcquired = TRUE;
- return_ACPI_STATUS (AE_OK);
- }
-
- /*
- * Did not get the lock. The pending bit was set above, and we must now
- * wait until we get the global lock released interrupt.
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Waiting for hardware Global Lock\n"));
-
- /*
- * Wait for handshake with the global lock interrupt handler.
- * This interface releases the interpreter if we must wait.
- */
- Status = AcpiExSystemWaitSemaphore (AcpiGbl_GlobalLockSemaphore,
- ACPI_WAIT_FOREVER);
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvReleaseGlobalLock
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Releases ownership of the Global Lock.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvReleaseGlobalLock (
- void)
-{
- BOOLEAN Pending = FALSE;
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (EvReleaseGlobalLock);
-
-
- /* Lock must be already acquired */
-
- if (!AcpiGbl_GlobalLockAcquired)
- {
- ACPI_WARNING ((AE_INFO,
- "Cannot release the ACPI Global Lock, it has not been acquired"));
- return_ACPI_STATUS (AE_NOT_ACQUIRED);
- }
-
- if (AcpiGbl_GlobalLockPresent)
- {
- /* Allow any thread to release the lock */
-
- ACPI_RELEASE_GLOBAL_LOCK (Facs, Pending);
-
- /*
- * If the pending bit was set, we must write GBL_RLS to the control
- * register
- */
- if (Pending)
- {
- Status = AcpiSetRegister (
- ACPI_BITREG_GLOBAL_LOCK_RELEASE, 1);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Released hardware Global Lock\n"));
- }
-
- AcpiGbl_GlobalLockAcquired = FALSE;
-
- /* Release the local GL mutex */
-
- AcpiOsReleaseMutex (AcpiGbl_GlobalLockMutex->Mutex.OsMutex);
- return_ACPI_STATUS (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiEvTerminate
- *
- * PARAMETERS: none
- *
- * RETURN: none
- *
- * DESCRIPTION: Disable events and free memory allocated for table storage.
- *
- ******************************************************************************/
-
-void
-AcpiEvTerminate (
- void)
-{
- ACPI_NATIVE_UINT i;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (EvTerminate);
-
-
- if (AcpiGbl_EventsInitialized)
- {
- /*
- * 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 ((UINT32) i, 0);
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR ((AE_INFO,
- "Could not disable fixed event %d", (UINT32) i));
- }
- }
-
- /* Disable all GPEs in all GPE blocks */
-
- Status = AcpiEvWalkGpeList (AcpiHwDisableGpeBlock);
-
- /* Remove SCI handler */
-
- Status = AcpiEvRemoveSciHandler ();
- if (ACPI_FAILURE(Status))
- {
- ACPI_ERROR ((AE_INFO,
- "Could not remove SCI handler"));
- }
-
- Status = AcpiEvRemoveGlobalLockHandler ();
- if (ACPI_FAILURE(Status))
- {
- ACPI_ERROR ((AE_INFO,
- "Could not remove Global Lock handler"));
- }
- }
-
- /* Deallocate all handler objects installed within GPE info structs */
-
- Status = AcpiEvWalkGpeList (AcpiEvDeleteGpeHandlers);
-
- /* Return to original mode if necessary */
-
- if (AcpiGbl_OriginalMode == ACPI_SYS_MODE_LEGACY)
- {
- Status = AcpiDisable ();
- if (ACPI_FAILURE (Status))
- {
- ACPI_WARNING ((AE_INFO, "AcpiDisable failed"));
- }
- }
- return_VOID;
-}
-
diff --git a/sys/contrib/dev/acpica/evregion.c b/sys/contrib/dev/acpica/evregion.c
deleted file mode 100644
index f7071b1..0000000
--- a/sys/contrib/dev/acpica/evregion.c
+++ /dev/null
@@ -1,1232 +0,0 @@
-/******************************************************************************
- *
- * Module Name: evregion - ACPI AddressSpace (OpRegion) handler dispatch
- * $Revision: 1.168 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __EVREGION_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acevents.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acinterp.h>
-
-#define _COMPONENT ACPI_EVENTS
- ACPI_MODULE_NAME ("evregion")
-
-#define ACPI_NUM_DEFAULT_SPACES 4
-
-static UINT8 AcpiGbl_DefaultAddressSpaces[ACPI_NUM_DEFAULT_SPACES] =
-{
- ACPI_ADR_SPACE_SYSTEM_MEMORY,
- ACPI_ADR_SPACE_SYSTEM_IO,
- ACPI_ADR_SPACE_PCI_CONFIG,
- ACPI_ADR_SPACE_DATA_TABLE
-};
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiEvRegRun (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *Context,
- void **ReturnValue);
-
-static ACPI_STATUS
-AcpiEvInstallHandler (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *Context,
- void **ReturnValue);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvInstallRegionHandlers
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Installs the core subsystem default address space handlers.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvInstallRegionHandlers (
- void)
-{
- ACPI_STATUS Status;
- ACPI_NATIVE_UINT i;
-
-
- ACPI_FUNCTION_TRACE (EvInstallRegionHandlers);
-
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * All address spaces (PCI Config, EC, SMBus) are scope dependent
- * and registration must occur for a specific device.
- *
- * In the case of the system memory and IO address spaces there is currently
- * no device associated with the address space. For these we use the root.
- *
- * We install the default PCI config space handler at the root so
- * that this space is immediately available even though the we have
- * not enumerated all the PCI Root Buses yet. This is to conform
- * to the ACPI specification which states that the PCI config
- * space must be always available -- even though we are nowhere
- * near ready to find the PCI root buses at this point.
- *
- * NOTE: We ignore AE_ALREADY_EXISTS because this means that a handler
- * has already been installed (via AcpiInstallAddressSpaceHandler).
- * Similar for AE_SAME_HANDLER.
- */
- for (i = 0; i < ACPI_NUM_DEFAULT_SPACES; i++)
- {
- Status = AcpiEvInstallSpaceHandler (AcpiGbl_RootNode,
- AcpiGbl_DefaultAddressSpaces[i],
- ACPI_DEFAULT_HANDLER, NULL, NULL);
- switch (Status)
- {
- case AE_OK:
- case AE_SAME_HANDLER:
- case AE_ALREADY_EXISTS:
-
- /* These exceptions are all OK */
-
- Status = AE_OK;
- break;
-
- default:
-
- goto UnlockAndExit;
- }
- }
-
-UnlockAndExit:
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvInitializeOpRegions
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Execute _REG methods for all Operation Regions that have
- * an installed default region handler.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvInitializeOpRegions (
- void)
-{
- ACPI_STATUS Status;
- ACPI_NATIVE_UINT i;
-
-
- ACPI_FUNCTION_TRACE (EvInitializeOpRegions);
-
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * Run the _REG methods for OpRegions in each default address space
- */
- for (i = 0; i < ACPI_NUM_DEFAULT_SPACES; i++)
- {
- /* TBD: Make sure handler is the DEFAULT handler, otherwise
- * _REG will have already been run.
- */
- Status = AcpiEvExecuteRegMethods (AcpiGbl_RootNode,
- AcpiGbl_DefaultAddressSpaces[i]);
- }
-
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvExecuteRegMethod
- *
- * PARAMETERS: RegionObj - Region object
- * Function - Passed to _REG: On (1) or Off (0)
- *
- * RETURN: Status
- *
- * DESCRIPTION: Execute _REG method for a region
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvExecuteRegMethod (
- ACPI_OPERAND_OBJECT *RegionObj,
- UINT32 Function)
-{
- ACPI_EVALUATE_INFO *Info;
- ACPI_OPERAND_OBJECT *Args[3];
- ACPI_OPERAND_OBJECT *RegionObj2;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (EvExecuteRegMethod);
-
-
- RegionObj2 = AcpiNsGetSecondaryObject (RegionObj);
- if (!RegionObj2)
- {
- return_ACPI_STATUS (AE_NOT_EXIST);
- }
-
- if (RegionObj2->Extra.Method_REG == NULL)
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Allocate and initialize the evaluation information block */
-
- Info = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_EVALUATE_INFO));
- if (!Info)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- Info->PrefixNode = RegionObj2->Extra.Method_REG;
- Info->Pathname = NULL;
- Info->Parameters = Args;
- Info->ParameterType = ACPI_PARAM_ARGS;
- Info->Flags = ACPI_IGNORE_RETURN_VALUE;
-
- /*
- * The _REG method has two arguments:
- *
- * Arg0 - Integer:
- * Operation region space ID Same value as RegionObj->Region.SpaceId
- *
- * Arg1 - Integer:
- * connection status 1 for connecting the handler, 0 for disconnecting
- * the handler (Passed as a parameter)
- */
- Args[0] = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
- if (!Args[0])
- {
- Status = AE_NO_MEMORY;
- goto Cleanup1;
- }
-
- Args[1] = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
- if (!Args[1])
- {
- Status = AE_NO_MEMORY;
- goto Cleanup2;
- }
-
- /* Setup the parameter objects */
-
- Args[0]->Integer.Value = RegionObj->Region.SpaceId;
- Args[1]->Integer.Value = Function;
- Args[2] = NULL;
-
- /* Execute the method, no return value */
-
- ACPI_DEBUG_EXEC (
- AcpiUtDisplayInitPathname (ACPI_TYPE_METHOD, Info->PrefixNode, NULL));
-
- Status = AcpiNsEvaluate (Info);
- AcpiUtRemoveReference (Args[1]);
-
-Cleanup2:
- AcpiUtRemoveReference (Args[0]);
-
-Cleanup1:
- ACPI_FREE (Info);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvAddressSpaceDispatch
- *
- * PARAMETERS: RegionObj - Internal region object
- * Function - Read or Write operation
- * Address - Where in the space to read or write
- * BitWidth - Field width in bits (8, 16, 32, or 64)
- * Value - Pointer to in or out value, must be
- * full 64-bit ACPI_INTEGER
- *
- * RETURN: Status
- *
- * DESCRIPTION: Dispatch an address space or operation region access to
- * a previously installed handler.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvAddressSpaceDispatch (
- ACPI_OPERAND_OBJECT *RegionObj,
- UINT32 Function,
- ACPI_PHYSICAL_ADDRESS Address,
- UINT32 BitWidth,
- ACPI_INTEGER *Value)
-{
- ACPI_STATUS Status;
- ACPI_ADR_SPACE_HANDLER Handler;
- ACPI_ADR_SPACE_SETUP RegionSetup;
- ACPI_OPERAND_OBJECT *HandlerDesc;
- ACPI_OPERAND_OBJECT *RegionObj2;
- void *RegionContext = NULL;
-
-
- ACPI_FUNCTION_TRACE (EvAddressSpaceDispatch);
-
-
- RegionObj2 = AcpiNsGetSecondaryObject (RegionObj);
- if (!RegionObj2)
- {
- return_ACPI_STATUS (AE_NOT_EXIST);
- }
-
- /* Ensure that there is a handler associated with this region */
-
- HandlerDesc = RegionObj->Region.Handler;
- if (!HandlerDesc)
- {
- ACPI_ERROR ((AE_INFO,
- "No handler for Region [%4.4s] (%p) [%s]",
- AcpiUtGetNodeName (RegionObj->Region.Node),
- RegionObj, AcpiUtGetRegionName (RegionObj->Region.SpaceId)));
-
- return_ACPI_STATUS (AE_NOT_EXIST);
- }
-
- /*
- * It may be the case that the region has never been initialized
- * Some types of regions require special init code
- */
- if (!(RegionObj->Region.Flags & AOPOBJ_SETUP_COMPLETE))
- {
- /*
- * This region has not been initialized yet, do it
- */
- RegionSetup = HandlerDesc->AddressSpace.Setup;
- if (!RegionSetup)
- {
- /* No initialization routine, exit with error */
-
- ACPI_ERROR ((AE_INFO,
- "No init routine for region(%p) [%s]",
- RegionObj, AcpiUtGetRegionName (RegionObj->Region.SpaceId)));
- return_ACPI_STATUS (AE_NOT_EXIST);
- }
-
- /*
- * We must exit the interpreter because the region
- * setup will potentially execute control methods
- * (e.g., _REG method for this region)
- */
- AcpiExRelinquishInterpreter ();
-
- Status = RegionSetup (RegionObj, ACPI_REGION_ACTIVATE,
- HandlerDesc->AddressSpace.Context, &RegionContext);
-
- /* Re-enter the interpreter */
-
- AcpiExReacquireInterpreter ();
-
- /* Check for failure of the Region Setup */
-
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "During region initialization: [%s]",
- AcpiUtGetRegionName (RegionObj->Region.SpaceId)));
- return_ACPI_STATUS (Status);
- }
-
- /*
- * Region initialization may have been completed by RegionSetup
- */
- if (!(RegionObj->Region.Flags & AOPOBJ_SETUP_COMPLETE))
- {
- RegionObj->Region.Flags |= AOPOBJ_SETUP_COMPLETE;
-
- if (RegionObj2->Extra.RegionContext)
- {
- /* The handler for this region was already installed */
-
- ACPI_FREE (RegionContext);
- }
- else
- {
- /*
- * Save the returned context for use in all accesses to
- * this particular region
- */
- RegionObj2->Extra.RegionContext = RegionContext;
- }
- }
- }
-
- /* We have everything we need, we can invoke the address space handler */
-
- Handler = HandlerDesc->AddressSpace.Handler;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
- "Handler %p (@%p) Address %8.8X%8.8X [%s]\n",
- &RegionObj->Region.Handler->AddressSpace, Handler,
- ACPI_FORMAT_UINT64 (Address),
- AcpiUtGetRegionName (RegionObj->Region.SpaceId)));
-
- if (!(HandlerDesc->AddressSpace.HandlerFlags &
- ACPI_ADDR_HANDLER_DEFAULT_INSTALLED))
- {
- /*
- * For handlers other than the default (supplied) handlers, we must
- * exit the interpreter because the handler *might* block -- we don't
- * know what it will do, so we can't hold the lock on the intepreter.
- */
- AcpiExRelinquishInterpreter();
- }
-
- /* Call the handler */
-
- Status = Handler (Function, Address, BitWidth, Value,
- HandlerDesc->AddressSpace.Context, RegionObj2->Extra.RegionContext);
-
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status, "Returned by Handler for [%s]",
- AcpiUtGetRegionName (RegionObj->Region.SpaceId)));
- }
-
- if (!(HandlerDesc->AddressSpace.HandlerFlags &
- ACPI_ADDR_HANDLER_DEFAULT_INSTALLED))
- {
- /*
- * We just returned from a non-default handler, we must re-enter the
- * interpreter
- */
- AcpiExReacquireInterpreter ();
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvDetachRegion
- *
- * PARAMETERS: RegionObj - Region Object
- * AcpiNsIsLocked - Namespace Region Already Locked?
- *
- * RETURN: None
- *
- * DESCRIPTION: Break the association between the handler and the region
- * this is a two way association.
- *
- ******************************************************************************/
-
-void
-AcpiEvDetachRegion(
- ACPI_OPERAND_OBJECT *RegionObj,
- BOOLEAN AcpiNsIsLocked)
-{
- ACPI_OPERAND_OBJECT *HandlerObj;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_OPERAND_OBJECT **LastObjPtr;
- ACPI_ADR_SPACE_SETUP RegionSetup;
- void **RegionContext;
- ACPI_OPERAND_OBJECT *RegionObj2;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (EvDetachRegion);
-
-
- RegionObj2 = AcpiNsGetSecondaryObject (RegionObj);
- if (!RegionObj2)
- {
- return_VOID;
- }
- RegionContext = &RegionObj2->Extra.RegionContext;
-
- /* Get the address handler from the region object */
-
- HandlerObj = RegionObj->Region.Handler;
- if (!HandlerObj)
- {
- /* This region has no handler, all done */
-
- return_VOID;
- }
-
- /* Find this region in the handler's list */
-
- ObjDesc = HandlerObj->AddressSpace.RegionList;
- LastObjPtr = &HandlerObj->AddressSpace.RegionList;
-
- while (ObjDesc)
- {
- /* Is this the correct Region? */
-
- if (ObjDesc == RegionObj)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
- "Removing Region %p from address handler %p\n",
- RegionObj, HandlerObj));
-
- /* This is it, remove it from the handler's list */
-
- *LastObjPtr = ObjDesc->Region.Next;
- ObjDesc->Region.Next = NULL; /* Must clear field */
-
- if (AcpiNsIsLocked)
- {
- Status = AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return_VOID;
- }
- }
-
- /* Now stop region accesses by executing the _REG method */
-
- Status = AcpiEvExecuteRegMethod (RegionObj, 0);
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status, "from region _REG, [%s]",
- AcpiUtGetRegionName (RegionObj->Region.SpaceId)));
- }
-
- if (AcpiNsIsLocked)
- {
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return_VOID;
- }
- }
-
- /*
- * If the region has been activated, call the setup handler
- * with the deactivate notification
- */
- if (RegionObj->Region.Flags & AOPOBJ_SETUP_COMPLETE)
- {
- RegionSetup = HandlerObj->AddressSpace.Setup;
- Status = RegionSetup (RegionObj, ACPI_REGION_DEACTIVATE,
- HandlerObj->AddressSpace.Context, RegionContext);
-
- /* Init routine may fail, Just ignore errors */
-
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "from region handler - deactivate, [%s]",
- AcpiUtGetRegionName (RegionObj->Region.SpaceId)));
- }
-
- RegionObj->Region.Flags &= ~(AOPOBJ_SETUP_COMPLETE);
- }
-
- /*
- * Remove handler reference in the region
- *
- * NOTE: this doesn't mean that the region goes away, the region
- * is just inaccessible as indicated to the _REG method
- *
- * If the region is on the handler's list, this must be the
- * region's handler
- */
- RegionObj->Region.Handler = NULL;
- AcpiUtRemoveReference (HandlerObj);
-
- return_VOID;
- }
-
- /* Walk the linked list of handlers */
-
- LastObjPtr = &ObjDesc->Region.Next;
- ObjDesc = ObjDesc->Region.Next;
- }
-
- /* If we get here, the region was not in the handler's region list */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
- "Cannot remove region %p from address handler %p\n",
- RegionObj, HandlerObj));
-
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvAttachRegion
- *
- * PARAMETERS: HandlerObj - Handler Object
- * RegionObj - Region Object
- * AcpiNsIsLocked - Namespace Region Already Locked?
- *
- * RETURN: None
- *
- * DESCRIPTION: Create the association between the handler and the region
- * this is a two way association.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvAttachRegion (
- ACPI_OPERAND_OBJECT *HandlerObj,
- ACPI_OPERAND_OBJECT *RegionObj,
- BOOLEAN AcpiNsIsLocked)
-{
-
- ACPI_FUNCTION_TRACE (EvAttachRegion);
-
-
- ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
- "Adding Region [%4.4s] %p to address handler %p [%s]\n",
- AcpiUtGetNodeName (RegionObj->Region.Node),
- RegionObj, HandlerObj,
- AcpiUtGetRegionName (RegionObj->Region.SpaceId)));
-
- /* Link this region to the front of the handler's list */
-
- RegionObj->Region.Next = HandlerObj->AddressSpace.RegionList;
- HandlerObj->AddressSpace.RegionList = RegionObj;
-
- /* Install the region's handler */
-
- if (RegionObj->Region.Handler)
- {
- return_ACPI_STATUS (AE_ALREADY_EXISTS);
- }
-
- RegionObj->Region.Handler = HandlerObj;
- AcpiUtAddReference (HandlerObj);
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvInstallHandler
- *
- * PARAMETERS: WalkNamespace callback
- *
- * DESCRIPTION: This routine installs an address handler into objects that are
- * of type Region or Device.
- *
- * If the Object is a Device, and the device has a handler of
- * the same type then the search is terminated in that branch.
- *
- * This is because the existing handler is closer in proximity
- * to any more regions than the one we are trying to install.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiEvInstallHandler (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *Context,
- void **ReturnValue)
-{
- ACPI_OPERAND_OBJECT *HandlerObj;
- ACPI_OPERAND_OBJECT *NextHandlerObj;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_NAME (EvInstallHandler);
-
-
- HandlerObj = (ACPI_OPERAND_OBJECT *) Context;
-
- /* Parameter validation */
-
- if (!HandlerObj)
- {
- return (AE_OK);
- }
-
- /* Convert and validate the device handle */
-
- Node = AcpiNsMapHandleToNode (ObjHandle);
- if (!Node)
- {
- return (AE_BAD_PARAMETER);
- }
-
- /*
- * We only care about regions.and objects
- * that are allowed to have address space handlers
- */
- if ((Node->Type != ACPI_TYPE_DEVICE) &&
- (Node->Type != ACPI_TYPE_REGION) &&
- (Node != AcpiGbl_RootNode))
- {
- return (AE_OK);
- }
-
- /* Check for an existing internal object */
-
- ObjDesc = AcpiNsGetAttachedObject (Node);
- if (!ObjDesc)
- {
- /* No object, just exit */
-
- return (AE_OK);
- }
-
- /* Devices are handled different than regions */
-
- if (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_DEVICE)
- {
- /* Check if this Device already has a handler for this address space */
-
- NextHandlerObj = ObjDesc->Device.Handler;
- while (NextHandlerObj)
- {
- /* Found a handler, is it for the same address space? */
-
- if (NextHandlerObj->AddressSpace.SpaceId == HandlerObj->AddressSpace.SpaceId)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
- "Found handler for region [%s] in device %p(%p) handler %p\n",
- AcpiUtGetRegionName (HandlerObj->AddressSpace.SpaceId),
- ObjDesc, NextHandlerObj, HandlerObj));
-
- /*
- * Since the object we found it on was a device, then it
- * means that someone has already installed a handler for
- * the branch of the namespace from this device on. Just
- * bail out telling the walk routine to not traverse this
- * branch. This preserves the scoping rule for handlers.
- */
- return (AE_CTRL_DEPTH);
- }
-
- /* Walk the linked list of handlers attached to this device */
-
- NextHandlerObj = NextHandlerObj->AddressSpace.Next;
- }
-
- /*
- * As long as the device didn't have a handler for this
- * space we don't care about it. We just ignore it and
- * proceed.
- */
- return (AE_OK);
- }
-
- /* Object is a Region */
-
- if (ObjDesc->Region.SpaceId != HandlerObj->AddressSpace.SpaceId)
- {
- /*
- * This region is for a different address space
- * -- just ignore it
- */
- return (AE_OK);
- }
-
- /*
- * Now we have a region and it is for the handler's address
- * space type.
- *
- * First disconnect region for any previous handler (if any)
- */
- AcpiEvDetachRegion (ObjDesc, FALSE);
-
- /* Connect the region to the new handler */
-
- Status = AcpiEvAttachRegion (HandlerObj, ObjDesc, FALSE);
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvInstallSpaceHandler
- *
- * PARAMETERS: Node - Namespace node for the device
- * SpaceId - The address space ID
- * Handler - Address of the handler
- * Setup - Address of the setup function
- * Context - Value passed to the handler on each access
- *
- * RETURN: Status
- *
- * DESCRIPTION: Install a handler for all OpRegions of a given SpaceId.
- * Assumes namespace is locked
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvInstallSpaceHandler (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_ADR_SPACE_TYPE SpaceId,
- ACPI_ADR_SPACE_HANDLER Handler,
- ACPI_ADR_SPACE_SETUP Setup,
- void *Context)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_OPERAND_OBJECT *HandlerObj;
- ACPI_STATUS Status;
- ACPI_OBJECT_TYPE Type;
- UINT8 Flags = 0;
-
-
- ACPI_FUNCTION_TRACE (EvInstallSpaceHandler);
-
-
- /*
- * This registration is valid for only the types below
- * and the root. This is where the default handlers
- * get placed.
- */
- if ((Node->Type != ACPI_TYPE_DEVICE) &&
- (Node->Type != ACPI_TYPE_PROCESSOR) &&
- (Node->Type != ACPI_TYPE_THERMAL) &&
- (Node != AcpiGbl_RootNode))
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
-
- if (Handler == ACPI_DEFAULT_HANDLER)
- {
- Flags = ACPI_ADDR_HANDLER_DEFAULT_INSTALLED;
-
- switch (SpaceId)
- {
- case ACPI_ADR_SPACE_SYSTEM_MEMORY:
- Handler = AcpiExSystemMemorySpaceHandler;
- Setup = AcpiEvSystemMemoryRegionSetup;
- break;
-
- case ACPI_ADR_SPACE_SYSTEM_IO:
- Handler = AcpiExSystemIoSpaceHandler;
- Setup = AcpiEvIoSpaceRegionSetup;
- break;
-
- case ACPI_ADR_SPACE_PCI_CONFIG:
- Handler = AcpiExPciConfigSpaceHandler;
- Setup = AcpiEvPciConfigRegionSetup;
- break;
-
- case ACPI_ADR_SPACE_CMOS:
- Handler = AcpiExCmosSpaceHandler;
- Setup = AcpiEvCmosRegionSetup;
- break;
-
- case ACPI_ADR_SPACE_PCI_BAR_TARGET:
- Handler = AcpiExPciBarSpaceHandler;
- Setup = AcpiEvPciBarRegionSetup;
- break;
-
- case ACPI_ADR_SPACE_DATA_TABLE:
- Handler = AcpiExDataTableSpaceHandler;
- Setup = NULL;
- break;
-
- default:
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
- }
-
- /* If the caller hasn't specified a setup routine, use the default */
-
- if (!Setup)
- {
- Setup = AcpiEvDefaultRegionSetup;
- }
-
- /* Check for an existing internal object */
-
- ObjDesc = AcpiNsGetAttachedObject (Node);
- if (ObjDesc)
- {
- /*
- * The attached device object already exists.
- * Make sure the handler is not already installed.
- */
- HandlerObj = ObjDesc->Device.Handler;
-
- /* Walk the handler list for this device */
-
- while (HandlerObj)
- {
- /* Same SpaceId indicates a handler already installed */
-
- if (HandlerObj->AddressSpace.SpaceId == SpaceId)
- {
- if (HandlerObj->AddressSpace.Handler == Handler)
- {
- /*
- * It is (relatively) OK to attempt to install the SAME
- * handler twice. This can easily happen
- * with PCI_Config space.
- */
- Status = AE_SAME_HANDLER;
- goto UnlockAndExit;
- }
- else
- {
- /* A handler is already installed */
-
- Status = AE_ALREADY_EXISTS;
- }
- goto UnlockAndExit;
- }
-
- /* Walk the linked list of handlers */
-
- HandlerObj = HandlerObj->AddressSpace.Next;
- }
- }
- else
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
- "Creating object on Device %p while installing handler\n", Node));
-
- /* ObjDesc does not exist, create one */
-
- if (Node->Type == ACPI_TYPE_ANY)
- {
- Type = ACPI_TYPE_DEVICE;
- }
- else
- {
- Type = Node->Type;
- }
-
- ObjDesc = AcpiUtCreateInternalObject (Type);
- if (!ObjDesc)
- {
- Status = AE_NO_MEMORY;
- goto UnlockAndExit;
- }
-
- /* Init new descriptor */
-
- ObjDesc->Common.Type = (UINT8) Type;
-
- /* Attach the new object to the Node */
-
- Status = AcpiNsAttachObject (Node, ObjDesc, Type);
-
- /* Remove local reference to the object */
-
- AcpiUtRemoveReference (ObjDesc);
-
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
- "Installing address handler for region %s(%X) on Device %4.4s %p(%p)\n",
- AcpiUtGetRegionName (SpaceId), SpaceId,
- AcpiUtGetNodeName (Node), Node, ObjDesc));
-
- /*
- * Install the handler
- *
- * At this point there is no existing handler.
- * Just allocate the object for the handler and link it
- * into the list.
- */
- HandlerObj = AcpiUtCreateInternalObject (ACPI_TYPE_LOCAL_ADDRESS_HANDLER);
- if (!HandlerObj)
- {
- Status = AE_NO_MEMORY;
- goto UnlockAndExit;
- }
-
- /* Init handler obj */
-
- HandlerObj->AddressSpace.SpaceId = (UINT8) SpaceId;
- HandlerObj->AddressSpace.HandlerFlags = Flags;
- HandlerObj->AddressSpace.RegionList = NULL;
- HandlerObj->AddressSpace.Node = Node;
- HandlerObj->AddressSpace.Handler = Handler;
- HandlerObj->AddressSpace.Context = Context;
- HandlerObj->AddressSpace.Setup = Setup;
-
- /* Install at head of Device.AddressSpace list */
-
- HandlerObj->AddressSpace.Next = ObjDesc->Device.Handler;
-
- /*
- * The Device object is the first reference on the HandlerObj.
- * Each region that uses the handler adds a reference.
- */
- ObjDesc->Device.Handler = HandlerObj;
-
- /*
- * Walk the namespace finding all of the regions this
- * handler will manage.
- *
- * Start at the device and search the branch toward
- * the leaf nodes until either the leaf is encountered or
- * a device is detected that has an address handler of the
- * same type.
- *
- * In either case, back up and search down the remainder
- * of the branch
- */
- Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, Node, ACPI_UINT32_MAX,
- ACPI_NS_WALK_UNLOCK, AcpiEvInstallHandler,
- HandlerObj, NULL);
-
-UnlockAndExit:
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvExecuteRegMethods
- *
- * PARAMETERS: Node - Namespace node for the device
- * SpaceId - The address space ID
- *
- * RETURN: Status
- *
- * DESCRIPTION: Run all _REG methods for the input Space ID;
- * Note: assumes namespace is locked, or system init time.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvExecuteRegMethods (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_ADR_SPACE_TYPE SpaceId)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (EvExecuteRegMethods);
-
-
- /*
- * Run all _REG methods for all Operation Regions for this
- * space ID. This is a separate walk in order to handle any
- * interdependencies between regions and _REG methods. (i.e. handlers
- * must be installed for all regions of this Space ID before we
- * can run any _REG methods)
- */
- Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, Node, ACPI_UINT32_MAX,
- ACPI_NS_WALK_UNLOCK, AcpiEvRegRun,
- &SpaceId, NULL);
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvRegRun
- *
- * PARAMETERS: WalkNamespace callback
- *
- * DESCRIPTION: Run _REG method for region objects of the requested spaceID
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiEvRegRun (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *Context,
- void **ReturnValue)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_ADR_SPACE_TYPE SpaceId;
- ACPI_STATUS Status;
-
-
- SpaceId = *ACPI_CAST_PTR (ACPI_ADR_SPACE_TYPE, Context);
-
- /* Convert and validate the device handle */
-
- Node = AcpiNsMapHandleToNode (ObjHandle);
- if (!Node)
- {
- return (AE_BAD_PARAMETER);
- }
-
- /*
- * We only care about regions.and objects
- * that are allowed to have address space handlers
- */
- if ((Node->Type != ACPI_TYPE_REGION) &&
- (Node != AcpiGbl_RootNode))
- {
- return (AE_OK);
- }
-
- /* Check for an existing internal object */
-
- ObjDesc = AcpiNsGetAttachedObject (Node);
- if (!ObjDesc)
- {
- /* No object, just exit */
-
- return (AE_OK);
- }
-
- /* Object is a Region */
-
- if (ObjDesc->Region.SpaceId != SpaceId)
- {
- /*
- * This region is for a different address space
- * -- just ignore it
- */
- return (AE_OK);
- }
-
- Status = AcpiEvExecuteRegMethod (ObjDesc, 1);
- return (Status);
-}
-
diff --git a/sys/contrib/dev/acpica/evrgnini.c b/sys/contrib/dev/acpica/evrgnini.c
deleted file mode 100644
index 615c397..0000000
--- a/sys/contrib/dev/acpica/evrgnini.c
+++ /dev/null
@@ -1,821 +0,0 @@
-/******************************************************************************
- *
- * Module Name: evrgnini- ACPI AddressSpace (OpRegion) init
- * $Revision: 1.88 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __EVRGNINI_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acevents.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-#define _COMPONENT ACPI_EVENTS
- ACPI_MODULE_NAME ("evrgnini")
-
-/* Local prototypes */
-
-static BOOLEAN
-AcpiEvMatchPciRootBridge (
- char *Id);
-
-static BOOLEAN
-AcpiEvIsPciRootBridge (
- ACPI_NAMESPACE_NODE *Node);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvSystemMemoryRegionSetup
- *
- * PARAMETERS: Handle - Region we are interested in
- * Function - Start or stop
- * HandlerContext - Address space handler context
- * RegionContext - Region specific context
- *
- * RETURN: Status
- *
- * DESCRIPTION: Setup a SystemMemory operation region
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvSystemMemoryRegionSetup (
- ACPI_HANDLE Handle,
- UINT32 Function,
- void *HandlerContext,
- void **RegionContext)
-{
- ACPI_OPERAND_OBJECT *RegionDesc = (ACPI_OPERAND_OBJECT *) Handle;
- ACPI_MEM_SPACE_CONTEXT *LocalRegionContext;
-
-
- ACPI_FUNCTION_TRACE (EvSystemMemoryRegionSetup);
-
-
- if (Function == ACPI_REGION_DEACTIVATE)
- {
- if (*RegionContext)
- {
- LocalRegionContext = (ACPI_MEM_SPACE_CONTEXT *) *RegionContext;
-
- /* Delete a cached mapping if present */
-
- if (LocalRegionContext->MappedLength)
- {
- AcpiOsUnmapMemory (LocalRegionContext->MappedLogicalAddress,
- LocalRegionContext->MappedLength);
- }
- ACPI_FREE (LocalRegionContext);
- *RegionContext = NULL;
- }
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Create a new context */
-
- LocalRegionContext = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_MEM_SPACE_CONTEXT));
- if (!(LocalRegionContext))
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* Save the region length and address for use in the handler */
-
- LocalRegionContext->Length = RegionDesc->Region.Length;
- LocalRegionContext->Address = RegionDesc->Region.Address;
-
- *RegionContext = LocalRegionContext;
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvIoSpaceRegionSetup
- *
- * PARAMETERS: Handle - Region we are interested in
- * Function - Start or stop
- * HandlerContext - Address space handler context
- * RegionContext - Region specific context
- *
- * RETURN: Status
- *
- * DESCRIPTION: Setup a IO operation region
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvIoSpaceRegionSetup (
- ACPI_HANDLE Handle,
- UINT32 Function,
- void *HandlerContext,
- void **RegionContext)
-{
- ACPI_FUNCTION_TRACE (EvIoSpaceRegionSetup);
-
-
- if (Function == ACPI_REGION_DEACTIVATE)
- {
- *RegionContext = NULL;
- }
- else
- {
- *RegionContext = HandlerContext;
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvPciConfigRegionSetup
- *
- * PARAMETERS: Handle - Region we are interested in
- * Function - Start or stop
- * HandlerContext - Address space handler context
- * RegionContext - Region specific context
- *
- * RETURN: Status
- *
- * DESCRIPTION: Setup a PCI_Config operation region
- *
- * MUTEX: Assumes namespace is not locked
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvPciConfigRegionSetup (
- ACPI_HANDLE Handle,
- UINT32 Function,
- void *HandlerContext,
- void **RegionContext)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_INTEGER PciValue;
- ACPI_PCI_ID *PciId = *RegionContext;
- ACPI_OPERAND_OBJECT *HandlerObj;
- ACPI_NAMESPACE_NODE *ParentNode;
- ACPI_NAMESPACE_NODE *PciRootNode;
- ACPI_NAMESPACE_NODE *PciDeviceNode;
- ACPI_OPERAND_OBJECT *RegionObj = (ACPI_OPERAND_OBJECT *) Handle;
-
-
- ACPI_FUNCTION_TRACE (EvPciConfigRegionSetup);
-
-
- HandlerObj = RegionObj->Region.Handler;
- if (!HandlerObj)
- {
- /*
- * No installed handler. This shouldn't happen because the dispatch
- * routine checks before we get here, but we check again just in case.
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
- "Attempting to init a region %p, with no handler\n", RegionObj));
- return_ACPI_STATUS (AE_NOT_EXIST);
- }
-
- *RegionContext = NULL;
- if (Function == ACPI_REGION_DEACTIVATE)
- {
- if (PciId)
- {
- ACPI_FREE (PciId);
- }
- return_ACPI_STATUS (Status);
- }
-
- ParentNode = AcpiNsGetParentNode (RegionObj->Region.Node);
-
- /*
- * Get the _SEG and _BBN values from the device upon which the handler
- * is installed.
- *
- * We need to get the _SEG and _BBN objects relative to the PCI BUS device.
- * This is the device the handler has been registered to handle.
- */
-
- /*
- * If the AddressSpace.Node is still pointing to the root, we need
- * to scan upward for a PCI Root bridge and re-associate the OpRegion
- * handlers with that device.
- */
- if (HandlerObj->AddressSpace.Node == AcpiGbl_RootNode)
- {
- /* Start search from the parent object */
-
- PciRootNode = ParentNode;
- while (PciRootNode != AcpiGbl_RootNode)
- {
- /* Get the _HID/_CID in order to detect a RootBridge */
-
- if (AcpiEvIsPciRootBridge (PciRootNode))
- {
- /* Install a handler for this PCI root bridge */
-
- Status = AcpiInstallAddressSpaceHandler (
- (ACPI_HANDLE) PciRootNode,
- ACPI_ADR_SPACE_PCI_CONFIG,
- ACPI_DEFAULT_HANDLER, NULL, NULL);
- if (ACPI_FAILURE (Status))
- {
- if (Status == AE_SAME_HANDLER)
- {
- /*
- * It is OK if the handler is already installed on the root
- * bridge. Still need to return a context object for the
- * new PCI_Config operation region, however.
- */
- Status = AE_OK;
- }
- else
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Could not install PciConfig handler for Root Bridge %4.4s",
- AcpiUtGetNodeName (PciRootNode)));
- }
- }
- break;
- }
-
- PciRootNode = AcpiNsGetParentNode (PciRootNode);
- }
-
- /* PCI root bridge not found, use namespace root node */
- }
- else
- {
- PciRootNode = HandlerObj->AddressSpace.Node;
- }
-
- /*
- * If this region is now initialized, we are done.
- * (InstallAddressSpaceHandler could have initialized it)
- */
- if (RegionObj->Region.Flags & AOPOBJ_SETUP_COMPLETE)
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Region is still not initialized. Create a new context */
-
- PciId = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_PCI_ID));
- if (!PciId)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /*
- * For PCI_Config space access, we need the segment, bus,
- * device and function numbers. Acquire them here.
- *
- * Find the parent device object. (This allows the operation region to be
- * within a subscope under the device, such as a control method.)
- */
- PciDeviceNode = RegionObj->Region.Node;
- while (PciDeviceNode && (PciDeviceNode->Type != ACPI_TYPE_DEVICE))
- {
- PciDeviceNode = AcpiNsGetParentNode (PciDeviceNode);
- }
-
- if (!PciDeviceNode)
- {
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
-
- /*
- * Get the PCI device and function numbers from the _ADR object
- * contained in the parent's scope.
- */
- Status = AcpiUtEvaluateNumericObject (METHOD_NAME__ADR, PciDeviceNode, &PciValue);
-
- /*
- * The default is zero, and since the allocation above zeroed
- * the data, just do nothing on failure.
- */
- if (ACPI_SUCCESS (Status))
- {
- PciId->Device = ACPI_HIWORD (ACPI_LODWORD (PciValue));
- PciId->Function = ACPI_LOWORD (ACPI_LODWORD (PciValue));
- }
-
- /* The PCI segment number comes from the _SEG method */
-
- Status = AcpiUtEvaluateNumericObject (METHOD_NAME__SEG, PciRootNode, &PciValue);
- if (ACPI_SUCCESS (Status))
- {
- PciId->Segment = ACPI_LOWORD (PciValue);
- }
-
- /* The PCI bus number comes from the _BBN method */
-
- Status = AcpiUtEvaluateNumericObject (METHOD_NAME__BBN, PciRootNode, &PciValue);
- if (ACPI_SUCCESS (Status))
- {
- PciId->Bus = ACPI_LOWORD (PciValue);
- }
-
- /* Complete this device's PciId */
-
- AcpiOsDerivePciId (PciRootNode, RegionObj->Region.Node, &PciId);
-
- *RegionContext = PciId;
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvMatchPciRootBridge
- *
- * PARAMETERS: Id - The HID/CID in string format
- *
- * RETURN: TRUE if the Id is a match for a PCI/PCI-Express Root Bridge
- *
- * DESCRIPTION: Determine if the input ID is a PCI Root Bridge ID.
- *
- ******************************************************************************/
-
-static BOOLEAN
-AcpiEvMatchPciRootBridge (
- char *Id)
-{
-
- /*
- * Check if this is a PCI root.
- * ACPI 3.0+: check for a PCI Express root also.
- */
- if (!(ACPI_STRNCMP (Id,
- PCI_ROOT_HID_STRING,
- sizeof (PCI_ROOT_HID_STRING))) ||
-
- !(ACPI_STRNCMP (Id,
- PCI_EXPRESS_ROOT_HID_STRING,
- sizeof (PCI_EXPRESS_ROOT_HID_STRING))))
- {
- return (TRUE);
- }
-
- return (FALSE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvIsPciRootBridge
- *
- * PARAMETERS: Node - Device node being examined
- *
- * RETURN: TRUE if device is a PCI/PCI-Express Root Bridge
- *
- * DESCRIPTION: Determine if the input device represents a PCI Root Bridge by
- * examining the _HID and _CID for the device.
- *
- ******************************************************************************/
-
-static BOOLEAN
-AcpiEvIsPciRootBridge (
- ACPI_NAMESPACE_NODE *Node)
-{
- ACPI_STATUS Status;
- ACPI_DEVICE_ID Hid;
- ACPI_COMPATIBLE_ID_LIST *Cid;
- ACPI_NATIVE_UINT i;
-
-
- /*
- * Get the _HID and check for a PCI Root Bridge
- */
- Status = AcpiUtExecute_HID (Node, &Hid);
- if (ACPI_FAILURE (Status))
- {
- return (FALSE);
- }
-
- if (AcpiEvMatchPciRootBridge (Hid.Value))
- {
- return (TRUE);
- }
-
- /*
- * The _HID did not match.
- * Get the _CID and check for a PCI Root Bridge
- */
- Status = AcpiUtExecute_CID (Node, &Cid);
- if (ACPI_FAILURE (Status))
- {
- return (FALSE);
- }
-
- /* Check all _CIDs in the returned list */
-
- for (i = 0; i < Cid->Count; i++)
- {
- if (AcpiEvMatchPciRootBridge (Cid->Id[i].Value))
- {
- ACPI_FREE (Cid);
- return (TRUE);
- }
- }
-
- ACPI_FREE (Cid);
- return (FALSE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvPciBarRegionSetup
- *
- * PARAMETERS: Handle - Region we are interested in
- * Function - Start or stop
- * HandlerContext - Address space handler context
- * RegionContext - Region specific context
- *
- * RETURN: Status
- *
- * DESCRIPTION: Setup a PciBAR operation region
- *
- * MUTEX: Assumes namespace is not locked
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvPciBarRegionSetup (
- ACPI_HANDLE Handle,
- UINT32 Function,
- void *HandlerContext,
- void **RegionContext)
-{
- ACPI_FUNCTION_TRACE (EvPciBarRegionSetup);
-
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvCmosRegionSetup
- *
- * PARAMETERS: Handle - Region we are interested in
- * Function - Start or stop
- * HandlerContext - Address space handler context
- * RegionContext - Region specific context
- *
- * RETURN: Status
- *
- * DESCRIPTION: Setup a CMOS operation region
- *
- * MUTEX: Assumes namespace is not locked
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvCmosRegionSetup (
- ACPI_HANDLE Handle,
- UINT32 Function,
- void *HandlerContext,
- void **RegionContext)
-{
- ACPI_FUNCTION_TRACE (EvCmosRegionSetup);
-
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvDefaultRegionSetup
- *
- * PARAMETERS: Handle - Region we are interested in
- * Function - Start or stop
- * HandlerContext - Address space handler context
- * RegionContext - Region specific context
- *
- * RETURN: Status
- *
- * DESCRIPTION: Default region initialization
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvDefaultRegionSetup (
- ACPI_HANDLE Handle,
- UINT32 Function,
- void *HandlerContext,
- void **RegionContext)
-{
- ACPI_FUNCTION_TRACE (EvDefaultRegionSetup);
-
-
- if (Function == ACPI_REGION_DEACTIVATE)
- {
- *RegionContext = NULL;
- }
- else
- {
- *RegionContext = HandlerContext;
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvInitializeRegion
- *
- * PARAMETERS: RegionObj - Region we are initializing
- * AcpiNsLocked - Is namespace locked?
- *
- * RETURN: Status
- *
- * DESCRIPTION: Initializes the region, finds any _REG methods and saves them
- * for execution at a later time
- *
- * Get the appropriate address space handler for a newly
- * created region.
- *
- * This also performs address space specific initialization. For
- * example, PCI regions must have an _ADR object that contains
- * a PCI address in the scope of the definition. This address is
- * required to perform an access to PCI config space.
- *
- * MUTEX: Interpreter should be unlocked, because we may run the _REG
- * method for this region.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvInitializeRegion (
- ACPI_OPERAND_OBJECT *RegionObj,
- BOOLEAN AcpiNsLocked)
-{
- ACPI_OPERAND_OBJECT *HandlerObj;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_ADR_SPACE_TYPE SpaceId;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *MethodNode;
- ACPI_NAME *RegNamePtr = (ACPI_NAME *) METHOD_NAME__REG;
- ACPI_OPERAND_OBJECT *RegionObj2;
-
-
- ACPI_FUNCTION_TRACE_U32 (EvInitializeRegion, AcpiNsLocked);
-
-
- if (!RegionObj)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- if (RegionObj->Common.Flags & AOPOBJ_OBJECT_INITIALIZED)
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- RegionObj2 = AcpiNsGetSecondaryObject (RegionObj);
- if (!RegionObj2)
- {
- return_ACPI_STATUS (AE_NOT_EXIST);
- }
-
- Node = AcpiNsGetParentNode (RegionObj->Region.Node);
- SpaceId = RegionObj->Region.SpaceId;
-
- /* Setup defaults */
-
- RegionObj->Region.Handler = NULL;
- RegionObj2->Extra.Method_REG = NULL;
- RegionObj->Common.Flags &= ~(AOPOBJ_SETUP_COMPLETE);
- RegionObj->Common.Flags |= AOPOBJ_OBJECT_INITIALIZED;
-
- /* Find any "_REG" method associated with this region definition */
-
- Status = AcpiNsSearchOneScope (
- *RegNamePtr, Node, ACPI_TYPE_METHOD, &MethodNode);
- if (ACPI_SUCCESS (Status))
- {
- /*
- * The _REG method is optional and there can be only one per region
- * definition. This will be executed when the handler is attached
- * or removed
- */
- RegionObj2->Extra.Method_REG = MethodNode;
- }
-
- /*
- * The following loop depends upon the root Node having no parent
- * ie: AcpiGbl_RootNode->ParentEntry being set to NULL
- */
- while (Node)
- {
- /* Check to see if a handler exists */
-
- HandlerObj = NULL;
- ObjDesc = AcpiNsGetAttachedObject (Node);
- if (ObjDesc)
- {
- /* Can only be a handler if the object exists */
-
- switch (Node->Type)
- {
- case ACPI_TYPE_DEVICE:
-
- HandlerObj = ObjDesc->Device.Handler;
- break;
-
- case ACPI_TYPE_PROCESSOR:
-
- HandlerObj = ObjDesc->Processor.Handler;
- break;
-
- case ACPI_TYPE_THERMAL:
-
- HandlerObj = ObjDesc->ThermalZone.Handler;
- break;
-
- default:
- /* Ignore other objects */
- break;
- }
-
- while (HandlerObj)
- {
- /* Is this handler of the correct type? */
-
- if (HandlerObj->AddressSpace.SpaceId == SpaceId)
- {
- /* Found correct handler */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
- "Found handler %p for region %p in obj %p\n",
- HandlerObj, RegionObj, ObjDesc));
-
- Status = AcpiEvAttachRegion (HandlerObj, RegionObj,
- AcpiNsLocked);
-
- /*
- * Tell all users that this region is usable by running the _REG
- * method
- */
- if (AcpiNsLocked)
- {
- Status = AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- Status = AcpiEvExecuteRegMethod (RegionObj, 1);
-
- if (AcpiNsLocked)
- {
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Try next handler in the list */
-
- HandlerObj = HandlerObj->AddressSpace.Next;
- }
- }
-
- /*
- * This node does not have the handler we need;
- * Pop up one level
- */
- Node = AcpiNsGetParentNode (Node);
- }
-
- /* If we get here, there is no handler for this region */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
- "No handler for RegionType %s(%X) (RegionObj %p)\n",
- AcpiUtGetRegionName (SpaceId), SpaceId, RegionObj));
-
- return_ACPI_STATUS (AE_NOT_EXIST);
-}
-
diff --git a/sys/contrib/dev/acpica/evsci.c b/sys/contrib/dev/acpica/evsci.c
deleted file mode 100644
index ab81cbb..0000000
--- a/sys/contrib/dev/acpica/evsci.c
+++ /dev/null
@@ -1,281 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: evsci - System Control Interrupt configuration and
- * legacy to ACPI mode state transition functions
- * $Revision: 1.102 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acevents.h>
-
-
-#define _COMPONENT ACPI_EVENTS
- ACPI_MODULE_NAME ("evsci")
-
-/* Local prototypes */
-
-static UINT32 ACPI_SYSTEM_XFACE
-AcpiEvSciXruptHandler (
- void *Context);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvSciXruptHandler
- *
- * PARAMETERS: Context - Calling Context
- *
- * RETURN: Status code indicates whether interrupt was handled.
- *
- * DESCRIPTION: Interrupt handler that will figure out what function or
- * control method to call to deal with a SCI.
- *
- ******************************************************************************/
-
-static UINT32 ACPI_SYSTEM_XFACE
-AcpiEvSciXruptHandler (
- void *Context)
-{
- ACPI_GPE_XRUPT_INFO *GpeXruptList = Context;
- UINT32 InterruptHandled = ACPI_INTERRUPT_NOT_HANDLED;
-
-
- ACPI_FUNCTION_TRACE (EvSciXruptHandler);
-
-
- /*
- * We are guaranteed by the ACPI CA initialization/shutdown code that
- * if this interrupt handler is installed, ACPI is enabled.
- */
-
- /*
- * Fixed Events:
- * Check for and dispatch any Fixed Events that have occurred
- */
- InterruptHandled |= AcpiEvFixedEventDetect ();
-
- /*
- * General Purpose Events:
- * Check for and dispatch any GPEs that have occurred
- */
- InterruptHandled |= AcpiEvGpeDetect (GpeXruptList);
-
- return_UINT32 (InterruptHandled);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvGpeXruptHandler
- *
- * PARAMETERS: Context - Calling Context
- *
- * RETURN: Status code indicates whether interrupt was handled.
- *
- * DESCRIPTION: Handler for GPE Block Device interrupts
- *
- ******************************************************************************/
-
-UINT32 ACPI_SYSTEM_XFACE
-AcpiEvGpeXruptHandler (
- void *Context)
-{
- ACPI_GPE_XRUPT_INFO *GpeXruptList = Context;
- UINT32 InterruptHandled = ACPI_INTERRUPT_NOT_HANDLED;
-
-
- ACPI_FUNCTION_TRACE (EvGpeXruptHandler);
-
-
- /*
- * We are guaranteed by the ACPI CA initialization/shutdown code that
- * if this interrupt handler is installed, ACPI is enabled.
- */
-
- /*
- * GPEs:
- * Check for and dispatch any GPEs that have occurred
- */
- InterruptHandled |= AcpiEvGpeDetect (GpeXruptList);
-
- return_UINT32 (InterruptHandled);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiEvInstallSciHandler
- *
- * PARAMETERS: none
- *
- * RETURN: Status
- *
- * DESCRIPTION: Installs SCI handler.
- *
- ******************************************************************************/
-
-UINT32
-AcpiEvInstallSciHandler (
- void)
-{
- UINT32 Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (EvInstallSciHandler);
-
-
- Status = AcpiOsInstallInterruptHandler ((UINT32) AcpiGbl_FADT.SciInterrupt,
- AcpiEvSciXruptHandler, AcpiGbl_GpeXruptListHead);
- return_ACPI_STATUS (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiEvRemoveSciHandler
- *
- * PARAMETERS: none
- *
- * RETURN: E_OK if handler uninstalled OK, E_ERROR if handler was not
- * installed to begin with
- *
- * DESCRIPTION: Remove the SCI interrupt handler. No further SCIs will be
- * taken.
- *
- * Note: It doesn't seem important to disable all events or set the event
- * enable registers to their original values. The OS should disable
- * the SCI interrupt level when the handler is removed, so no more
- * events will come in.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvRemoveSciHandler (
- void)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (EvRemoveSciHandler);
-
-
- /* Just let the OS remove the handler and disable the level */
-
- Status = AcpiOsRemoveInterruptHandler ((UINT32) AcpiGbl_FADT.SciInterrupt,
- AcpiEvSciXruptHandler);
-
- return_ACPI_STATUS (Status);
-}
-
-
diff --git a/sys/contrib/dev/acpica/evxface.c b/sys/contrib/dev/acpica/evxface.c
deleted file mode 100644
index 15fbc9c..0000000
--- a/sys/contrib/dev/acpica/evxface.c
+++ /dev/null
@@ -1,965 +0,0 @@
-/******************************************************************************
- *
- * Module Name: evxface - External interfaces for ACPI events
- * $Revision: 1.165 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __EVXFACE_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acevents.h>
-#include <contrib/dev/acpica/acinterp.h>
-
-#define _COMPONENT ACPI_EVENTS
- ACPI_MODULE_NAME ("evxface")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiInstallExceptionHandler
- *
- * PARAMETERS: Handler - Pointer to the handler function for the
- * event
- *
- * RETURN: Status
- *
- * DESCRIPTION: Saves the pointer to the handler function
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiInstallExceptionHandler (
- ACPI_EXCEPTION_HANDLER Handler)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (AcpiInstallExceptionHandler);
-
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Don't allow two handlers. */
-
- if (AcpiGbl_ExceptionHandler)
- {
- Status = AE_ALREADY_EXISTS;
- goto Cleanup;
- }
-
- /* Install the handler */
-
- AcpiGbl_ExceptionHandler = Handler;
-
-Cleanup:
- (void) AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiInstallExceptionHandler)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiInstallFixedEventHandler
- *
- * PARAMETERS: Event - Event type to enable.
- * Handler - Pointer to the handler function for the
- * event
- * Context - Value passed to the handler on each GPE
- *
- * RETURN: Status
- *
- * DESCRIPTION: Saves the pointer to the handler function and then enables the
- * event.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiInstallFixedEventHandler (
- UINT32 Event,
- ACPI_EVENT_HANDLER Handler,
- void *Context)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (AcpiInstallFixedEventHandler);
-
-
- /* Parameter validation */
-
- if (Event > ACPI_EVENT_MAX)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Don't allow two handlers. */
-
- if (NULL != AcpiGbl_FixedEventHandlers[Event].Handler)
- {
- Status = AE_ALREADY_EXISTS;
- goto Cleanup;
- }
-
- /* Install the handler before enabling the event */
-
- AcpiGbl_FixedEventHandlers[Event].Handler = Handler;
- AcpiGbl_FixedEventHandlers[Event].Context = Context;
-
- Status = AcpiEnableEvent (Event, 0);
- if (ACPI_FAILURE (Status))
- {
- ACPI_WARNING ((AE_INFO, "Could not enable fixed event %X", Event));
-
- /* Remove the handler */
-
- AcpiGbl_FixedEventHandlers[Event].Handler = NULL;
- AcpiGbl_FixedEventHandlers[Event].Context = NULL;
- }
- else
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "Enabled fixed event %X, Handler=%p\n", Event, Handler));
- }
-
-
-Cleanup:
- (void) AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiInstallFixedEventHandler)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRemoveFixedEventHandler
- *
- * PARAMETERS: Event - Event type to disable.
- * Handler - Address of the handler
- *
- * RETURN: Status
- *
- * DESCRIPTION: Disables the event and unregisters the event handler.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRemoveFixedEventHandler (
- UINT32 Event,
- ACPI_EVENT_HANDLER Handler)
-{
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (AcpiRemoveFixedEventHandler);
-
-
- /* Parameter validation */
-
- if (Event > ACPI_EVENT_MAX)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Disable the event before removing the handler */
-
- Status = AcpiDisableEvent (Event, 0);
-
- /* Always Remove the handler */
-
- AcpiGbl_FixedEventHandlers[Event].Handler = NULL;
- AcpiGbl_FixedEventHandlers[Event].Context = NULL;
-
- if (ACPI_FAILURE (Status))
- {
- ACPI_WARNING ((AE_INFO,
- "Could not write to fixed event enable register %X", Event));
- }
- else
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Disabled fixed event %X\n", Event));
- }
-
- (void) AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiRemoveFixedEventHandler)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiInstallNotifyHandler
- *
- * PARAMETERS: Device - The device for which notifies will be handled
- * HandlerType - The type of handler:
- * ACPI_SYSTEM_NOTIFY: SystemHandler (00-7f)
- * ACPI_DEVICE_NOTIFY: DriverHandler (80-ff)
- * ACPI_ALL_NOTIFY: both system and device
- * Handler - Address of the handler
- * Context - Value passed to the handler on each GPE
- *
- * RETURN: Status
- *
- * DESCRIPTION: Install a handler for notifies on an ACPI device
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiInstallNotifyHandler (
- ACPI_HANDLE Device,
- UINT32 HandlerType,
- ACPI_NOTIFY_HANDLER Handler,
- void *Context)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_OPERAND_OBJECT *NotifyObj;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (AcpiInstallNotifyHandler);
-
-
- /* Parameter validation */
-
- if ((!Device) ||
- (!Handler) ||
- (HandlerType > ACPI_MAX_NOTIFY_HANDLER_TYPE))
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Convert and validate the device handle */
-
- Node = AcpiNsMapHandleToNode (Device);
- if (!Node)
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
-
- /*
- * Root Object:
- * Registering a notify handler on the root object indicates that the
- * caller wishes to receive notifications for all objects. Note that
- * only one <external> global handler can be regsitered (per notify type).
- */
- if (Device == ACPI_ROOT_OBJECT)
- {
- /* Make sure the handler is not already installed */
-
- if (((HandlerType & ACPI_SYSTEM_NOTIFY) &&
- AcpiGbl_SystemNotify.Handler) ||
- ((HandlerType & ACPI_DEVICE_NOTIFY) &&
- AcpiGbl_DeviceNotify.Handler))
- {
- Status = AE_ALREADY_EXISTS;
- goto UnlockAndExit;
- }
-
- if (HandlerType & ACPI_SYSTEM_NOTIFY)
- {
- AcpiGbl_SystemNotify.Node = Node;
- AcpiGbl_SystemNotify.Handler = Handler;
- AcpiGbl_SystemNotify.Context = Context;
- }
-
- if (HandlerType & ACPI_DEVICE_NOTIFY)
- {
- AcpiGbl_DeviceNotify.Node = Node;
- AcpiGbl_DeviceNotify.Handler = Handler;
- AcpiGbl_DeviceNotify.Context = Context;
- }
-
- /* Global notify handler installed */
- }
-
- /*
- * All Other Objects:
- * Caller will only receive notifications specific to the target object.
- * Note that only certain object types can receive notifications.
- */
- else
- {
- /* Notifies allowed on this object? */
-
- if (!AcpiEvIsNotifyObject (Node))
- {
- Status = AE_TYPE;
- goto UnlockAndExit;
- }
-
- /* Check for an existing internal object */
-
- ObjDesc = AcpiNsGetAttachedObject (Node);
- if (ObjDesc)
- {
- /* Object exists - make sure there's no handler */
-
- if (((HandlerType & ACPI_SYSTEM_NOTIFY) &&
- ObjDesc->CommonNotify.SystemNotify) ||
- ((HandlerType & ACPI_DEVICE_NOTIFY) &&
- ObjDesc->CommonNotify.DeviceNotify))
- {
- Status = AE_ALREADY_EXISTS;
- goto UnlockAndExit;
- }
- }
- else
- {
- /* Create a new object */
-
- ObjDesc = AcpiUtCreateInternalObject (Node->Type);
- if (!ObjDesc)
- {
- Status = AE_NO_MEMORY;
- goto UnlockAndExit;
- }
-
- /* Attach new object to the Node */
-
- Status = AcpiNsAttachObject (Device, ObjDesc, Node->Type);
-
- /* Remove local reference to the object */
-
- AcpiUtRemoveReference (ObjDesc);
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
- }
-
- /* Install the handler */
-
- NotifyObj = AcpiUtCreateInternalObject (ACPI_TYPE_LOCAL_NOTIFY);
- if (!NotifyObj)
- {
- Status = AE_NO_MEMORY;
- goto UnlockAndExit;
- }
-
- NotifyObj->Notify.Node = Node;
- NotifyObj->Notify.Handler = Handler;
- NotifyObj->Notify.Context = Context;
-
- if (HandlerType & ACPI_SYSTEM_NOTIFY)
- {
- ObjDesc->CommonNotify.SystemNotify = NotifyObj;
- }
-
- if (HandlerType & ACPI_DEVICE_NOTIFY)
- {
- ObjDesc->CommonNotify.DeviceNotify = NotifyObj;
- }
-
- if (HandlerType == ACPI_ALL_NOTIFY)
- {
- /* Extra ref if installed in both */
-
- AcpiUtAddReference (NotifyObj);
- }
- }
-
-
-UnlockAndExit:
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiInstallNotifyHandler)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRemoveNotifyHandler
- *
- * PARAMETERS: Device - The device for which notifies will be handled
- * HandlerType - The type of handler:
- * ACPI_SYSTEM_NOTIFY: SystemHandler (00-7f)
- * ACPI_DEVICE_NOTIFY: DriverHandler (80-ff)
- * ACPI_ALL_NOTIFY: both system and device
- * Handler - Address of the handler
- *
- * RETURN: Status
- *
- * DESCRIPTION: Remove a handler for notifies on an ACPI device
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRemoveNotifyHandler (
- ACPI_HANDLE Device,
- UINT32 HandlerType,
- ACPI_NOTIFY_HANDLER Handler)
-{
- ACPI_OPERAND_OBJECT *NotifyObj;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (AcpiRemoveNotifyHandler);
-
-
- /* Parameter validation */
-
- if ((!Device) ||
- (!Handler) ||
- (HandlerType > ACPI_MAX_NOTIFY_HANDLER_TYPE))
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Convert and validate the device handle */
-
- Node = AcpiNsMapHandleToNode (Device);
- if (!Node)
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
-
- /* Root Object */
-
- if (Device == ACPI_ROOT_OBJECT)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "Removing notify handler for namespace root object\n"));
-
- if (((HandlerType & ACPI_SYSTEM_NOTIFY) &&
- !AcpiGbl_SystemNotify.Handler) ||
- ((HandlerType & ACPI_DEVICE_NOTIFY) &&
- !AcpiGbl_DeviceNotify.Handler))
- {
- Status = AE_NOT_EXIST;
- goto UnlockAndExit;
- }
-
- if (HandlerType & ACPI_SYSTEM_NOTIFY)
- {
- AcpiGbl_SystemNotify.Node = NULL;
- AcpiGbl_SystemNotify.Handler = NULL;
- AcpiGbl_SystemNotify.Context = NULL;
- }
-
- if (HandlerType & ACPI_DEVICE_NOTIFY)
- {
- AcpiGbl_DeviceNotify.Node = NULL;
- AcpiGbl_DeviceNotify.Handler = NULL;
- AcpiGbl_DeviceNotify.Context = NULL;
- }
- }
-
- /* All Other Objects */
-
- else
- {
- /* Notifies allowed on this object? */
-
- if (!AcpiEvIsNotifyObject (Node))
- {
- Status = AE_TYPE;
- goto UnlockAndExit;
- }
-
- /* Check for an existing internal object */
-
- ObjDesc = AcpiNsGetAttachedObject (Node);
- if (!ObjDesc)
- {
- Status = AE_NOT_EXIST;
- goto UnlockAndExit;
- }
-
- /* Object exists - make sure there's an existing handler */
-
- if (HandlerType & ACPI_SYSTEM_NOTIFY)
- {
- NotifyObj = ObjDesc->CommonNotify.SystemNotify;
- if (!NotifyObj)
- {
- Status = AE_NOT_EXIST;
- goto UnlockAndExit;
- }
-
- if (NotifyObj->Notify.Handler != Handler)
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
-
- /* Remove the handler */
-
- ObjDesc->CommonNotify.SystemNotify = NULL;
- AcpiUtRemoveReference (NotifyObj);
- }
-
- if (HandlerType & ACPI_DEVICE_NOTIFY)
- {
- NotifyObj = ObjDesc->CommonNotify.DeviceNotify;
- if (!NotifyObj)
- {
- Status = AE_NOT_EXIST;
- goto UnlockAndExit;
- }
-
- if (NotifyObj->Notify.Handler != Handler)
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
-
- /* Remove the handler */
-
- ObjDesc->CommonNotify.DeviceNotify = NULL;
- AcpiUtRemoveReference (NotifyObj);
- }
- }
-
-
-UnlockAndExit:
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiRemoveNotifyHandler)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiInstallGpeHandler
- *
- * PARAMETERS: GpeDevice - Namespace node for the GPE (NULL for FADT
- * defined GPEs)
- * GpeNumber - The GPE number within the GPE block
- * Type - Whether this GPE should be treated as an
- * edge- or level-triggered interrupt.
- * Address - Address of the handler
- * Context - Value passed to the handler on each GPE
- *
- * RETURN: Status
- *
- * DESCRIPTION: Install a handler for a General Purpose Event.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiInstallGpeHandler (
- ACPI_HANDLE GpeDevice,
- UINT32 GpeNumber,
- UINT32 Type,
- ACPI_EVENT_HANDLER Address,
- void *Context)
-{
- ACPI_GPE_EVENT_INFO *GpeEventInfo;
- ACPI_HANDLER_INFO *Handler;
- ACPI_STATUS Status;
- ACPI_CPU_FLAGS Flags;
-
-
- ACPI_FUNCTION_TRACE (AcpiInstallGpeHandler);
-
-
- /* Parameter validation */
-
- if ((!Address) || (Type > ACPI_GPE_XRUPT_TYPE_MASK))
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Ensure that we have a valid GPE number */
-
- GpeEventInfo = AcpiEvGetGpeEventInfo (GpeDevice, GpeNumber);
- if (!GpeEventInfo)
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
-
- /* Make sure that there isn't a handler there already */
-
- if ((GpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK) == ACPI_GPE_DISPATCH_HANDLER)
- {
- Status = AE_ALREADY_EXISTS;
- goto UnlockAndExit;
- }
-
- /* Allocate and init handler object */
-
- Handler = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_HANDLER_INFO));
- if (!Handler)
- {
- Status = AE_NO_MEMORY;
- goto UnlockAndExit;
- }
-
- Handler->Address = Address;
- Handler->Context = Context;
- Handler->MethodNode = GpeEventInfo->Dispatch.MethodNode;
-
- /* Disable the GPE before installing the handler */
-
- Status = AcpiEvDisableGpe (GpeEventInfo);
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
-
- /* Install the handler */
-
- Flags = AcpiOsAcquireLock (AcpiGbl_GpeLock);
- GpeEventInfo->Dispatch.Handler = Handler;
-
- /* Setup up dispatch flags to indicate handler (vs. method) */
-
- GpeEventInfo->Flags &= ~(ACPI_GPE_XRUPT_TYPE_MASK | ACPI_GPE_DISPATCH_MASK); /* Clear bits */
- GpeEventInfo->Flags |= (UINT8) (Type | ACPI_GPE_DISPATCH_HANDLER);
-
- AcpiOsReleaseLock (AcpiGbl_GpeLock, Flags);
-
-
-UnlockAndExit:
- (void) AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiInstallGpeHandler)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRemoveGpeHandler
- *
- * PARAMETERS: GpeDevice - Namespace node for the GPE (NULL for FADT
- * defined GPEs)
- * GpeNumber - The event to remove a handler
- * Address - Address of the handler
- *
- * RETURN: Status
- *
- * DESCRIPTION: Remove a handler for a General Purpose AcpiEvent.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRemoveGpeHandler (
- ACPI_HANDLE GpeDevice,
- UINT32 GpeNumber,
- ACPI_EVENT_HANDLER Address)
-{
- ACPI_GPE_EVENT_INFO *GpeEventInfo;
- ACPI_HANDLER_INFO *Handler;
- ACPI_STATUS Status;
- ACPI_CPU_FLAGS Flags;
-
-
- ACPI_FUNCTION_TRACE (AcpiRemoveGpeHandler);
-
-
- /* Parameter validation */
-
- if (!Address)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Ensure that we have a valid GPE number */
-
- GpeEventInfo = AcpiEvGetGpeEventInfo (GpeDevice, GpeNumber);
- if (!GpeEventInfo)
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
-
- /* Make sure that a handler is indeed installed */
-
- if ((GpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK) != ACPI_GPE_DISPATCH_HANDLER)
- {
- Status = AE_NOT_EXIST;
- goto UnlockAndExit;
- }
-
- /* Make sure that the installed handler is the same */
-
- if (GpeEventInfo->Dispatch.Handler->Address != Address)
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
-
- /* Disable the GPE before removing the handler */
-
- Status = AcpiEvDisableGpe (GpeEventInfo);
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
-
- /* Remove the handler */
-
- Flags = AcpiOsAcquireLock (AcpiGbl_GpeLock);
- Handler = GpeEventInfo->Dispatch.Handler;
-
- /* Restore Method node (if any), set dispatch flags */
-
- GpeEventInfo->Dispatch.MethodNode = Handler->MethodNode;
- GpeEventInfo->Flags &= ~ACPI_GPE_DISPATCH_MASK; /* Clear bits */
- if (Handler->MethodNode)
- {
- GpeEventInfo->Flags |= ACPI_GPE_DISPATCH_METHOD;
- }
- AcpiOsReleaseLock (AcpiGbl_GpeLock, Flags);
-
- /* Now we can free the handler object */
-
- ACPI_FREE (Handler);
-
-
-UnlockAndExit:
- (void) AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiRemoveGpeHandler)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiAcquireGlobalLock
- *
- * PARAMETERS: Timeout - How long the caller is willing to wait
- * Handle - Where the handle to the lock is returned
- * (if acquired)
- *
- * RETURN: Status
- *
- * DESCRIPTION: Acquire the ACPI Global Lock
- *
- * Note: Allows callers with the same thread ID to acquire the global lock
- * multiple times. In other words, externally, the behavior of the global lock
- * is identical to an AML mutex. On the first acquire, a new handle is
- * returned. On any subsequent calls to acquire by the same thread, the same
- * handle is returned.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiAcquireGlobalLock (
- UINT16 Timeout,
- UINT32 *Handle)
-{
- ACPI_STATUS Status;
-
-
- if (!Handle)
- {
- return (AE_BAD_PARAMETER);
- }
-
- /* Must lock interpreter to prevent race conditions */
-
- AcpiExEnterInterpreter ();
-
- Status = AcpiExAcquireMutexObject (Timeout,
- AcpiGbl_GlobalLockMutex, AcpiOsGetThreadId ());
-
- if (ACPI_SUCCESS (Status))
- {
- /* Return the global lock handle (updated in AcpiEvAcquireGlobalLock) */
-
- *Handle = AcpiGbl_GlobalLockHandle;
- }
-
- AcpiExExitInterpreter ();
- return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiAcquireGlobalLock)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiReleaseGlobalLock
- *
- * PARAMETERS: Handle - Returned from AcpiAcquireGlobalLock
- *
- * RETURN: Status
- *
- * DESCRIPTION: Release the ACPI Global Lock. The handle must be valid.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiReleaseGlobalLock (
- UINT32 Handle)
-{
- ACPI_STATUS Status;
-
-
- if (!Handle || (Handle != AcpiGbl_GlobalLockHandle))
- {
- return (AE_NOT_ACQUIRED);
- }
-
- Status = AcpiExReleaseMutexObject (AcpiGbl_GlobalLockMutex);
- return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiReleaseGlobalLock)
-
diff --git a/sys/contrib/dev/acpica/evxfevnt.c b/sys/contrib/dev/acpica/evxfevnt.c
deleted file mode 100644
index e90bded..0000000
--- a/sys/contrib/dev/acpica/evxfevnt.c
+++ /dev/null
@@ -1,924 +0,0 @@
-/******************************************************************************
- *
- * Module Name: evxfevnt - External Interfaces, ACPI event disable/enable
- * $Revision: 1.93 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __EVXFEVNT_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acevents.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/actables.h>
-
-#define _COMPONENT ACPI_EVENTS
- ACPI_MODULE_NAME ("evxfevnt")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEnable
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Transfers the system into ACPI mode.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEnable (
- void)
-{
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (AcpiEnable);
-
-
- /* ACPI tables must be present */
-
- if (!AcpiTbTablesLoaded ())
- {
- return_ACPI_STATUS (AE_NO_ACPI_TABLES);
- }
-
- /* Check current mode */
-
- if (AcpiHwGetMode() == ACPI_SYS_MODE_ACPI)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_INIT, "System is already in ACPI mode\n"));
- }
- else
- {
- /* Transition to ACPI mode */
-
- Status = AcpiHwSetMode (ACPI_SYS_MODE_ACPI);
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR ((AE_INFO, "Could not transition to ACPI mode"));
- return_ACPI_STATUS (Status);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INIT,
- "Transition to ACPI mode successful\n"));
- }
-
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiEnable)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDisable
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Transfers the system into LEGACY (non-ACPI) mode.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDisable (
- void)
-{
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (AcpiDisable);
-
-
- if (AcpiHwGetMode() == ACPI_SYS_MODE_LEGACY)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_INIT,
- "System is already in legacy (non-ACPI) mode\n"));
- }
- else
- {
- /* Transition to LEGACY mode */
-
- Status = AcpiHwSetMode (ACPI_SYS_MODE_LEGACY);
-
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR ((AE_INFO,
- "Could not exit ACPI mode to legacy mode"));
- return_ACPI_STATUS (Status);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INIT, "ACPI mode disabled\n"));
- }
-
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiDisable)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEnableEvent
- *
- * PARAMETERS: Event - The fixed eventto be enabled
- * Flags - Reserved
- *
- * RETURN: Status
- *
- * DESCRIPTION: Enable an ACPI event (fixed)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEnableEvent (
- UINT32 Event,
- UINT32 Flags)
-{
- ACPI_STATUS Status = AE_OK;
- UINT32 Value;
-
-
- ACPI_FUNCTION_TRACE (AcpiEnableEvent);
-
-
- /* Decode the Fixed Event */
-
- if (Event > ACPI_EVENT_MAX)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /*
- * Enable the requested fixed event (by writing a one to the
- * enable register bit)
- */
- Status = AcpiSetRegister (AcpiGbl_FixedEventInfo[Event].EnableRegisterId, 1);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Make sure that the hardware responded */
-
- Status = AcpiGetRegister (AcpiGbl_FixedEventInfo[Event].EnableRegisterId,
- &Value);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- if (Value != 1)
- {
- ACPI_ERROR ((AE_INFO,
- "Could not enable %s event", AcpiUtGetEventName (Event)));
- return_ACPI_STATUS (AE_NO_HARDWARE_RESPONSE);
- }
-
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiEnableEvent)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiSetGpeType
- *
- * PARAMETERS: GpeDevice - Parent GPE Device
- * GpeNumber - GPE level within the GPE block
- * Type - New GPE type
- *
- * RETURN: Status
- *
- * DESCRIPTION: Set the type of an individual GPE
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiSetGpeType (
- ACPI_HANDLE GpeDevice,
- UINT32 GpeNumber,
- UINT8 Type)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_GPE_EVENT_INFO *GpeEventInfo;
-
-
- ACPI_FUNCTION_TRACE (AcpiSetGpeType);
-
-
- /* Ensure that we have a valid GPE number */
-
- GpeEventInfo = AcpiEvGetGpeEventInfo (GpeDevice, GpeNumber);
- if (!GpeEventInfo)
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
-
- if ((GpeEventInfo->Flags & ACPI_GPE_TYPE_MASK) == Type)
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Set the new type (will disable GPE if currently enabled) */
-
- Status = AcpiEvSetGpeType (GpeEventInfo, Type);
-
-UnlockAndExit:
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiSetGpeType)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEnableGpe
- *
- * PARAMETERS: GpeDevice - Parent GPE Device
- * GpeNumber - GPE level within the GPE block
- * Flags - Just enable, or also wake enable?
- * Called from ISR or not
- *
- * RETURN: Status
- *
- * DESCRIPTION: Enable an ACPI event (general purpose)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEnableGpe (
- ACPI_HANDLE GpeDevice,
- UINT32 GpeNumber,
- UINT32 Flags)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_GPE_EVENT_INFO *GpeEventInfo;
-
-
- ACPI_FUNCTION_TRACE (AcpiEnableGpe);
-
-
- /* Use semaphore lock if not executing at interrupt level */
-
- if (Flags & ACPI_NOT_ISR)
- {
- Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- /* Ensure that we have a valid GPE number */
-
- GpeEventInfo = AcpiEvGetGpeEventInfo (GpeDevice, GpeNumber);
- if (!GpeEventInfo)
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
-
- /* Perform the enable */
-
- Status = AcpiEvEnableGpe (GpeEventInfo, TRUE);
-
-UnlockAndExit:
- if (Flags & ACPI_NOT_ISR)
- {
- (void) AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
- }
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiEnableGpe)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDisableGpe
- *
- * PARAMETERS: GpeDevice - Parent GPE Device
- * GpeNumber - GPE level within the GPE block
- * Flags - Just disable, or also wake disable?
- * Called from ISR or not
- *
- * RETURN: Status
- *
- * DESCRIPTION: Disable an ACPI event (general purpose)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDisableGpe (
- ACPI_HANDLE GpeDevice,
- UINT32 GpeNumber,
- UINT32 Flags)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_GPE_EVENT_INFO *GpeEventInfo;
-
-
- ACPI_FUNCTION_TRACE (AcpiDisableGpe);
-
-
- /* Use semaphore lock if not executing at interrupt level */
-
- if (Flags & ACPI_NOT_ISR)
- {
- Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- /* Ensure that we have a valid GPE number */
-
- GpeEventInfo = AcpiEvGetGpeEventInfo (GpeDevice, GpeNumber);
- if (!GpeEventInfo)
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
-
- Status = AcpiEvDisableGpe (GpeEventInfo);
-
-UnlockAndExit:
- if (Flags & ACPI_NOT_ISR)
- {
- (void) AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
- }
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiDisableGpe)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDisableEvent
- *
- * PARAMETERS: Event - The fixed eventto be enabled
- * Flags - Reserved
- *
- * RETURN: Status
- *
- * DESCRIPTION: Disable an ACPI event (fixed)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDisableEvent (
- UINT32 Event,
- UINT32 Flags)
-{
- ACPI_STATUS Status = AE_OK;
- UINT32 Value;
-
-
- ACPI_FUNCTION_TRACE (AcpiDisableEvent);
-
-
- /* Decode the Fixed Event */
-
- if (Event > ACPI_EVENT_MAX)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /*
- * Disable the requested fixed event (by writing a zero to the
- * enable register bit)
- */
- Status = AcpiSetRegister (AcpiGbl_FixedEventInfo[Event].EnableRegisterId, 0);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- Status = AcpiGetRegister (AcpiGbl_FixedEventInfo[Event].EnableRegisterId,
- &Value);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- if (Value != 0)
- {
- ACPI_ERROR ((AE_INFO,
- "Could not disable %s events", AcpiUtGetEventName (Event)));
- return_ACPI_STATUS (AE_NO_HARDWARE_RESPONSE);
- }
-
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiDisableEvent)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiClearEvent
- *
- * PARAMETERS: Event - The fixed event to be cleared
- *
- * RETURN: Status
- *
- * DESCRIPTION: Clear an ACPI event (fixed)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiClearEvent (
- UINT32 Event)
-{
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (AcpiClearEvent);
-
-
- /* Decode the Fixed Event */
-
- if (Event > ACPI_EVENT_MAX)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /*
- * Clear the requested fixed event (By writing a one to the
- * status register bit)
- */
- Status = AcpiSetRegister (AcpiGbl_FixedEventInfo[Event].StatusRegisterId, 1);
-
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiClearEvent)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiClearGpe
- *
- * PARAMETERS: GpeDevice - Parent GPE Device
- * GpeNumber - GPE level within the GPE block
- * Flags - Called from an ISR or not
- *
- * RETURN: Status
- *
- * DESCRIPTION: Clear an ACPI event (general purpose)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiClearGpe (
- ACPI_HANDLE GpeDevice,
- UINT32 GpeNumber,
- UINT32 Flags)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_GPE_EVENT_INFO *GpeEventInfo;
-
-
- ACPI_FUNCTION_TRACE (AcpiClearGpe);
-
-
- /* Use semaphore lock if not executing at interrupt level */
-
- if (Flags & ACPI_NOT_ISR)
- {
- Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- /* Ensure that we have a valid GPE number */
-
- GpeEventInfo = AcpiEvGetGpeEventInfo (GpeDevice, GpeNumber);
- if (!GpeEventInfo)
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
-
- Status = AcpiHwClearGpe (GpeEventInfo);
-
-UnlockAndExit:
- if (Flags & ACPI_NOT_ISR)
- {
- (void) AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
- }
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiClearGpe)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiGetEventStatus
- *
- * PARAMETERS: Event - The fixed event
- * EventStatus - Where the current status of the event will
- * be returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Obtains and returns the current status of the event
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetEventStatus (
- UINT32 Event,
- ACPI_EVENT_STATUS *EventStatus)
-{
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (AcpiGetEventStatus);
-
-
- if (!EventStatus)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /* Decode the Fixed Event */
-
- if (Event > ACPI_EVENT_MAX)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /* Get the status of the requested fixed event */
-
- Status = AcpiGetRegister (AcpiGbl_FixedEventInfo[Event].StatusRegisterId,
- EventStatus);
-
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetEventStatus)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiGetGpeStatus
- *
- * PARAMETERS: GpeDevice - Parent GPE Device
- * GpeNumber - GPE level within the GPE block
- * Flags - Called from an ISR or not
- * EventStatus - Where the current status of the event will
- * be returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Get status of an event (general purpose)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetGpeStatus (
- ACPI_HANDLE GpeDevice,
- UINT32 GpeNumber,
- UINT32 Flags,
- ACPI_EVENT_STATUS *EventStatus)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_GPE_EVENT_INFO *GpeEventInfo;
-
-
- ACPI_FUNCTION_TRACE (AcpiGetGpeStatus);
-
-
- /* Use semaphore lock if not executing at interrupt level */
-
- if (Flags & ACPI_NOT_ISR)
- {
- Status = AcpiUtAcquireMutex (ACPI_MTX_EVENTS);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- /* Ensure that we have a valid GPE number */
-
- GpeEventInfo = AcpiEvGetGpeEventInfo (GpeDevice, GpeNumber);
- if (!GpeEventInfo)
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
-
- /* Obtain status on the requested GPE number */
-
- Status = AcpiHwGetGpeStatus (GpeEventInfo, EventStatus);
-
-UnlockAndExit:
- if (Flags & ACPI_NOT_ISR)
- {
- (void) AcpiUtReleaseMutex (ACPI_MTX_EVENTS);
- }
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetGpeStatus)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiInstallGpeBlock
- *
- * PARAMETERS: GpeDevice - Handle to the parent GPE Block Device
- * GpeBlockAddress - Address and SpaceID
- * RegisterCount - Number of GPE register pairs in the block
- * InterruptNumber - H/W interrupt for the block
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create and Install a block of GPE registers
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiInstallGpeBlock (
- ACPI_HANDLE GpeDevice,
- ACPI_GENERIC_ADDRESS *GpeBlockAddress,
- UINT32 RegisterCount,
- UINT32 InterruptNumber)
-{
- ACPI_STATUS Status;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_GPE_BLOCK_INFO *GpeBlock;
-
-
- ACPI_FUNCTION_TRACE (AcpiInstallGpeBlock);
-
-
- if ((!GpeDevice) ||
- (!GpeBlockAddress) ||
- (!RegisterCount))
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- Node = AcpiNsMapHandleToNode (GpeDevice);
- if (!Node)
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
-
- /*
- * For user-installed GPE Block Devices, the GpeBlockBaseNumber
- * is always zero
- */
- Status = AcpiEvCreateGpeBlock (Node, GpeBlockAddress, RegisterCount,
- 0, InterruptNumber, &GpeBlock);
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
-
- /* Run the _PRW methods and enable the GPEs */
-
- Status = AcpiEvInitializeGpeBlock (Node, GpeBlock);
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
-
- /* Get the DeviceObject attached to the node */
-
- ObjDesc = AcpiNsGetAttachedObject (Node);
- if (!ObjDesc)
- {
- /* No object, create a new one */
-
- ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_DEVICE);
- if (!ObjDesc)
- {
- Status = AE_NO_MEMORY;
- goto UnlockAndExit;
- }
-
- Status = AcpiNsAttachObject (Node, ObjDesc, ACPI_TYPE_DEVICE);
-
- /* Remove local reference to the object */
-
- AcpiUtRemoveReference (ObjDesc);
-
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
- }
-
- /* Install the GPE block in the DeviceObject */
-
- ObjDesc->Device.GpeBlock = GpeBlock;
-
-
-UnlockAndExit:
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiInstallGpeBlock)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRemoveGpeBlock
- *
- * PARAMETERS: GpeDevice - Handle to the parent GPE Block Device
- *
- * RETURN: Status
- *
- * DESCRIPTION: Remove a previously installed block of GPE registers
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRemoveGpeBlock (
- ACPI_HANDLE GpeDevice)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node;
-
-
- ACPI_FUNCTION_TRACE (AcpiRemoveGpeBlock);
-
-
- if (!GpeDevice)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- Node = AcpiNsMapHandleToNode (GpeDevice);
- if (!Node)
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
-
- /* Get the DeviceObject attached to the node */
-
- ObjDesc = AcpiNsGetAttachedObject (Node);
- if (!ObjDesc ||
- !ObjDesc->Device.GpeBlock)
- {
- return_ACPI_STATUS (AE_NULL_OBJECT);
- }
-
- /* Delete the GPE block (but not the DeviceObject) */
-
- Status = AcpiEvDeleteGpeBlock (ObjDesc->Device.GpeBlock);
- if (ACPI_SUCCESS (Status))
- {
- ObjDesc->Device.GpeBlock = NULL;
- }
-
-UnlockAndExit:
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiRemoveGpeBlock)
-
diff --git a/sys/contrib/dev/acpica/evxfregn.c b/sys/contrib/dev/acpica/evxfregn.c
deleted file mode 100644
index 7058683..0000000
--- a/sys/contrib/dev/acpica/evxfregn.c
+++ /dev/null
@@ -1,345 +0,0 @@
-/******************************************************************************
- *
- * Module Name: evxfregn - External Interfaces, ACPI Operation Regions and
- * Address Spaces.
- * $Revision: 1.70 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __EVXFREGN_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acevents.h>
-
-#define _COMPONENT ACPI_EVENTS
- ACPI_MODULE_NAME ("evxfregn")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiInstallAddressSpaceHandler
- *
- * PARAMETERS: Device - Handle for the device
- * SpaceId - The address space ID
- * Handler - Address of the handler
- * Setup - Address of the setup function
- * Context - Value passed to the handler on each access
- *
- * RETURN: Status
- *
- * DESCRIPTION: Install a handler for all OpRegions of a given SpaceId.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiInstallAddressSpaceHandler (
- ACPI_HANDLE Device,
- ACPI_ADR_SPACE_TYPE SpaceId,
- ACPI_ADR_SPACE_HANDLER Handler,
- ACPI_ADR_SPACE_SETUP Setup,
- void *Context)
-{
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (AcpiInstallAddressSpaceHandler);
-
-
- /* Parameter validation */
-
- if (!Device)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Convert and validate the device handle */
-
- Node = AcpiNsMapHandleToNode (Device);
- if (!Node)
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
-
- /* Install the handler for all Regions for this Space ID */
-
- Status = AcpiEvInstallSpaceHandler (Node, SpaceId, Handler, Setup, Context);
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
-
- /* Run all _REG methods for this address space */
-
- Status = AcpiEvExecuteRegMethods (Node, SpaceId);
-
-UnlockAndExit:
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiInstallAddressSpaceHandler)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRemoveAddressSpaceHandler
- *
- * PARAMETERS: Device - Handle for the device
- * SpaceId - The address space ID
- * Handler - Address of the handler
- *
- * RETURN: Status
- *
- * DESCRIPTION: Remove a previously installed handler.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRemoveAddressSpaceHandler (
- ACPI_HANDLE Device,
- ACPI_ADR_SPACE_TYPE SpaceId,
- ACPI_ADR_SPACE_HANDLER Handler)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_OPERAND_OBJECT *HandlerObj;
- ACPI_OPERAND_OBJECT *RegionObj;
- ACPI_OPERAND_OBJECT **LastObjPtr;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (AcpiRemoveAddressSpaceHandler);
-
-
- /* Parameter validation */
-
- if (!Device)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Convert and validate the device handle */
-
- Node = AcpiNsMapHandleToNode (Device);
- if (!Node ||
- ((Node->Type != ACPI_TYPE_DEVICE) &&
- (Node->Type != ACPI_TYPE_PROCESSOR) &&
- (Node->Type != ACPI_TYPE_THERMAL) &&
- (Node != AcpiGbl_RootNode)))
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
-
- /* Make sure the internal object exists */
-
- ObjDesc = AcpiNsGetAttachedObject (Node);
- if (!ObjDesc)
- {
- Status = AE_NOT_EXIST;
- goto UnlockAndExit;
- }
-
- /* Find the address handler the user requested */
-
- HandlerObj = ObjDesc->Device.Handler;
- LastObjPtr = &ObjDesc->Device.Handler;
- while (HandlerObj)
- {
- /* We have a handler, see if user requested this one */
-
- if (HandlerObj->AddressSpace.SpaceId == SpaceId)
- {
- /* Handler must be the same as the installed handler */
-
- if (HandlerObj->AddressSpace.Handler != Handler)
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
-
- /* Matched SpaceId, first dereference this in the Regions */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
- "Removing address handler %p(%p) for region %s on Device %p(%p)\n",
- HandlerObj, Handler, AcpiUtGetRegionName (SpaceId),
- Node, ObjDesc));
-
- RegionObj = HandlerObj->AddressSpace.RegionList;
-
- /* Walk the handler's region list */
-
- while (RegionObj)
- {
- /*
- * First disassociate the handler from the region.
- *
- * NOTE: this doesn't mean that the region goes away
- * The region is just inaccessible as indicated to
- * the _REG method
- */
- AcpiEvDetachRegion (RegionObj, TRUE);
-
- /*
- * Walk the list: Just grab the head because the
- * DetachRegion removed the previous head.
- */
- RegionObj = HandlerObj->AddressSpace.RegionList;
-
- }
-
- /* Remove this Handler object from the list */
-
- *LastObjPtr = HandlerObj->AddressSpace.Next;
-
- /* Now we can delete the handler object */
-
- AcpiUtRemoveReference (HandlerObj);
- goto UnlockAndExit;
- }
-
- /* Walk the linked list of handlers */
-
- LastObjPtr = &HandlerObj->AddressSpace.Next;
- HandlerObj = HandlerObj->AddressSpace.Next;
- }
-
- /* The handler does not exist */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION,
- "Unable to remove address handler %p for %s(%X), DevNode %p, obj %p\n",
- Handler, AcpiUtGetRegionName (SpaceId), SpaceId, Node, ObjDesc));
-
- Status = AE_NOT_EXIST;
-
-UnlockAndExit:
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiRemoveAddressSpaceHandler)
-
diff --git a/sys/contrib/dev/acpica/exconfig.c b/sys/contrib/dev/acpica/exconfig.c
deleted file mode 100644
index 60d8b36..0000000
--- a/sys/contrib/dev/acpica/exconfig.c
+++ /dev/null
@@ -1,523 +0,0 @@
-/******************************************************************************
- *
- * Module Name: exconfig - Namespace reconfiguration (Load/Unload opcodes)
- * $Revision: 1.103 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __EXCONFIG_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acevents.h>
-#include <contrib/dev/acpica/actables.h>
-#include <contrib/dev/acpica/acdispat.h>
-
-
-#define _COMPONENT ACPI_EXECUTER
- ACPI_MODULE_NAME ("exconfig")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiExAddTable (
- ACPI_NATIVE_UINT TableIndex,
- ACPI_NAMESPACE_NODE *ParentNode,
- ACPI_OPERAND_OBJECT **DdbHandle);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExAddTable
- *
- * PARAMETERS: Table - Pointer to raw table
- * ParentNode - Where to load the table (scope)
- * DdbHandle - Where to return the table handle.
- *
- * RETURN: Status
- *
- * DESCRIPTION: Common function to Install and Load an ACPI table with a
- * returned table handle.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiExAddTable (
- ACPI_NATIVE_UINT TableIndex,
- ACPI_NAMESPACE_NODE *ParentNode,
- ACPI_OPERAND_OBJECT **DdbHandle)
-{
- ACPI_STATUS Status;
- ACPI_OPERAND_OBJECT *ObjDesc;
-
-
- ACPI_FUNCTION_TRACE (ExAddTable);
-
-
- /* Create an object to be the table handle */
-
- ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_LOCAL_REFERENCE);
- if (!ObjDesc)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* Init the table handle */
-
- ObjDesc->Reference.Opcode = AML_LOAD_OP;
- *DdbHandle = ObjDesc;
-
- /* Install the new table into the local data structures */
-
- ObjDesc->Reference.Object = ACPI_CAST_PTR (void, TableIndex);
-
- /* Add the table to the namespace */
-
- Status = AcpiNsLoadTable (TableIndex, ParentNode);
- if (ACPI_FAILURE (Status))
- {
- AcpiUtRemoveReference (ObjDesc);
- *DdbHandle = NULL;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExLoadTableOp
- *
- * PARAMETERS: WalkState - Current state with operands
- * ReturnDesc - Where to store the return object
- *
- * RETURN: Status
- *
- * DESCRIPTION: Load an ACPI table from the RSDT/XSDT
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExLoadTableOp (
- ACPI_WALK_STATE *WalkState,
- ACPI_OPERAND_OBJECT **ReturnDesc)
-{
- ACPI_STATUS Status;
- ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0];
- ACPI_NATIVE_UINT TableIndex;
- ACPI_NAMESPACE_NODE *ParentNode;
- ACPI_NAMESPACE_NODE *StartNode;
- ACPI_NAMESPACE_NODE *ParameterNode = NULL;
- ACPI_OPERAND_OBJECT *DdbHandle;
- ACPI_TABLE_HEADER *Table;
-
-
- ACPI_FUNCTION_TRACE (ExLoadTableOp);
-
-
- /* Find the ACPI table in the RSDT/XSDT */
-
- Status = AcpiTbFindTable (Operand[0]->String.Pointer,
- Operand[1]->String.Pointer,
- Operand[2]->String.Pointer, &TableIndex);
- if (ACPI_FAILURE (Status))
- {
- if (Status != AE_NOT_FOUND)
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Table not found, return an Integer=0 and AE_OK */
-
- DdbHandle = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
- if (!DdbHandle)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- DdbHandle->Integer.Value = 0;
- *ReturnDesc = DdbHandle;
-
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Default nodes */
-
- StartNode = WalkState->ScopeInfo->Scope.Node;
- ParentNode = AcpiGbl_RootNode;
-
- /* RootPath (optional parameter) */
-
- if (Operand[3]->String.Length > 0)
- {
- /*
- * Find the node referenced by the RootPathString. This is the
- * location within the namespace where the table will be loaded.
- */
- Status = AcpiNsGetNode (StartNode, Operand[3]->String.Pointer,
- ACPI_NS_SEARCH_PARENT, &ParentNode);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- /* ParameterPath (optional parameter) */
-
- if (Operand[4]->String.Length > 0)
- {
- if ((Operand[4]->String.Pointer[0] != '\\') &&
- (Operand[4]->String.Pointer[0] != '^'))
- {
- /*
- * Path is not absolute, so it will be relative to the node
- * referenced by the RootPathString (or the NS root if omitted)
- */
- StartNode = ParentNode;
- }
-
- /* Find the node referenced by the ParameterPathString */
-
- Status = AcpiNsGetNode (StartNode, Operand[4]->String.Pointer,
- ACPI_NS_SEARCH_PARENT, &ParameterNode);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- /* Load the table into the namespace */
-
- Status = AcpiExAddTable (TableIndex, ParentNode, &DdbHandle);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Parameter Data (optional) */
-
- if (ParameterNode)
- {
- /* Store the parameter data into the optional parameter object */
-
- Status = AcpiExStore (Operand[5],
- ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, ParameterNode),
- WalkState);
- if (ACPI_FAILURE (Status))
- {
- (void) AcpiExUnloadTable (DdbHandle);
- return_ACPI_STATUS (Status);
- }
- }
-
- Status = AcpiGetTableByIndex (TableIndex, &Table);
- if (ACPI_SUCCESS (Status))
- {
- ACPI_INFO ((AE_INFO,
- "Dynamic OEM Table Load - [%4.4s] OemId [%6.6s] OemTableId [%8.8s]",
- Table->Signature, Table->OemId, Table->OemTableId));
- }
-
- *ReturnDesc = DdbHandle;
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExLoadOp
- *
- * PARAMETERS: ObjDesc - Region or Buffer/Field where the table will be
- * obtained
- * Target - Where a handle to the table will be stored
- * WalkState - Current state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Load an ACPI table from a field or operation region
- *
- * NOTE: Region Fields (Field, BankField, IndexFields) are resolved to buffer
- * objects before this code is reached.
- *
- * If source is an operation region, it must refer to SystemMemory, as
- * per the ACPI specification.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExLoadOp (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_OPERAND_OBJECT *Target,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_OPERAND_OBJECT *DdbHandle;
- ACPI_TABLE_DESC TableDesc;
- ACPI_NATIVE_UINT TableIndex;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (ExLoadOp);
-
-
- ACPI_MEMSET (&TableDesc, 0, sizeof (ACPI_TABLE_DESC));
- TableDesc.Flags = ACPI_TABLE_ORIGIN_ALLOCATED;
-
- /* Source Object can be either an OpRegion or a Buffer/Field */
-
- switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
- {
- case ACPI_TYPE_REGION:
-
- /* Region must be SystemMemory (from ACPI spec) */
-
- if (ObjDesc->Region.SpaceId != ACPI_ADR_SPACE_SYSTEM_MEMORY)
- {
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Load from Region %p %s\n",
- ObjDesc, AcpiUtGetObjectTypeName (ObjDesc)));
-
- /*
- * If the Region Address and Length have not been previously evaluated,
- * evaluate them now and save the results.
- */
- if (!(ObjDesc->Common.Flags & AOPOBJ_DATA_VALID))
- {
- Status = AcpiDsGetRegionArguments (ObjDesc);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- TableDesc.Address = ObjDesc->Region.Address;
- TableDesc.Length = ObjDesc->Region.Length;
- TableDesc.Flags = ACPI_TABLE_ORIGIN_MAPPED;
- break;
-
- case ACPI_TYPE_BUFFER: /* Buffer or resolved RegionField */
-
- /* Simply extract the buffer from the buffer object */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Load from Buffer or Field %p %s\n",
- ObjDesc, AcpiUtGetObjectTypeName (ObjDesc)));
-
- TableDesc.Pointer = ACPI_CAST_PTR (ACPI_TABLE_HEADER,
- ObjDesc->Buffer.Pointer);
- TableDesc.Length = TableDesc.Pointer->Length;
- TableDesc.Flags = ACPI_TABLE_ORIGIN_ALLOCATED;
-
- ObjDesc->Buffer.Pointer = NULL;
- break;
-
- default:
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
-
- /*
- * Install the new table into the local data structures
- */
- Status = AcpiTbAddTable (&TableDesc, &TableIndex);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- Status = AcpiExAddTable (TableIndex, AcpiGbl_RootNode, &DdbHandle);
- if (ACPI_FAILURE (Status))
- {
- /* On error, TablePtr was deallocated above */
-
- return_ACPI_STATUS (Status);
- }
-
- /* Store the DdbHandle into the Target operand */
-
- Status = AcpiExStore (DdbHandle, Target, WalkState);
- if (ACPI_FAILURE (Status))
- {
- (void) AcpiExUnloadTable (DdbHandle);
-
- /* TablePtr was deallocated above */
-
- return_ACPI_STATUS (Status);
- }
-
-Cleanup:
- if (ACPI_FAILURE (Status))
- {
- AcpiTbDeleteTable (&TableDesc);
- }
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExUnloadTable
- *
- * PARAMETERS: DdbHandle - Handle to a previously loaded table
- *
- * RETURN: Status
- *
- * DESCRIPTION: Unload an ACPI table
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExUnloadTable (
- ACPI_OPERAND_OBJECT *DdbHandle)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_OPERAND_OBJECT *TableDesc = DdbHandle;
- ACPI_NATIVE_UINT TableIndex;
-
-
- ACPI_FUNCTION_TRACE (ExUnloadTable);
-
-
- /*
- * Validate the handle
- * Although the handle is partially validated in AcpiExReconfiguration(),
- * when it calls AcpiExResolveOperands(), the handle is more completely
- * validated here.
- */
- if ((!DdbHandle) ||
- (ACPI_GET_DESCRIPTOR_TYPE (DdbHandle) != ACPI_DESC_TYPE_OPERAND) ||
- (ACPI_GET_OBJECT_TYPE (DdbHandle) != ACPI_TYPE_LOCAL_REFERENCE))
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /* Get the table index from the DdbHandle */
-
- TableIndex = (ACPI_NATIVE_UINT) TableDesc->Reference.Object;
-
- /*
- * Delete the entire namespace under this table Node
- * (Offset contains the TableId)
- */
- AcpiTbDeleteNamespaceByOwner (TableIndex);
- AcpiTbReleaseOwnerId (TableIndex);
-
- AcpiTbSetTableLoadedFlag (TableIndex, FALSE);
-
- /* Delete the table descriptor (DdbHandle) */
-
- AcpiUtRemoveReference (TableDesc);
- return_ACPI_STATUS (Status);
-}
-
diff --git a/sys/contrib/dev/acpica/exconvrt.c b/sys/contrib/dev/acpica/exconvrt.c
deleted file mode 100644
index 17c86c2..0000000
--- a/sys/contrib/dev/acpica/exconvrt.c
+++ /dev/null
@@ -1,817 +0,0 @@
-/******************************************************************************
- *
- * Module Name: exconvrt - Object conversion routines
- * $Revision: 1.74 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __EXCONVRT_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/amlcode.h>
-
-
-#define _COMPONENT ACPI_EXECUTER
- ACPI_MODULE_NAME ("exconvrt")
-
-/* Local prototypes */
-
-static UINT32
-AcpiExConvertToAscii (
- ACPI_INTEGER Integer,
- UINT16 Base,
- UINT8 *String,
- UINT8 MaxLength);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExConvertToInteger
- *
- * PARAMETERS: ObjDesc - Object to be converted. Must be an
- * Integer, Buffer, or String
- * ResultDesc - Where the new Integer object is returned
- * Flags - Used for string conversion
- *
- * RETURN: Status
- *
- * DESCRIPTION: Convert an ACPI Object to an integer.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExConvertToInteger (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_OPERAND_OBJECT **ResultDesc,
- UINT32 Flags)
-{
- ACPI_OPERAND_OBJECT *ReturnDesc;
- UINT8 *Pointer;
- ACPI_INTEGER Result;
- UINT32 i;
- UINT32 Count;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE_PTR (ExConvertToInteger, ObjDesc);
-
-
- switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
- {
- case ACPI_TYPE_INTEGER:
-
- /* No conversion necessary */
-
- *ResultDesc = ObjDesc;
- return_ACPI_STATUS (AE_OK);
-
- case ACPI_TYPE_BUFFER:
- case ACPI_TYPE_STRING:
-
- /* Note: Takes advantage of common buffer/string fields */
-
- Pointer = ObjDesc->Buffer.Pointer;
- Count = ObjDesc->Buffer.Length;
- break;
-
- default:
- return_ACPI_STATUS (AE_TYPE);
- }
-
- /*
- * Convert the buffer/string to an integer. Note that both buffers and
- * strings are treated as raw data - we don't convert ascii to hex for
- * strings.
- *
- * There are two terminating conditions for the loop:
- * 1) The size of an integer has been reached, or
- * 2) The end of the buffer or string has been reached
- */
- Result = 0;
-
- /* String conversion is different than Buffer conversion */
-
- switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
- {
- case ACPI_TYPE_STRING:
-
- /*
- * Convert string to an integer - for most cases, the string must be
- * hexadecimal as per the ACPI specification. The only exception (as
- * of ACPI 3.0) is that the ToInteger() operator allows both decimal
- * and hexadecimal strings (hex prefixed with "0x").
- */
- Status = AcpiUtStrtoul64 ((char *) Pointer, Flags, &Result);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- break;
-
-
- case ACPI_TYPE_BUFFER:
-
- /* Check for zero-length buffer */
-
- if (!Count)
- {
- return_ACPI_STATUS (AE_AML_BUFFER_LIMIT);
- }
-
- /* Transfer no more than an integer's worth of data */
-
- if (Count > AcpiGbl_IntegerByteWidth)
- {
- Count = AcpiGbl_IntegerByteWidth;
- }
-
- /*
- * Convert buffer to an integer - we simply grab enough raw data
- * from the buffer to fill an integer
- */
- for (i = 0; i < Count; i++)
- {
- /*
- * Get next byte and shift it into the Result.
- * Little endian is used, meaning that the first byte of the buffer
- * is the LSB of the integer
- */
- Result |= (((ACPI_INTEGER) Pointer[i]) << (i * 8));
- }
- break;
-
-
- default:
- /* No other types can get here */
- break;
- }
-
- /* Create a new integer */
-
- ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
- if (!ReturnDesc)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Converted value: %8.8X%8.8X\n",
- ACPI_FORMAT_UINT64 (Result)));
-
- /* Save the Result */
-
- ReturnDesc->Integer.Value = Result;
- AcpiExTruncateFor32bitTable (ReturnDesc);
- *ResultDesc = ReturnDesc;
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExConvertToBuffer
- *
- * PARAMETERS: ObjDesc - Object to be converted. Must be an
- * Integer, Buffer, or String
- * ResultDesc - Where the new buffer object is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Convert an ACPI Object to a Buffer
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExConvertToBuffer (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_OPERAND_OBJECT **ResultDesc)
-{
- ACPI_OPERAND_OBJECT *ReturnDesc;
- UINT8 *NewBuf;
-
-
- ACPI_FUNCTION_TRACE_PTR (ExConvertToBuffer, ObjDesc);
-
-
- switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
- {
- case ACPI_TYPE_BUFFER:
-
- /* No conversion necessary */
-
- *ResultDesc = ObjDesc;
- return_ACPI_STATUS (AE_OK);
-
-
- case ACPI_TYPE_INTEGER:
-
- /*
- * Create a new Buffer object.
- * Need enough space for one integer
- */
- ReturnDesc = AcpiUtCreateBufferObject (AcpiGbl_IntegerByteWidth);
- if (!ReturnDesc)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* Copy the integer to the buffer, LSB first */
-
- NewBuf = ReturnDesc->Buffer.Pointer;
- ACPI_MEMCPY (NewBuf,
- &ObjDesc->Integer.Value,
- AcpiGbl_IntegerByteWidth);
- break;
-
-
- case ACPI_TYPE_STRING:
-
- /*
- * Create a new Buffer object
- * Size will be the string length
- *
- * NOTE: Add one to the string length to include the null terminator.
- * The ACPI spec is unclear on this subject, but there is existing
- * ASL/AML code that depends on the null being transferred to the new
- * buffer.
- */
- ReturnDesc = AcpiUtCreateBufferObject (
- (ACPI_SIZE) ObjDesc->String.Length + 1);
- if (!ReturnDesc)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* Copy the string to the buffer */
-
- NewBuf = ReturnDesc->Buffer.Pointer;
- ACPI_STRNCPY ((char *) NewBuf, (char *) ObjDesc->String.Pointer,
- ObjDesc->String.Length);
- break;
-
-
- default:
- return_ACPI_STATUS (AE_TYPE);
- }
-
- /* Mark buffer initialized */
-
- ReturnDesc->Common.Flags |= AOPOBJ_DATA_VALID;
- *ResultDesc = ReturnDesc;
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExConvertToAscii
- *
- * PARAMETERS: Integer - Value to be converted
- * Base - ACPI_STRING_DECIMAL or ACPI_STRING_HEX
- * String - Where the string is returned
- * DataWidth - Size of data item to be converted, in bytes
- *
- * RETURN: Actual string length
- *
- * DESCRIPTION: Convert an ACPI Integer to a hex or decimal string
- *
- ******************************************************************************/
-
-static UINT32
-AcpiExConvertToAscii (
- ACPI_INTEGER Integer,
- UINT16 Base,
- UINT8 *String,
- UINT8 DataWidth)
-{
- ACPI_INTEGER Digit;
- ACPI_NATIVE_UINT i;
- ACPI_NATIVE_UINT j;
- ACPI_NATIVE_UINT k = 0;
- ACPI_NATIVE_UINT HexLength;
- ACPI_NATIVE_UINT DecimalLength;
- UINT32 Remainder;
- BOOLEAN SupressZeros;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- switch (Base)
- {
- case 10:
-
- /* Setup max length for the decimal number */
-
- switch (DataWidth)
- {
- case 1:
- DecimalLength = ACPI_MAX8_DECIMAL_DIGITS;
- break;
-
- case 4:
- DecimalLength = ACPI_MAX32_DECIMAL_DIGITS;
- break;
-
- case 8:
- default:
- DecimalLength = ACPI_MAX64_DECIMAL_DIGITS;
- break;
- }
-
- SupressZeros = TRUE; /* No leading zeros */
- Remainder = 0;
-
- for (i = DecimalLength; i > 0; i--)
- {
- /* Divide by nth factor of 10 */
-
- Digit = Integer;
- for (j = 0; j < i; j++)
- {
- (void) AcpiUtShortDivide (Digit, 10, &Digit, &Remainder);
- }
-
- /* Handle leading zeros */
-
- if (Remainder != 0)
- {
- SupressZeros = FALSE;
- }
-
- if (!SupressZeros)
- {
- String[k] = (UINT8) (ACPI_ASCII_ZERO + Remainder);
- k++;
- }
- }
- break;
-
- case 16:
-
- /* HexLength: 2 ascii hex chars per data byte */
-
- HexLength = (ACPI_NATIVE_UINT) ACPI_MUL_2 (DataWidth);
- for (i = 0, j = (HexLength-1); i < HexLength; i++, j--)
- {
- /* Get one hex digit, most significant digits first */
-
- String[k] = (UINT8) AcpiUtHexToAsciiChar (Integer, ACPI_MUL_4 (j));
- k++;
- }
- break;
-
- default:
- return (0);
- }
-
- /*
- * Since leading zeros are supressed, we must check for the case where
- * the integer equals 0
- *
- * Finally, null terminate the string and return the length
- */
- if (!k)
- {
- String [0] = ACPI_ASCII_ZERO;
- k = 1;
- }
-
- String [k] = 0;
- return ((UINT32) k);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExConvertToString
- *
- * PARAMETERS: ObjDesc - Object to be converted. Must be an
- * Integer, Buffer, or String
- * ResultDesc - Where the string object is returned
- * Type - String flags (base and conversion type)
- *
- * RETURN: Status
- *
- * DESCRIPTION: Convert an ACPI Object to a string
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExConvertToString (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_OPERAND_OBJECT **ResultDesc,
- UINT32 Type)
-{
- ACPI_OPERAND_OBJECT *ReturnDesc;
- UINT8 *NewBuf;
- UINT32 i;
- UINT32 StringLength = 0;
- UINT16 Base = 16;
- UINT8 Separator = ',';
-
-
- ACPI_FUNCTION_TRACE_PTR (ExConvertToString, ObjDesc);
-
-
- switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
- {
- case ACPI_TYPE_STRING:
-
- /* No conversion necessary */
-
- *ResultDesc = ObjDesc;
- return_ACPI_STATUS (AE_OK);
-
-
- case ACPI_TYPE_INTEGER:
-
- switch (Type)
- {
- case ACPI_EXPLICIT_CONVERT_DECIMAL:
-
- /* Make room for maximum decimal number */
-
- StringLength = ACPI_MAX_DECIMAL_DIGITS;
- Base = 10;
- break;
-
- default:
-
- /* Two hex string characters for each integer byte */
-
- StringLength = ACPI_MUL_2 (AcpiGbl_IntegerByteWidth);
- break;
- }
-
- /*
- * Create a new String
- * Need enough space for one ASCII integer (plus null terminator)
- */
- ReturnDesc = AcpiUtCreateStringObject ((ACPI_SIZE) StringLength);
- if (!ReturnDesc)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- NewBuf = ReturnDesc->Buffer.Pointer;
-
- /* Convert integer to string */
-
- StringLength = AcpiExConvertToAscii (ObjDesc->Integer.Value, Base,
- NewBuf, AcpiGbl_IntegerByteWidth);
-
- /* Null terminate at the correct place */
-
- ReturnDesc->String.Length = StringLength;
- NewBuf [StringLength] = 0;
- break;
-
-
- case ACPI_TYPE_BUFFER:
-
- /* Setup string length, base, and separator */
-
- switch (Type)
- {
- case ACPI_EXPLICIT_CONVERT_DECIMAL: /* Used by ToDecimalString */
- /*
- * From ACPI: "If Data is a buffer, it is converted to a string of
- * decimal values separated by commas."
- */
- Base = 10;
-
- /*
- * Calculate the final string length. Individual string values
- * are variable length (include separator for each)
- */
- for (i = 0; i < ObjDesc->Buffer.Length; i++)
- {
- if (ObjDesc->Buffer.Pointer[i] >= 100)
- {
- StringLength += 4;
- }
- else if (ObjDesc->Buffer.Pointer[i] >= 10)
- {
- StringLength += 3;
- }
- else
- {
- StringLength += 2;
- }
- }
- break;
-
- case ACPI_IMPLICIT_CONVERT_HEX:
- /*
- * From the ACPI spec:
- *"The entire contents of the buffer are converted to a string of
- * two-character hexadecimal numbers, each separated by a space."
- */
- Separator = ' ';
- StringLength = (ObjDesc->Buffer.Length * 3);
- break;
-
- case ACPI_EXPLICIT_CONVERT_HEX: /* Used by ToHexString */
- /*
- * From ACPI: "If Data is a buffer, it is converted to a string of
- * hexadecimal values separated by commas."
- */
- StringLength = (ObjDesc->Buffer.Length * 3);
- break;
-
- default:
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /*
- * Create a new string object and string buffer
- * (-1 because of extra separator included in StringLength from above)
- */
- ReturnDesc = AcpiUtCreateStringObject ((ACPI_SIZE) (StringLength - 1));
- if (!ReturnDesc)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- NewBuf = ReturnDesc->Buffer.Pointer;
-
- /*
- * Convert buffer bytes to hex or decimal values
- * (separated by commas or spaces)
- */
- for (i = 0; i < ObjDesc->Buffer.Length; i++)
- {
- NewBuf += AcpiExConvertToAscii (
- (ACPI_INTEGER) ObjDesc->Buffer.Pointer[i], Base,
- NewBuf, 1);
- *NewBuf++ = Separator; /* each separated by a comma or space */
- }
-
- /*
- * Null terminate the string
- * (overwrites final comma/space from above)
- */
- NewBuf--;
- *NewBuf = 0;
- break;
-
- default:
- return_ACPI_STATUS (AE_TYPE);
- }
-
- *ResultDesc = ReturnDesc;
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExConvertToTargetType
- *
- * PARAMETERS: DestinationType - Current type of the destination
- * SourceDesc - Source object to be converted.
- * ResultDesc - Where the converted object is returned
- * WalkState - Current method state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Implements "implicit conversion" rules for storing an object.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExConvertToTargetType (
- ACPI_OBJECT_TYPE DestinationType,
- ACPI_OPERAND_OBJECT *SourceDesc,
- ACPI_OPERAND_OBJECT **ResultDesc,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (ExConvertToTargetType);
-
-
- /* Default behavior */
-
- *ResultDesc = SourceDesc;
-
- /*
- * If required by the target,
- * perform implicit conversion on the source before we store it.
- */
- switch (GET_CURRENT_ARG_TYPE (WalkState->OpInfo->RuntimeArgs))
- {
- case ARGI_SIMPLE_TARGET:
- case ARGI_FIXED_TARGET:
- case ARGI_INTEGER_REF: /* Handles Increment, Decrement cases */
-
- switch (DestinationType)
- {
- case ACPI_TYPE_LOCAL_REGION_FIELD:
- /*
- * Named field can always handle conversions
- */
- break;
-
- default:
- /* No conversion allowed for these types */
-
- if (DestinationType != ACPI_GET_OBJECT_TYPE (SourceDesc))
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "Explicit operator, will store (%s) over existing type (%s)\n",
- AcpiUtGetObjectTypeName (SourceDesc),
- AcpiUtGetTypeName (DestinationType)));
- Status = AE_TYPE;
- }
- }
- break;
-
-
- case ARGI_TARGETREF:
-
- switch (DestinationType)
- {
- case ACPI_TYPE_INTEGER:
- case ACPI_TYPE_BUFFER_FIELD:
- case ACPI_TYPE_LOCAL_BANK_FIELD:
- case ACPI_TYPE_LOCAL_INDEX_FIELD:
- /*
- * These types require an Integer operand. We can convert
- * a Buffer or a String to an Integer if necessary.
- */
- Status = AcpiExConvertToInteger (SourceDesc, ResultDesc,
- 16);
- break;
-
-
- case ACPI_TYPE_STRING:
- /*
- * The operand must be a String. We can convert an
- * Integer or Buffer if necessary
- */
- Status = AcpiExConvertToString (SourceDesc, ResultDesc,
- ACPI_IMPLICIT_CONVERT_HEX);
- break;
-
-
- case ACPI_TYPE_BUFFER:
- /*
- * The operand must be a Buffer. We can convert an
- * Integer or String if necessary
- */
- Status = AcpiExConvertToBuffer (SourceDesc, ResultDesc);
- break;
-
-
- default:
- ACPI_ERROR ((AE_INFO, "Bad destination type during conversion: %X",
- DestinationType));
- Status = AE_AML_INTERNAL;
- break;
- }
- break;
-
-
- case ARGI_REFERENCE:
- /*
- * CreateXxxxField cases - we are storing the field object into the name
- */
- break;
-
-
- default:
- ACPI_ERROR ((AE_INFO,
- "Unknown Target type ID 0x%X AmlOpcode %X DestType %s",
- GET_CURRENT_ARG_TYPE (WalkState->OpInfo->RuntimeArgs),
- WalkState->Opcode, AcpiUtGetTypeName (DestinationType)));
- Status = AE_AML_INTERNAL;
- }
-
- /*
- * Source-to-Target conversion semantics:
- *
- * If conversion to the target type cannot be performed, then simply
- * overwrite the target with the new object and type.
- */
- if (Status == AE_TYPE)
- {
- Status = AE_OK;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
diff --git a/sys/contrib/dev/acpica/excreate.c b/sys/contrib/dev/acpica/excreate.c
deleted file mode 100644
index d237dab..0000000
--- a/sys/contrib/dev/acpica/excreate.c
+++ /dev/null
@@ -1,737 +0,0 @@
-/******************************************************************************
- *
- * Module Name: excreate - Named object creation
- * $Revision: 1.114 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __EXCREATE_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acevents.h>
-#include <contrib/dev/acpica/actables.h>
-
-
-#define _COMPONENT ACPI_EXECUTER
- ACPI_MODULE_NAME ("excreate")
-
-
-#ifndef ACPI_NO_METHOD_EXECUTION
-/*******************************************************************************
- *
- * FUNCTION: AcpiExCreateAlias
- *
- * PARAMETERS: WalkState - Current state, contains operands
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create a new named alias
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExCreateAlias (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_NAMESPACE_NODE *TargetNode;
- ACPI_NAMESPACE_NODE *AliasNode;
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (ExCreateAlias);
-
-
- /* Get the source/alias operands (both namespace nodes) */
-
- AliasNode = (ACPI_NAMESPACE_NODE *) WalkState->Operands[0];
- TargetNode = (ACPI_NAMESPACE_NODE *) WalkState->Operands[1];
-
- if ((TargetNode->Type == ACPI_TYPE_LOCAL_ALIAS) ||
- (TargetNode->Type == ACPI_TYPE_LOCAL_METHOD_ALIAS))
- {
- /*
- * Dereference an existing alias so that we don't create a chain
- * of aliases. With this code, we guarantee that an alias is
- * always exactly one level of indirection away from the
- * actual aliased name.
- */
- TargetNode = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, TargetNode->Object);
- }
-
- /*
- * For objects that can never change (i.e., the NS node will
- * permanently point to the same object), we can simply attach
- * the object to the new NS node. For other objects (such as
- * Integers, buffers, etc.), we have to point the Alias node
- * to the original Node.
- */
- switch (TargetNode->Type)
- {
- case ACPI_TYPE_INTEGER:
- case ACPI_TYPE_STRING:
- case ACPI_TYPE_BUFFER:
- case ACPI_TYPE_PACKAGE:
- case ACPI_TYPE_BUFFER_FIELD:
-
- /*
- * The new alias has the type ALIAS and points to the original
- * NS node, not the object itself. This is because for these
- * types, the object can change dynamically via a Store.
- */
- AliasNode->Type = ACPI_TYPE_LOCAL_ALIAS;
- AliasNode->Object = ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, TargetNode);
- break;
-
- case ACPI_TYPE_METHOD:
-
- /*
- * The new alias has the type ALIAS and points to the original
- * NS node, not the object itself. This is because for these
- * types, the object can change dynamically via a Store.
- */
- AliasNode->Type = ACPI_TYPE_LOCAL_METHOD_ALIAS;
- AliasNode->Object = ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, TargetNode);
- break;
-
- default:
-
- /* Attach the original source object to the new Alias Node */
-
- /*
- * The new alias assumes the type of the target, and it points
- * to the same object. The reference count of the object has an
- * additional reference to prevent deletion out from under either the
- * target node or the alias Node
- */
- Status = AcpiNsAttachObject (AliasNode,
- AcpiNsGetAttachedObject (TargetNode), TargetNode->Type);
- break;
- }
-
- /* Since both operands are Nodes, we don't need to delete them */
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExCreateEvent
- *
- * PARAMETERS: WalkState - Current state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create a new event object
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExCreateEvent (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status;
- ACPI_OPERAND_OBJECT *ObjDesc;
-
-
- ACPI_FUNCTION_TRACE (ExCreateEvent);
-
-
- ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_EVENT);
- if (!ObjDesc)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- /*
- * Create the actual OS semaphore, with zero initial units -- meaning
- * that the event is created in an unsignalled state
- */
- Status = AcpiOsCreateSemaphore (ACPI_NO_UNIT_LIMIT, 0,
- &ObjDesc->Event.OsSemaphore);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- /* Attach object to the Node */
-
- Status = AcpiNsAttachObject ((ACPI_NAMESPACE_NODE *) WalkState->Operands[0],
- ObjDesc, ACPI_TYPE_EVENT);
-
-Cleanup:
- /*
- * Remove local reference to the object (on error, will cause deletion
- * of both object and semaphore if present.)
- */
- AcpiUtRemoveReference (ObjDesc);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExCreateMutex
- *
- * PARAMETERS: WalkState - Current state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create a new mutex object
- *
- * Mutex (Name[0], SyncLevel[1])
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExCreateMutex (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_OPERAND_OBJECT *ObjDesc;
-
-
- ACPI_FUNCTION_TRACE_PTR (ExCreateMutex, ACPI_WALK_OPERANDS);
-
-
- /* Create the new mutex object */
-
- ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_MUTEX);
- if (!ObjDesc)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- /* Create the actual OS Mutex */
-
- Status = AcpiOsCreateMutex (&ObjDesc->Mutex.OsMutex);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- /* Init object and attach to NS node */
-
- ObjDesc->Mutex.SyncLevel = (UINT8) WalkState->Operands[1]->Integer.Value;
- ObjDesc->Mutex.Node = (ACPI_NAMESPACE_NODE *) WalkState->Operands[0];
-
- Status = AcpiNsAttachObject (ObjDesc->Mutex.Node, ObjDesc, ACPI_TYPE_MUTEX);
-
-
-Cleanup:
- /*
- * Remove local reference to the object (on error, will cause deletion
- * of both object and semaphore if present.)
- */
- AcpiUtRemoveReference (ObjDesc);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExCreateRegion
- *
- * PARAMETERS: AmlStart - Pointer to the region declaration AML
- * AmlLength - Max length of the declaration AML
- * RegionSpace - SpaceID for the region
- * WalkState - Current state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create a new operation region object
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExCreateRegion (
- UINT8 *AmlStart,
- UINT32 AmlLength,
- UINT8 RegionSpace,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_OPERAND_OBJECT *RegionObj2;
-
-
- ACPI_FUNCTION_TRACE (ExCreateRegion);
-
-
- /* Get the Namespace Node */
-
- Node = WalkState->Op->Common.Node;
-
- /*
- * If the region object is already attached to this node,
- * just return
- */
- if (AcpiNsGetAttachedObject (Node))
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- /*
- * Space ID must be one of the predefined IDs, or in the user-defined
- * range
- */
- if ((RegionSpace >= ACPI_NUM_PREDEFINED_REGIONS) &&
- (RegionSpace < ACPI_USER_REGION_BEGIN))
- {
- ACPI_ERROR ((AE_INFO, "Invalid AddressSpace type %X", RegionSpace));
- return_ACPI_STATUS (AE_AML_INVALID_SPACE_ID);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_LOAD, "Region Type - %s (%X)\n",
- AcpiUtGetRegionName (RegionSpace), RegionSpace));
-
- /* Create the region descriptor */
-
- ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_REGION);
- if (!ObjDesc)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- /*
- * Remember location in AML stream of address & length
- * operands since they need to be evaluated at run time.
- */
- RegionObj2 = ObjDesc->Common.NextObject;
- RegionObj2->Extra.AmlStart = AmlStart;
- RegionObj2->Extra.AmlLength = AmlLength;
-
- /* Init the region from the operands */
-
- ObjDesc->Region.SpaceId = RegionSpace;
- ObjDesc->Region.Address = 0;
- ObjDesc->Region.Length = 0;
- ObjDesc->Region.Node = Node;
-
- /* Install the new region object in the parent Node */
-
- Status = AcpiNsAttachObject (Node, ObjDesc, ACPI_TYPE_REGION);
-
-
-Cleanup:
-
- /* Remove local reference to the object */
-
- AcpiUtRemoveReference (ObjDesc);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExCreateTableRegion
- *
- * PARAMETERS: WalkState - Current state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create a new DataTableRegion object
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExCreateTableRegion (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status;
- ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0];
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_OPERAND_OBJECT *RegionObj2;
- ACPI_NATIVE_UINT TableIndex;
- ACPI_TABLE_HEADER *Table;
-
-
- ACPI_FUNCTION_TRACE (ExCreateTableRegion);
-
-
- /* Get the Node from the object stack */
-
- Node = WalkState->Op->Common.Node;
-
- /*
- * If the region object is already attached to this node,
- * just return
- */
- if (AcpiNsGetAttachedObject (Node))
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Find the ACPI table */
-
- Status = AcpiTbFindTable (Operand[1]->String.Pointer,
- Operand[2]->String.Pointer, Operand[3]->String.Pointer,
- &TableIndex);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Create the region descriptor */
-
- ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_REGION);
- if (!ObjDesc)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- RegionObj2 = ObjDesc->Common.NextObject;
- RegionObj2->Extra.RegionContext = NULL;
-
- Status = AcpiGetTableByIndex (TableIndex, &Table);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Init the region from the operands */
-
- ObjDesc->Region.SpaceId = REGION_DATA_TABLE;
- ObjDesc->Region.Address = (ACPI_PHYSICAL_ADDRESS) ACPI_TO_INTEGER (Table);
- ObjDesc->Region.Length = Table->Length;
- ObjDesc->Region.Node = Node;
- ObjDesc->Region.Flags = AOPOBJ_DATA_VALID;
-
- /* Install the new region object in the parent Node */
-
- Status = AcpiNsAttachObject (Node, ObjDesc, ACPI_TYPE_REGION);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- Status = AcpiEvInitializeRegion (ObjDesc, FALSE);
- if (ACPI_FAILURE (Status))
- {
- if (Status == AE_NOT_EXIST)
- {
- Status = AE_OK;
- }
- else
- {
- goto Cleanup;
- }
- }
-
- ObjDesc->Region.Flags |= AOPOBJ_SETUP_COMPLETE;
-
-
-Cleanup:
-
- /* Remove local reference to the object */
-
- AcpiUtRemoveReference (ObjDesc);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExCreateProcessor
- *
- * PARAMETERS: WalkState - Current state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create a new processor object and populate the fields
- *
- * Processor (Name[0], CpuID[1], PblockAddr[2], PblockLength[3])
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExCreateProcessor (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0];
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE_PTR (ExCreateProcessor, WalkState);
-
-
- /* Create the processor object */
-
- ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_PROCESSOR);
- if (!ObjDesc)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* Initialize the processor object from the operands */
-
- ObjDesc->Processor.ProcId = (UINT8) Operand[1]->Integer.Value;
- ObjDesc->Processor.Length = (UINT8) Operand[3]->Integer.Value;
- ObjDesc->Processor.Address = (ACPI_IO_ADDRESS) Operand[2]->Integer.Value;
-
- /* Install the processor object in the parent Node */
-
- Status = AcpiNsAttachObject ((ACPI_NAMESPACE_NODE *) Operand[0],
- ObjDesc, ACPI_TYPE_PROCESSOR);
-
- /* Remove local reference to the object */
-
- AcpiUtRemoveReference (ObjDesc);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExCreatePowerResource
- *
- * PARAMETERS: WalkState - Current state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create a new PowerResource object and populate the fields
- *
- * PowerResource (Name[0], SystemLevel[1], ResourceOrder[2])
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExCreatePowerResource (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0];
- ACPI_STATUS Status;
- ACPI_OPERAND_OBJECT *ObjDesc;
-
-
- ACPI_FUNCTION_TRACE_PTR (ExCreatePowerResource, WalkState);
-
-
- /* Create the power resource object */
-
- ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_POWER);
- if (!ObjDesc)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* Initialize the power object from the operands */
-
- ObjDesc->PowerResource.SystemLevel = (UINT8) Operand[1]->Integer.Value;
- ObjDesc->PowerResource.ResourceOrder = (UINT16) Operand[2]->Integer.Value;
-
- /* Install the power resource object in the parent Node */
-
- Status = AcpiNsAttachObject ((ACPI_NAMESPACE_NODE *) Operand[0],
- ObjDesc, ACPI_TYPE_POWER);
-
- /* Remove local reference to the object */
-
- AcpiUtRemoveReference (ObjDesc);
- return_ACPI_STATUS (Status);
-}
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExCreateMethod
- *
- * PARAMETERS: AmlStart - First byte of the method's AML
- * AmlLength - AML byte count for this method
- * WalkState - Current state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create a new method object
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExCreateMethod (
- UINT8 *AmlStart,
- UINT32 AmlLength,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0];
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_STATUS Status;
- UINT8 MethodFlags;
-
-
- ACPI_FUNCTION_TRACE_PTR (ExCreateMethod, WalkState);
-
-
- /* Create a new method object */
-
- ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_METHOD);
- if (!ObjDesc)
- {
- Status = AE_NO_MEMORY;
- goto Exit;
- }
-
- /* Save the method's AML pointer and length */
-
- ObjDesc->Method.AmlStart = AmlStart;
- ObjDesc->Method.AmlLength = AmlLength;
-
- /*
- * Disassemble the method flags. Split off the Arg Count
- * for efficiency
- */
- MethodFlags = (UINT8) Operand[1]->Integer.Value;
-
- ObjDesc->Method.MethodFlags = (UINT8) (MethodFlags & ~AML_METHOD_ARG_COUNT);
- ObjDesc->Method.ParamCount = (UINT8) (MethodFlags & AML_METHOD_ARG_COUNT);
-
- /*
- * Get the SyncLevel. If method is serialized, a mutex will be
- * created for this method when it is parsed.
- */
- if (MethodFlags & AML_METHOD_SERIALIZED)
- {
- /*
- * ACPI 1.0: SyncLevel = 0
- * ACPI 2.0: SyncLevel = SyncLevel in method declaration
- */
- ObjDesc->Method.SyncLevel = (UINT8)
- ((MethodFlags & AML_METHOD_SYNCH_LEVEL) >> 4);
- }
-
- /* Attach the new object to the method Node */
-
- Status = AcpiNsAttachObject ((ACPI_NAMESPACE_NODE *) Operand[0],
- ObjDesc, ACPI_TYPE_METHOD);
-
- /* Remove local reference to the object */
-
- AcpiUtRemoveReference (ObjDesc);
-
-Exit:
- /* Remove a reference to the operand */
-
- AcpiUtRemoveReference (Operand[1]);
- return_ACPI_STATUS (Status);
-}
-
-
diff --git a/sys/contrib/dev/acpica/exdump.c b/sys/contrib/dev/acpica/exdump.c
deleted file mode 100644
index c7d26ae..0000000
--- a/sys/contrib/dev/acpica/exdump.c
+++ /dev/null
@@ -1,1217 +0,0 @@
-/******************************************************************************
- *
- * Module Name: exdump - Interpreter debug output routines
- * $Revision: 1.202 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __EXDUMP_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acparser.h>
-
-#define _COMPONENT ACPI_EXECUTER
- ACPI_MODULE_NAME ("exdump")
-
-/*
- * The following routines are used for debug output only
- */
-#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
-
-/* Local prototypes */
-
-static void
-AcpiExOutString (
- char *Title,
- char *Value);
-
-static void
-AcpiExOutPointer (
- char *Title,
- void *Value);
-
-static void
-AcpiExDumpObject (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_EXDUMP_INFO *Info);
-
-static void
-AcpiExDumpReferenceObj (
- ACPI_OPERAND_OBJECT *ObjDesc);
-
-static void
-AcpiExDumpPackageObj (
- ACPI_OPERAND_OBJECT *ObjDesc,
- UINT32 Level,
- UINT32 Index);
-
-
-/*******************************************************************************
- *
- * Object Descriptor info tables
- *
- * Note: The first table entry must be an INIT opcode and must contain
- * the table length (number of table entries)
- *
- ******************************************************************************/
-
-static ACPI_EXDUMP_INFO AcpiExDumpInteger[2] =
-{
- {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpInteger), NULL},
- {ACPI_EXD_UINT64, ACPI_EXD_OFFSET (Integer.Value), "Value"}
-};
-
-static ACPI_EXDUMP_INFO AcpiExDumpString[4] =
-{
- {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpString), NULL},
- {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (String.Length), "Length"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (String.Pointer), "Pointer"},
- {ACPI_EXD_STRING, 0, NULL}
-};
-
-static ACPI_EXDUMP_INFO AcpiExDumpBuffer[5] =
-{
- {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpBuffer), NULL},
- {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (Buffer.Length), "Length"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Buffer.Pointer), "Pointer"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Buffer.Node), "Parent Node"},
- {ACPI_EXD_BUFFER, 0, NULL}
-};
-
-static ACPI_EXDUMP_INFO AcpiExDumpPackage[5] =
-{
- {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpPackage), NULL},
- {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Package.Flags), "Flags"},
- {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (Package.Count), "Elements"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Package.Elements), "Element List"},
- {ACPI_EXD_PACKAGE, 0, NULL}
-};
-
-static ACPI_EXDUMP_INFO AcpiExDumpDevice[4] =
-{
- {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpDevice), NULL},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Device.Handler), "Handler"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Device.SystemNotify), "System Notify"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Device.DeviceNotify), "Device Notify"}
-};
-
-static ACPI_EXDUMP_INFO AcpiExDumpEvent[2] =
-{
- {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpEvent), NULL},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Event.OsSemaphore), "OsSemaphore"}
-};
-
-static ACPI_EXDUMP_INFO AcpiExDumpMethod[8] =
-{
- {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpMethod), NULL},
- {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Method.ParamCount), "ParamCount"},
- {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Method.SyncLevel), "Sync Level"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Method.Mutex), "Mutex"},
- {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Method.OwnerId), "Owner Id"},
- {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Method.ThreadCount), "Thread Count"},
- {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (Method.AmlLength), "Aml Length"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Method.AmlStart), "Aml Start"}
-};
-
-static ACPI_EXDUMP_INFO AcpiExDumpMutex[5] =
-{
- {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpMutex), NULL},
- {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Mutex.SyncLevel), "Sync Level"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Mutex.OwnerThread), "Owner Thread"},
- {ACPI_EXD_UINT16, ACPI_EXD_OFFSET (Mutex.AcquisitionDepth), "Acquire Depth"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Mutex.OsMutex), "OsMutex"}
-};
-
-static ACPI_EXDUMP_INFO AcpiExDumpRegion[7] =
-{
- {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpRegion), NULL},
- {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Region.SpaceId), "Space Id"},
- {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Region.Flags), "Flags"},
- {ACPI_EXD_ADDRESS, ACPI_EXD_OFFSET (Region.Address), "Address"},
- {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (Region.Length), "Length"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Region.Handler), "Handler"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Region.Next), "Next"}
-};
-
-static ACPI_EXDUMP_INFO AcpiExDumpPower[5] =
-{
- {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpPower), NULL},
- {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (PowerResource.SystemLevel), "System Level"},
- {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (PowerResource.ResourceOrder), "Resource Order"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (PowerResource.SystemNotify), "System Notify"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (PowerResource.DeviceNotify), "Device Notify"}
-};
-
-static ACPI_EXDUMP_INFO AcpiExDumpProcessor[7] =
-{
- {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpProcessor), NULL},
- {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Processor.ProcId), "Processor ID"},
- {ACPI_EXD_UINT8 , ACPI_EXD_OFFSET (Processor.Length), "Length"},
- {ACPI_EXD_ADDRESS, ACPI_EXD_OFFSET (Processor.Address), "Address"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Processor.SystemNotify), "System Notify"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Processor.DeviceNotify), "Device Notify"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Processor.Handler), "Handler"}
-};
-
-static ACPI_EXDUMP_INFO AcpiExDumpThermal[4] =
-{
- {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpThermal), NULL},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (ThermalZone.SystemNotify), "System Notify"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (ThermalZone.DeviceNotify), "Device Notify"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (ThermalZone.Handler), "Handler"}
-};
-
-static ACPI_EXDUMP_INFO AcpiExDumpBufferField[3] =
-{
- {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpBufferField), NULL},
- {ACPI_EXD_FIELD, 0, NULL},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (BufferField.BufferObj), "Buffer Object"}
-};
-
-static ACPI_EXDUMP_INFO AcpiExDumpRegionField[3] =
-{
- {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpRegionField), NULL},
- {ACPI_EXD_FIELD, 0, NULL},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Field.RegionObj), "Region Object"}
-};
-
-static ACPI_EXDUMP_INFO AcpiExDumpBankField[5] =
-{
- {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpBankField), NULL},
- {ACPI_EXD_FIELD, 0, NULL},
- {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (BankField.Value), "Value"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (BankField.RegionObj), "Region Object"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (BankField.BankObj), "Bank Object"}
-};
-
-static ACPI_EXDUMP_INFO AcpiExDumpIndexField[5] =
-{
- {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpBankField), NULL},
- {ACPI_EXD_FIELD, 0, NULL},
- {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (IndexField.Value), "Value"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (IndexField.IndexObj), "Index Object"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (IndexField.DataObj), "Data Object"}
-};
-
-
-static ACPI_EXDUMP_INFO AcpiExDumpReference[7] =
-{
- {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpReference), NULL},
- {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Reference.TargetType), "Target Type"},
- {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (Reference.Offset), "Offset"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Reference.Object), "Object Desc"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Reference.Node), "Node"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Reference.Where), "Where"},
- {ACPI_EXD_REFERENCE,0, NULL}
-};
-
-static ACPI_EXDUMP_INFO AcpiExDumpAddressHandler[6] =
-{
- {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpAddressHandler), NULL},
- {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (AddressSpace.SpaceId), "Space Id"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (AddressSpace.Next), "Next"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (AddressSpace.RegionList), "Region List"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (AddressSpace.Node), "Node"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (AddressSpace.Context), "Context"}
-};
-
-static ACPI_EXDUMP_INFO AcpiExDumpNotify[3] =
-{
- {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpNotify), NULL},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Notify.Node), "Node"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Notify.Context), "Context"}
-};
-
-
-/* Miscellaneous tables */
-
-static ACPI_EXDUMP_INFO AcpiExDumpCommon[4] =
-{
- {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpCommon), NULL},
- {ACPI_EXD_TYPE , 0, NULL},
- {ACPI_EXD_UINT16, ACPI_EXD_OFFSET (Common.ReferenceCount), "Reference Count"},
- {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Common.Flags), "Flags"}
-};
-
-
-static ACPI_EXDUMP_INFO AcpiExDumpFieldCommon[7] =
-{
- {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpFieldCommon), NULL},
- {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (CommonField.FieldFlags), "Field Flags"},
- {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (CommonField.AccessByteWidth), "Access Byte Width"},
- {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (CommonField.BitLength), "Bit Length"},
- {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (CommonField.StartFieldBitOffset),"Field Bit Offset"},
- {ACPI_EXD_UINT32, ACPI_EXD_OFFSET (CommonField.BaseByteOffset), "Base Byte Offset"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (CommonField.Node), "Parent Node"}
-};
-
-static ACPI_EXDUMP_INFO AcpiExDumpNode[5] =
-{
- {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpNode), NULL},
- {ACPI_EXD_UINT8, ACPI_EXD_NSOFFSET (Flags), "Flags"},
- {ACPI_EXD_UINT8, ACPI_EXD_NSOFFSET (OwnerId), "Owner Id"},
- {ACPI_EXD_POINTER, ACPI_EXD_NSOFFSET (Child), "Child List"},
- {ACPI_EXD_POINTER, ACPI_EXD_NSOFFSET (Peer), "Next Peer"}
-};
-
-
-/* Dispatch table, indexed by object type */
-
-static ACPI_EXDUMP_INFO *AcpiExDumpInfo[] =
-{
- NULL,
- AcpiExDumpInteger,
- AcpiExDumpString,
- AcpiExDumpBuffer,
- AcpiExDumpPackage,
- NULL,
- AcpiExDumpDevice,
- AcpiExDumpEvent,
- AcpiExDumpMethod,
- AcpiExDumpMutex,
- AcpiExDumpRegion,
- AcpiExDumpPower,
- AcpiExDumpProcessor,
- AcpiExDumpThermal,
- AcpiExDumpBufferField,
- NULL,
- NULL,
- AcpiExDumpRegionField,
- AcpiExDumpBankField,
- AcpiExDumpIndexField,
- AcpiExDumpReference,
- NULL,
- NULL,
- AcpiExDumpNotify,
- AcpiExDumpAddressHandler,
- NULL,
- NULL,
- NULL
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExDumpObject
- *
- * PARAMETERS: ObjDesc - Descriptor to dump
- * Info - Info table corresponding to this object
- * type
- *
- * RETURN: None
- *
- * DESCRIPTION: Walk the info table for this object
- *
- ******************************************************************************/
-
-static void
-AcpiExDumpObject (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_EXDUMP_INFO *Info)
-{
- UINT8 *Target;
- char *Name;
- UINT8 Count;
-
-
- if (!Info)
- {
- AcpiOsPrintf (
- "ExDumpObject: Display not implemented for object type %s\n",
- AcpiUtGetObjectTypeName (ObjDesc));
- return;
- }
-
- /* First table entry must contain the table length (# of table entries) */
-
- Count = Info->Offset;
-
- while (Count)
- {
- Target = ACPI_ADD_PTR (UINT8, ObjDesc, Info->Offset);
- Name = Info->Name;
-
- switch (Info->Opcode)
- {
- case ACPI_EXD_INIT:
- break;
-
- case ACPI_EXD_TYPE:
- AcpiExOutString ("Type", AcpiUtGetObjectTypeName (ObjDesc));
- break;
-
- case ACPI_EXD_UINT8:
-
- AcpiOsPrintf ("%20s : %2.2X\n", Name, *Target);
- break;
-
- case ACPI_EXD_UINT16:
-
- AcpiOsPrintf ("%20s : %4.4X\n", Name, ACPI_GET16 (Target));
- break;
-
- case ACPI_EXD_UINT32:
-
- AcpiOsPrintf ("%20s : %8.8X\n", Name, ACPI_GET32 (Target));
- break;
-
- case ACPI_EXD_UINT64:
-
- AcpiOsPrintf ("%20s : %8.8X%8.8X\n", "Value",
- ACPI_FORMAT_UINT64 (ACPI_GET64 (Target)));
- break;
-
- case ACPI_EXD_POINTER:
- case ACPI_EXD_ADDRESS:
-
- AcpiExOutPointer (Name, *ACPI_CAST_PTR (void *, Target));
- break;
-
- case ACPI_EXD_STRING:
-
- AcpiUtPrintString (ObjDesc->String.Pointer, ACPI_UINT8_MAX);
- AcpiOsPrintf ("\n");
- break;
-
- case ACPI_EXD_BUFFER:
-
- ACPI_DUMP_BUFFER (ObjDesc->Buffer.Pointer, ObjDesc->Buffer.Length);
- break;
-
- case ACPI_EXD_PACKAGE:
-
- /* Dump the package contents */
-
- AcpiOsPrintf ("\nPackage Contents:\n");
- AcpiExDumpPackageObj (ObjDesc, 0, 0);
- break;
-
- case ACPI_EXD_FIELD:
-
- AcpiExDumpObject (ObjDesc, AcpiExDumpFieldCommon);
- break;
-
- case ACPI_EXD_REFERENCE:
-
- AcpiExOutString ("Opcode",
- (AcpiPsGetOpcodeInfo (ObjDesc->Reference.Opcode))->Name);
- AcpiExDumpReferenceObj (ObjDesc);
- break;
-
- default:
- AcpiOsPrintf ("**** Invalid table opcode [%X] ****\n", Info->Opcode);
- return;
- }
-
- Info++;
- Count--;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExDumpOperand
- *
- * PARAMETERS: *ObjDesc - Pointer to entry to be dumped
- * Depth - Current nesting depth
- *
- * RETURN: None
- *
- * DESCRIPTION: Dump an operand object
- *
- ******************************************************************************/
-
-void
-AcpiExDumpOperand (
- ACPI_OPERAND_OBJECT *ObjDesc,
- UINT32 Depth)
-{
- UINT32 Length;
- UINT32 Index;
-
-
- ACPI_FUNCTION_NAME (ExDumpOperand)
-
-
- if (!((ACPI_LV_EXEC & AcpiDbgLevel) && (_COMPONENT & AcpiDbgLayer)))
- {
- return;
- }
-
- if (!ObjDesc)
- {
- /* This could be a null element of a package */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Null Object Descriptor\n"));
- return;
- }
-
- if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) == ACPI_DESC_TYPE_NAMED)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%p Namespace Node: ", ObjDesc));
- ACPI_DUMP_ENTRY (ObjDesc, ACPI_LV_EXEC);
- return;
- }
-
- if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) != ACPI_DESC_TYPE_OPERAND)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "%p is not a node or operand object: [%s]\n",
- ObjDesc, AcpiUtGetDescriptorName (ObjDesc)));
- ACPI_DUMP_BUFFER (ObjDesc, sizeof (ACPI_OPERAND_OBJECT));
- return;
- }
-
- /* ObjDesc is a valid object */
-
- if (Depth > 0)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%*s[%u] %p ",
- Depth, " ", Depth, ObjDesc));
- }
- else
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%p ", ObjDesc));
- }
-
- /* Decode object type */
-
- switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
- {
- case ACPI_TYPE_LOCAL_REFERENCE:
-
- switch (ObjDesc->Reference.Opcode)
- {
- case AML_DEBUG_OP:
-
- AcpiOsPrintf ("Reference: Debug\n");
- break;
-
-
- case AML_INDEX_OP:
-
- AcpiOsPrintf ("Reference: Index %p\n",
- ObjDesc->Reference.Object);
- break;
-
-
- case AML_REF_OF_OP:
-
- AcpiOsPrintf ("Reference: (RefOf) %p\n",
- ObjDesc->Reference.Object);
- break;
-
-
- case AML_ARG_OP:
-
- AcpiOsPrintf ("Reference: Arg%d",
- ObjDesc->Reference.Offset);
-
- if (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_INTEGER)
- {
- /* Value is an Integer */
-
- AcpiOsPrintf (" value is [%8.8X%8.8x]",
- ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
- }
-
- AcpiOsPrintf ("\n");
- break;
-
-
- case AML_LOCAL_OP:
-
- AcpiOsPrintf ("Reference: Local%d",
- ObjDesc->Reference.Offset);
-
- if (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_INTEGER)
- {
-
- /* Value is an Integer */
-
- AcpiOsPrintf (" value is [%8.8X%8.8x]",
- ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
- }
-
- AcpiOsPrintf ("\n");
- break;
-
-
- case AML_INT_NAMEPATH_OP:
-
- AcpiOsPrintf ("Reference.Node->Name %X\n",
- ObjDesc->Reference.Node->Name.Integer);
- break;
-
-
- default:
-
- /* Unknown opcode */
-
- AcpiOsPrintf ("Unknown Reference opcode=%X\n",
- ObjDesc->Reference.Opcode);
- break;
-
- }
- break;
-
-
- case ACPI_TYPE_BUFFER:
-
- AcpiOsPrintf ("Buffer len %X @ %p\n",
- ObjDesc->Buffer.Length, ObjDesc->Buffer.Pointer);
-
- Length = ObjDesc->Buffer.Length;
- if (Length > 64)
- {
- Length = 64;
- }
-
- /* Debug only -- dump the buffer contents */
-
- if (ObjDesc->Buffer.Pointer)
- {
- AcpiOsPrintf ("Buffer Contents: ");
-
- for (Index = 0; Index < Length; Index++)
- {
- AcpiOsPrintf (" %02x", ObjDesc->Buffer.Pointer[Index]);
- }
- AcpiOsPrintf ("\n");
- }
- break;
-
-
- case ACPI_TYPE_INTEGER:
-
- AcpiOsPrintf ("Integer %8.8X%8.8X\n",
- ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
- break;
-
-
- case ACPI_TYPE_PACKAGE:
-
- AcpiOsPrintf ("Package [Len %X] ElementArray %p\n",
- ObjDesc->Package.Count, ObjDesc->Package.Elements);
-
- /*
- * If elements exist, package element pointer is valid,
- * and debug_level exceeds 1, dump package's elements.
- */
- if (ObjDesc->Package.Count &&
- ObjDesc->Package.Elements &&
- AcpiDbgLevel > 1)
- {
- for (Index = 0; Index < ObjDesc->Package.Count; Index++)
- {
- AcpiExDumpOperand (ObjDesc->Package.Elements[Index], Depth+1);
- }
- }
- break;
-
-
- case ACPI_TYPE_REGION:
-
- AcpiOsPrintf ("Region %s (%X)",
- AcpiUtGetRegionName (ObjDesc->Region.SpaceId),
- ObjDesc->Region.SpaceId);
-
- /*
- * If the address and length have not been evaluated,
- * don't print them.
- */
- if (!(ObjDesc->Region.Flags & AOPOBJ_DATA_VALID))
- {
- AcpiOsPrintf ("\n");
- }
- else
- {
- AcpiOsPrintf (" base %8.8X%8.8X Length %X\n",
- ACPI_FORMAT_UINT64 (ObjDesc->Region.Address),
- ObjDesc->Region.Length);
- }
- break;
-
-
- case ACPI_TYPE_STRING:
-
- AcpiOsPrintf ("String length %X @ %p ",
- ObjDesc->String.Length,
- ObjDesc->String.Pointer);
-
- AcpiUtPrintString (ObjDesc->String.Pointer, ACPI_UINT8_MAX);
- AcpiOsPrintf ("\n");
- break;
-
-
- case ACPI_TYPE_LOCAL_BANK_FIELD:
-
- AcpiOsPrintf ("BankField\n");
- break;
-
-
- case ACPI_TYPE_LOCAL_REGION_FIELD:
-
- AcpiOsPrintf (
- "RegionField: Bits=%X AccWidth=%X Lock=%X Update=%X at byte=%X bit=%X of below:\n",
- ObjDesc->Field.BitLength,
- ObjDesc->Field.AccessByteWidth,
- ObjDesc->Field.FieldFlags & AML_FIELD_LOCK_RULE_MASK,
- ObjDesc->Field.FieldFlags & AML_FIELD_UPDATE_RULE_MASK,
- ObjDesc->Field.BaseByteOffset,
- ObjDesc->Field.StartFieldBitOffset);
-
- AcpiExDumpOperand (ObjDesc->Field.RegionObj, Depth+1);
- break;
-
-
- case ACPI_TYPE_LOCAL_INDEX_FIELD:
-
- AcpiOsPrintf ("IndexField\n");
- break;
-
-
- case ACPI_TYPE_BUFFER_FIELD:
-
- AcpiOsPrintf (
- "BufferField: %X bits at byte %X bit %X of\n",
- ObjDesc->BufferField.BitLength,
- ObjDesc->BufferField.BaseByteOffset,
- ObjDesc->BufferField.StartFieldBitOffset);
-
- if (!ObjDesc->BufferField.BufferObj)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "*NULL*\n"));
- }
- else if (ACPI_GET_OBJECT_TYPE (ObjDesc->BufferField.BufferObj) !=
- ACPI_TYPE_BUFFER)
- {
- AcpiOsPrintf ("*not a Buffer*\n");
- }
- else
- {
- AcpiExDumpOperand (ObjDesc->BufferField.BufferObj, Depth+1);
- }
- break;
-
-
- case ACPI_TYPE_EVENT:
-
- AcpiOsPrintf ("Event\n");
- break;
-
-
- case ACPI_TYPE_METHOD:
-
- AcpiOsPrintf ("Method(%X) @ %p:%X\n",
- ObjDesc->Method.ParamCount,
- ObjDesc->Method.AmlStart,
- ObjDesc->Method.AmlLength);
- break;
-
-
- case ACPI_TYPE_MUTEX:
-
- AcpiOsPrintf ("Mutex\n");
- break;
-
-
- case ACPI_TYPE_DEVICE:
-
- AcpiOsPrintf ("Device\n");
- break;
-
-
- case ACPI_TYPE_POWER:
-
- AcpiOsPrintf ("Power\n");
- break;
-
-
- case ACPI_TYPE_PROCESSOR:
-
- AcpiOsPrintf ("Processor\n");
- break;
-
-
- case ACPI_TYPE_THERMAL:
-
- AcpiOsPrintf ("Thermal\n");
- break;
-
-
- default:
- /* Unknown Type */
-
- AcpiOsPrintf ("Unknown Type %X\n", ACPI_GET_OBJECT_TYPE (ObjDesc));
- break;
- }
-
- return;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExDumpOperands
- *
- * PARAMETERS: Operands - Operand list
- * InterpreterMode - Load or Exec
- * Ident - Identification
- * NumLevels - # of stack entries to dump above line
- * Note - Output notation
- * ModuleName - Caller's module name
- * LineNumber - Caller's invocation line number
- *
- * DESCRIPTION: Dump the object stack
- *
- ******************************************************************************/
-
-void
-AcpiExDumpOperands (
- ACPI_OPERAND_OBJECT **Operands,
- ACPI_INTERPRETER_MODE InterpreterMode,
- char *Ident,
- UINT32 NumLevels,
- char *Note,
- char *ModuleName,
- UINT32 LineNumber)
-{
- ACPI_NATIVE_UINT i;
-
-
- ACPI_FUNCTION_NAME (ExDumpOperands);
-
-
- if (!Ident)
- {
- Ident = "?";
- }
-
- if (!Note)
- {
- Note = "?";
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "************* Operand Stack Contents (Opcode [%s], %d Operands)\n",
- Ident, NumLevels));
-
- if (NumLevels == 0)
- {
- NumLevels = 1;
- }
-
- /* Dump the operand stack starting at the top */
-
- for (i = 0; NumLevels > 0; i--, NumLevels--)
- {
- AcpiExDumpOperand (Operands[i], 0);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "************* Operand Stack dump from %s(%d), %s\n",
- ModuleName, LineNumber, Note));
- return;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExOut* functions
- *
- * PARAMETERS: Title - Descriptive text
- * Value - Value to be displayed
- *
- * DESCRIPTION: Object dump output formatting functions. These functions
- * reduce the number of format strings required and keeps them
- * all in one place for easy modification.
- *
- ******************************************************************************/
-
-static void
-AcpiExOutString (
- char *Title,
- char *Value)
-{
- AcpiOsPrintf ("%20s : %s\n", Title, Value);
-}
-
-static void
-AcpiExOutPointer (
- char *Title,
- void *Value)
-{
- AcpiOsPrintf ("%20s : %p\n", Title, Value);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExDumpNamespaceNode
- *
- * PARAMETERS: Node - Descriptor to dump
- * Flags - Force display if TRUE
- *
- * DESCRIPTION: Dumps the members of the given.Node
- *
- ******************************************************************************/
-
-void
-AcpiExDumpNamespaceNode (
- ACPI_NAMESPACE_NODE *Node,
- UINT32 Flags)
-{
-
- ACPI_FUNCTION_ENTRY ();
-
-
- if (!Flags)
- {
- if (!((ACPI_LV_OBJECTS & AcpiDbgLevel) && (_COMPONENT & AcpiDbgLayer)))
- {
- return;
- }
- }
-
- AcpiOsPrintf ("%20s : %4.4s\n", "Name", AcpiUtGetNodeName (Node));
- AcpiExOutString ("Type", AcpiUtGetTypeName (Node->Type));
- AcpiExOutPointer ("Attached Object", AcpiNsGetAttachedObject (Node));
- AcpiExOutPointer ("Parent", AcpiNsGetParentNode (Node));
-
- AcpiExDumpObject (ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, Node),
- AcpiExDumpNode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExDumpReferenceObj
- *
- * PARAMETERS: Object - Descriptor to dump
- *
- * DESCRIPTION: Dumps a reference object
- *
- ******************************************************************************/
-
-static void
-AcpiExDumpReferenceObj (
- ACPI_OPERAND_OBJECT *ObjDesc)
-{
- ACPI_BUFFER RetBuf;
- ACPI_STATUS Status;
-
-
- RetBuf.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
-
- if (ObjDesc->Reference.Opcode == AML_INT_NAMEPATH_OP)
- {
- AcpiOsPrintf ("Named Object %p ", ObjDesc->Reference.Node);
-
- Status = AcpiNsHandleToPathname (ObjDesc->Reference.Node, &RetBuf);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("Could not convert name to pathname\n");
- }
- else
- {
- AcpiOsPrintf ("%s\n", (char *) RetBuf.Pointer);
- ACPI_FREE (RetBuf.Pointer);
- }
- }
- else if (ObjDesc->Reference.Object)
- {
- AcpiOsPrintf ("\nReferenced Object: %p\n", ObjDesc->Reference.Object);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExDumpPackageObj
- *
- * PARAMETERS: ObjDesc - Descriptor to dump
- * Level - Indentation Level
- * Index - Package index for this object
- *
- * DESCRIPTION: Dumps the elements of the package
- *
- ******************************************************************************/
-
-static void
-AcpiExDumpPackageObj (
- ACPI_OPERAND_OBJECT *ObjDesc,
- UINT32 Level,
- UINT32 Index)
-{
- UINT32 i;
-
-
- /* Indentation and index output */
-
- if (Level > 0)
- {
- for (i = 0; i < Level; i++)
- {
- AcpiOsPrintf (" ");
- }
-
- AcpiOsPrintf ("[%.2d] ", Index);
- }
-
- AcpiOsPrintf ("%p ", ObjDesc);
-
- /* Null package elements are allowed */
-
- if (!ObjDesc)
- {
- AcpiOsPrintf ("[Null Object]\n");
- return;
- }
-
- /* Packages may only contain a few object types */
-
- switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
- {
- case ACPI_TYPE_INTEGER:
-
- AcpiOsPrintf ("[Integer] = %8.8X%8.8X\n",
- ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
- break;
-
-
- case ACPI_TYPE_STRING:
-
- AcpiOsPrintf ("[String] Value: ");
- for (i = 0; i < ObjDesc->String.Length; i++)
- {
- AcpiOsPrintf ("%c", ObjDesc->String.Pointer[i]);
- }
- AcpiOsPrintf ("\n");
- break;
-
-
- case ACPI_TYPE_BUFFER:
-
- AcpiOsPrintf ("[Buffer] Length %.2X = ", ObjDesc->Buffer.Length);
- if (ObjDesc->Buffer.Length)
- {
- AcpiUtDumpBuffer (ACPI_CAST_PTR (UINT8, ObjDesc->Buffer.Pointer),
- ObjDesc->Buffer.Length, DB_DWORD_DISPLAY, _COMPONENT);
- }
- else
- {
- AcpiOsPrintf ("\n");
- }
- break;
-
-
- case ACPI_TYPE_PACKAGE:
-
- AcpiOsPrintf ("[Package] Contains %d Elements:\n",
- ObjDesc->Package.Count);
-
- for (i = 0; i < ObjDesc->Package.Count; i++)
- {
- AcpiExDumpPackageObj (ObjDesc->Package.Elements[i], Level+1, i);
- }
- break;
-
-
- case ACPI_TYPE_LOCAL_REFERENCE:
-
- AcpiOsPrintf ("[Object Reference] ");
- AcpiExDumpReferenceObj (ObjDesc);
- break;
-
-
- default:
-
- AcpiOsPrintf ("[Unknown Type] %X\n", ACPI_GET_OBJECT_TYPE (ObjDesc));
- break;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExDumpObjectDescriptor
- *
- * PARAMETERS: ObjDesc - Descriptor to dump
- * Flags - Force display if TRUE
- *
- * DESCRIPTION: Dumps the members of the object descriptor given.
- *
- ******************************************************************************/
-
-void
-AcpiExDumpObjectDescriptor (
- ACPI_OPERAND_OBJECT *ObjDesc,
- UINT32 Flags)
-{
- ACPI_FUNCTION_TRACE (ExDumpObjectDescriptor);
-
-
- if (!ObjDesc)
- {
- return_VOID;
- }
-
- if (!Flags)
- {
- if (!((ACPI_LV_OBJECTS & AcpiDbgLevel) && (_COMPONENT & AcpiDbgLayer)))
- {
- return_VOID;
- }
- }
-
- if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) == ACPI_DESC_TYPE_NAMED)
- {
- AcpiExDumpNamespaceNode ((ACPI_NAMESPACE_NODE *) ObjDesc, Flags);
-
- AcpiOsPrintf ("\nAttached Object (%p):\n",
- ((ACPI_NAMESPACE_NODE *) ObjDesc)->Object);
-
- AcpiExDumpObjectDescriptor (
- ((ACPI_NAMESPACE_NODE *) ObjDesc)->Object, Flags);
- return_VOID;
- }
-
- if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) != ACPI_DESC_TYPE_OPERAND)
- {
- AcpiOsPrintf (
- "ExDumpObjectDescriptor: %p is not an ACPI operand object: [%s]\n",
- ObjDesc, AcpiUtGetDescriptorName (ObjDesc));
- return_VOID;
- }
-
- if (ObjDesc->Common.Type > ACPI_TYPE_NS_NODE_MAX)
- {
- return_VOID;
- }
-
- /* Common Fields */
-
- AcpiExDumpObject (ObjDesc, AcpiExDumpCommon);
-
- /* Object-specific fields */
-
- AcpiExDumpObject (ObjDesc, AcpiExDumpInfo[ObjDesc->Common.Type]);
- return_VOID;
-}
-
-#endif
-
diff --git a/sys/contrib/dev/acpica/exfield.c b/sys/contrib/dev/acpica/exfield.c
deleted file mode 100644
index c4cbf23..0000000
--- a/sys/contrib/dev/acpica/exfield.c
+++ /dev/null
@@ -1,475 +0,0 @@
-/******************************************************************************
- *
- * Module Name: exfield - ACPI AML (p-code) execution - field manipulation
- * $Revision: 1.131 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __EXFIELD_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/acinterp.h>
-
-
-#define _COMPONENT ACPI_EXECUTER
- ACPI_MODULE_NAME ("exfield")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExReadDataFromField
- *
- * PARAMETERS: WalkState - Current execution state
- * ObjDesc - The named field
- * RetBufferDesc - Where the return data object is stored
- *
- * RETURN: Status
- *
- * DESCRIPTION: Read from a named field. Returns either an Integer or a
- * Buffer, depending on the size of the field.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExReadDataFromField (
- ACPI_WALK_STATE *WalkState,
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_OPERAND_OBJECT **RetBufferDesc)
-{
- ACPI_STATUS Status;
- ACPI_OPERAND_OBJECT *BufferDesc;
- ACPI_SIZE Length;
- void *Buffer;
-
-
- ACPI_FUNCTION_TRACE_PTR (ExReadDataFromField, ObjDesc);
-
-
- /* Parameter validation */
-
- if (!ObjDesc)
- {
- return_ACPI_STATUS (AE_AML_NO_OPERAND);
- }
- if (!RetBufferDesc)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- if (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_BUFFER_FIELD)
- {
- /*
- * If the BufferField arguments have not been previously evaluated,
- * evaluate them now and save the results.
- */
- if (!(ObjDesc->Common.Flags & AOPOBJ_DATA_VALID))
- {
- Status = AcpiDsGetBufferFieldArguments (ObjDesc);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
- }
- else if ((ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_LOCAL_REGION_FIELD) &&
- (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_SMBUS))
- {
- /*
- * This is an SMBus read. We must create a buffer to hold the data
- * and directly access the region handler.
- */
- BufferDesc = AcpiUtCreateBufferObject (ACPI_SMBUS_BUFFER_SIZE);
- if (!BufferDesc)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* Lock entire transaction if requested */
-
- AcpiExAcquireGlobalLock (ObjDesc->CommonField.FieldFlags);
-
- /*
- * Perform the read.
- * Note: Smbus protocol value is passed in upper 16-bits of Function
- */
- Status = AcpiExAccessRegion (ObjDesc, 0,
- ACPI_CAST_PTR (ACPI_INTEGER, BufferDesc->Buffer.Pointer),
- ACPI_READ | (ObjDesc->Field.Attribute << 16));
- AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags);
- goto Exit;
- }
-
- /*
- * Allocate a buffer for the contents of the field.
- *
- * If the field is larger than the size of an ACPI_INTEGER, create
- * a BUFFER to hold it. Otherwise, use an INTEGER. This allows
- * the use of arithmetic operators on the returned value if the
- * field size is equal or smaller than an Integer.
- *
- * Note: Field.length is in bits.
- */
- Length = (ACPI_SIZE) ACPI_ROUND_BITS_UP_TO_BYTES (ObjDesc->Field.BitLength);
- if (Length > AcpiGbl_IntegerByteWidth)
- {
- /* Field is too large for an Integer, create a Buffer instead */
-
- BufferDesc = AcpiUtCreateBufferObject (Length);
- if (!BufferDesc)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
- Buffer = BufferDesc->Buffer.Pointer;
- }
- else
- {
- /* Field will fit within an Integer (normal case) */
-
- BufferDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
- if (!BufferDesc)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- Length = AcpiGbl_IntegerByteWidth;
- BufferDesc->Integer.Value = 0;
- Buffer = &BufferDesc->Integer.Value;
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
- "FieldRead [TO]: Obj %p, Type %X, Buf %p, ByteLen %X\n",
- ObjDesc, ACPI_GET_OBJECT_TYPE (ObjDesc), Buffer, (UINT32) Length));
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
- "FieldRead [FROM]: BitLen %X, BitOff %X, ByteOff %X\n",
- ObjDesc->CommonField.BitLength,
- ObjDesc->CommonField.StartFieldBitOffset,
- ObjDesc->CommonField.BaseByteOffset));
-
- /* Lock entire transaction if requested */
-
- AcpiExAcquireGlobalLock (ObjDesc->CommonField.FieldFlags);
-
- /* Read from the field */
-
- Status = AcpiExExtractFromField (ObjDesc, Buffer, (UINT32) Length);
- AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags);
-
-
-Exit:
- if (ACPI_FAILURE (Status))
- {
- AcpiUtRemoveReference (BufferDesc);
- }
- else
- {
- *RetBufferDesc = BufferDesc;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExWriteDataToField
- *
- * PARAMETERS: SourceDesc - Contains data to write
- * ObjDesc - The named field
- * ResultDesc - Where the return value is returned, if any
- *
- * RETURN: Status
- *
- * DESCRIPTION: Write to a named field
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExWriteDataToField (
- ACPI_OPERAND_OBJECT *SourceDesc,
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_OPERAND_OBJECT **ResultDesc)
-{
- ACPI_STATUS Status;
- UINT32 Length;
- UINT32 RequiredLength;
- void *Buffer;
- void *NewBuffer;
- ACPI_OPERAND_OBJECT *BufferDesc;
-
-
- ACPI_FUNCTION_TRACE_PTR (ExWriteDataToField, ObjDesc);
-
-
- /* Parameter validation */
-
- if (!SourceDesc || !ObjDesc)
- {
- return_ACPI_STATUS (AE_AML_NO_OPERAND);
- }
-
- if (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_BUFFER_FIELD)
- {
- /*
- * If the BufferField arguments have not been previously evaluated,
- * evaluate them now and save the results.
- */
- if (!(ObjDesc->Common.Flags & AOPOBJ_DATA_VALID))
- {
- Status = AcpiDsGetBufferFieldArguments (ObjDesc);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
- }
- else if ((ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_LOCAL_REGION_FIELD) &&
- (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_SMBUS))
- {
- /*
- * This is an SMBus write. We will bypass the entire field mechanism
- * and handoff the buffer directly to the handler.
- *
- * Source must be a buffer of sufficient size (ACPI_SMBUS_BUFFER_SIZE).
- */
- if (ACPI_GET_OBJECT_TYPE (SourceDesc) != ACPI_TYPE_BUFFER)
- {
- ACPI_ERROR ((AE_INFO, "SMBus write requires Buffer, found type %s",
- AcpiUtGetObjectTypeName (SourceDesc)));
-
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
-
- if (SourceDesc->Buffer.Length < ACPI_SMBUS_BUFFER_SIZE)
- {
- ACPI_ERROR ((AE_INFO,
- "SMBus write requires Buffer of length %X, found length %X",
- ACPI_SMBUS_BUFFER_SIZE, SourceDesc->Buffer.Length));
-
- return_ACPI_STATUS (AE_AML_BUFFER_LIMIT);
- }
-
- BufferDesc = AcpiUtCreateBufferObject (ACPI_SMBUS_BUFFER_SIZE);
- if (!BufferDesc)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- Buffer = BufferDesc->Buffer.Pointer;
- ACPI_MEMCPY (Buffer, SourceDesc->Buffer.Pointer,
- ACPI_SMBUS_BUFFER_SIZE);
-
- /* Lock entire transaction if requested */
-
- AcpiExAcquireGlobalLock (ObjDesc->CommonField.FieldFlags);
-
- /*
- * Perform the write (returns status and perhaps data in the
- * same buffer)
- * Note: SMBus protocol type is passed in upper 16-bits of Function.
- */
- Status = AcpiExAccessRegion (ObjDesc, 0,
- (ACPI_INTEGER *) Buffer,
- ACPI_WRITE | (ObjDesc->Field.Attribute << 16));
- AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags);
-
- *ResultDesc = BufferDesc;
- return_ACPI_STATUS (Status);
- }
-
- /* Get a pointer to the data to be written */
-
- switch (ACPI_GET_OBJECT_TYPE (SourceDesc))
- {
- case ACPI_TYPE_INTEGER:
- Buffer = &SourceDesc->Integer.Value;
- Length = sizeof (SourceDesc->Integer.Value);
- break;
-
- case ACPI_TYPE_BUFFER:
- Buffer = SourceDesc->Buffer.Pointer;
- Length = SourceDesc->Buffer.Length;
- break;
-
- case ACPI_TYPE_STRING:
- Buffer = SourceDesc->String.Pointer;
- Length = SourceDesc->String.Length;
- break;
-
- default:
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
-
- /*
- * We must have a buffer that is at least as long as the field
- * we are writing to. This is because individual fields are
- * indivisible and partial writes are not supported -- as per
- * the ACPI specification.
- */
- NewBuffer = NULL;
- RequiredLength = ACPI_ROUND_BITS_UP_TO_BYTES (
- ObjDesc->CommonField.BitLength);
-
- if (Length < RequiredLength)
- {
- /* We need to create a new buffer */
-
- NewBuffer = ACPI_ALLOCATE_ZEROED (RequiredLength);
- if (!NewBuffer)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /*
- * Copy the original data to the new buffer, starting
- * at Byte zero. All unused (upper) bytes of the
- * buffer will be 0.
- */
- ACPI_MEMCPY ((char *) NewBuffer, (char *) Buffer, Length);
- Buffer = NewBuffer;
- Length = RequiredLength;
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
- "FieldWrite [FROM]: Obj %p (%s:%X), Buf %p, ByteLen %X\n",
- SourceDesc, AcpiUtGetTypeName (ACPI_GET_OBJECT_TYPE (SourceDesc)),
- ACPI_GET_OBJECT_TYPE (SourceDesc), Buffer, Length));
-
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
- "FieldWrite [TO]: Obj %p (%s:%X), BitLen %X, BitOff %X, ByteOff %X\n",
- ObjDesc, AcpiUtGetTypeName (ACPI_GET_OBJECT_TYPE (ObjDesc)),
- ACPI_GET_OBJECT_TYPE (ObjDesc),
- ObjDesc->CommonField.BitLength,
- ObjDesc->CommonField.StartFieldBitOffset,
- ObjDesc->CommonField.BaseByteOffset));
-
- /* Lock entire transaction if requested */
-
- AcpiExAcquireGlobalLock (ObjDesc->CommonField.FieldFlags);
-
- /* Write to the field */
-
- Status = AcpiExInsertIntoField (ObjDesc, Buffer, Length);
- AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags);
-
- /* Free temporary buffer if we used one */
-
- if (NewBuffer)
- {
- ACPI_FREE (NewBuffer);
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
diff --git a/sys/contrib/dev/acpica/exfldio.c b/sys/contrib/dev/acpica/exfldio.c
deleted file mode 100644
index 1a8631b..0000000
--- a/sys/contrib/dev/acpica/exfldio.c
+++ /dev/null
@@ -1,1056 +0,0 @@
-/******************************************************************************
- *
- * Module Name: exfldio - Aml Field I/O
- * $Revision: 1.128 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __EXFLDIO_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acevents.h>
-#include <contrib/dev/acpica/acdispat.h>
-
-
-#define _COMPONENT ACPI_EXECUTER
- ACPI_MODULE_NAME ("exfldio")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiExFieldDatumIo (
- ACPI_OPERAND_OBJECT *ObjDesc,
- UINT32 FieldDatumByteOffset,
- ACPI_INTEGER *Value,
- UINT32 ReadWrite);
-
-static BOOLEAN
-AcpiExRegisterOverflow (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_INTEGER Value);
-
-static ACPI_STATUS
-AcpiExSetupRegion (
- ACPI_OPERAND_OBJECT *ObjDesc,
- UINT32 FieldDatumByteOffset);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExSetupRegion
- *
- * PARAMETERS: ObjDesc - Field to be read or written
- * FieldDatumByteOffset - Byte offset of this datum within the
- * parent field
- *
- * RETURN: Status
- *
- * DESCRIPTION: Common processing for AcpiExExtractFromField and
- * AcpiExInsertIntoField. Initialize the Region if necessary and
- * validate the request.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiExSetupRegion (
- ACPI_OPERAND_OBJECT *ObjDesc,
- UINT32 FieldDatumByteOffset)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_OPERAND_OBJECT *RgnDesc;
-
-
- ACPI_FUNCTION_TRACE_U32 (ExSetupRegion, FieldDatumByteOffset);
-
-
- RgnDesc = ObjDesc->CommonField.RegionObj;
-
- /* We must have a valid region */
-
- if (ACPI_GET_OBJECT_TYPE (RgnDesc) != ACPI_TYPE_REGION)
- {
- ACPI_ERROR ((AE_INFO, "Needed Region, found type %X (%s)",
- ACPI_GET_OBJECT_TYPE (RgnDesc),
- AcpiUtGetObjectTypeName (RgnDesc)));
-
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
-
- /*
- * If the Region Address and Length have not been previously evaluated,
- * evaluate them now and save the results.
- */
- if (!(RgnDesc->Common.Flags & AOPOBJ_DATA_VALID))
- {
- Status = AcpiDsGetRegionArguments (RgnDesc);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- /* Exit if Address/Length have been disallowed by the host OS */
-
- if (RgnDesc->Common.Flags & AOPOBJ_INVALID)
- {
- return_ACPI_STATUS (AE_AML_ILLEGAL_ADDRESS);
- }
-
- /*
- * Exit now for SMBus address space, it has a non-linear address space
- * and the request cannot be directly validated
- */
- if (RgnDesc->Region.SpaceId == ACPI_ADR_SPACE_SMBUS)
- {
- /* SMBus has a non-linear address space */
-
- return_ACPI_STATUS (AE_OK);
- }
-
-#ifdef ACPI_UNDER_DEVELOPMENT
- /*
- * If the Field access is AnyAcc, we can now compute the optimal
- * access (because we know know the length of the parent region)
- */
- if (!(ObjDesc->Common.Flags & AOPOBJ_DATA_VALID))
- {
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-#endif
-
- /*
- * Validate the request. The entire request from the byte offset for a
- * length of one field datum (access width) must fit within the region.
- * (Region length is specified in bytes)
- */
- if (RgnDesc->Region.Length <
- (ObjDesc->CommonField.BaseByteOffset +
- FieldDatumByteOffset +
- ObjDesc->CommonField.AccessByteWidth))
- {
- if (AcpiGbl_EnableInterpreterSlack)
- {
- /*
- * Slack mode only: We will go ahead and allow access to this
- * field if it is within the region length rounded up to the next
- * access width boundary.
- */
- if (ACPI_ROUND_UP (RgnDesc->Region.Length,
- ObjDesc->CommonField.AccessByteWidth) >=
- (ObjDesc->CommonField.BaseByteOffset +
- (ACPI_NATIVE_UINT) ObjDesc->CommonField.AccessByteWidth +
- FieldDatumByteOffset))
- {
- return_ACPI_STATUS (AE_OK);
- }
- }
-
- if (RgnDesc->Region.Length < ObjDesc->CommonField.AccessByteWidth)
- {
- /*
- * This is the case where the AccessType (AccWord, etc.) is wider
- * than the region itself. For example, a region of length one
- * byte, and a field with Dword access specified.
- */
- ACPI_ERROR ((AE_INFO,
- "Field [%4.4s] access width (%d bytes) too large for region [%4.4s] (length %X)",
- AcpiUtGetNodeName (ObjDesc->CommonField.Node),
- ObjDesc->CommonField.AccessByteWidth,
- AcpiUtGetNodeName (RgnDesc->Region.Node),
- RgnDesc->Region.Length));
- }
-
- /*
- * Offset rounded up to next multiple of field width
- * exceeds region length, indicate an error
- */
- ACPI_ERROR ((AE_INFO,
- "Field [%4.4s] Base+Offset+Width %X+%X+%X is beyond end of region [%4.4s] (length %X)",
- AcpiUtGetNodeName (ObjDesc->CommonField.Node),
- ObjDesc->CommonField.BaseByteOffset,
- FieldDatumByteOffset, ObjDesc->CommonField.AccessByteWidth,
- AcpiUtGetNodeName (RgnDesc->Region.Node),
- RgnDesc->Region.Length));
-
- return_ACPI_STATUS (AE_AML_REGION_LIMIT);
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExAccessRegion
- *
- * PARAMETERS: ObjDesc - Field to be read
- * FieldDatumByteOffset - Byte offset of this datum within the
- * parent field
- * Value - Where to store value (must at least
- * the size of ACPI_INTEGER)
- * Function - Read or Write flag plus other region-
- * dependent flags
- *
- * RETURN: Status
- *
- * DESCRIPTION: Read or Write a single field datum to an Operation Region.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExAccessRegion (
- ACPI_OPERAND_OBJECT *ObjDesc,
- UINT32 FieldDatumByteOffset,
- ACPI_INTEGER *Value,
- UINT32 Function)
-{
- ACPI_STATUS Status;
- ACPI_OPERAND_OBJECT *RgnDesc;
- ACPI_PHYSICAL_ADDRESS Address;
-
-
- ACPI_FUNCTION_TRACE (ExAccessRegion);
-
-
- /*
- * Ensure that the region operands are fully evaluated and verify
- * the validity of the request
- */
- Status = AcpiExSetupRegion (ObjDesc, FieldDatumByteOffset);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * The physical address of this field datum is:
- *
- * 1) The base of the region, plus
- * 2) The base offset of the field, plus
- * 3) The current offset into the field
- */
- RgnDesc = ObjDesc->CommonField.RegionObj;
- Address = RgnDesc->Region.Address +
- ObjDesc->CommonField.BaseByteOffset +
- FieldDatumByteOffset;
-
- if ((Function & ACPI_IO_MASK) == ACPI_READ)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, "[READ]"));
- }
- else
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, "[WRITE]"));
- }
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_BFIELD,
- " Region [%s:%X], Width %X, ByteBase %X, Offset %X at %p\n",
- AcpiUtGetRegionName (RgnDesc->Region.SpaceId),
- RgnDesc->Region.SpaceId,
- ObjDesc->CommonField.AccessByteWidth,
- ObjDesc->CommonField.BaseByteOffset,
- FieldDatumByteOffset,
- (void *) Address));
-
- /* Invoke the appropriate AddressSpace/OpRegion handler */
-
- Status = AcpiEvAddressSpaceDispatch (RgnDesc, Function,
- Address,
- ACPI_MUL_8 (ObjDesc->CommonField.AccessByteWidth), Value);
-
- if (ACPI_FAILURE (Status))
- {
- if (Status == AE_NOT_IMPLEMENTED)
- {
- ACPI_ERROR ((AE_INFO,
- "Region %s(%X) not implemented",
- AcpiUtGetRegionName (RgnDesc->Region.SpaceId),
- RgnDesc->Region.SpaceId));
- }
- else if (Status == AE_NOT_EXIST)
- {
- ACPI_ERROR ((AE_INFO,
- "Region %s(%X) has no handler",
- AcpiUtGetRegionName (RgnDesc->Region.SpaceId),
- RgnDesc->Region.SpaceId));
- }
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExRegisterOverflow
- *
- * PARAMETERS: ObjDesc - Register(Field) to be written
- * Value - Value to be stored
- *
- * RETURN: TRUE if value overflows the field, FALSE otherwise
- *
- * DESCRIPTION: Check if a value is out of range of the field being written.
- * Used to check if the values written to Index and Bank registers
- * are out of range. Normally, the value is simply truncated
- * to fit the field, but this case is most likely a serious
- * coding error in the ASL.
- *
- ******************************************************************************/
-
-static BOOLEAN
-AcpiExRegisterOverflow (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_INTEGER Value)
-{
-
- if (ObjDesc->CommonField.BitLength >= ACPI_INTEGER_BIT_SIZE)
- {
- /*
- * The field is large enough to hold the maximum integer, so we can
- * never overflow it.
- */
- return (FALSE);
- }
-
- if (Value >= ((ACPI_INTEGER) 1 << ObjDesc->CommonField.BitLength))
- {
- /*
- * The Value is larger than the maximum value that can fit into
- * the register.
- */
- return (TRUE);
- }
-
- /* The Value will fit into the field with no truncation */
-
- return (FALSE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExFieldDatumIo
- *
- * PARAMETERS: ObjDesc - Field to be read
- * FieldDatumByteOffset - Byte offset of this datum within the
- * parent field
- * Value - Where to store value (must be 64 bits)
- * ReadWrite - Read or Write flag
- *
- * RETURN: Status
- *
- * DESCRIPTION: Read or Write a single datum of a field. The FieldType is
- * demultiplexed here to handle the different types of fields
- * (BufferField, RegionField, IndexField, BankField)
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiExFieldDatumIo (
- ACPI_OPERAND_OBJECT *ObjDesc,
- UINT32 FieldDatumByteOffset,
- ACPI_INTEGER *Value,
- UINT32 ReadWrite)
-{
- ACPI_STATUS Status;
- ACPI_INTEGER LocalValue;
-
-
- ACPI_FUNCTION_TRACE_U32 (ExFieldDatumIo, FieldDatumByteOffset);
-
-
- if (ReadWrite == ACPI_READ)
- {
- if (!Value)
- {
- LocalValue = 0;
-
- /* To support reads without saving return value */
- Value = &LocalValue;
- }
-
- /* Clear the entire return buffer first, [Very Important!] */
-
- *Value = 0;
- }
-
- /*
- * The four types of fields are:
- *
- * BufferField - Read/write from/to a Buffer
- * RegionField - Read/write from/to a Operation Region.
- * BankField - Write to a Bank Register, then read/write from/to an
- * OperationRegion
- * IndexField - Write to an Index Register, then read/write from/to a
- * Data Register
- */
- switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
- {
- case ACPI_TYPE_BUFFER_FIELD:
- /*
- * If the BufferField arguments have not been previously evaluated,
- * evaluate them now and save the results.
- */
- if (!(ObjDesc->Common.Flags & AOPOBJ_DATA_VALID))
- {
- Status = AcpiDsGetBufferFieldArguments (ObjDesc);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- if (ReadWrite == ACPI_READ)
- {
- /*
- * Copy the data from the source buffer.
- * Length is the field width in bytes.
- */
- ACPI_MEMCPY (Value,
- (ObjDesc->BufferField.BufferObj)->Buffer.Pointer +
- ObjDesc->BufferField.BaseByteOffset +
- FieldDatumByteOffset,
- ObjDesc->CommonField.AccessByteWidth);
- }
- else
- {
- /*
- * Copy the data to the target buffer.
- * Length is the field width in bytes.
- */
- ACPI_MEMCPY ((ObjDesc->BufferField.BufferObj)->Buffer.Pointer +
- ObjDesc->BufferField.BaseByteOffset +
- FieldDatumByteOffset,
- Value, ObjDesc->CommonField.AccessByteWidth);
- }
-
- Status = AE_OK;
- break;
-
-
- case ACPI_TYPE_LOCAL_BANK_FIELD:
-
- /*
- * Ensure that the BankValue is not beyond the capacity of
- * the register
- */
- if (AcpiExRegisterOverflow (ObjDesc->BankField.BankObj,
- (ACPI_INTEGER) ObjDesc->BankField.Value))
- {
- return_ACPI_STATUS (AE_AML_REGISTER_LIMIT);
- }
-
- /*
- * For BankFields, we must write the BankValue to the BankRegister
- * (itself a RegionField) before we can access the data.
- */
- Status = AcpiExInsertIntoField (ObjDesc->BankField.BankObj,
- &ObjDesc->BankField.Value,
- sizeof (ObjDesc->BankField.Value));
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * Now that the Bank has been selected, fall through to the
- * RegionField case and write the datum to the Operation Region
- */
-
- /*lint -fallthrough */
-
-
- case ACPI_TYPE_LOCAL_REGION_FIELD:
- /*
- * For simple RegionFields, we just directly access the owning
- * Operation Region.
- */
- Status = AcpiExAccessRegion (ObjDesc, FieldDatumByteOffset, Value,
- ReadWrite);
- break;
-
-
- case ACPI_TYPE_LOCAL_INDEX_FIELD:
-
-
- /*
- * Ensure that the IndexValue is not beyond the capacity of
- * the register
- */
- if (AcpiExRegisterOverflow (ObjDesc->IndexField.IndexObj,
- (ACPI_INTEGER) ObjDesc->IndexField.Value))
- {
- return_ACPI_STATUS (AE_AML_REGISTER_LIMIT);
- }
-
- /* Write the index value to the IndexRegister (itself a RegionField) */
-
- FieldDatumByteOffset += ObjDesc->IndexField.Value;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
- "Write to Index Register: Value %8.8X\n",
- FieldDatumByteOffset));
-
- Status = AcpiExInsertIntoField (ObjDesc->IndexField.IndexObj,
- &FieldDatumByteOffset,
- sizeof (FieldDatumByteOffset));
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
- "I/O to Data Register: ValuePtr %p\n", Value));
-
- if (ReadWrite == ACPI_READ)
- {
- /* Read the datum from the DataRegister */
-
- Status = AcpiExExtractFromField (ObjDesc->IndexField.DataObj,
- Value, sizeof (ACPI_INTEGER));
- }
- else
- {
- /* Write the datum to the DataRegister */
-
- Status = AcpiExInsertIntoField (ObjDesc->IndexField.DataObj,
- Value, sizeof (ACPI_INTEGER));
- }
- break;
-
-
- default:
-
- ACPI_ERROR ((AE_INFO, "Wrong object type in field I/O %X",
- ACPI_GET_OBJECT_TYPE (ObjDesc)));
- Status = AE_AML_INTERNAL;
- break;
- }
-
- if (ACPI_SUCCESS (Status))
- {
- if (ReadWrite == ACPI_READ)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
- "Value Read %8.8X%8.8X, Width %d\n",
- ACPI_FORMAT_UINT64 (*Value),
- ObjDesc->CommonField.AccessByteWidth));
- }
- else
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
- "Value Written %8.8X%8.8X, Width %d\n",
- ACPI_FORMAT_UINT64 (*Value),
- ObjDesc->CommonField.AccessByteWidth));
- }
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExWriteWithUpdateRule
- *
- * PARAMETERS: ObjDesc - Field to be written
- * Mask - bitmask within field datum
- * FieldValue - Value to write
- * FieldDatumByteOffset - Offset of datum within field
- *
- * RETURN: Status
- *
- * DESCRIPTION: Apply the field update rule to a field write
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExWriteWithUpdateRule (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_INTEGER Mask,
- ACPI_INTEGER FieldValue,
- UINT32 FieldDatumByteOffset)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_INTEGER MergedValue;
- ACPI_INTEGER CurrentValue;
-
-
- ACPI_FUNCTION_TRACE_U32 (ExWriteWithUpdateRule, Mask);
-
-
- /* Start with the new bits */
-
- MergedValue = FieldValue;
-
- /* If the mask is all ones, we don't need to worry about the update rule */
-
- if (Mask != ACPI_INTEGER_MAX)
- {
- /* Decode the update rule */
-
- switch (ObjDesc->CommonField.FieldFlags & AML_FIELD_UPDATE_RULE_MASK)
- {
- case AML_FIELD_UPDATE_PRESERVE:
- /*
- * Check if update rule needs to be applied (not if mask is all
- * ones) The left shift drops the bits we want to ignore.
- */
- if ((~Mask << (ACPI_MUL_8 (sizeof (Mask)) -
- ACPI_MUL_8 (ObjDesc->CommonField.AccessByteWidth))) != 0)
- {
- /*
- * Read the current contents of the byte/word/dword containing
- * the field, and merge with the new field value.
- */
- Status = AcpiExFieldDatumIo (ObjDesc, FieldDatumByteOffset,
- &CurrentValue, ACPI_READ);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- MergedValue |= (CurrentValue & ~Mask);
- }
- break;
-
- case AML_FIELD_UPDATE_WRITE_AS_ONES:
-
- /* Set positions outside the field to all ones */
-
- MergedValue |= ~Mask;
- break;
-
- case AML_FIELD_UPDATE_WRITE_AS_ZEROS:
-
- /* Set positions outside the field to all zeros */
-
- MergedValue &= Mask;
- break;
-
- default:
-
- ACPI_ERROR ((AE_INFO,
- "Unknown UpdateRule value: %X",
- (ObjDesc->CommonField.FieldFlags & AML_FIELD_UPDATE_RULE_MASK)));
- return_ACPI_STATUS (AE_AML_OPERAND_VALUE);
- }
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
- "Mask %8.8X%8.8X, DatumOffset %X, Width %X, Value %8.8X%8.8X, MergedValue %8.8X%8.8X\n",
- ACPI_FORMAT_UINT64 (Mask),
- FieldDatumByteOffset,
- ObjDesc->CommonField.AccessByteWidth,
- ACPI_FORMAT_UINT64 (FieldValue),
- ACPI_FORMAT_UINT64 (MergedValue)));
-
- /* Write the merged value */
-
- Status = AcpiExFieldDatumIo (ObjDesc, FieldDatumByteOffset,
- &MergedValue, ACPI_WRITE);
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExExtractFromField
- *
- * PARAMETERS: ObjDesc - Field to be read
- * Buffer - Where to store the field data
- * BufferLength - Length of Buffer
- *
- * RETURN: Status
- *
- * DESCRIPTION: Retrieve the current value of the given field
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExExtractFromField (
- ACPI_OPERAND_OBJECT *ObjDesc,
- void *Buffer,
- UINT32 BufferLength)
-{
- ACPI_STATUS Status;
- ACPI_INTEGER RawDatum;
- ACPI_INTEGER MergedDatum;
- UINT32 FieldOffset = 0;
- UINT32 BufferOffset = 0;
- UINT32 BufferTailBits;
- UINT32 DatumCount;
- UINT32 FieldDatumCount;
- UINT32 i;
-
-
- ACPI_FUNCTION_TRACE (ExExtractFromField);
-
-
- /* Validate target buffer and clear it */
-
- if (BufferLength <
- ACPI_ROUND_BITS_UP_TO_BYTES (ObjDesc->CommonField.BitLength))
- {
- ACPI_ERROR ((AE_INFO,
- "Field size %X (bits) is too large for buffer (%X)",
- ObjDesc->CommonField.BitLength, BufferLength));
-
- return_ACPI_STATUS (AE_BUFFER_OVERFLOW);
- }
- ACPI_MEMSET (Buffer, 0, BufferLength);
-
- /* Compute the number of datums (access width data items) */
-
- DatumCount = ACPI_ROUND_UP_TO (
- ObjDesc->CommonField.BitLength,
- ObjDesc->CommonField.AccessBitWidth);
- FieldDatumCount = ACPI_ROUND_UP_TO (
- ObjDesc->CommonField.BitLength +
- ObjDesc->CommonField.StartFieldBitOffset,
- ObjDesc->CommonField.AccessBitWidth);
-
- /* Priming read from the field */
-
- Status = AcpiExFieldDatumIo (ObjDesc, FieldOffset, &RawDatum, ACPI_READ);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- MergedDatum = RawDatum >> ObjDesc->CommonField.StartFieldBitOffset;
-
- /* Read the rest of the field */
-
- for (i = 1; i < FieldDatumCount; i++)
- {
- /* Get next input datum from the field */
-
- FieldOffset += ObjDesc->CommonField.AccessByteWidth;
- Status = AcpiExFieldDatumIo (ObjDesc, FieldOffset,
- &RawDatum, ACPI_READ);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * Merge with previous datum if necessary.
- *
- * Note: Before the shift, check if the shift value will be larger than
- * the integer size. If so, there is no need to perform the operation.
- * This avoids the differences in behavior between different compilers
- * concerning shift values larger than the target data width.
- */
- if ((ObjDesc->CommonField.AccessBitWidth -
- ObjDesc->CommonField.StartFieldBitOffset) < ACPI_INTEGER_BIT_SIZE)
- {
- MergedDatum |= RawDatum <<
- (ObjDesc->CommonField.AccessBitWidth -
- ObjDesc->CommonField.StartFieldBitOffset);
- }
-
- if (i == DatumCount)
- {
- break;
- }
-
- /* Write merged datum to target buffer */
-
- ACPI_MEMCPY (((char *) Buffer) + BufferOffset, &MergedDatum,
- ACPI_MIN(ObjDesc->CommonField.AccessByteWidth,
- BufferLength - BufferOffset));
-
- BufferOffset += ObjDesc->CommonField.AccessByteWidth;
- MergedDatum = RawDatum >> ObjDesc->CommonField.StartFieldBitOffset;
- }
-
- /* Mask off any extra bits in the last datum */
-
- BufferTailBits = ObjDesc->CommonField.BitLength %
- ObjDesc->CommonField.AccessBitWidth;
- if (BufferTailBits)
- {
- MergedDatum &= ACPI_MASK_BITS_ABOVE (BufferTailBits);
- }
-
- /* Write the last datum to the buffer */
-
- ACPI_MEMCPY (((char *) Buffer) + BufferOffset, &MergedDatum,
- ACPI_MIN(ObjDesc->CommonField.AccessByteWidth,
- BufferLength - BufferOffset));
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExInsertIntoField
- *
- * PARAMETERS: ObjDesc - Field to be written
- * Buffer - Data to be written
- * BufferLength - Length of Buffer
- *
- * RETURN: Status
- *
- * DESCRIPTION: Store the Buffer contents into the given field
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExInsertIntoField (
- ACPI_OPERAND_OBJECT *ObjDesc,
- void *Buffer,
- UINT32 BufferLength)
-{
- ACPI_STATUS Status;
- ACPI_INTEGER Mask;
- ACPI_INTEGER WidthMask;
- ACPI_INTEGER MergedDatum;
- ACPI_INTEGER RawDatum = 0;
- UINT32 FieldOffset = 0;
- UINT32 BufferOffset = 0;
- UINT32 BufferTailBits;
- UINT32 DatumCount;
- UINT32 FieldDatumCount;
- UINT32 i;
-
-
- ACPI_FUNCTION_TRACE (ExInsertIntoField);
-
-
- /* Validate input buffer */
-
- if (BufferLength <
- ACPI_ROUND_BITS_UP_TO_BYTES (ObjDesc->CommonField.BitLength))
- {
- ACPI_ERROR ((AE_INFO,
- "Field size %X (bits) is too large for buffer (%X)",
- ObjDesc->CommonField.BitLength, BufferLength));
-
- return_ACPI_STATUS (AE_BUFFER_OVERFLOW);
- }
-
- /*
- * Create the bitmasks used for bit insertion.
- * Note: This if/else is used to bypass compiler differences with the
- * shift operator
- */
- if (ObjDesc->CommonField.AccessBitWidth == ACPI_INTEGER_BIT_SIZE)
- {
- WidthMask = ACPI_INTEGER_MAX;
- }
- else
- {
- WidthMask = ACPI_MASK_BITS_ABOVE (ObjDesc->CommonField.AccessBitWidth);
- }
-
- Mask = WidthMask &
- ACPI_MASK_BITS_BELOW (ObjDesc->CommonField.StartFieldBitOffset);
-
- /* Compute the number of datums (access width data items) */
-
- DatumCount = ACPI_ROUND_UP_TO (ObjDesc->CommonField.BitLength,
- ObjDesc->CommonField.AccessBitWidth);
-
- FieldDatumCount = ACPI_ROUND_UP_TO (ObjDesc->CommonField.BitLength +
- ObjDesc->CommonField.StartFieldBitOffset,
- ObjDesc->CommonField.AccessBitWidth);
-
- /* Get initial Datum from the input buffer */
-
- ACPI_MEMCPY (&RawDatum, Buffer,
- ACPI_MIN(ObjDesc->CommonField.AccessByteWidth,
- BufferLength - BufferOffset));
-
- MergedDatum = RawDatum << ObjDesc->CommonField.StartFieldBitOffset;
-
- /* Write the entire field */
-
- for (i = 1; i < FieldDatumCount; i++)
- {
- /* Write merged datum to the target field */
-
- MergedDatum &= Mask;
- Status = AcpiExWriteWithUpdateRule (ObjDesc, Mask,
- MergedDatum, FieldOffset);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- FieldOffset += ObjDesc->CommonField.AccessByteWidth;
-
- /*
- * Start new output datum by merging with previous input datum
- * if necessary.
- *
- * Note: Before the shift, check if the shift value will be larger than
- * the integer size. If so, there is no need to perform the operation.
- * This avoids the differences in behavior between different compilers
- * concerning shift values larger than the target data width.
- */
- if ((ObjDesc->CommonField.AccessBitWidth -
- ObjDesc->CommonField.StartFieldBitOffset) < ACPI_INTEGER_BIT_SIZE)
- {
- MergedDatum = RawDatum >>
- (ObjDesc->CommonField.AccessBitWidth -
- ObjDesc->CommonField.StartFieldBitOffset);
- }
- else
- {
- MergedDatum = 0;
- }
-
- Mask = WidthMask;
-
- if (i == DatumCount)
- {
- break;
- }
-
- /* Get the next input datum from the buffer */
-
- BufferOffset += ObjDesc->CommonField.AccessByteWidth;
- ACPI_MEMCPY (&RawDatum, ((char *) Buffer) + BufferOffset,
- ACPI_MIN(ObjDesc->CommonField.AccessByteWidth,
- BufferLength - BufferOffset));
- MergedDatum |= RawDatum << ObjDesc->CommonField.StartFieldBitOffset;
- }
-
- /* Mask off any extra bits in the last datum */
-
- BufferTailBits = (ObjDesc->CommonField.BitLength +
- ObjDesc->CommonField.StartFieldBitOffset) %
- ObjDesc->CommonField.AccessBitWidth;
- if (BufferTailBits)
- {
- Mask &= ACPI_MASK_BITS_ABOVE (BufferTailBits);
- }
-
- /* Write the last datum to the field */
-
- MergedDatum &= Mask;
- Status = AcpiExWriteWithUpdateRule (ObjDesc,
- Mask, MergedDatum, FieldOffset);
-
- return_ACPI_STATUS (Status);
-}
-
-
diff --git a/sys/contrib/dev/acpica/exmisc.c b/sys/contrib/dev/acpica/exmisc.c
deleted file mode 100644
index 11dd35a..0000000
--- a/sys/contrib/dev/acpica/exmisc.c
+++ /dev/null
@@ -1,873 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exmisc - ACPI AML (p-code) execution - specific opcodes
- * $Revision: 1.144 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __EXMISC_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/amlresrc.h>
-
-
-#define _COMPONENT ACPI_EXECUTER
- ACPI_MODULE_NAME ("exmisc")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExGetObjectReference
- *
- * PARAMETERS: ObjDesc - Create a reference to this object
- * ReturnDesc - Where to store the reference
- * WalkState - Current state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Obtain and return a "reference" to the target object
- * Common code for the RefOfOp and the CondRefOfOp.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExGetObjectReference (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_OPERAND_OBJECT **ReturnDesc,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_OPERAND_OBJECT *ReferenceObj;
- ACPI_OPERAND_OBJECT *ReferencedObj;
-
-
- ACPI_FUNCTION_TRACE_PTR (ExGetObjectReference, ObjDesc);
-
-
- *ReturnDesc = NULL;
-
- switch (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc))
- {
- case ACPI_DESC_TYPE_OPERAND:
-
- if (ACPI_GET_OBJECT_TYPE (ObjDesc) != ACPI_TYPE_LOCAL_REFERENCE)
- {
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
-
- /*
- * Must be a reference to a Local or Arg
- */
- switch (ObjDesc->Reference.Opcode)
- {
- case AML_LOCAL_OP:
- case AML_ARG_OP:
- case AML_DEBUG_OP:
-
- /* The referenced object is the pseudo-node for the local/arg */
-
- ReferencedObj = ObjDesc->Reference.Object;
- break;
-
- default:
-
- ACPI_ERROR ((AE_INFO, "Unknown Reference opcode %X",
- ObjDesc->Reference.Opcode));
- return_ACPI_STATUS (AE_AML_INTERNAL);
- }
- break;
-
-
- case ACPI_DESC_TYPE_NAMED:
-
- /*
- * A named reference that has already been resolved to a Node
- */
- ReferencedObj = ObjDesc;
- break;
-
-
- default:
-
- ACPI_ERROR ((AE_INFO, "Invalid descriptor type %X",
- ACPI_GET_DESCRIPTOR_TYPE (ObjDesc)));
- return_ACPI_STATUS (AE_TYPE);
- }
-
-
- /* Create a new reference object */
-
- ReferenceObj = AcpiUtCreateInternalObject (ACPI_TYPE_LOCAL_REFERENCE);
- if (!ReferenceObj)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- ReferenceObj->Reference.Opcode = AML_REF_OF_OP;
- ReferenceObj->Reference.Object = ReferencedObj;
- *ReturnDesc = ReferenceObj;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "Object %p Type [%s], returning Reference %p\n",
- ObjDesc, AcpiUtGetObjectTypeName (ObjDesc), *ReturnDesc));
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExConcatTemplate
- *
- * PARAMETERS: Operand0 - First source object
- * Operand1 - Second source object
- * ActualReturnDesc - Where to place the return object
- * WalkState - Current walk state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Concatenate two resource templates
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExConcatTemplate (
- ACPI_OPERAND_OBJECT *Operand0,
- ACPI_OPERAND_OBJECT *Operand1,
- ACPI_OPERAND_OBJECT **ActualReturnDesc,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status;
- ACPI_OPERAND_OBJECT *ReturnDesc;
- UINT8 *NewBuf;
- UINT8 *EndTag;
- ACPI_SIZE Length0;
- ACPI_SIZE Length1;
- ACPI_SIZE NewLength;
-
-
- ACPI_FUNCTION_TRACE (ExConcatTemplate);
-
-
- /*
- * Find the EndTag descriptor in each resource template.
- * Note1: returned pointers point TO the EndTag, not past it.
- * Note2: zero-length buffers are allowed; treated like one EndTag
- */
-
- /* Get the length of the first resource template */
-
- Status = AcpiUtGetResourceEndTag (Operand0, &EndTag);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- Length0 = ACPI_PTR_DIFF (EndTag, Operand0->Buffer.Pointer);
-
- /* Get the length of the second resource template */
-
- Status = AcpiUtGetResourceEndTag (Operand1, &EndTag);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- Length1 = ACPI_PTR_DIFF (EndTag, Operand1->Buffer.Pointer);
-
- /* Combine both lengths, minimum size will be 2 for EndTag */
-
- NewLength = Length0 + Length1 + sizeof (AML_RESOURCE_END_TAG);
-
- /* Create a new buffer object for the result (with one EndTag) */
-
- ReturnDesc = AcpiUtCreateBufferObject (NewLength);
- if (!ReturnDesc)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /*
- * Copy the templates to the new buffer, 0 first, then 1 follows. One
- * EndTag descriptor is copied from Operand1.
- */
- NewBuf = ReturnDesc->Buffer.Pointer;
- ACPI_MEMCPY (NewBuf, Operand0->Buffer.Pointer, Length0);
- ACPI_MEMCPY (NewBuf + Length0, Operand1->Buffer.Pointer, Length1);
-
- /* Insert EndTag and set the checksum to zero, means "ignore checksum" */
-
- NewBuf[NewLength - 1] = 0;
- NewBuf[NewLength - 2] = ACPI_RESOURCE_NAME_END_TAG | 1;
-
- /* Return the completed resource template */
-
- *ActualReturnDesc = ReturnDesc;
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExDoConcatenate
- *
- * PARAMETERS: Operand0 - First source object
- * Operand1 - Second source object
- * ActualReturnDesc - Where to place the return object
- * WalkState - Current walk state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Concatenate two objects OF THE SAME TYPE.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExDoConcatenate (
- ACPI_OPERAND_OBJECT *Operand0,
- ACPI_OPERAND_OBJECT *Operand1,
- ACPI_OPERAND_OBJECT **ActualReturnDesc,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_OPERAND_OBJECT *LocalOperand1 = Operand1;
- ACPI_OPERAND_OBJECT *ReturnDesc;
- char *NewBuf;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (ExDoConcatenate);
-
-
- /*
- * Convert the second operand if necessary. The first operand
- * determines the type of the second operand, (See the Data Types
- * section of the ACPI specification.) Both object types are
- * guaranteed to be either Integer/String/Buffer by the operand
- * resolution mechanism.
- */
- switch (ACPI_GET_OBJECT_TYPE (Operand0))
- {
- case ACPI_TYPE_INTEGER:
- Status = AcpiExConvertToInteger (Operand1, &LocalOperand1, 16);
- break;
-
- case ACPI_TYPE_STRING:
- Status = AcpiExConvertToString (Operand1, &LocalOperand1,
- ACPI_IMPLICIT_CONVERT_HEX);
- break;
-
- case ACPI_TYPE_BUFFER:
- Status = AcpiExConvertToBuffer (Operand1, &LocalOperand1);
- break;
-
- default:
- ACPI_ERROR ((AE_INFO, "Invalid object type: %X",
- ACPI_GET_OBJECT_TYPE (Operand0)));
- Status = AE_AML_INTERNAL;
- }
-
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- /*
- * Both operands are now known to be the same object type
- * (Both are Integer, String, or Buffer), and we can now perform the
- * concatenation.
- */
-
- /*
- * 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
- */
- switch (ACPI_GET_OBJECT_TYPE (Operand0))
- {
- case ACPI_TYPE_INTEGER:
-
- /* Result of two Integers is a Buffer */
- /* Need enough buffer space for two integers */
-
- ReturnDesc = AcpiUtCreateBufferObject ((ACPI_SIZE)
- ACPI_MUL_2 (AcpiGbl_IntegerByteWidth));
- if (!ReturnDesc)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- NewBuf = (char *) ReturnDesc->Buffer.Pointer;
-
- /* Copy the first integer, LSB first */
-
- ACPI_MEMCPY (NewBuf, &Operand0->Integer.Value,
- AcpiGbl_IntegerByteWidth);
-
- /* Copy the second integer (LSB first) after the first */
-
- ACPI_MEMCPY (NewBuf + AcpiGbl_IntegerByteWidth,
- &LocalOperand1->Integer.Value,
- AcpiGbl_IntegerByteWidth);
- break;
-
- case ACPI_TYPE_STRING:
-
- /* Result of two Strings is a String */
-
- ReturnDesc = AcpiUtCreateStringObject ((ACPI_SIZE)
- (Operand0->String.Length +
- LocalOperand1->String.Length));
- if (!ReturnDesc)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- NewBuf = ReturnDesc->String.Pointer;
-
- /* Concatenate the strings */
-
- ACPI_STRCPY (NewBuf, Operand0->String.Pointer);
- ACPI_STRCPY (NewBuf + Operand0->String.Length,
- LocalOperand1->String.Pointer);
- break;
-
- case ACPI_TYPE_BUFFER:
-
- /* Result of two Buffers is a Buffer */
-
- ReturnDesc = AcpiUtCreateBufferObject ((ACPI_SIZE)
- (Operand0->Buffer.Length +
- LocalOperand1->Buffer.Length));
- if (!ReturnDesc)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- NewBuf = (char *) ReturnDesc->Buffer.Pointer;
-
- /* Concatenate the buffers */
-
- ACPI_MEMCPY (NewBuf, Operand0->Buffer.Pointer,
- Operand0->Buffer.Length);
- ACPI_MEMCPY (NewBuf + Operand0->Buffer.Length,
- LocalOperand1->Buffer.Pointer,
- LocalOperand1->Buffer.Length);
- break;
-
- default:
-
- /* Invalid object type, should not happen here */
-
- ACPI_ERROR ((AE_INFO, "Invalid object type: %X",
- ACPI_GET_OBJECT_TYPE (Operand0)));
- Status =AE_AML_INTERNAL;
- goto Cleanup;
- }
-
- *ActualReturnDesc = ReturnDesc;
-
-Cleanup:
- if (LocalOperand1 != Operand1)
- {
- AcpiUtRemoveReference (LocalOperand1);
- }
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExDoMathOp
- *
- * PARAMETERS: Opcode - AML opcode
- * Integer0 - Integer operand #0
- * Integer1 - Integer operand #1
- *
- * RETURN: Integer result of the operation
- *
- * DESCRIPTION: Execute a math AML opcode. The purpose of having all of the
- * math functions here is to prevent a lot of pointer dereferencing
- * to obtain the operands.
- *
- ******************************************************************************/
-
-ACPI_INTEGER
-AcpiExDoMathOp (
- UINT16 Opcode,
- ACPI_INTEGER Integer0,
- ACPI_INTEGER Integer1)
-{
-
- ACPI_FUNCTION_ENTRY ();
-
-
- switch (Opcode)
- {
- case AML_ADD_OP: /* Add (Integer0, Integer1, Result) */
-
- return (Integer0 + Integer1);
-
-
- case AML_BIT_AND_OP: /* And (Integer0, Integer1, Result) */
-
- return (Integer0 & Integer1);
-
-
- case AML_BIT_NAND_OP: /* NAnd (Integer0, Integer1, Result) */
-
- return (~(Integer0 & Integer1));
-
-
- case AML_BIT_OR_OP: /* Or (Integer0, Integer1, Result) */
-
- return (Integer0 | Integer1);
-
-
- case AML_BIT_NOR_OP: /* NOr (Integer0, Integer1, Result) */
-
- return (~(Integer0 | Integer1));
-
-
- case AML_BIT_XOR_OP: /* XOr (Integer0, Integer1, Result) */
-
- return (Integer0 ^ Integer1);
-
-
- case AML_MULTIPLY_OP: /* Multiply (Integer0, Integer1, Result) */
-
- return (Integer0 * Integer1);
-
-
- case AML_SHIFT_LEFT_OP: /* ShiftLeft (Operand, ShiftCount, Result)*/
-
- /*
- * We need to check if the shiftcount is larger than the integer bit
- * width since the behavior of this is not well-defined in the C language.
- */
- if (Integer1 >= AcpiGbl_IntegerBitWidth)
- {
- return (0);
- }
- return (Integer0 << Integer1);
-
-
- case AML_SHIFT_RIGHT_OP: /* ShiftRight (Operand, ShiftCount, Result) */
-
- /*
- * We need to check if the shiftcount is larger than the integer bit
- * width since the behavior of this is not well-defined in the C language.
- */
- if (Integer1 >= AcpiGbl_IntegerBitWidth)
- {
- return (0);
- }
- return (Integer0 >> Integer1);
-
-
- case AML_SUBTRACT_OP: /* Subtract (Integer0, Integer1, Result) */
-
- return (Integer0 - Integer1);
-
- default:
-
- return (0);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExDoLogicalNumericOp
- *
- * PARAMETERS: Opcode - AML opcode
- * Integer0 - Integer operand #0
- * Integer1 - Integer operand #1
- * LogicalResult - TRUE/FALSE result of the operation
- *
- * RETURN: Status
- *
- * DESCRIPTION: Execute a logical "Numeric" AML opcode. For these Numeric
- * operators (LAnd and LOr), both operands must be integers.
- *
- * Note: cleanest machine code seems to be produced by the code
- * below, rather than using statements of the form:
- * Result = (Integer0 && Integer1);
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExDoLogicalNumericOp (
- UINT16 Opcode,
- ACPI_INTEGER Integer0,
- ACPI_INTEGER Integer1,
- BOOLEAN *LogicalResult)
-{
- ACPI_STATUS Status = AE_OK;
- BOOLEAN LocalResult = FALSE;
-
-
- ACPI_FUNCTION_TRACE (ExDoLogicalNumericOp);
-
-
- switch (Opcode)
- {
- case AML_LAND_OP: /* LAnd (Integer0, Integer1) */
-
- if (Integer0 && Integer1)
- {
- LocalResult = TRUE;
- }
- break;
-
- case AML_LOR_OP: /* LOr (Integer0, Integer1) */
-
- if (Integer0 || Integer1)
- {
- LocalResult = TRUE;
- }
- break;
-
- default:
- Status = AE_AML_INTERNAL;
- break;
- }
-
- /* Return the logical result and status */
-
- *LogicalResult = LocalResult;
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExDoLogicalOp
- *
- * PARAMETERS: Opcode - AML opcode
- * Operand0 - operand #0
- * Operand1 - operand #1
- * LogicalResult - TRUE/FALSE result of the operation
- *
- * RETURN: Status
- *
- * DESCRIPTION: Execute a logical AML opcode. The purpose of having all of the
- * functions here is to prevent a lot of pointer dereferencing
- * to obtain the operands and to simplify the generation of the
- * logical value. For the Numeric operators (LAnd and LOr), both
- * operands must be integers. For the other logical operators,
- * operands can be any combination of Integer/String/Buffer. The
- * first operand determines the type to which the second operand
- * will be converted.
- *
- * Note: cleanest machine code seems to be produced by the code
- * below, rather than using statements of the form:
- * Result = (Operand0 == Operand1);
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExDoLogicalOp (
- UINT16 Opcode,
- ACPI_OPERAND_OBJECT *Operand0,
- ACPI_OPERAND_OBJECT *Operand1,
- BOOLEAN *LogicalResult)
-{
- ACPI_OPERAND_OBJECT *LocalOperand1 = Operand1;
- ACPI_INTEGER Integer0;
- ACPI_INTEGER Integer1;
- UINT32 Length0;
- UINT32 Length1;
- ACPI_STATUS Status = AE_OK;
- BOOLEAN LocalResult = FALSE;
- int Compare;
-
-
- ACPI_FUNCTION_TRACE (ExDoLogicalOp);
-
-
- /*
- * Convert the second operand if necessary. The first operand
- * determines the type of the second operand, (See the Data Types
- * section of the ACPI 3.0+ specification.) Both object types are
- * guaranteed to be either Integer/String/Buffer by the operand
- * resolution mechanism.
- */
- switch (ACPI_GET_OBJECT_TYPE (Operand0))
- {
- case ACPI_TYPE_INTEGER:
- Status = AcpiExConvertToInteger (Operand1, &LocalOperand1, 16);
- break;
-
- case ACPI_TYPE_STRING:
- Status = AcpiExConvertToString (Operand1, &LocalOperand1,
- ACPI_IMPLICIT_CONVERT_HEX);
- break;
-
- case ACPI_TYPE_BUFFER:
- Status = AcpiExConvertToBuffer (Operand1, &LocalOperand1);
- break;
-
- default:
- Status = AE_AML_INTERNAL;
- break;
- }
-
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- /*
- * Two cases: 1) Both Integers, 2) Both Strings or Buffers
- */
- if (ACPI_GET_OBJECT_TYPE (Operand0) == ACPI_TYPE_INTEGER)
- {
- /*
- * 1) Both operands are of type integer
- * Note: LocalOperand1 may have changed above
- */
- Integer0 = Operand0->Integer.Value;
- Integer1 = LocalOperand1->Integer.Value;
-
- switch (Opcode)
- {
- case AML_LEQUAL_OP: /* LEqual (Operand0, Operand1) */
-
- if (Integer0 == Integer1)
- {
- LocalResult = TRUE;
- }
- break;
-
- case AML_LGREATER_OP: /* LGreater (Operand0, Operand1) */
-
- if (Integer0 > Integer1)
- {
- LocalResult = TRUE;
- }
- break;
-
- case AML_LLESS_OP: /* LLess (Operand0, Operand1) */
-
- if (Integer0 < Integer1)
- {
- LocalResult = TRUE;
- }
- break;
-
- default:
- Status = AE_AML_INTERNAL;
- break;
- }
- }
- else
- {
- /*
- * 2) Both operands are Strings or both are Buffers
- * Note: Code below takes advantage of common Buffer/String
- * object fields. LocalOperand1 may have changed above. Use
- * memcmp to handle nulls in buffers.
- */
- Length0 = Operand0->Buffer.Length;
- Length1 = LocalOperand1->Buffer.Length;
-
- /* Lexicographic compare: compare the data bytes */
-
- Compare = ACPI_MEMCMP (Operand0->Buffer.Pointer,
- LocalOperand1->Buffer.Pointer,
- (Length0 > Length1) ? Length1 : Length0);
-
- switch (Opcode)
- {
- case AML_LEQUAL_OP: /* LEqual (Operand0, Operand1) */
-
- /* Length and all bytes must be equal */
-
- if ((Length0 == Length1) &&
- (Compare == 0))
- {
- /* Length and all bytes match ==> TRUE */
-
- LocalResult = TRUE;
- }
- break;
-
- case AML_LGREATER_OP: /* LGreater (Operand0, Operand1) */
-
- if (Compare > 0)
- {
- LocalResult = TRUE;
- goto Cleanup; /* TRUE */
- }
- if (Compare < 0)
- {
- goto Cleanup; /* FALSE */
- }
-
- /* Bytes match (to shortest length), compare lengths */
-
- if (Length0 > Length1)
- {
- LocalResult = TRUE;
- }
- break;
-
- case AML_LLESS_OP: /* LLess (Operand0, Operand1) */
-
- if (Compare > 0)
- {
- goto Cleanup; /* FALSE */
- }
- if (Compare < 0)
- {
- LocalResult = TRUE;
- goto Cleanup; /* TRUE */
- }
-
- /* Bytes match (to shortest length), compare lengths */
-
- if (Length0 < Length1)
- {
- LocalResult = TRUE;
- }
- break;
-
- default:
- Status = AE_AML_INTERNAL;
- break;
- }
- }
-
-Cleanup:
-
- /* New object was created if implicit conversion performed - delete */
-
- if (LocalOperand1 != Operand1)
- {
- AcpiUtRemoveReference (LocalOperand1);
- }
-
- /* Return the logical result and status */
-
- *LogicalResult = LocalResult;
- return_ACPI_STATUS (Status);
-}
-
-
diff --git a/sys/contrib/dev/acpica/exmutex.c b/sys/contrib/dev/acpica/exmutex.c
deleted file mode 100644
index e1925ec..0000000
--- a/sys/contrib/dev/acpica/exmutex.c
+++ /dev/null
@@ -1,596 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exmutex - ASL Mutex Acquire/Release functions
- * $Revision: 1.40 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __EXMUTEX_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/acevents.h>
-
-#define _COMPONENT ACPI_EXECUTER
- ACPI_MODULE_NAME ("exmutex")
-
-/* Local prototypes */
-
-static void
-AcpiExLinkMutex (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_THREAD_STATE *Thread);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExUnlinkMutex
- *
- * PARAMETERS: ObjDesc - The mutex to be unlinked
- *
- * RETURN: None
- *
- * DESCRIPTION: Remove a mutex from the "AcquiredMutex" list
- *
- ******************************************************************************/
-
-void
-AcpiExUnlinkMutex (
- ACPI_OPERAND_OBJECT *ObjDesc)
-{
- ACPI_THREAD_STATE *Thread = ObjDesc->Mutex.OwnerThread;
-
-
- if (!Thread)
- {
- return;
- }
-
- /* Doubly linked list */
-
- if (ObjDesc->Mutex.Next)
- {
- (ObjDesc->Mutex.Next)->Mutex.Prev = ObjDesc->Mutex.Prev;
- }
-
- if (ObjDesc->Mutex.Prev)
- {
- (ObjDesc->Mutex.Prev)->Mutex.Next = ObjDesc->Mutex.Next;
- }
- else
- {
- Thread->AcquiredMutexList = ObjDesc->Mutex.Next;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExLinkMutex
- *
- * PARAMETERS: ObjDesc - The mutex to be linked
- * Thread - Current executing thread object
- *
- * RETURN: None
- *
- * DESCRIPTION: Add a mutex to the "AcquiredMutex" list for this walk
- *
- ******************************************************************************/
-
-static void
-AcpiExLinkMutex (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_THREAD_STATE *Thread)
-{
- ACPI_OPERAND_OBJECT *ListHead;
-
-
- ListHead = Thread->AcquiredMutexList;
-
- /* This object will be the first object in the list */
-
- ObjDesc->Mutex.Prev = NULL;
- ObjDesc->Mutex.Next = ListHead;
-
- /* Update old first object to point back to this object */
-
- if (ListHead)
- {
- ListHead->Mutex.Prev = ObjDesc;
- }
-
- /* Update list head */
-
- Thread->AcquiredMutexList = ObjDesc;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExAcquireMutexObject
- *
- * PARAMETERS: TimeDesc - Timeout in milliseconds
- * ObjDesc - Mutex object
- * Thread - Current thread state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Acquire an AML mutex, low-level interface. Provides a common
- * path that supports multiple acquires by the same thread.
- *
- * MUTEX: Interpreter must be locked
- *
- * NOTE: This interface is called from three places:
- * 1) From AcpiExAcquireMutex, via an AML Acquire() operator
- * 2) From AcpiExAcquireGlobalLock when an AML Field access requires the
- * global lock
- * 3) From the external interface, AcpiAcquireGlobalLock
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExAcquireMutexObject (
- UINT16 Timeout,
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_THREAD_ID ThreadId)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE_PTR (ExAcquireMutexObject, ObjDesc);
-
-
- if (!ObjDesc)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /* Support for multiple acquires by the owning thread */
-
- if (ObjDesc->Mutex.ThreadId == ThreadId)
- {
- /*
- * The mutex is already owned by this thread, just increment the
- * acquisition depth
- */
- ObjDesc->Mutex.AcquisitionDepth++;
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Acquire the mutex, wait if necessary. Special case for Global Lock */
-
- if (ObjDesc == AcpiGbl_GlobalLockMutex)
- {
- Status = AcpiEvAcquireGlobalLock (Timeout);
- }
- else
- {
- Status = AcpiExSystemWaitMutex (ObjDesc->Mutex.OsMutex,
- Timeout);
- }
-
- if (ACPI_FAILURE (Status))
- {
- /* Includes failure from a timeout on TimeDesc */
-
- return_ACPI_STATUS (Status);
- }
-
- /* Acquired the mutex: update mutex object */
-
- ObjDesc->Mutex.ThreadId = ThreadId;
- ObjDesc->Mutex.AcquisitionDepth = 1;
- ObjDesc->Mutex.OriginalSyncLevel = 0;
- ObjDesc->Mutex.OwnerThread = NULL; /* Used only for AML Acquire() */
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExAcquireMutex
- *
- * PARAMETERS: TimeDesc - Timeout integer
- * ObjDesc - Mutex object
- * WalkState - Current method execution state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Acquire an AML mutex
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExAcquireMutex (
- ACPI_OPERAND_OBJECT *TimeDesc,
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE_PTR (ExAcquireMutex, ObjDesc);
-
-
- if (!ObjDesc)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /* Must have a valid thread ID */
-
- if (!WalkState->Thread)
- {
- ACPI_ERROR ((AE_INFO, "Cannot acquire Mutex [%4.4s], null thread info",
- AcpiUtGetNodeName (ObjDesc->Mutex.Node)));
- return_ACPI_STATUS (AE_AML_INTERNAL);
- }
-
- /*
- * Current sync level must be less than or equal to the sync level of the
- * mutex. This mechanism provides some deadlock prevention
- */
- if (WalkState->Thread->CurrentSyncLevel > ObjDesc->Mutex.SyncLevel)
- {
- ACPI_ERROR ((AE_INFO,
- "Cannot acquire Mutex [%4.4s], current SyncLevel is too large (%d)",
- AcpiUtGetNodeName (ObjDesc->Mutex.Node),
- WalkState->Thread->CurrentSyncLevel));
- return_ACPI_STATUS (AE_AML_MUTEX_ORDER);
- }
-
- Status = AcpiExAcquireMutexObject ((UINT16) TimeDesc->Integer.Value,
- ObjDesc, WalkState->Thread->ThreadId);
- if (ACPI_SUCCESS (Status) && ObjDesc->Mutex.AcquisitionDepth == 1)
- {
- /* Save Thread object, original/current sync levels */
-
- ObjDesc->Mutex.OwnerThread = WalkState->Thread;
- ObjDesc->Mutex.OriginalSyncLevel = WalkState->Thread->CurrentSyncLevel;
- WalkState->Thread->CurrentSyncLevel = ObjDesc->Mutex.SyncLevel;
-
- /* Link the mutex to the current thread for force-unlock at method exit */
-
- AcpiExLinkMutex (ObjDesc, WalkState->Thread);
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExReleaseMutexObject
- *
- * PARAMETERS: ObjDesc - The object descriptor for this op
- *
- * RETURN: Status
- *
- * DESCRIPTION: Release a previously acquired Mutex, low level interface.
- * Provides a common path that supports multiple releases (after
- * previous multiple acquires) by the same thread.
- *
- * MUTEX: Interpreter must be locked
- *
- * NOTE: This interface is called from three places:
- * 1) From AcpiExReleaseMutex, via an AML Acquire() operator
- * 2) From AcpiExReleaseGlobalLock when an AML Field access requires the
- * global lock
- * 3) From the external interface, AcpiReleaseGlobalLock
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExReleaseMutexObject (
- ACPI_OPERAND_OBJECT *ObjDesc)
-{
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (ExReleaseMutexObject);
-
-
- if (ObjDesc->Mutex.AcquisitionDepth == 0)
- {
- return (AE_NOT_ACQUIRED);
- }
-
- /* Match multiple Acquires with multiple Releases */
-
- ObjDesc->Mutex.AcquisitionDepth--;
- if (ObjDesc->Mutex.AcquisitionDepth != 0)
- {
- /* Just decrement the depth and return */
-
- return_ACPI_STATUS (AE_OK);
- }
-
- if (ObjDesc->Mutex.OwnerThread)
- {
- /* Unlink the mutex from the owner's list */
-
- AcpiExUnlinkMutex (ObjDesc);
- ObjDesc->Mutex.OwnerThread = NULL;
- }
-
- /* Release the mutex, special case for Global Lock */
-
- if (ObjDesc == AcpiGbl_GlobalLockMutex)
- {
- Status = AcpiEvReleaseGlobalLock ();
- }
- else
- {
- AcpiOsReleaseMutex (ObjDesc->Mutex.OsMutex);
- }
-
- /* Clear mutex info */
-
- ObjDesc->Mutex.ThreadId = 0;
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExReleaseMutex
- *
- * PARAMETERS: ObjDesc - The object descriptor for this op
- * WalkState - Current method execution state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Release a previously acquired Mutex.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExReleaseMutex (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (ExReleaseMutex);
-
-
- if (!ObjDesc)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /* The mutex must have been previously acquired in order to release it */
-
- if (!ObjDesc->Mutex.OwnerThread)
- {
- ACPI_ERROR ((AE_INFO, "Cannot release Mutex [%4.4s], not acquired",
- AcpiUtGetNodeName (ObjDesc->Mutex.Node)));
- return_ACPI_STATUS (AE_AML_MUTEX_NOT_ACQUIRED);
- }
-
- /*
- * The Mutex is owned, but this thread must be the owner.
- * Special case for Global Lock, any thread can release
- */
- if ((ObjDesc->Mutex.OwnerThread->ThreadId != WalkState->Thread->ThreadId) &&
- (ObjDesc != AcpiGbl_GlobalLockMutex))
- {
- ACPI_ERROR ((AE_INFO,
- "Thread %X cannot release Mutex [%4.4s] acquired by thread %X",
- WalkState->Thread->ThreadId,
- AcpiUtGetNodeName (ObjDesc->Mutex.Node),
- ObjDesc->Mutex.OwnerThread->ThreadId));
- return_ACPI_STATUS (AE_AML_NOT_OWNER);
- }
-
- /* Must have a valid thread ID */
-
- if (!WalkState->Thread)
- {
- ACPI_ERROR ((AE_INFO, "Cannot release Mutex [%4.4s], null thread info",
- AcpiUtGetNodeName (ObjDesc->Mutex.Node)));
- return_ACPI_STATUS (AE_AML_INTERNAL);
- }
-
- /*
- * The sync level of the mutex must be less than or equal to the current
- * sync level
- */
- if (ObjDesc->Mutex.SyncLevel > WalkState->Thread->CurrentSyncLevel)
- {
- ACPI_ERROR ((AE_INFO,
- "Cannot release Mutex [%4.4s], SyncLevel mismatch: mutex %d current %d",
- AcpiUtGetNodeName (ObjDesc->Mutex.Node),
- ObjDesc->Mutex.SyncLevel, WalkState->Thread->CurrentSyncLevel));
- return_ACPI_STATUS (AE_AML_MUTEX_ORDER);
- }
-
- Status = AcpiExReleaseMutexObject (ObjDesc);
-
- if (ObjDesc->Mutex.AcquisitionDepth == 0)
- {
- /* Restore the original SyncLevel */
-
- WalkState->Thread->CurrentSyncLevel = ObjDesc->Mutex.OriginalSyncLevel;
- }
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExReleaseAllMutexes
- *
- * PARAMETERS: Thread - Current executing thread object
- *
- * RETURN: Status
- *
- * DESCRIPTION: Release all mutexes held by this thread
- *
- * NOTE: This function is called as the thread is exiting the interpreter.
- * Mutexes are not released when an individual control method is exited, but
- * only when the parent thread actually exits the interpreter. This allows one
- * method to acquire a mutex, and a different method to release it, as long as
- * this is performed underneath a single parent control method.
- *
- ******************************************************************************/
-
-void
-AcpiExReleaseAllMutexes (
- ACPI_THREAD_STATE *Thread)
-{
- ACPI_OPERAND_OBJECT *Next = Thread->AcquiredMutexList;
- ACPI_OPERAND_OBJECT *ObjDesc;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /* Traverse the list of owned mutexes, releasing each one */
-
- while (Next)
- {
- ObjDesc = Next;
- Next = ObjDesc->Mutex.Next;
-
- ObjDesc->Mutex.Prev = NULL;
- ObjDesc->Mutex.Next = NULL;
- ObjDesc->Mutex.AcquisitionDepth = 0;
-
- /* Release the mutex, special case for Global Lock */
-
- if (ObjDesc == AcpiGbl_GlobalLockMutex)
- {
- /* Ignore errors */
-
- (void) AcpiEvReleaseGlobalLock ();
- }
- else
- {
- AcpiOsReleaseMutex (ObjDesc->Mutex.OsMutex);
- }
-
- /* Mark mutex unowned */
-
- ObjDesc->Mutex.OwnerThread = NULL;
- ObjDesc->Mutex.ThreadId = 0;
-
- /* Update Thread SyncLevel (Last mutex is the important one) */
-
- Thread->CurrentSyncLevel = ObjDesc->Mutex.OriginalSyncLevel;
- }
-}
-
-
diff --git a/sys/contrib/dev/acpica/exnames.c b/sys/contrib/dev/acpica/exnames.c
deleted file mode 100644
index 1304adb..0000000
--- a/sys/contrib/dev/acpica/exnames.c
+++ /dev/null
@@ -1,560 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exnames - interpreter/scanner name load/execute
- * $Revision: 1.111 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __EXNAMES_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/amlcode.h>
-
-#define _COMPONENT ACPI_EXECUTER
- ACPI_MODULE_NAME ("exnames")
-
-/* Local prototypes */
-
-static char *
-AcpiExAllocateNameString (
- UINT32 PrefixCount,
- UINT32 NumNameSegs);
-
-static ACPI_STATUS
-AcpiExNameSegment (
- UINT8 **InAmlAddress,
- char *NameString);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExAllocateNameString
- *
- * PARAMETERS: PrefixCount - Count of parent levels. Special cases:
- * (-1)==root, 0==none
- * NumNameSegs - count of 4-character name segments
- *
- * RETURN: A pointer to the allocated string segment. This segment must
- * be deleted by the caller.
- *
- * DESCRIPTION: Allocate a buffer for a name string. Ensure allocated name
- * string is long enough, and set up prefix if any.
- *
- ******************************************************************************/
-
-static char *
-AcpiExAllocateNameString (
- UINT32 PrefixCount,
- UINT32 NumNameSegs)
-{
- char *TempPtr;
- char *NameString;
- UINT32 SizeNeeded;
-
- ACPI_FUNCTION_TRACE (ExAllocateNameString);
-
-
- /*
- * Allow room for all \ and ^ prefixes, all segments and a MultiNamePrefix.
- * Also, one byte for the null terminator.
- * This may actually be somewhat longer than needed.
- */
- if (PrefixCount == ACPI_UINT32_MAX)
- {
- /* Special case for root */
-
- SizeNeeded = 1 + (ACPI_NAME_SIZE * NumNameSegs) + 2 + 1;
- }
- else
- {
- SizeNeeded = PrefixCount + (ACPI_NAME_SIZE * NumNameSegs) + 2 + 1;
- }
-
- /*
- * Allocate a buffer for the name.
- * This buffer must be deleted by the caller!
- */
- NameString = ACPI_ALLOCATE (SizeNeeded);
- if (!NameString)
- {
- ACPI_ERROR ((AE_INFO,
- "Could not allocate size %d", SizeNeeded));
- return_PTR (NULL);
- }
-
- TempPtr = NameString;
-
- /* Set up Root or Parent prefixes if needed */
-
- if (PrefixCount == ACPI_UINT32_MAX)
- {
- *TempPtr++ = AML_ROOT_PREFIX;
- }
- else
- {
- while (PrefixCount--)
- {
- *TempPtr++ = AML_PARENT_PREFIX;
- }
- }
-
-
- /* Set up Dual or Multi prefixes if needed */
-
- if (NumNameSegs > 2)
- {
- /* Set up multi prefixes */
-
- *TempPtr++ = AML_MULTI_NAME_PREFIX_OP;
- *TempPtr++ = (char) NumNameSegs;
- }
- else if (2 == NumNameSegs)
- {
- /* Set up dual prefixes */
-
- *TempPtr++ = AML_DUAL_NAME_PREFIX;
- }
-
- /*
- * Terminate string following prefixes. AcpiExNameSegment() will
- * append the segment(s)
- */
- *TempPtr = 0;
-
- return_PTR (NameString);
-}
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExNameSegment
- *
- * PARAMETERS: InAmlAddress - Pointer to the name in the AML code
- * NameString - Where to return the name. The name is appended
- * to any existing string to form a namepath
- *
- * RETURN: Status
- *
- * DESCRIPTION: Extract an ACPI name (4 bytes) from the AML byte stream
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiExNameSegment (
- UINT8 **InAmlAddress,
- char *NameString)
-{
- char *AmlAddress = (void *) *InAmlAddress;
- ACPI_STATUS Status = AE_OK;
- UINT32 Index;
- char CharBuf[5];
-
-
- ACPI_FUNCTION_TRACE (ExNameSegment);
-
-
- /*
- * If first character is a digit, then we know that we aren't looking at a
- * valid name segment
- */
- CharBuf[0] = *AmlAddress;
-
- if ('0' <= CharBuf[0] && CharBuf[0] <= '9')
- {
- ACPI_ERROR ((AE_INFO, "Invalid leading digit: %c", CharBuf[0]));
- return_ACPI_STATUS (AE_CTRL_PENDING);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_LOAD, "Bytes from stream:\n"));
-
- for (Index = 0;
- (Index < ACPI_NAME_SIZE) && (AcpiUtValidAcpiChar (*AmlAddress, 0));
- Index++)
- {
- CharBuf[Index] = *AmlAddress++;
- ACPI_DEBUG_PRINT ((ACPI_DB_LOAD, "%c\n", CharBuf[Index]));
- }
-
-
- /* Valid name segment */
-
- if (Index == 4)
- {
- /* Found 4 valid characters */
-
- CharBuf[4] = '\0';
-
- if (NameString)
- {
- ACPI_STRCAT (NameString, CharBuf);
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
- "Appended to - %s\n", NameString));
- }
- else
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
- "No Name string - %s\n", CharBuf));
- }
- }
- else if (Index == 0)
- {
- /*
- * First character was not a valid name character,
- * so we are looking at something other than a name.
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "Leading character is not alpha: %02Xh (not a name)\n",
- CharBuf[0]));
- Status = AE_CTRL_PENDING;
- }
- else
- {
- /*
- * Segment started with one or more valid characters, but fewer than
- * the required 4
- */
- Status = AE_AML_BAD_NAME;
- ACPI_ERROR ((AE_INFO,
- "Bad character %02x in name, at %p",
- *AmlAddress, AmlAddress));
- }
-
- *InAmlAddress = ACPI_CAST_PTR (UINT8, AmlAddress);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExGetNameString
- *
- * PARAMETERS: DataType - Object type to be associated with this
- * name
- * InAmlAddress - Pointer to the namestring in the AML code
- * OutNameString - Where the namestring is returned
- * OutNameLength - Length of the returned string
- *
- * RETURN: Status, namestring and length
- *
- * DESCRIPTION: Extract a full namepath from the AML byte stream,
- * including any prefixes.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExGetNameString (
- ACPI_OBJECT_TYPE DataType,
- UINT8 *InAmlAddress,
- char **OutNameString,
- UINT32 *OutNameLength)
-{
- ACPI_STATUS Status = AE_OK;
- UINT8 *AmlAddress = InAmlAddress;
- char *NameString = NULL;
- UINT32 NumSegments;
- UINT32 PrefixCount = 0;
- BOOLEAN HasPrefix = FALSE;
-
-
- ACPI_FUNCTION_TRACE_PTR (ExGetNameString, AmlAddress);
-
-
- if (ACPI_TYPE_LOCAL_REGION_FIELD == DataType ||
- ACPI_TYPE_LOCAL_BANK_FIELD == DataType ||
- ACPI_TYPE_LOCAL_INDEX_FIELD == DataType)
- {
- /* Disallow prefixes for types associated with FieldUnit names */
-
- NameString = AcpiExAllocateNameString (0, 1);
- if (!NameString)
- {
- Status = AE_NO_MEMORY;
- }
- else
- {
- Status = AcpiExNameSegment (&AmlAddress, NameString);
- }
- }
- else
- {
- /*
- * DataType is not a field name.
- * Examine first character of name for root or parent prefix operators
- */
- switch (*AmlAddress)
- {
- case AML_ROOT_PREFIX:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_LOAD, "RootPrefix(\\) at %p\n",
- AmlAddress));
-
- /*
- * Remember that we have a RootPrefix --
- * see comment in AcpiExAllocateNameString()
- */
- AmlAddress++;
- PrefixCount = ACPI_UINT32_MAX;
- HasPrefix = TRUE;
- break;
-
-
- case AML_PARENT_PREFIX:
-
- /* Increment past possibly multiple parent prefixes */
-
- do
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_LOAD, "ParentPrefix (^) at %p\n",
- AmlAddress));
-
- AmlAddress++;
- PrefixCount++;
-
- } while (*AmlAddress == AML_PARENT_PREFIX);
-
- HasPrefix = TRUE;
- break;
-
-
- default:
-
- /* Not a prefix character */
-
- break;
- }
-
- /* Examine first character of name for name segment prefix operator */
-
- switch (*AmlAddress)
- {
- case AML_DUAL_NAME_PREFIX:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_LOAD, "DualNamePrefix at %p\n",
- AmlAddress));
-
- AmlAddress++;
- NameString = AcpiExAllocateNameString (PrefixCount, 2);
- if (!NameString)
- {
- Status = AE_NO_MEMORY;
- break;
- }
-
- /* Indicate that we processed a prefix */
-
- HasPrefix = TRUE;
-
- Status = AcpiExNameSegment (&AmlAddress, NameString);
- if (ACPI_SUCCESS (Status))
- {
- Status = AcpiExNameSegment (&AmlAddress, NameString);
- }
- break;
-
-
- case AML_MULTI_NAME_PREFIX_OP:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_LOAD, "MultiNamePrefix at %p\n",
- AmlAddress));
-
- /* Fetch count of segments remaining in name path */
-
- AmlAddress++;
- NumSegments = *AmlAddress;
-
- NameString = AcpiExAllocateNameString (PrefixCount, NumSegments);
- if (!NameString)
- {
- Status = AE_NO_MEMORY;
- break;
- }
-
- /* Indicate that we processed a prefix */
-
- AmlAddress++;
- HasPrefix = TRUE;
-
- while (NumSegments &&
- (Status = AcpiExNameSegment (&AmlAddress, NameString)) ==
- AE_OK)
- {
- NumSegments--;
- }
-
- break;
-
-
- case 0:
-
- /* NullName valid as of 8-12-98 ASL/AML Grammar Update */
-
- if (PrefixCount == ACPI_UINT32_MAX)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "NameSeg is \"\\\" followed by NULL\n"));
- }
-
- /* Consume the NULL byte */
-
- AmlAddress++;
- NameString = AcpiExAllocateNameString (PrefixCount, 0);
- if (!NameString)
- {
- Status = AE_NO_MEMORY;
- break;
- }
-
- break;
-
-
- default:
-
- /* Name segment string */
-
- NameString = AcpiExAllocateNameString (PrefixCount, 1);
- if (!NameString)
- {
- Status = AE_NO_MEMORY;
- break;
- }
-
- Status = AcpiExNameSegment (&AmlAddress, NameString);
- break;
- }
- }
-
- if (AE_CTRL_PENDING == Status && HasPrefix)
- {
- /* Ran out of segments after processing a prefix */
-
- ACPI_ERROR ((AE_INFO,
- "Malformed Name at %p", NameString));
- Status = AE_AML_BAD_NAME;
- }
-
- if (ACPI_FAILURE (Status))
- {
- if (NameString)
- {
- ACPI_FREE (NameString);
- }
- return_ACPI_STATUS (Status);
- }
-
- *OutNameString = NameString;
- *OutNameLength = (UINT32) (AmlAddress - InAmlAddress);
-
- return_ACPI_STATUS (Status);
-}
-
-
diff --git a/sys/contrib/dev/acpica/exoparg1.c b/sys/contrib/dev/acpica/exoparg1.c
deleted file mode 100644
index 51f34af..0000000
--- a/sys/contrib/dev/acpica/exoparg1.c
+++ /dev/null
@@ -1,1178 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exoparg1 - AML execution - opcodes with 1 argument
- * $Revision: 1.184 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __EXOPARG1_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-
-#define _COMPONENT ACPI_EXECUTER
- ACPI_MODULE_NAME ("exoparg1")
-
-
-/*!
- * Naming convention for AML interpreter execution routines.
- *
- * The routines that begin execution of AML opcodes are named with a common
- * convention based upon the number of arguments, the number of target operands,
- * and whether or not a value is returned:
- *
- * AcpiExOpcode_xA_yT_zR
- *
- * Where:
- *
- * xA - ARGUMENTS: The number of arguments (input operands) that are
- * required for this opcode type (0 through 6 args).
- * yT - TARGETS: The number of targets (output operands) that are required
- * for this opcode type (0, 1, or 2 targets).
- * zR - RETURN VALUE: Indicates whether this opcode type returns a value
- * as the function return (0 or 1).
- *
- * The AcpiExOpcode* functions are called via the Dispatcher component with
- * fully resolved operands.
-!*/
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExOpcode_0A_0T_1R
- *
- * PARAMETERS: WalkState - Current state (contains AML opcode)
- *
- * RETURN: Status
- *
- * DESCRIPTION: Execute operator with no operands, one return value
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExOpcode_0A_0T_1R (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_OPERAND_OBJECT *ReturnDesc = NULL;
-
-
- ACPI_FUNCTION_TRACE_STR (ExOpcode_0A_0T_1R,
- AcpiPsGetOpcodeName (WalkState->Opcode));
-
-
- /* Examine the AML opcode */
-
- switch (WalkState->Opcode)
- {
- case AML_TIMER_OP: /* Timer () */
-
- /* Create a return object of type Integer */
-
- ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
- if (!ReturnDesc)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
- ReturnDesc->Integer.Value = AcpiOsGetTimer ();
- break;
-
- default: /* Unknown opcode */
-
- ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
- WalkState->Opcode));
- Status = AE_AML_BAD_OPCODE;
- break;
- }
-
-Cleanup:
-
- /* Delete return object on error */
-
- if ((ACPI_FAILURE (Status)) || WalkState->ResultObj)
- {
- AcpiUtRemoveReference (ReturnDesc);
- WalkState->ResultObj = NULL;
- }
- else
- {
- /* Save the return value */
-
- WalkState->ResultObj = ReturnDesc;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExOpcode_1A_0T_0R
- *
- * PARAMETERS: WalkState - Current state (contains AML opcode)
- *
- * RETURN: Status
- *
- * DESCRIPTION: Execute Type 1 monadic operator with numeric operand on
- * object stack
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExOpcode_1A_0T_0R (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0];
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE_STR (ExOpcode_1A_0T_0R,
- AcpiPsGetOpcodeName (WalkState->Opcode));
-
-
- /* Examine the AML opcode */
-
- switch (WalkState->Opcode)
- {
- case AML_RELEASE_OP: /* Release (MutexObject) */
-
- Status = AcpiExReleaseMutex (Operand[0], WalkState);
- break;
-
-
- case AML_RESET_OP: /* Reset (EventObject) */
-
- Status = AcpiExSystemResetEvent (Operand[0]);
- break;
-
-
- case AML_SIGNAL_OP: /* Signal (EventObject) */
-
- Status = AcpiExSystemSignalEvent (Operand[0]);
- break;
-
-
- case AML_SLEEP_OP: /* Sleep (MsecTime) */
-
- Status = AcpiExSystemDoSuspend (Operand[0]->Integer.Value);
- break;
-
-
- case AML_STALL_OP: /* Stall (UsecTime) */
-
- Status = AcpiExSystemDoStall ((UINT32) Operand[0]->Integer.Value);
- break;
-
-
- case AML_UNLOAD_OP: /* Unload (Handle) */
-
- Status = AcpiExUnloadTable (Operand[0]);
- break;
-
-
- default: /* Unknown opcode */
-
- ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
- WalkState->Opcode));
- Status = AE_AML_BAD_OPCODE;
- break;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExOpcode_1A_1T_0R
- *
- * PARAMETERS: WalkState - Current state (contains AML opcode)
- *
- * RETURN: Status
- *
- * DESCRIPTION: Execute opcode with one argument, one target, and no
- * return value.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExOpcode_1A_1T_0R (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0];
-
-
- ACPI_FUNCTION_TRACE_STR (ExOpcode_1A_1T_0R,
- AcpiPsGetOpcodeName (WalkState->Opcode));
-
-
- /* Examine the AML opcode */
-
- switch (WalkState->Opcode)
- {
- case AML_LOAD_OP:
-
- Status = AcpiExLoadOp (Operand[0], Operand[1], WalkState);
- break;
-
- default: /* Unknown opcode */
-
- ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
- WalkState->Opcode));
- Status = AE_AML_BAD_OPCODE;
- goto Cleanup;
- }
-
-
-Cleanup:
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExOpcode_1A_1T_1R
- *
- * PARAMETERS: WalkState - Current state (contains AML opcode)
- *
- * RETURN: Status
- *
- * DESCRIPTION: Execute opcode with one argument, one target, and a
- * return value.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExOpcode_1A_1T_1R (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0];
- ACPI_OPERAND_OBJECT *ReturnDesc = NULL;
- ACPI_OPERAND_OBJECT *ReturnDesc2 = NULL;
- UINT32 Temp32;
- UINT32 i;
- ACPI_INTEGER PowerOfTen;
- ACPI_INTEGER Digit;
-
-
- ACPI_FUNCTION_TRACE_STR (ExOpcode_1A_1T_1R,
- AcpiPsGetOpcodeName (WalkState->Opcode));
-
-
- /* Examine the AML opcode */
-
- switch (WalkState->Opcode)
- {
- case AML_BIT_NOT_OP:
- case AML_FIND_SET_LEFT_BIT_OP:
- case AML_FIND_SET_RIGHT_BIT_OP:
- case AML_FROM_BCD_OP:
- case AML_TO_BCD_OP:
- case AML_COND_REF_OF_OP:
-
- /* Create a return object of type Integer for these opcodes */
-
- ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
- if (!ReturnDesc)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- switch (WalkState->Opcode)
- {
- case AML_BIT_NOT_OP: /* Not (Operand, Result) */
-
- ReturnDesc->Integer.Value = ~Operand[0]->Integer.Value;
- break;
-
-
- case AML_FIND_SET_LEFT_BIT_OP: /* FindSetLeftBit (Operand, Result) */
-
- ReturnDesc->Integer.Value = Operand[0]->Integer.Value;
-
- /*
- * Acpi specification describes Integer type as a little
- * endian unsigned value, so this boundary condition is valid.
- */
- for (Temp32 = 0; ReturnDesc->Integer.Value &&
- Temp32 < ACPI_INTEGER_BIT_SIZE; ++Temp32)
- {
- ReturnDesc->Integer.Value >>= 1;
- }
-
- ReturnDesc->Integer.Value = Temp32;
- break;
-
-
- case AML_FIND_SET_RIGHT_BIT_OP: /* FindSetRightBit (Operand, Result) */
-
- ReturnDesc->Integer.Value = Operand[0]->Integer.Value;
-
- /*
- * The Acpi specification describes Integer type as a little
- * endian unsigned value, so this boundary condition is valid.
- */
- for (Temp32 = 0; ReturnDesc->Integer.Value &&
- Temp32 < ACPI_INTEGER_BIT_SIZE; ++Temp32)
- {
- ReturnDesc->Integer.Value <<= 1;
- }
-
- /* Since the bit position is one-based, subtract from 33 (65) */
-
- ReturnDesc->Integer.Value =
- Temp32 == 0 ? 0 : (ACPI_INTEGER_BIT_SIZE + 1) - Temp32;
- break;
-
-
- case AML_FROM_BCD_OP: /* FromBcd (BCDValue, Result) */
-
- /*
- * The 64-bit ACPI integer can hold 16 4-bit BCD characters
- * (if table is 32-bit, integer can hold 8 BCD characters)
- * Convert each 4-bit BCD value
- */
- PowerOfTen = 1;
- ReturnDesc->Integer.Value = 0;
- Digit = Operand[0]->Integer.Value;
-
- /* Convert each BCD digit (each is one nybble wide) */
-
- for (i = 0; (i < AcpiGbl_IntegerNybbleWidth) && (Digit > 0); i++)
- {
- /* Get the least significant 4-bit BCD digit */
-
- Temp32 = ((UINT32) Digit) & 0xF;
-
- /* Check the range of the digit */
-
- if (Temp32 > 9)
- {
- ACPI_ERROR ((AE_INFO,
- "BCD digit too large (not decimal): 0x%X",
- Temp32));
-
- Status = AE_AML_NUMERIC_OVERFLOW;
- goto Cleanup;
- }
-
- /* Sum the digit into the result with the current power of 10 */
-
- ReturnDesc->Integer.Value +=
- (((ACPI_INTEGER) Temp32) * PowerOfTen);
-
- /* Shift to next BCD digit */
-
- Digit >>= 4;
-
- /* Next power of 10 */
-
- PowerOfTen *= 10;
- }
- break;
-
-
- case AML_TO_BCD_OP: /* ToBcd (Operand, Result) */
-
- ReturnDesc->Integer.Value = 0;
- Digit = Operand[0]->Integer.Value;
-
- /* Each BCD digit is one nybble wide */
-
- for (i = 0; (i < AcpiGbl_IntegerNybbleWidth) && (Digit > 0); i++)
- {
- (void) AcpiUtShortDivide (Digit, 10, &Digit, &Temp32);
-
- /*
- * Insert the BCD digit that resides in the
- * remainder from above
- */
- ReturnDesc->Integer.Value |=
- (((ACPI_INTEGER) Temp32) << ACPI_MUL_4 (i));
- }
-
- /* Overflow if there is any data left in Digit */
-
- if (Digit > 0)
- {
- ACPI_ERROR ((AE_INFO,
- "Integer too large to convert to BCD: %8.8X%8.8X",
- ACPI_FORMAT_UINT64 (Operand[0]->Integer.Value)));
- Status = AE_AML_NUMERIC_OVERFLOW;
- goto Cleanup;
- }
- break;
-
-
- case AML_COND_REF_OF_OP: /* CondRefOf (SourceObject, Result) */
-
- /*
- * This op is a little strange because the internal return value is
- * different than the return value stored in the result descriptor
- * (There are really two return values)
- */
- if ((ACPI_NAMESPACE_NODE *) Operand[0] == AcpiGbl_RootNode)
- {
- /*
- * This means that the object does not exist in the namespace,
- * return FALSE
- */
- ReturnDesc->Integer.Value = 0;
- goto Cleanup;
- }
-
- /* Get the object reference, store it, and remove our reference */
-
- Status = AcpiExGetObjectReference (Operand[0],
- &ReturnDesc2, WalkState);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- Status = AcpiExStore (ReturnDesc2, Operand[1], WalkState);
- AcpiUtRemoveReference (ReturnDesc2);
-
- /* The object exists in the namespace, return TRUE */
-
- ReturnDesc->Integer.Value = ACPI_INTEGER_MAX;
- goto Cleanup;
-
-
- default:
- /* No other opcodes get here */
- break;
- }
- break;
-
-
- case AML_STORE_OP: /* Store (Source, Target) */
-
- /*
- * A store operand is typically a number, string, buffer or lvalue
- * Be careful about deleting the source object,
- * since the object itself may have been stored.
- */
- Status = AcpiExStore (Operand[0], Operand[1], WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* It is possible that the Store already produced a return object */
-
- if (!WalkState->ResultObj)
- {
- /*
- * Normally, we would remove a reference on the Operand[0]
- * parameter; But since it is being used as the internal return
- * object (meaning we would normally increment it), the two
- * cancel out, and we simply don't do anything.
- */
- WalkState->ResultObj = Operand[0];
- WalkState->Operands[0] = NULL; /* Prevent deletion */
- }
- return_ACPI_STATUS (Status);
-
-
- /*
- * ACPI 2.0 Opcodes
- */
- case AML_COPY_OP: /* Copy (Source, Target) */
-
- Status = AcpiUtCopyIobjectToIobject (Operand[0], &ReturnDesc,
- WalkState);
- break;
-
-
- case AML_TO_DECSTRING_OP: /* ToDecimalString (Data, Result) */
-
- Status = AcpiExConvertToString (Operand[0], &ReturnDesc,
- ACPI_EXPLICIT_CONVERT_DECIMAL);
- if (ReturnDesc == Operand[0])
- {
- /* No conversion performed, add ref to handle return value */
- AcpiUtAddReference (ReturnDesc);
- }
- break;
-
-
- case AML_TO_HEXSTRING_OP: /* ToHexString (Data, Result) */
-
- Status = AcpiExConvertToString (Operand[0], &ReturnDesc,
- ACPI_EXPLICIT_CONVERT_HEX);
- if (ReturnDesc == Operand[0])
- {
- /* No conversion performed, add ref to handle return value */
- AcpiUtAddReference (ReturnDesc);
- }
- break;
-
-
- case AML_TO_BUFFER_OP: /* ToBuffer (Data, Result) */
-
- Status = AcpiExConvertToBuffer (Operand[0], &ReturnDesc);
- if (ReturnDesc == Operand[0])
- {
- /* No conversion performed, add ref to handle return value */
- AcpiUtAddReference (ReturnDesc);
- }
- break;
-
-
- case AML_TO_INTEGER_OP: /* ToInteger (Data, Result) */
-
- Status = AcpiExConvertToInteger (Operand[0], &ReturnDesc,
- ACPI_ANY_BASE);
- if (ReturnDesc == Operand[0])
- {
- /* No conversion performed, add ref to handle return value */
- AcpiUtAddReference (ReturnDesc);
- }
- break;
-
-
- case AML_SHIFT_LEFT_BIT_OP: /* ShiftLeftBit (Source, BitNum) */
- case AML_SHIFT_RIGHT_BIT_OP: /* ShiftRightBit (Source, BitNum) */
-
- /* These are two obsolete opcodes */
-
- ACPI_ERROR ((AE_INFO,
- "%s is obsolete and not implemented",
- AcpiPsGetOpcodeName (WalkState->Opcode)));
- Status = AE_SUPPORT;
- goto Cleanup;
-
-
- default: /* Unknown opcode */
-
- ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
- WalkState->Opcode));
- Status = AE_AML_BAD_OPCODE;
- goto Cleanup;
- }
-
- if (ACPI_SUCCESS (Status))
- {
- /* Store the return value computed above into the target object */
-
- Status = AcpiExStore (ReturnDesc, Operand[1], WalkState);
- }
-
-
-Cleanup:
-
- /* Delete return object on error */
-
- if (ACPI_FAILURE (Status))
- {
- AcpiUtRemoveReference (ReturnDesc);
- }
-
- /* Save return object on success */
-
- else if (!WalkState->ResultObj)
- {
- WalkState->ResultObj = ReturnDesc;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExOpcode_1A_0T_1R
- *
- * PARAMETERS: WalkState - Current state (contains AML opcode)
- *
- * RETURN: Status
- *
- * DESCRIPTION: Execute opcode with one argument, no target, and a return value
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExOpcode_1A_0T_1R (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0];
- ACPI_OPERAND_OBJECT *TempDesc;
- ACPI_OPERAND_OBJECT *ReturnDesc = NULL;
- ACPI_STATUS Status = AE_OK;
- UINT32 Type;
- ACPI_INTEGER Value;
-
-
- ACPI_FUNCTION_TRACE_STR (ExOpcode_1A_0T_1R,
- AcpiPsGetOpcodeName (WalkState->Opcode));
-
-
- /* Examine the AML opcode */
-
- switch (WalkState->Opcode)
- {
- case AML_LNOT_OP: /* LNot (Operand) */
-
- ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
- if (!ReturnDesc)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- /*
- * Set result to ONES (TRUE) if Value == 0. Note:
- * ReturnDesc->Integer.Value is initially == 0 (FALSE) from above.
- */
- if (!Operand[0]->Integer.Value)
- {
- ReturnDesc->Integer.Value = ACPI_INTEGER_MAX;
- }
- break;
-
-
- case AML_DECREMENT_OP: /* Decrement (Operand) */
- case AML_INCREMENT_OP: /* Increment (Operand) */
-
- /*
- * Create a new integer. Can't just get the base integer and
- * increment it because it may be an Arg or Field.
- */
- ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
- if (!ReturnDesc)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- /*
- * Since we are expecting a Reference operand, it can be either a
- * NS Node or an internal object.
- */
- TempDesc = Operand[0];
- if (ACPI_GET_DESCRIPTOR_TYPE (TempDesc) == ACPI_DESC_TYPE_OPERAND)
- {
- /* Internal reference object - prevent deletion */
-
- AcpiUtAddReference (TempDesc);
- }
-
- /*
- * Convert the Reference operand to an Integer (This removes a
- * reference on the Operand[0] object)
- *
- * NOTE: We use LNOT_OP here in order to force resolution of the
- * reference operand to an actual integer.
- */
- Status = AcpiExResolveOperands (AML_LNOT_OP, &TempDesc, WalkState);
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "While resolving operands for [%s]",
- AcpiPsGetOpcodeName (WalkState->Opcode)));
-
- goto Cleanup;
- }
-
- /*
- * TempDesc is now guaranteed to be an Integer object --
- * Perform the actual increment or decrement
- */
- if (WalkState->Opcode == AML_INCREMENT_OP)
- {
- ReturnDesc->Integer.Value = TempDesc->Integer.Value +1;
- }
- else
- {
- ReturnDesc->Integer.Value = TempDesc->Integer.Value -1;
- }
-
- /* Finished with this Integer object */
-
- AcpiUtRemoveReference (TempDesc);
-
- /*
- * Store the result back (indirectly) through the original
- * Reference object
- */
- Status = AcpiExStore (ReturnDesc, Operand[0], WalkState);
- break;
-
-
- case AML_TYPE_OP: /* ObjectType (SourceObject) */
-
- /*
- * Note: The operand is not resolved at this point because we want to
- * get the associated object, not its value. For example, we don't
- * want to resolve a FieldUnit to its value, we want the actual
- * FieldUnit object.
- */
-
- /* Get the type of the base object */
-
- Status = AcpiExResolveMultiple (WalkState, Operand[0], &Type, NULL);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- /* Allocate a descriptor to hold the type. */
-
- ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
- if (!ReturnDesc)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- ReturnDesc->Integer.Value = Type;
- break;
-
-
- case AML_SIZE_OF_OP: /* SizeOf (SourceObject) */
-
- /*
- * Note: The operand is not resolved at this point because we want to
- * get the associated object, not its value.
- */
-
- /* Get the base object */
-
- Status = AcpiExResolveMultiple (WalkState,
- Operand[0], &Type, &TempDesc);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- /*
- * The type of the base object must be integer, buffer, string, or
- * package. All others are not supported.
- *
- * NOTE: Integer is not specifically supported by the ACPI spec,
- * but is supported implicitly via implicit operand conversion.
- * rather than bother with conversion, we just use the byte width
- * global (4 or 8 bytes).
- */
- switch (Type)
- {
- case ACPI_TYPE_INTEGER:
- Value = AcpiGbl_IntegerByteWidth;
- break;
-
- case ACPI_TYPE_BUFFER:
- Value = TempDesc->Buffer.Length;
- break;
-
- case ACPI_TYPE_STRING:
- Value = TempDesc->String.Length;
- break;
-
- case ACPI_TYPE_PACKAGE:
- Value = TempDesc->Package.Count;
- break;
-
- default:
- ACPI_ERROR ((AE_INFO,
- "Operand is not Buf/Int/Str/Pkg - found type %s",
- AcpiUtGetTypeName (Type)));
- Status = AE_AML_OPERAND_TYPE;
- goto Cleanup;
- }
-
- /*
- * Now that we have the size of the object, create a result
- * object to hold the value
- */
- ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
- if (!ReturnDesc)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- ReturnDesc->Integer.Value = Value;
- break;
-
-
- case AML_REF_OF_OP: /* RefOf (SourceObject) */
-
- Status = AcpiExGetObjectReference (Operand[0], &ReturnDesc, WalkState);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
- break;
-
-
- case AML_DEREF_OF_OP: /* DerefOf (ObjReference | String) */
-
- /* Check for a method local or argument, or standalone String */
-
- if (ACPI_GET_DESCRIPTOR_TYPE (Operand[0]) == ACPI_DESC_TYPE_NAMED)
- {
- TempDesc = AcpiNsGetAttachedObject (
- (ACPI_NAMESPACE_NODE *) Operand[0]);
- if (TempDesc &&
- ((ACPI_GET_OBJECT_TYPE (TempDesc) == ACPI_TYPE_STRING) ||
- (ACPI_GET_OBJECT_TYPE (TempDesc) == ACPI_TYPE_LOCAL_REFERENCE)))
- {
- Operand[0] = TempDesc;
- AcpiUtAddReference (TempDesc);
- }
- else
- {
- Status = AE_AML_OPERAND_TYPE;
- goto Cleanup;
- }
- }
- else
- {
- switch (ACPI_GET_OBJECT_TYPE (Operand[0]))
- {
- case ACPI_TYPE_LOCAL_REFERENCE:
- /*
- * This is a DerefOf (LocalX | ArgX)
- *
- * Must resolve/dereference the local/arg reference first
- */
- switch (Operand[0]->Reference.Opcode)
- {
- case AML_LOCAL_OP:
- case AML_ARG_OP:
-
- /* Set Operand[0] to the value of the local/arg */
-
- Status = AcpiDsMethodDataGetValue (
- Operand[0]->Reference.Opcode,
- Operand[0]->Reference.Offset,
- WalkState, &TempDesc);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- /*
- * Delete our reference to the input object and
- * point to the object just retrieved
- */
- AcpiUtRemoveReference (Operand[0]);
- Operand[0] = TempDesc;
- break;
-
- case AML_REF_OF_OP:
-
- /* Get the object to which the reference refers */
-
- TempDesc = Operand[0]->Reference.Object;
- AcpiUtRemoveReference (Operand[0]);
- Operand[0] = TempDesc;
- break;
-
- default:
-
- /* Must be an Index op - handled below */
- break;
- }
- break;
-
- case ACPI_TYPE_STRING:
- break;
-
- default:
- Status = AE_AML_OPERAND_TYPE;
- goto Cleanup;
- }
- }
-
- if (ACPI_GET_DESCRIPTOR_TYPE (Operand[0]) != ACPI_DESC_TYPE_NAMED)
- {
- if (ACPI_GET_OBJECT_TYPE (Operand[0]) == ACPI_TYPE_STRING)
- {
- /*
- * This is a DerefOf (String). The string is a reference
- * to a named ACPI object.
- *
- * 1) Find the owning Node
- * 2) Dereference the node to an actual object. Could be a
- * Field, so we need to resolve the node to a value.
- */
- Status = AcpiNsGetNode (WalkState->ScopeInfo->Scope.Node,
- Operand[0]->String.Pointer,
- ACPI_NS_SEARCH_PARENT,
- ACPI_CAST_INDIRECT_PTR (
- ACPI_NAMESPACE_NODE, &ReturnDesc));
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- Status = AcpiExResolveNodeToValue (
- ACPI_CAST_INDIRECT_PTR (
- ACPI_NAMESPACE_NODE, &ReturnDesc),
- WalkState);
- goto Cleanup;
- }
- }
-
- /* Operand[0] may have changed from the code above */
-
- if (ACPI_GET_DESCRIPTOR_TYPE (Operand[0]) == ACPI_DESC_TYPE_NAMED)
- {
- /*
- * This is a DerefOf (ObjectReference)
- * Get the actual object from the Node (This is the dereference).
- * This case may only happen when a LocalX or ArgX is
- * dereferenced above.
- */
- ReturnDesc = AcpiNsGetAttachedObject (
- (ACPI_NAMESPACE_NODE *) Operand[0]);
- AcpiUtAddReference (ReturnDesc);
- }
- else
- {
- /*
- * This must be a reference object produced by either the
- * Index() or RefOf() operator
- */
- switch (Operand[0]->Reference.Opcode)
- {
- case AML_INDEX_OP:
-
- /*
- * The target type for the Index operator must be
- * either a Buffer or a Package
- */
- switch (Operand[0]->Reference.TargetType)
- {
- case ACPI_TYPE_BUFFER_FIELD:
-
- TempDesc = Operand[0]->Reference.Object;
-
- /*
- * 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
- * sub-buffer of the main buffer, it is only a pointer to a
- * single element (byte) of the buffer!
- */
- ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
- if (!ReturnDesc)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- /*
- * Since we are returning the value of the buffer at the
- * indexed location, we don't need to add an additional
- * reference to the buffer itself.
- */
- ReturnDesc->Integer.Value =
- TempDesc->Buffer.Pointer[Operand[0]->Reference.Offset];
- break;
-
-
- case ACPI_TYPE_PACKAGE:
-
- /*
- * Return the referenced element of the package. We must
- * add another reference to the referenced object, however.
- */
- ReturnDesc = *(Operand[0]->Reference.Where);
- if (ReturnDesc)
- {
- AcpiUtAddReference (ReturnDesc);
- }
- break;
-
-
- default:
-
- ACPI_ERROR ((AE_INFO,
- "Unknown Index TargetType %X in obj %p",
- Operand[0]->Reference.TargetType, Operand[0]));
- Status = AE_AML_OPERAND_TYPE;
- goto Cleanup;
- }
- break;
-
-
- case AML_REF_OF_OP:
-
- ReturnDesc = Operand[0]->Reference.Object;
-
- if (ACPI_GET_DESCRIPTOR_TYPE (ReturnDesc) ==
- ACPI_DESC_TYPE_NAMED)
- {
- ReturnDesc = AcpiNsGetAttachedObject (
- (ACPI_NAMESPACE_NODE *) ReturnDesc);
- }
-
- /* Add another reference to the object! */
-
- AcpiUtAddReference (ReturnDesc);
- break;
-
-
- default:
- ACPI_ERROR ((AE_INFO,
- "Unknown opcode in reference(%p) - %X",
- Operand[0], Operand[0]->Reference.Opcode));
-
- Status = AE_TYPE;
- goto Cleanup;
- }
- }
- break;
-
-
- default:
-
- ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
- WalkState->Opcode));
- Status = AE_AML_BAD_OPCODE;
- goto Cleanup;
- }
-
-
-Cleanup:
-
- /* Delete return object on error */
-
- if (ACPI_FAILURE (Status))
- {
- AcpiUtRemoveReference (ReturnDesc);
- }
-
- /* Save return object on success */
-
- else
- {
- WalkState->ResultObj = ReturnDesc;
- }
-
- return_ACPI_STATUS (Status);
-}
-
diff --git a/sys/contrib/dev/acpica/exoparg2.c b/sys/contrib/dev/acpica/exoparg2.c
deleted file mode 100644
index f7f05e4..0000000
--- a/sys/contrib/dev/acpica/exoparg2.c
+++ /dev/null
@@ -1,741 +0,0 @@
-/******************************************************************************
- *
- * Module Name: exoparg2 - AML execution - opcodes with 2 arguments
- * $Revision: 1.143 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __EXOPARG2_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/acevents.h>
-#include <contrib/dev/acpica/amlcode.h>
-
-
-#define _COMPONENT ACPI_EXECUTER
- ACPI_MODULE_NAME ("exoparg2")
-
-
-/*!
- * Naming convention for AML interpreter execution routines.
- *
- * The routines that begin execution of AML opcodes are named with a common
- * convention based upon the number of arguments, the number of target operands,
- * and whether or not a value is returned:
- *
- * AcpiExOpcode_xA_yT_zR
- *
- * Where:
- *
- * xA - ARGUMENTS: The number of arguments (input operands) that are
- * required for this opcode type (1 through 6 args).
- * yT - TARGETS: The number of targets (output operands) that are required
- * for this opcode type (0, 1, or 2 targets).
- * zR - RETURN VALUE: Indicates whether this opcode type returns a value
- * as the function return (0 or 1).
- *
- * The AcpiExOpcode* functions are called via the Dispatcher component with
- * fully resolved operands.
-!*/
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExOpcode_2A_0T_0R
- *
- * PARAMETERS: WalkState - Current walk state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Execute opcode with two arguments, no target, and no return
- * value.
- *
- * ALLOCATION: Deletes both operands
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExOpcode_2A_0T_0R (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0];
- ACPI_NAMESPACE_NODE *Node;
- UINT32 Value;
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE_STR (ExOpcode_2A_0T_0R,
- AcpiPsGetOpcodeName (WalkState->Opcode));
-
-
- /* Examine the opcode */
-
- switch (WalkState->Opcode)
- {
- case AML_NOTIFY_OP: /* Notify (NotifyObject, NotifyValue) */
-
- /* The first operand is a namespace node */
-
- Node = (ACPI_NAMESPACE_NODE *) Operand[0];
-
- /* Second value is the notify value */
-
- Value = (UINT32) Operand[1]->Integer.Value;
-
- /* Are notifies allowed on this object? */
-
- if (!AcpiEvIsNotifyObject (Node))
- {
- ACPI_ERROR ((AE_INFO,
- "Unexpected notify object type [%s]",
- AcpiUtGetTypeName (Node->Type)));
-
- Status = AE_AML_OPERAND_TYPE;
- break;
- }
-
-#ifdef ACPI_GPE_NOTIFY_CHECK
- /*
- * GPE method wake/notify check. Here, we want to ensure that we
- * don't receive any "DeviceWake" Notifies from a GPE _Lxx or _Exx
- * GPE method during system runtime. If we do, the GPE is marked
- * as "wake-only" and disabled.
- *
- * 1) Is the Notify() value == DeviceWake?
- * 2) Is this a GPE deferred method? (An _Lxx or _Exx method)
- * 3) Did the original GPE happen at system runtime?
- * (versus during wake)
- *
- * If all three cases are true, this is a wake-only GPE that should
- * be disabled at runtime.
- */
- if (Value == 2) /* DeviceWake */
- {
- Status = AcpiEvCheckForWakeOnlyGpe (WalkState->GpeEventInfo);
- if (ACPI_FAILURE (Status))
- {
- /* AE_WAKE_ONLY_GPE only error, means ignore this notify */
-
- return_ACPI_STATUS (AE_OK)
- }
- }
-#endif
-
- /*
- * Dispatch the notify to the appropriate handler
- * NOTE: the request is queued for execution after this method
- * completes. The notify handlers are NOT invoked synchronously
- * from this thread -- because handlers may in turn run other
- * control methods.
- */
- Status = AcpiEvQueueNotifyRequest (Node, Value);
- break;
-
-
- default:
-
- ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
- WalkState->Opcode));
- Status = AE_AML_BAD_OPCODE;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExOpcode_2A_2T_1R
- *
- * PARAMETERS: WalkState - Current walk state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Execute a dyadic operator (2 operands) with 2 output targets
- * and one implicit return value.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExOpcode_2A_2T_1R (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0];
- ACPI_OPERAND_OBJECT *ReturnDesc1 = NULL;
- ACPI_OPERAND_OBJECT *ReturnDesc2 = NULL;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE_STR (ExOpcode_2A_2T_1R,
- AcpiPsGetOpcodeName (WalkState->Opcode));
-
-
- /* Execute the opcode */
-
- switch (WalkState->Opcode)
- {
- case AML_DIVIDE_OP:
-
- /* Divide (Dividend, Divisor, RemainderResult QuotientResult) */
-
- ReturnDesc1 = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
- if (!ReturnDesc1)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- ReturnDesc2 = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
- if (!ReturnDesc2)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- /* Quotient to ReturnDesc1, remainder to ReturnDesc2 */
-
- Status = AcpiUtDivide (Operand[0]->Integer.Value,
- Operand[1]->Integer.Value,
- &ReturnDesc1->Integer.Value,
- &ReturnDesc2->Integer.Value);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
- break;
-
-
- default:
-
- ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
- WalkState->Opcode));
- Status = AE_AML_BAD_OPCODE;
- goto Cleanup;
- }
-
- /* Store the results to the target reference operands */
-
- Status = AcpiExStore (ReturnDesc2, Operand[2], WalkState);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- Status = AcpiExStore (ReturnDesc1, Operand[3], WalkState);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
-Cleanup:
- /*
- * Since the remainder is not returned indirectly, remove a reference to
- * it. Only the quotient is returned indirectly.
- */
- AcpiUtRemoveReference (ReturnDesc2);
-
- if (ACPI_FAILURE (Status))
- {
- /* Delete the return object */
-
- AcpiUtRemoveReference (ReturnDesc1);
- }
-
- /* Save return object (the remainder) on success */
-
- else
- {
- WalkState->ResultObj = ReturnDesc1;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExOpcode_2A_1T_1R
- *
- * PARAMETERS: WalkState - Current walk state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Execute opcode with two arguments, one target, and a return
- * value.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExOpcode_2A_1T_1R (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0];
- ACPI_OPERAND_OBJECT *ReturnDesc = NULL;
- ACPI_INTEGER Index;
- ACPI_STATUS Status = AE_OK;
- ACPI_SIZE Length;
-
-
- ACPI_FUNCTION_TRACE_STR (ExOpcode_2A_1T_1R,
- AcpiPsGetOpcodeName (WalkState->Opcode));
-
-
- /* Execute the opcode */
-
- if (WalkState->OpInfo->Flags & AML_MATH)
- {
- /* All simple math opcodes (add, etc.) */
-
- ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
- if (!ReturnDesc)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- ReturnDesc->Integer.Value = AcpiExDoMathOp (WalkState->Opcode,
- Operand[0]->Integer.Value,
- Operand[1]->Integer.Value);
- goto StoreResultToTarget;
- }
-
- switch (WalkState->Opcode)
- {
- case AML_MOD_OP: /* Mod (Dividend, Divisor, RemainderResult (ACPI 2.0) */
-
- ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
- if (!ReturnDesc)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- /* ReturnDesc will contain the remainder */
-
- Status = AcpiUtDivide (Operand[0]->Integer.Value,
- Operand[1]->Integer.Value,
- NULL,
- &ReturnDesc->Integer.Value);
- break;
-
-
- case AML_CONCAT_OP: /* Concatenate (Data1, Data2, Result) */
-
- Status = AcpiExDoConcatenate (Operand[0], Operand[1],
- &ReturnDesc, WalkState);
- break;
-
-
- case AML_TO_STRING_OP: /* ToString (Buffer, Length, Result) (ACPI 2.0) */
-
- /*
- * Input object is guaranteed to be a buffer at this point (it may have
- * been converted.) Copy the raw buffer data to a new object of
- * type String.
- */
-
- /*
- * Get the length of the new string. It is the smallest of:
- * 1) Length of the input buffer
- * 2) Max length as specified in the ToString operator
- * 3) Length of input buffer up to a zero byte (null terminator)
- *
- * NOTE: A length of zero is ok, and will create a zero-length, null
- * terminated string.
- */
- Length = 0;
- while ((Length < Operand[0]->Buffer.Length) &&
- (Length < Operand[1]->Integer.Value) &&
- (Operand[0]->Buffer.Pointer[Length]))
- {
- Length++;
- }
-
- /* Allocate a new string object */
-
- ReturnDesc = AcpiUtCreateStringObject (Length);
- if (!ReturnDesc)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- /*
- * Copy the raw buffer data with no transform.
- * (NULL terminated already)
- */
- ACPI_MEMCPY (ReturnDesc->String.Pointer,
- Operand[0]->Buffer.Pointer, Length);
- break;
-
-
- case AML_CONCAT_RES_OP:
-
- /* ConcatenateResTemplate (Buffer, Buffer, Result) (ACPI 2.0) */
-
- Status = AcpiExConcatTemplate (Operand[0], Operand[1],
- &ReturnDesc, WalkState);
- break;
-
-
- case AML_INDEX_OP: /* Index (Source Index Result) */
-
- /* Create the internal return object */
-
- ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_LOCAL_REFERENCE);
- if (!ReturnDesc)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- /* Initialize the Index reference object */
-
- Index = Operand[1]->Integer.Value;
- ReturnDesc->Reference.Offset = (UINT32) Index;
- ReturnDesc->Reference.Opcode = AML_INDEX_OP;
-
- /*
- * At this point, the Source operand is a String, Buffer, or Package.
- * Verify that the index is within range.
- */
- switch (ACPI_GET_OBJECT_TYPE (Operand[0]))
- {
- case ACPI_TYPE_STRING:
-
- if (Index >= Operand[0]->String.Length)
- {
- Status = AE_AML_STRING_LIMIT;
- }
-
- ReturnDesc->Reference.TargetType = ACPI_TYPE_BUFFER_FIELD;
- break;
-
- case ACPI_TYPE_BUFFER:
-
- if (Index >= Operand[0]->Buffer.Length)
- {
- Status = AE_AML_BUFFER_LIMIT;
- }
-
- ReturnDesc->Reference.TargetType = ACPI_TYPE_BUFFER_FIELD;
- break;
-
- case ACPI_TYPE_PACKAGE:
-
- if (Index >= Operand[0]->Package.Count)
- {
- Status = AE_AML_PACKAGE_LIMIT;
- }
-
- ReturnDesc->Reference.TargetType = ACPI_TYPE_PACKAGE;
- ReturnDesc->Reference.Where = &Operand[0]->Package.Elements [Index];
- break;
-
- default:
-
- Status = AE_AML_INTERNAL;
- goto Cleanup;
- }
-
- /* Failure means that the Index was beyond the end of the object */
-
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Index (%X%8.8X) is beyond end of object",
- ACPI_FORMAT_UINT64 (Index)));
- goto Cleanup;
- }
-
- /*
- * Save the target object and add a reference to it for the life
- * of the index
- */
- ReturnDesc->Reference.Object = Operand[0];
- AcpiUtAddReference (Operand[0]);
-
- /* Store the reference to the Target */
-
- Status = AcpiExStore (ReturnDesc, Operand[2], WalkState);
-
- /* Return the reference */
-
- WalkState->ResultObj = ReturnDesc;
- goto Cleanup;
-
-
- default:
-
- ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
- WalkState->Opcode));
- Status = AE_AML_BAD_OPCODE;
- break;
- }
-
-
-StoreResultToTarget:
-
- if (ACPI_SUCCESS (Status))
- {
- /*
- * Store the result of the operation (which is now in ReturnDesc) into
- * the Target descriptor.
- */
- Status = AcpiExStore (ReturnDesc, Operand[2], WalkState);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- if (!WalkState->ResultObj)
- {
- WalkState->ResultObj = ReturnDesc;
- }
- }
-
-
-Cleanup:
-
- /* Delete return object on error */
-
- if (ACPI_FAILURE (Status))
- {
- AcpiUtRemoveReference (ReturnDesc);
- WalkState->ResultObj = NULL;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExOpcode_2A_0T_1R
- *
- * PARAMETERS: WalkState - Current walk state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Execute opcode with 2 arguments, no target, and a return value
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExOpcode_2A_0T_1R (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0];
- ACPI_OPERAND_OBJECT *ReturnDesc = NULL;
- ACPI_STATUS Status = AE_OK;
- BOOLEAN LogicalResult = FALSE;
-
-
- ACPI_FUNCTION_TRACE_STR (ExOpcode_2A_0T_1R,
- AcpiPsGetOpcodeName (WalkState->Opcode));
-
-
- /* Create the internal return object */
-
- ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
- if (!ReturnDesc)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- /* Execute the Opcode */
-
- if (WalkState->OpInfo->Flags & AML_LOGICAL_NUMERIC)
- {
- /* LogicalOp (Operand0, Operand1) */
-
- Status = AcpiExDoLogicalNumericOp (WalkState->Opcode,
- Operand[0]->Integer.Value, Operand[1]->Integer.Value,
- &LogicalResult);
- goto StoreLogicalResult;
- }
- else if (WalkState->OpInfo->Flags & AML_LOGICAL)
- {
- /* LogicalOp (Operand0, Operand1) */
-
- Status = AcpiExDoLogicalOp (WalkState->Opcode, Operand[0],
- Operand[1], &LogicalResult);
- goto StoreLogicalResult;
- }
-
- switch (WalkState->Opcode)
- {
- case AML_ACQUIRE_OP: /* Acquire (MutexObject, Timeout) */
-
- Status = AcpiExAcquireMutex (Operand[1], Operand[0], WalkState);
- if (Status == AE_TIME)
- {
- LogicalResult = TRUE; /* TRUE = Acquire timed out */
- Status = AE_OK;
- }
- break;
-
-
- case AML_WAIT_OP: /* Wait (EventObject, Timeout) */
-
- Status = AcpiExSystemWaitEvent (Operand[1], Operand[0]);
- if (Status == AE_TIME)
- {
- LogicalResult = TRUE; /* TRUE, Wait timed out */
- Status = AE_OK;
- }
- break;
-
-
- default:
-
- ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
- WalkState->Opcode));
- Status = AE_AML_BAD_OPCODE;
- goto Cleanup;
- }
-
-
-StoreLogicalResult:
- /*
- * Set return value to according to LogicalResult. logical TRUE (all ones)
- * Default is FALSE (zero)
- */
- if (LogicalResult)
- {
- ReturnDesc->Integer.Value = ACPI_INTEGER_MAX;
- }
-
-Cleanup:
-
- /* Delete return object on error */
-
- if (ACPI_FAILURE (Status))
- {
- AcpiUtRemoveReference (ReturnDesc);
- }
-
- /* Save return object on success */
-
- else
- {
- WalkState->ResultObj = ReturnDesc;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
diff --git a/sys/contrib/dev/acpica/exoparg3.c b/sys/contrib/dev/acpica/exoparg3.c
deleted file mode 100644
index 926e22a..0000000
--- a/sys/contrib/dev/acpica/exoparg3.c
+++ /dev/null
@@ -1,377 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exoparg3 - AML execution - opcodes with 3 arguments
- * $Revision: 1.35 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __EXOPARG3_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/amlcode.h>
-
-
-#define _COMPONENT ACPI_EXECUTER
- ACPI_MODULE_NAME ("exoparg3")
-
-
-/*!
- * Naming convention for AML interpreter execution routines.
- *
- * The routines that begin execution of AML opcodes are named with a common
- * convention based upon the number of arguments, the number of target operands,
- * and whether or not a value is returned:
- *
- * AcpiExOpcode_xA_yT_zR
- *
- * Where:
- *
- * xA - ARGUMENTS: The number of arguments (input operands) that are
- * required for this opcode type (1 through 6 args).
- * yT - TARGETS: The number of targets (output operands) that are required
- * for this opcode type (0, 1, or 2 targets).
- * zR - RETURN VALUE: Indicates whether this opcode type returns a value
- * as the function return (0 or 1).
- *
- * The AcpiExOpcode* functions are called via the Dispatcher component with
- * fully resolved operands.
-!*/
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExOpcode_3A_0T_0R
- *
- * PARAMETERS: WalkState - Current walk state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Execute Triadic operator (3 operands)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExOpcode_3A_0T_0R (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0];
- ACPI_SIGNAL_FATAL_INFO *Fatal;
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE_STR (ExOpcode_3A_0T_0R,
- AcpiPsGetOpcodeName (WalkState->Opcode));
-
-
- switch (WalkState->Opcode)
- {
- case AML_FATAL_OP: /* Fatal (FatalType FatalCode FatalArg) */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "FatalOp: Type %X Code %X Arg %X <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n",
- (UINT32) Operand[0]->Integer.Value,
- (UINT32) Operand[1]->Integer.Value,
- (UINT32) Operand[2]->Integer.Value));
-
- Fatal = ACPI_ALLOCATE (sizeof (ACPI_SIGNAL_FATAL_INFO));
- if (Fatal)
- {
- Fatal->Type = (UINT32) Operand[0]->Integer.Value;
- Fatal->Code = (UINT32) Operand[1]->Integer.Value;
- Fatal->Argument = (UINT32) Operand[2]->Integer.Value;
- }
-
- /* Always signal the OS! */
-
- Status = AcpiOsSignal (ACPI_SIGNAL_FATAL, Fatal);
-
- /* Might return while OS is shutting down, just continue */
-
- ACPI_FREE (Fatal);
- break;
-
-
- default:
-
- ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
- WalkState->Opcode));
- Status = AE_AML_BAD_OPCODE;
- goto Cleanup;
- }
-
-
-Cleanup:
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExOpcode_3A_1T_1R
- *
- * PARAMETERS: WalkState - Current walk state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Execute Triadic operator (3 operands)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExOpcode_3A_1T_1R (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0];
- ACPI_OPERAND_OBJECT *ReturnDesc = NULL;
- char *Buffer = NULL;
- ACPI_STATUS Status = AE_OK;
- ACPI_INTEGER Index;
- ACPI_SIZE Length;
-
-
- ACPI_FUNCTION_TRACE_STR (ExOpcode_3A_1T_1R,
- AcpiPsGetOpcodeName (WalkState->Opcode));
-
-
- switch (WalkState->Opcode)
- {
- case AML_MID_OP: /* Mid (Source[0], Index[1], Length[2], Result[3]) */
-
- /*
- * Create the return object. The Source operand is guaranteed to be
- * either a String or a Buffer, so just use its type.
- */
- ReturnDesc = AcpiUtCreateInternalObject (
- ACPI_GET_OBJECT_TYPE (Operand[0]));
- if (!ReturnDesc)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- /* Get the Integer values from the objects */
-
- Index = Operand[1]->Integer.Value;
- Length = (ACPI_SIZE) Operand[2]->Integer.Value;
-
- /*
- * If the index is beyond the length of the String/Buffer, or if the
- * requested length is zero, return a zero-length String/Buffer
- */
- if (Index >= Operand[0]->String.Length)
- {
- Length = 0;
- }
-
- /* Truncate request if larger than the actual String/Buffer */
-
- else if ((Index + Length) > Operand[0]->String.Length)
- {
- Length = (ACPI_SIZE) Operand[0]->String.Length -
- (ACPI_SIZE) Index;
- }
-
- /* Strings always have a sub-pointer, not so for buffers */
-
- switch (ACPI_GET_OBJECT_TYPE (Operand[0]))
- {
- case ACPI_TYPE_STRING:
-
- /* Always allocate a new buffer for the String */
-
- Buffer = ACPI_ALLOCATE_ZEROED ((ACPI_SIZE) Length + 1);
- if (!Buffer)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
- break;
-
- case ACPI_TYPE_BUFFER:
-
- /* If the requested length is zero, don't allocate a buffer */
-
- if (Length > 0)
- {
- /* Allocate a new buffer for the Buffer */
-
- Buffer = ACPI_ALLOCATE_ZEROED (Length);
- if (!Buffer)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
- }
- break;
-
- default: /* Should not happen */
-
- Status = AE_AML_OPERAND_TYPE;
- goto Cleanup;
- }
-
- if (Buffer)
- {
- /* We have a buffer, copy the portion requested */
-
- ACPI_MEMCPY (Buffer, Operand[0]->String.Pointer + Index,
- Length);
- }
-
- /* Set the length of the new String/Buffer */
-
- ReturnDesc->String.Pointer = Buffer;
- ReturnDesc->String.Length = (UINT32) Length;
-
- /* Mark buffer initialized */
-
- ReturnDesc->Buffer.Flags |= AOPOBJ_DATA_VALID;
- break;
-
-
- default:
-
- ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
- WalkState->Opcode));
- Status = AE_AML_BAD_OPCODE;
- goto Cleanup;
- }
-
- /* Store the result in the target */
-
- Status = AcpiExStore (ReturnDesc, Operand[3], WalkState);
-
-Cleanup:
-
- /* Delete return object on error */
-
- if (ACPI_FAILURE (Status) || WalkState->ResultObj)
- {
- AcpiUtRemoveReference (ReturnDesc);
- WalkState->ResultObj = NULL;
- }
-
- /* Set the return object and exit */
-
- else
- {
- WalkState->ResultObj = ReturnDesc;
- }
- return_ACPI_STATUS (Status);
-}
-
-
diff --git a/sys/contrib/dev/acpica/exoparg6.c b/sys/contrib/dev/acpica/exoparg6.c
deleted file mode 100644
index e144bcf..0000000
--- a/sys/contrib/dev/acpica/exoparg6.c
+++ /dev/null
@@ -1,441 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exoparg6 - AML execution - opcodes with 6 arguments
- * $Revision: 1.29 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __EXOPARG6_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/amlcode.h>
-
-
-#define _COMPONENT ACPI_EXECUTER
- ACPI_MODULE_NAME ("exoparg6")
-
-
-/*!
- * Naming convention for AML interpreter execution routines.
- *
- * The routines that begin execution of AML opcodes are named with a common
- * convention based upon the number of arguments, the number of target operands,
- * and whether or not a value is returned:
- *
- * AcpiExOpcode_xA_yT_zR
- *
- * Where:
- *
- * xA - ARGUMENTS: The number of arguments (input operands) that are
- * required for this opcode type (1 through 6 args).
- * yT - TARGETS: The number of targets (output operands) that are required
- * for this opcode type (0, 1, or 2 targets).
- * zR - RETURN VALUE: Indicates whether this opcode type returns a value
- * as the function return (0 or 1).
- *
- * The AcpiExOpcode* functions are called via the Dispatcher component with
- * fully resolved operands.
-!*/
-
-/* Local prototypes */
-
-static BOOLEAN
-AcpiExDoMatch (
- UINT32 MatchOp,
- ACPI_OPERAND_OBJECT *PackageObj,
- ACPI_OPERAND_OBJECT *MatchObj);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExDoMatch
- *
- * PARAMETERS: MatchOp - The AML match operand
- * PackageObj - Object from the target package
- * MatchObj - Object to be matched
- *
- * RETURN: TRUE if the match is successful, FALSE otherwise
- *
- * DESCRIPTION: Implements the low-level match for the ASL Match operator.
- * Package elements will be implicitly converted to the type of
- * the match object (Integer/Buffer/String).
- *
- ******************************************************************************/
-
-static BOOLEAN
-AcpiExDoMatch (
- UINT32 MatchOp,
- ACPI_OPERAND_OBJECT *PackageObj,
- ACPI_OPERAND_OBJECT *MatchObj)
-{
- BOOLEAN LogicalResult = TRUE;
- ACPI_STATUS Status;
-
-
- /*
- * Note: Since the PackageObj/MatchObj ordering is opposite to that of
- * the standard logical operators, we have to reverse them when we call
- * DoLogicalOp in order to make the implicit conversion rules work
- * correctly. However, this means we have to flip the entire equation
- * also. A bit ugly perhaps, but overall, better than fussing the
- * parameters around at runtime, over and over again.
- *
- * Below, P[i] refers to the package element, M refers to the Match object.
- */
- switch (MatchOp)
- {
- case MATCH_MTR:
-
- /* Always true */
-
- break;
-
- case MATCH_MEQ:
-
- /*
- * True if equal: (P[i] == M)
- * Change to: (M == P[i])
- */
- Status = AcpiExDoLogicalOp (AML_LEQUAL_OP, MatchObj, PackageObj,
- &LogicalResult);
- if (ACPI_FAILURE (Status))
- {
- return (FALSE);
- }
- break;
-
- case MATCH_MLE:
-
- /*
- * True if less than or equal: (P[i] <= M) (P[i] NotGreater than M)
- * Change to: (M >= P[i]) (M NotLess than P[i])
- */
- Status = AcpiExDoLogicalOp (AML_LLESS_OP, MatchObj, PackageObj,
- &LogicalResult);
- if (ACPI_FAILURE (Status))
- {
- return (FALSE);
- }
- LogicalResult = (BOOLEAN) !LogicalResult;
- break;
-
- case MATCH_MLT:
-
- /*
- * True if less than: (P[i] < M)
- * Change to: (M > P[i])
- */
- Status = AcpiExDoLogicalOp (AML_LGREATER_OP, MatchObj, PackageObj,
- &LogicalResult);
- if (ACPI_FAILURE (Status))
- {
- return (FALSE);
- }
- break;
-
- case MATCH_MGE:
-
- /*
- * True if greater than or equal: (P[i] >= M) (P[i] NotLess than M)
- * Change to: (M <= P[i]) (M NotGreater than P[i])
- */
- Status = AcpiExDoLogicalOp (AML_LGREATER_OP, MatchObj, PackageObj,
- &LogicalResult);
- if (ACPI_FAILURE (Status))
- {
- return (FALSE);
- }
- LogicalResult = (BOOLEAN)!LogicalResult;
- break;
-
- case MATCH_MGT:
-
- /*
- * True if greater than: (P[i] > M)
- * Change to: (M < P[i])
- */
- Status = AcpiExDoLogicalOp (AML_LLESS_OP, MatchObj, PackageObj,
- &LogicalResult);
- if (ACPI_FAILURE (Status))
- {
- return (FALSE);
- }
- break;
-
- default:
-
- /* Undefined */
-
- return (FALSE);
- }
-
- return LogicalResult;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExOpcode_6A_0T_1R
- *
- * PARAMETERS: WalkState - Current walk state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Execute opcode with 6 arguments, no target, and a return value
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExOpcode_6A_0T_1R (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0];
- ACPI_OPERAND_OBJECT *ReturnDesc = NULL;
- ACPI_STATUS Status = AE_OK;
- ACPI_INTEGER Index;
- ACPI_OPERAND_OBJECT *ThisElement;
-
-
- ACPI_FUNCTION_TRACE_STR (ExOpcode_6A_0T_1R,
- AcpiPsGetOpcodeName (WalkState->Opcode));
-
-
- switch (WalkState->Opcode)
- {
- case AML_MATCH_OP:
- /*
- * Match (SearchPkg[0], MatchOp1[1], MatchObj1[2],
- * MatchOp2[3], MatchObj2[4], StartIndex[5])
- */
-
- /* Validate both Match Term Operators (MTR, MEQ, etc.) */
-
- if ((Operand[1]->Integer.Value > MAX_MATCH_OPERATOR) ||
- (Operand[3]->Integer.Value > MAX_MATCH_OPERATOR))
- {
- ACPI_ERROR ((AE_INFO, "Match operator out of range"));
- Status = AE_AML_OPERAND_VALUE;
- goto Cleanup;
- }
-
- /* Get the package StartIndex, validate against the package length */
-
- Index = Operand[5]->Integer.Value;
- if (Index >= Operand[0]->Package.Count)
- {
- ACPI_ERROR ((AE_INFO,
- "Index (%X%8.8X) beyond package end (%X)",
- ACPI_FORMAT_UINT64 (Index), Operand[0]->Package.Count));
- Status = AE_AML_PACKAGE_LIMIT;
- goto Cleanup;
- }
-
- /* Create an integer for the return value */
-
- ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
- if (!ReturnDesc)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
-
- }
-
- /* Default return value if no match found */
-
- ReturnDesc->Integer.Value = ACPI_INTEGER_MAX;
-
- /*
- * Examine each element until a match is found. Both match conditions
- * must be satisfied for a match to occur. Within the loop,
- * "continue" signifies that the current element does not match
- * and the next should be examined.
- *
- * Upon finding a match, the loop will terminate via "break" at
- * the bottom. If it terminates "normally", MatchValue will be
- * ACPI_INTEGER_MAX (Ones) (its initial value) indicating that no
- * match was found.
- */
- for ( ; Index < Operand[0]->Package.Count; Index++)
- {
- /* Get the current package element */
-
- ThisElement = Operand[0]->Package.Elements[Index];
-
- /* Treat any uninitialized (NULL) elements as non-matching */
-
- if (!ThisElement)
- {
- continue;
- }
-
- /*
- * Both match conditions must be satisfied. Execution of a continue
- * (proceed to next iteration of enclosing for loop) signifies a
- * non-match.
- */
- if (!AcpiExDoMatch ((UINT32) Operand[1]->Integer.Value,
- ThisElement, Operand[2]))
- {
- continue;
- }
-
- if (!AcpiExDoMatch ((UINT32) Operand[3]->Integer.Value,
- ThisElement, Operand[4]))
- {
- continue;
- }
-
- /* Match found: Index is the return value */
-
- ReturnDesc->Integer.Value = Index;
- break;
- }
- break;
-
-
- case AML_LOAD_TABLE_OP:
-
- Status = AcpiExLoadTableOp (WalkState, &ReturnDesc);
- break;
-
-
- default:
-
- ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
- WalkState->Opcode));
- Status = AE_AML_BAD_OPCODE;
- goto Cleanup;
- }
-
-
-Cleanup:
-
- /* Delete return object on error */
-
- if (ACPI_FAILURE (Status))
- {
- AcpiUtRemoveReference (ReturnDesc);
- }
-
- /* Save return object on success */
-
- else
- {
- WalkState->ResultObj = ReturnDesc;
- }
-
- return_ACPI_STATUS (Status);
-}
diff --git a/sys/contrib/dev/acpica/exprep.c b/sys/contrib/dev/acpica/exprep.c
deleted file mode 100644
index b67db31..0000000
--- a/sys/contrib/dev/acpica/exprep.c
+++ /dev/null
@@ -1,675 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exprep - ACPI AML (p-code) execution - field prep utilities
- * $Revision: 1.142 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __EXPREP_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-
-#define _COMPONENT ACPI_EXECUTER
- ACPI_MODULE_NAME ("exprep")
-
-/* Local prototypes */
-
-static UINT32
-AcpiExDecodeFieldAccess (
- ACPI_OPERAND_OBJECT *ObjDesc,
- UINT8 FieldFlags,
- UINT32 *ReturnByteAlignment);
-
-
-#ifdef ACPI_UNDER_DEVELOPMENT
-
-static UINT32
-AcpiExGenerateAccess (
- UINT32 FieldBitOffset,
- UINT32 FieldBitLength,
- UINT32 RegionLength);
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExGenerateAccess
- *
- * PARAMETERS: FieldBitOffset - Start of field within parent region/buffer
- * FieldBitLength - Length of field in bits
- * RegionLength - Length of parent in bytes
- *
- * RETURN: Field granularity (8, 16, 32 or 64) and
- * ByteAlignment (1, 2, 3, or 4)
- *
- * DESCRIPTION: Generate an optimal access width for fields defined with the
- * AnyAcc keyword.
- *
- * NOTE: Need to have the RegionLength in order to check for boundary
- * conditions (end-of-region). However, the RegionLength is a deferred
- * operation. Therefore, to complete this implementation, the generation
- * of this access width must be deferred until the region length has
- * been evaluated.
- *
- ******************************************************************************/
-
-static UINT32
-AcpiExGenerateAccess (
- UINT32 FieldBitOffset,
- UINT32 FieldBitLength,
- UINT32 RegionLength)
-{
- UINT32 FieldByteLength;
- UINT32 FieldByteOffset;
- UINT32 FieldByteEndOffset;
- UINT32 AccessByteWidth;
- UINT32 FieldStartOffset;
- UINT32 FieldEndOffset;
- UINT32 MinimumAccessWidth = 0xFFFFFFFF;
- UINT32 MinimumAccesses = 0xFFFFFFFF;
- UINT32 Accesses;
-
-
- ACPI_FUNCTION_TRACE (ExGenerateAccess);
-
-
- /* Round Field start offset and length to "minimal" byte boundaries */
-
- FieldByteOffset = ACPI_DIV_8 (ACPI_ROUND_DOWN (FieldBitOffset, 8));
- FieldByteEndOffset = ACPI_DIV_8 (ACPI_ROUND_UP (FieldBitLength +
- FieldBitOffset, 8));
- FieldByteLength = FieldByteEndOffset - FieldByteOffset;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
- "Bit length %d, Bit offset %d\n",
- FieldBitLength, FieldBitOffset));
-
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
- "Byte Length %d, Byte Offset %d, End Offset %d\n",
- FieldByteLength, FieldByteOffset, FieldByteEndOffset));
-
- /*
- * Iterative search for the maximum access width that is both aligned
- * and does not go beyond the end of the region
- *
- * Start at ByteAcc and work upwards to QwordAcc max. (1,2,4,8 bytes)
- */
- for (AccessByteWidth = 1; AccessByteWidth <= 8; AccessByteWidth <<= 1)
- {
- /*
- * 1) Round end offset up to next access boundary and make sure that
- * this does not go beyond the end of the parent region.
- * 2) When the Access width is greater than the FieldByteLength, we
- * are done. (This does not optimize for the perfectly aligned
- * case yet).
- */
- if (ACPI_ROUND_UP (FieldByteEndOffset, AccessByteWidth) <= RegionLength)
- {
- FieldStartOffset =
- ACPI_ROUND_DOWN (FieldByteOffset, AccessByteWidth) /
- AccessByteWidth;
-
- FieldEndOffset =
- ACPI_ROUND_UP ((FieldByteLength + FieldByteOffset),
- AccessByteWidth) / AccessByteWidth;
-
- Accesses = FieldEndOffset - FieldStartOffset;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
- "AccessWidth %d end is within region\n", AccessByteWidth));
-
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
- "Field Start %d, Field End %d -- requires %d accesses\n",
- FieldStartOffset, FieldEndOffset, Accesses));
-
- /* Single access is optimal */
-
- if (Accesses <= 1)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
- "Entire field can be accessed with one operation of size %d\n",
- AccessByteWidth));
- return_VALUE (AccessByteWidth);
- }
-
- /*
- * Fits in the region, but requires more than one read/write.
- * try the next wider access on next iteration
- */
- if (Accesses < MinimumAccesses)
- {
- MinimumAccesses = Accesses;
- MinimumAccessWidth = AccessByteWidth;
- }
- }
- else
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
- "AccessWidth %d end is NOT within region\n", AccessByteWidth));
- if (AccessByteWidth == 1)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
- "Field goes beyond end-of-region!\n"));
-
- /* Field does not fit in the region at all */
-
- return_VALUE (0);
- }
-
- /*
- * This width goes beyond the end-of-region, back off to
- * previous access
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
- "Backing off to previous optimal access width of %d\n",
- MinimumAccessWidth));
- return_VALUE (MinimumAccessWidth);
- }
- }
-
- /*
- * Could not read/write field with one operation,
- * just use max access width
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
- "Cannot access field in one operation, using width 8\n"));
- return_VALUE (8);
-}
-#endif /* ACPI_UNDER_DEVELOPMENT */
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExDecodeFieldAccess
- *
- * PARAMETERS: ObjDesc - Field object
- * FieldFlags - Encoded fieldflags (contains access bits)
- * ReturnByteAlignment - Where the byte alignment is returned
- *
- * RETURN: Field granularity (8, 16, 32 or 64) and
- * ByteAlignment (1, 2, 3, or 4)
- *
- * DESCRIPTION: Decode the AccessType bits of a field definition.
- *
- ******************************************************************************/
-
-static UINT32
-AcpiExDecodeFieldAccess (
- ACPI_OPERAND_OBJECT *ObjDesc,
- UINT8 FieldFlags,
- UINT32 *ReturnByteAlignment)
-{
- UINT32 Access;
- UINT32 ByteAlignment;
- UINT32 BitLength;
-
-
- ACPI_FUNCTION_TRACE (ExDecodeFieldAccess);
-
-
- Access = (FieldFlags & AML_FIELD_ACCESS_TYPE_MASK);
-
- switch (Access)
- {
- case AML_FIELD_ACCESS_ANY:
-
-#ifdef ACPI_UNDER_DEVELOPMENT
- ByteAlignment =
- AcpiExGenerateAccess (ObjDesc->CommonField.StartFieldBitOffset,
- ObjDesc->CommonField.BitLength,
- 0xFFFFFFFF /* Temp until we pass RegionLength as parameter */);
- BitLength = ByteAlignment * 8;
-#endif
-
- ByteAlignment = 1;
- BitLength = 8;
- break;
-
- case AML_FIELD_ACCESS_BYTE:
- case AML_FIELD_ACCESS_BUFFER: /* ACPI 2.0 (SMBus Buffer) */
- ByteAlignment = 1;
- BitLength = 8;
- break;
-
- case AML_FIELD_ACCESS_WORD:
- ByteAlignment = 2;
- BitLength = 16;
- break;
-
- case AML_FIELD_ACCESS_DWORD:
- ByteAlignment = 4;
- BitLength = 32;
- break;
-
- case AML_FIELD_ACCESS_QWORD: /* ACPI 2.0 */
- ByteAlignment = 8;
- BitLength = 64;
- break;
-
- default:
- /* Invalid field access type */
-
- ACPI_ERROR ((AE_INFO,
- "Unknown field access type %X",
- Access));
- return_UINT32 (0);
- }
-
- if (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_BUFFER_FIELD)
- {
- /*
- * BufferField access can be on any byte boundary, so the
- * ByteAlignment is always 1 byte -- regardless of any ByteAlignment
- * implied by the field access type.
- */
- ByteAlignment = 1;
- }
-
- *ReturnByteAlignment = ByteAlignment;
- return_UINT32 (BitLength);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExPrepCommonFieldObject
- *
- * PARAMETERS: ObjDesc - The field object
- * FieldFlags - Access, LockRule, and UpdateRule.
- * The format of a FieldFlag is described
- * in the ACPI specification
- * FieldAttribute - Special attributes (not used)
- * FieldBitPosition - Field start position
- * FieldBitLength - Field length in number of bits
- *
- * RETURN: Status
- *
- * DESCRIPTION: Initialize the areas of the field object that are common
- * to the various types of fields. Note: This is very "sensitive"
- * code because we are solving the general case for field
- * alignment.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExPrepCommonFieldObject (
- ACPI_OPERAND_OBJECT *ObjDesc,
- UINT8 FieldFlags,
- UINT8 FieldAttribute,
- UINT32 FieldBitPosition,
- UINT32 FieldBitLength)
-{
- UINT32 AccessBitWidth;
- UINT32 ByteAlignment;
- UINT32 NearestByteAddress;
-
-
- ACPI_FUNCTION_TRACE (ExPrepCommonFieldObject);
-
-
- /*
- * Note: the structure being initialized is the
- * ACPI_COMMON_FIELD_INFO; No structure fields outside of the common
- * area are initialized by this procedure.
- */
- ObjDesc->CommonField.FieldFlags = FieldFlags;
- ObjDesc->CommonField.Attribute = FieldAttribute;
- ObjDesc->CommonField.BitLength = FieldBitLength;
-
- /*
- * Decode the access type so we can compute offsets. The access type gives
- * 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
- * necessary and possible in an attempt to access the whole field in 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
- * the same (equivalent) as the ByteAlignment.
- */
- AccessBitWidth = AcpiExDecodeFieldAccess (ObjDesc, FieldFlags,
- &ByteAlignment);
- if (!AccessBitWidth)
- {
- return_ACPI_STATUS (AE_AML_OPERAND_VALUE);
- }
-
- /* Setup width (access granularity) fields */
-
- ObjDesc->CommonField.AccessByteWidth = (UINT8)
- ACPI_DIV_8 (AccessBitWidth); /* 1, 2, 4, 8 */
-
- ObjDesc->CommonField.AccessBitWidth = (UINT8) AccessBitWidth;
-
- /*
- * 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
- * region or buffer.
- */
- NearestByteAddress =
- ACPI_ROUND_BITS_DOWN_TO_BYTES (FieldBitPosition);
- ObjDesc->CommonField.BaseByteOffset = (UINT32)
- ACPI_ROUND_DOWN (NearestByteAddress, ByteAlignment);
-
- /*
- * StartFieldBitOffset is the offset of the first bit of the field within
- * a field datum.
- */
- ObjDesc->CommonField.StartFieldBitOffset = (UINT8)
- (FieldBitPosition - ACPI_MUL_8 (ObjDesc->CommonField.BaseByteOffset));
-
- /*
- * Does the entire field fit within a single field access element? (datum)
- * (i.e., without crossing a datum boundary)
- */
- if ((ObjDesc->CommonField.StartFieldBitOffset + FieldBitLength) <=
- (UINT16) AccessBitWidth)
- {
- ObjDesc->Common.Flags |= AOPOBJ_SINGLE_DATUM;
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExPrepFieldValue
- *
- * PARAMETERS: Info - Contains all field creation info
- *
- * RETURN: Status
- *
- * DESCRIPTION: Construct an ACPI_OPERAND_OBJECT of type DefField and
- * connect it to the parent Node.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExPrepFieldValue (
- ACPI_CREATE_FIELD_INFO *Info)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- UINT32 Type;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (ExPrepFieldValue);
-
-
- /* Parameter validation */
-
- if (Info->FieldType != ACPI_TYPE_LOCAL_INDEX_FIELD)
- {
- if (!Info->RegionNode)
- {
- ACPI_ERROR ((AE_INFO, "Null RegionNode"));
- return_ACPI_STATUS (AE_AML_NO_OPERAND);
- }
-
- Type = AcpiNsGetType (Info->RegionNode);
- if (Type != ACPI_TYPE_REGION)
- {
- ACPI_ERROR ((AE_INFO,
- "Needed Region, found type %X (%s)",
- Type, AcpiUtGetTypeName (Type)));
-
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
- }
-
- /* Allocate a new field object */
-
- ObjDesc = AcpiUtCreateInternalObject (Info->FieldType);
- if (!ObjDesc)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* Initialize areas of the object that are common to all fields */
-
- ObjDesc->CommonField.Node = Info->FieldNode;
- Status = AcpiExPrepCommonFieldObject (ObjDesc, Info->FieldFlags,
- Info->Attribute, Info->FieldBitPosition, Info->FieldBitLength);
- if (ACPI_FAILURE (Status))
- {
- AcpiUtDeleteObjectDesc (ObjDesc);
- return_ACPI_STATUS (Status);
- }
-
- /* Initialize areas of the object that are specific to the field type */
-
- switch (Info->FieldType)
- {
- case ACPI_TYPE_LOCAL_REGION_FIELD:
-
- ObjDesc->Field.RegionObj = AcpiNsGetAttachedObject (Info->RegionNode);
-
- /* An additional reference for the container */
-
- AcpiUtAddReference (ObjDesc->Field.RegionObj);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
- "RegionField: BitOff %X, Off %X, Gran %X, Region %p\n",
- ObjDesc->Field.StartFieldBitOffset, ObjDesc->Field.BaseByteOffset,
- ObjDesc->Field.AccessByteWidth, ObjDesc->Field.RegionObj));
- break;
-
-
- case ACPI_TYPE_LOCAL_BANK_FIELD:
-
- ObjDesc->BankField.Value = Info->BankValue;
- ObjDesc->BankField.RegionObj = AcpiNsGetAttachedObject (
- Info->RegionNode);
- ObjDesc->BankField.BankObj = AcpiNsGetAttachedObject (
- Info->RegisterNode);
-
- /* An additional reference for the attached objects */
-
- AcpiUtAddReference (ObjDesc->BankField.RegionObj);
- AcpiUtAddReference (ObjDesc->BankField.BankObj);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
- "Bank Field: BitOff %X, Off %X, Gran %X, Region %p, BankReg %p\n",
- ObjDesc->BankField.StartFieldBitOffset,
- ObjDesc->BankField.BaseByteOffset,
- ObjDesc->Field.AccessByteWidth,
- ObjDesc->BankField.RegionObj,
- ObjDesc->BankField.BankObj));
- break;
-
-
- case ACPI_TYPE_LOCAL_INDEX_FIELD:
-
- /* Get the Index and Data registers */
-
- ObjDesc->IndexField.IndexObj = AcpiNsGetAttachedObject (
- Info->RegisterNode);
- ObjDesc->IndexField.DataObj = AcpiNsGetAttachedObject (
- Info->DataRegisterNode);
-
- if (!ObjDesc->IndexField.DataObj || !ObjDesc->IndexField.IndexObj)
- {
- ACPI_ERROR ((AE_INFO, "Null Index Object during field prep"));
- AcpiUtDeleteObjectDesc (ObjDesc);
- return_ACPI_STATUS (AE_AML_INTERNAL);
- }
-
- /* An additional reference for the attached objects */
-
- AcpiUtAddReference (ObjDesc->IndexField.DataObj);
- AcpiUtAddReference (ObjDesc->IndexField.IndexObj);
-
- /*
- * April 2006: Changed to match MS behavior
- *
- * The value written to the Index register is the byte offset of the
- * target field in units of the granularity of the IndexField
- *
- * Previously, the value was calculated as an index in terms of the
- * width of the Data register, as below:
- *
- * ObjDesc->IndexField.Value = (UINT32)
- * (Info->FieldBitPosition / ACPI_MUL_8 (
- * ObjDesc->Field.AccessByteWidth));
- *
- * February 2006: Tried value as a byte offset:
- * ObjDesc->IndexField.Value = (UINT32)
- * ACPI_DIV_8 (Info->FieldBitPosition);
- */
- ObjDesc->IndexField.Value = (UINT32) ACPI_ROUND_DOWN (
- ACPI_DIV_8 (Info->FieldBitPosition),
- ObjDesc->IndexField.AccessByteWidth);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
- "IndexField: BitOff %X, Off %X, Value %X, Gran %X, Index %p, Data %p\n",
- ObjDesc->IndexField.StartFieldBitOffset,
- ObjDesc->IndexField.BaseByteOffset,
- ObjDesc->IndexField.Value,
- ObjDesc->Field.AccessByteWidth,
- ObjDesc->IndexField.IndexObj,
- ObjDesc->IndexField.DataObj));
- break;
-
- default:
- /* No other types should get here */
- break;
- }
-
- /*
- * Store the constructed descriptor (ObjDesc) into the parent Node,
- * preserving the current type of that NamedObj.
- */
- Status = AcpiNsAttachObject (Info->FieldNode, ObjDesc,
- AcpiNsGetType (Info->FieldNode));
-
- ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, "Set NamedObj %p [%4.4s], ObjDesc %p\n",
- Info->FieldNode, AcpiUtGetNodeName (Info->FieldNode), ObjDesc));
-
- /* Remove local reference to the object */
-
- AcpiUtRemoveReference (ObjDesc);
- return_ACPI_STATUS (Status);
-}
-
diff --git a/sys/contrib/dev/acpica/exregion.c b/sys/contrib/dev/acpica/exregion.c
deleted file mode 100644
index 184ef7d..0000000
--- a/sys/contrib/dev/acpica/exregion.c
+++ /dev/null
@@ -1,609 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exregion - ACPI default OpRegion (address space) handlers
- * $Revision: 1.101 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __EXREGION_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acinterp.h>
-
-
-#define _COMPONENT ACPI_EXECUTER
- ACPI_MODULE_NAME ("exregion")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExSystemMemorySpaceHandler
- *
- * PARAMETERS: Function - Read or Write operation
- * Address - Where in the space to read or write
- * BitWidth - Field width in bits (8, 16, or 32)
- * Value - Pointer to in or out value
- * HandlerContext - Pointer to Handler's context
- * RegionContext - Pointer to context specific to the
- * accessed region
- *
- * RETURN: Status
- *
- * DESCRIPTION: Handler for the System Memory address space (Op Region)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExSystemMemorySpaceHandler (
- UINT32 Function,
- ACPI_PHYSICAL_ADDRESS Address,
- UINT32 BitWidth,
- ACPI_INTEGER *Value,
- void *HandlerContext,
- void *RegionContext)
-{
- ACPI_STATUS Status = AE_OK;
- void *LogicalAddrPtr = NULL;
- ACPI_MEM_SPACE_CONTEXT *MemInfo = RegionContext;
- UINT32 Length;
- ACPI_SIZE WindowSize;
-#ifdef ACPI_MISALIGNMENT_NOT_SUPPORTED
- UINT32 Remainder;
-#endif
-
-
- ACPI_FUNCTION_TRACE (ExSystemMemorySpaceHandler);
-
-
- /* Validate and translate the bit width */
-
- switch (BitWidth)
- {
- case 8:
- Length = 1;
- break;
-
- case 16:
- Length = 2;
- break;
-
- case 32:
- Length = 4;
- break;
-
- case 64:
- Length = 8;
- break;
-
- default:
- ACPI_ERROR ((AE_INFO, "Invalid SystemMemory width %d",
- BitWidth));
- return_ACPI_STATUS (AE_AML_OPERAND_VALUE);
- }
-
-#ifdef ACPI_MISALIGNMENT_NOT_SUPPORTED
- /*
- * Hardware does not support non-aligned data transfers, we must verify
- * the request.
- */
- (void) AcpiUtShortDivide ((ACPI_INTEGER) Address, Length, NULL, &Remainder);
- if (Remainder != 0)
- {
- return_ACPI_STATUS (AE_AML_ALIGNMENT);
- }
-#endif
-
- /*
- * Does the request fit into the cached memory mapping?
- * Is 1) Address below the current mapping? OR
- * 2) Address beyond the current mapping?
- */
- if ((Address < MemInfo->MappedPhysicalAddress) ||
- (((ACPI_INTEGER) Address + Length) >
- ((ACPI_INTEGER)
- MemInfo->MappedPhysicalAddress + MemInfo->MappedLength)))
- {
- /*
- * The request cannot be resolved by the current memory mapping;
- * Delete the existing mapping and create a new one.
- */
- if (MemInfo->MappedLength)
- {
- /* Valid mapping, delete it */
-
- AcpiOsUnmapMemory (MemInfo->MappedLogicalAddress,
- MemInfo->MappedLength);
- }
-
- /*
- * Don't attempt to map memory beyond the end of the region, and
- * constrain the maximum mapping size to something reasonable.
- */
- WindowSize = (ACPI_SIZE)
- ((MemInfo->Address + MemInfo->Length) - Address);
-
- if (WindowSize > ACPI_SYSMEM_REGION_WINDOW_SIZE)
- {
- WindowSize = ACPI_SYSMEM_REGION_WINDOW_SIZE;
- }
-
- /* Create a new mapping starting at the address given */
-
- MemInfo->MappedLogicalAddress = AcpiOsMapMemory ((ACPI_NATIVE_UINT) Address, WindowSize);
- if (!MemInfo->MappedLogicalAddress)
- {
- ACPI_ERROR ((AE_INFO,
- "Could not map memory at %8.8X%8.8X, size %X",
- ACPI_FORMAT_UINT64 (Address), (UINT32) WindowSize));
- MemInfo->MappedLength = 0;
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* Save the physical address and mapping size */
-
- MemInfo->MappedPhysicalAddress = Address;
- MemInfo->MappedLength = WindowSize;
- }
-
- /*
- * Generate a logical pointer corresponding to the address we want to
- * access
- */
- LogicalAddrPtr = MemInfo->MappedLogicalAddress +
- ((ACPI_INTEGER) Address - (ACPI_INTEGER) MemInfo->MappedPhysicalAddress);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "System-Memory (width %d) R/W %d Address=%8.8X%8.8X\n",
- BitWidth, Function, ACPI_FORMAT_UINT64 (Address)));
-
- /*
- * Perform the memory read or write
- *
- * Note: For machines that do not support non-aligned transfers, the target
- * address was checked for alignment above. We do not attempt to break the
- * transfer up into smaller (byte-size) chunks because the AML specifically
- * asked for a transfer width that the hardware may require.
- */
- switch (Function)
- {
- case ACPI_READ:
-
- *Value = 0;
- switch (BitWidth)
- {
- case 8:
- *Value = (ACPI_INTEGER) ACPI_GET8 (LogicalAddrPtr);
- break;
-
- case 16:
- *Value = (ACPI_INTEGER) ACPI_GET16 (LogicalAddrPtr);
- break;
-
- case 32:
- *Value = (ACPI_INTEGER) ACPI_GET32 (LogicalAddrPtr);
- break;
-
- case 64:
- *Value = (ACPI_INTEGER) ACPI_GET64 (LogicalAddrPtr);
- break;
-
- default:
- /* BitWidth was already validated */
- break;
- }
- break;
-
- case ACPI_WRITE:
-
- switch (BitWidth)
- {
- case 8:
- ACPI_SET8 (LogicalAddrPtr) = (UINT8) *Value;
- break;
-
- case 16:
- ACPI_SET16 (LogicalAddrPtr) = (UINT16) *Value;
- break;
-
- case 32:
- ACPI_SET32 ( LogicalAddrPtr) = (UINT32) *Value;
- break;
-
- case 64:
- ACPI_SET64 (LogicalAddrPtr) = (UINT64) *Value;
- break;
-
- default:
- /* BitWidth was already validated */
- break;
- }
- break;
-
- default:
- Status = AE_BAD_PARAMETER;
- break;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExSystemIoSpaceHandler
- *
- * PARAMETERS: Function - Read or Write operation
- * Address - Where in the space to read or write
- * BitWidth - Field width in bits (8, 16, or 32)
- * Value - Pointer to in or out value
- * HandlerContext - Pointer to Handler's context
- * RegionContext - Pointer to context specific to the
- * accessed region
- *
- * RETURN: Status
- *
- * DESCRIPTION: Handler for the System IO address space (Op Region)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExSystemIoSpaceHandler (
- UINT32 Function,
- ACPI_PHYSICAL_ADDRESS Address,
- UINT32 BitWidth,
- ACPI_INTEGER *Value,
- void *HandlerContext,
- void *RegionContext)
-{
- ACPI_STATUS Status = AE_OK;
- UINT32 Value32;
-
-
- ACPI_FUNCTION_TRACE (ExSystemIoSpaceHandler);
-
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "System-IO (width %d) R/W %d Address=%8.8X%8.8X\n",
- BitWidth, Function, ACPI_FORMAT_UINT64 (Address)));
-
- /* Decode the function parameter */
-
- switch (Function)
- {
- case ACPI_READ:
-
- Status = AcpiOsReadPort ((ACPI_IO_ADDRESS) Address,
- &Value32, BitWidth);
- *Value = Value32;
- break;
-
- case ACPI_WRITE:
-
- Status = AcpiOsWritePort ((ACPI_IO_ADDRESS) Address,
- (UINT32) *Value, BitWidth);
- break;
-
- default:
- Status = AE_BAD_PARAMETER;
- break;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExPciConfigSpaceHandler
- *
- * PARAMETERS: Function - Read or Write operation
- * Address - Where in the space to read or write
- * BitWidth - Field width in bits (8, 16, or 32)
- * Value - Pointer to in or out value
- * HandlerContext - Pointer to Handler's context
- * RegionContext - Pointer to context specific to the
- * accessed region
- *
- * RETURN: Status
- *
- * DESCRIPTION: Handler for the PCI Config address space (Op Region)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExPciConfigSpaceHandler (
- UINT32 Function,
- ACPI_PHYSICAL_ADDRESS Address,
- UINT32 BitWidth,
- ACPI_INTEGER *Value,
- void *HandlerContext,
- void *RegionContext)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_PCI_ID *PciId;
- UINT16 PciRegister;
-
-
- ACPI_FUNCTION_TRACE (ExPciConfigSpaceHandler);
-
-
- /*
- * The arguments to AcpiOs(Read|Write)PciConfiguration are:
- *
- * PciSegment is the PCI bus segment range 0-31
- * PciBus is the PCI bus number range 0-255
- * PciDevice is the PCI device number range 0-31
- * PciFunction is the PCI device function number
- * PciRegister is the Config space register range 0-255 bytes
- *
- * Value - input value for write, output address for read
- *
- */
- PciId = (ACPI_PCI_ID *) RegionContext;
- PciRegister = (UINT16) (UINT32) Address;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "Pci-Config %d (%d) Seg(%04x) Bus(%04x) Dev(%04x) Func(%04x) Reg(%04x)\n",
- Function, BitWidth, PciId->Segment, PciId->Bus, PciId->Device,
- PciId->Function, PciRegister));
-
- switch (Function)
- {
- case ACPI_READ:
-
- *Value = 0;
- Status = AcpiOsReadPciConfiguration (PciId, PciRegister,
- Value, BitWidth);
- break;
-
- case ACPI_WRITE:
-
- Status = AcpiOsWritePciConfiguration (PciId, PciRegister,
- *Value, BitWidth);
- break;
-
- default:
-
- Status = AE_BAD_PARAMETER;
- break;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExCmosSpaceHandler
- *
- * PARAMETERS: Function - Read or Write operation
- * Address - Where in the space to read or write
- * BitWidth - Field width in bits (8, 16, or 32)
- * Value - Pointer to in or out value
- * HandlerContext - Pointer to Handler's context
- * RegionContext - Pointer to context specific to the
- * accessed region
- *
- * RETURN: Status
- *
- * DESCRIPTION: Handler for the CMOS address space (Op Region)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExCmosSpaceHandler (
- UINT32 Function,
- ACPI_PHYSICAL_ADDRESS Address,
- UINT32 BitWidth,
- ACPI_INTEGER *Value,
- void *HandlerContext,
- void *RegionContext)
-{
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (ExCmosSpaceHandler);
-
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExPciBarSpaceHandler
- *
- * PARAMETERS: Function - Read or Write operation
- * Address - Where in the space to read or write
- * BitWidth - Field width in bits (8, 16, or 32)
- * Value - Pointer to in or out value
- * HandlerContext - Pointer to Handler's context
- * RegionContext - Pointer to context specific to the
- * accessed region
- *
- * RETURN: Status
- *
- * DESCRIPTION: Handler for the PCI BarTarget address space (Op Region)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExPciBarSpaceHandler (
- UINT32 Function,
- ACPI_PHYSICAL_ADDRESS Address,
- UINT32 BitWidth,
- ACPI_INTEGER *Value,
- void *HandlerContext,
- void *RegionContext)
-{
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (ExPciBarSpaceHandler);
-
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExDataTableSpaceHandler
- *
- * PARAMETERS: Function - Read or Write operation
- * Address - Where in the space to read or write
- * BitWidth - Field width in bits (8, 16, or 32)
- * Value - Pointer to in or out value
- * HandlerContext - Pointer to Handler's context
- * RegionContext - Pointer to context specific to the
- * accessed region
- *
- * RETURN: Status
- *
- * DESCRIPTION: Handler for the Data Table address space (Op Region)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExDataTableSpaceHandler (
- UINT32 Function,
- ACPI_PHYSICAL_ADDRESS Address,
- UINT32 BitWidth,
- ACPI_INTEGER *Value,
- void *HandlerContext,
- void *RegionContext)
-{
- ACPI_FUNCTION_TRACE (ExDataTableSpaceHandler);
-
-
- /* Perform the memory read or write */
-
- switch (Function)
- {
- case ACPI_READ:
-
- ACPI_MEMCPY (ACPI_CAST_PTR (char, Value), ACPI_PHYSADDR_TO_PTR (Address),
- ACPI_DIV_8 (BitWidth));
- break;
-
- case ACPI_WRITE:
- default:
-
- return_ACPI_STATUS (AE_SUPPORT);
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
diff --git a/sys/contrib/dev/acpica/exresnte.c b/sys/contrib/dev/acpica/exresnte.c
deleted file mode 100644
index f5f2e14..0000000
--- a/sys/contrib/dev/acpica/exresnte.c
+++ /dev/null
@@ -1,377 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exresnte - AML Interpreter object resolution
- * $Revision: 1.75 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __EXRESNTE_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/amlcode.h>
-
-
-#define _COMPONENT ACPI_EXECUTER
- ACPI_MODULE_NAME ("exresnte")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExResolveNodeToValue
- *
- * PARAMETERS: ObjectPtr - Pointer to a location that contains
- * a pointer to a NS node, and will receive a
- * pointer to the resolved object.
- * WalkState - Current state. Valid only if executing AML
- * code. NULL if simply resolving an object
- *
- * RETURN: Status
- *
- * DESCRIPTION: Resolve a Namespace node to a valued object
- *
- * Note: for some of the data types, the pointer attached to the Node
- * can be either a pointer to an actual internal object or a pointer into the
- * AML stream itself. These types are currently:
- *
- * ACPI_TYPE_INTEGER
- * ACPI_TYPE_STRING
- * ACPI_TYPE_BUFFER
- * ACPI_TYPE_MUTEX
- * ACPI_TYPE_PACKAGE
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExResolveNodeToValue (
- ACPI_NAMESPACE_NODE **ObjectPtr,
- ACPI_WALK_STATE *WalkState)
-
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_OPERAND_OBJECT *SourceDesc;
- ACPI_OPERAND_OBJECT *ObjDesc = NULL;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_OBJECT_TYPE EntryType;
-
-
- ACPI_FUNCTION_TRACE (ExResolveNodeToValue);
-
-
- /*
- * The stack pointer points to a ACPI_NAMESPACE_NODE (Node). Get the
- * object that is attached to the Node.
- */
- Node = *ObjectPtr;
- SourceDesc = AcpiNsGetAttachedObject (Node);
- EntryType = AcpiNsGetType ((ACPI_HANDLE) Node);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Entry=%p SourceDesc=%p [%s]\n",
- Node, SourceDesc, AcpiUtGetTypeName (EntryType)));
-
- if ((EntryType == ACPI_TYPE_LOCAL_ALIAS) ||
- (EntryType == ACPI_TYPE_LOCAL_METHOD_ALIAS))
- {
- /* There is always exactly one level of indirection */
-
- Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, Node->Object);
- SourceDesc = AcpiNsGetAttachedObject (Node);
- EntryType = AcpiNsGetType ((ACPI_HANDLE) Node);
- *ObjectPtr = Node;
- }
-
- /*
- * Several object types require no further processing:
- * 1) Device/Thermal objects don't have a "real" subobject, return the Node
- * 2) Method locals and arguments have a pseudo-Node
- */
- if ((EntryType == ACPI_TYPE_DEVICE) ||
- (EntryType == ACPI_TYPE_THERMAL) ||
- (Node->Flags & (ANOBJ_METHOD_ARG | ANOBJ_METHOD_LOCAL)))
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- if (!SourceDesc)
- {
- ACPI_ERROR ((AE_INFO, "No object attached to node %p",
- Node));
- return_ACPI_STATUS (AE_AML_NO_OPERAND);
- }
-
- /*
- * Action is based on the type of the Node, which indicates the type
- * of the attached object or pointer
- */
- switch (EntryType)
- {
- case ACPI_TYPE_PACKAGE:
-
- if (ACPI_GET_OBJECT_TYPE (SourceDesc) != ACPI_TYPE_PACKAGE)
- {
- ACPI_ERROR ((AE_INFO, "Object not a Package, type %s",
- AcpiUtGetObjectTypeName (SourceDesc)));
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
-
- Status = AcpiDsGetPackageArguments (SourceDesc);
- if (ACPI_SUCCESS (Status))
- {
- /* Return an additional reference to the object */
-
- ObjDesc = SourceDesc;
- AcpiUtAddReference (ObjDesc);
- }
- break;
-
-
- case ACPI_TYPE_BUFFER:
-
- if (ACPI_GET_OBJECT_TYPE (SourceDesc) != ACPI_TYPE_BUFFER)
- {
- ACPI_ERROR ((AE_INFO, "Object not a Buffer, type %s",
- AcpiUtGetObjectTypeName (SourceDesc)));
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
-
- Status = AcpiDsGetBufferArguments (SourceDesc);
- if (ACPI_SUCCESS (Status))
- {
- /* Return an additional reference to the object */
-
- ObjDesc = SourceDesc;
- AcpiUtAddReference (ObjDesc);
- }
- break;
-
-
- case ACPI_TYPE_STRING:
-
- if (ACPI_GET_OBJECT_TYPE (SourceDesc) != ACPI_TYPE_STRING)
- {
- ACPI_ERROR ((AE_INFO, "Object not a String, type %s",
- AcpiUtGetObjectTypeName (SourceDesc)));
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
-
- /* Return an additional reference to the object */
-
- ObjDesc = SourceDesc;
- AcpiUtAddReference (ObjDesc);
- break;
-
-
- case ACPI_TYPE_INTEGER:
-
- if (ACPI_GET_OBJECT_TYPE (SourceDesc) != ACPI_TYPE_INTEGER)
- {
- ACPI_ERROR ((AE_INFO, "Object not a Integer, type %s",
- AcpiUtGetObjectTypeName (SourceDesc)));
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
-
- /* Return an additional reference to the object */
-
- ObjDesc = SourceDesc;
- AcpiUtAddReference (ObjDesc);
- break;
-
-
- case ACPI_TYPE_BUFFER_FIELD:
- case ACPI_TYPE_LOCAL_REGION_FIELD:
- case ACPI_TYPE_LOCAL_BANK_FIELD:
- case ACPI_TYPE_LOCAL_INDEX_FIELD:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "FieldRead Node=%p SourceDesc=%p Type=%X\n",
- Node, SourceDesc, EntryType));
-
- Status = AcpiExReadDataFromField (WalkState, SourceDesc, &ObjDesc);
- break;
-
- /* For these objects, just return the object attached to the Node */
-
- case ACPI_TYPE_MUTEX:
- case ACPI_TYPE_METHOD:
- case ACPI_TYPE_POWER:
- case ACPI_TYPE_PROCESSOR:
- case ACPI_TYPE_EVENT:
- case ACPI_TYPE_REGION:
-
- /* Return an additional reference to the object */
-
- ObjDesc = SourceDesc;
- AcpiUtAddReference (ObjDesc);
- break;
-
- /* TYPE_ANY is untyped, and thus there is no object associated with it */
-
- case ACPI_TYPE_ANY:
-
- ACPI_ERROR ((AE_INFO,
- "Untyped entry %p, no attached object!", Node));
-
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE); /* Cannot be AE_TYPE */
-
-
- case ACPI_TYPE_LOCAL_REFERENCE:
-
- switch (SourceDesc->Reference.Opcode)
- {
- case AML_LOAD_OP:
-
- /* This is a DdbHandle */
- /* Return an additional reference to the object */
-
- case AML_REF_OF_OP:
-
- ObjDesc = SourceDesc;
- AcpiUtAddReference (ObjDesc);
- break;
-
- default:
- /* No named references are allowed here */
-
- ACPI_ERROR ((AE_INFO,
- "Unsupported Reference opcode %X (%s)",
- SourceDesc->Reference.Opcode,
- AcpiPsGetOpcodeName (SourceDesc->Reference.Opcode)));
-
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
- break;
-
-
- default:
-
- /* Default case is for unknown types */
-
- ACPI_ERROR ((AE_INFO,
- "Node %p - Unknown object type %X",
- Node, EntryType));
-
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
-
- } /* switch (EntryType) */
-
-
- /* Return the object descriptor */
-
- *ObjectPtr = (void *) ObjDesc;
- return_ACPI_STATUS (Status);
-}
-
-
diff --git a/sys/contrib/dev/acpica/exresolv.c b/sys/contrib/dev/acpica/exresolv.c
deleted file mode 100644
index b15e86b..0000000
--- a/sys/contrib/dev/acpica/exresolv.c
+++ /dev/null
@@ -1,639 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exresolv - AML Interpreter object resolution
- * $Revision: 1.142 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __EXRESOLV_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acparser.h>
-
-
-#define _COMPONENT ACPI_EXECUTER
- ACPI_MODULE_NAME ("exresolv")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiExResolveObjectToValue (
- ACPI_OPERAND_OBJECT **StackPtr,
- ACPI_WALK_STATE *WalkState);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExResolveToValue
- *
- * PARAMETERS: **StackPtr - Points to entry on ObjStack, which can
- * be either an (ACPI_OPERAND_OBJECT *)
- * or an ACPI_HANDLE.
- * WalkState - Current method state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Convert Reference objects to values
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExResolveToValue (
- ACPI_OPERAND_OBJECT **StackPtr,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE_PTR (ExResolveToValue, StackPtr);
-
-
- if (!StackPtr || !*StackPtr)
- {
- ACPI_ERROR ((AE_INFO, "Internal - null pointer"));
- return_ACPI_STATUS (AE_AML_NO_OPERAND);
- }
-
- /*
- * The entity pointed to by the StackPtr can be either
- * 1) A valid ACPI_OPERAND_OBJECT, or
- * 2) A ACPI_NAMESPACE_NODE (NamedObj)
- */
- if (ACPI_GET_DESCRIPTOR_TYPE (*StackPtr) == ACPI_DESC_TYPE_OPERAND)
- {
- Status = AcpiExResolveObjectToValue (StackPtr, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- if (!*StackPtr)
- {
- ACPI_ERROR ((AE_INFO, "Internal - null pointer"));
- return_ACPI_STATUS (AE_AML_NO_OPERAND);
- }
- }
-
- /*
- * Object on the stack may have changed if AcpiExResolveObjectToValue()
- * was called (i.e., we can't use an _else_ here.)
- */
- if (ACPI_GET_DESCRIPTOR_TYPE (*StackPtr) == ACPI_DESC_TYPE_NAMED)
- {
- Status = AcpiExResolveNodeToValue (
- ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, StackPtr),
- WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Resolved object %p\n", *StackPtr));
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExResolveObjectToValue
- *
- * PARAMETERS: StackPtr - Pointer to an internal object
- * WalkState - Current method state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Retrieve the value from an internal object. The Reference type
- * uses the associated AML opcode to determine the value.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiExResolveObjectToValue (
- ACPI_OPERAND_OBJECT **StackPtr,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_OPERAND_OBJECT *StackDesc;
- ACPI_OPERAND_OBJECT *ObjDesc = NULL;
- UINT16 Opcode;
-
-
- ACPI_FUNCTION_TRACE (ExResolveObjectToValue);
-
-
- StackDesc = *StackPtr;
-
- /* This is an ACPI_OPERAND_OBJECT */
-
- switch (ACPI_GET_OBJECT_TYPE (StackDesc))
- {
- case ACPI_TYPE_LOCAL_REFERENCE:
-
- Opcode = StackDesc->Reference.Opcode;
-
- switch (Opcode)
- {
- case AML_LOCAL_OP:
- case AML_ARG_OP:
-
- /*
- * Get the local from the method's state info
- * Note: this increments the local's object reference count
- */
- Status = AcpiDsMethodDataGetValue (Opcode,
- StackDesc->Reference.Offset, WalkState, &ObjDesc);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[Arg/Local %X] ValueObj is %p\n",
- StackDesc->Reference.Offset, ObjDesc));
-
- /*
- * Now we can delete the original Reference Object and
- * replace it with the resolved value
- */
- AcpiUtRemoveReference (StackDesc);
- *StackPtr = ObjDesc;
- break;
-
-
- case AML_INDEX_OP:
-
- switch (StackDesc->Reference.TargetType)
- {
- case ACPI_TYPE_BUFFER_FIELD:
-
- /* Just return - leave the Reference on the stack */
- break;
-
-
- case ACPI_TYPE_PACKAGE:
-
- ObjDesc = *StackDesc->Reference.Where;
- if (ObjDesc)
- {
- /*
- * Valid obj descriptor, copy pointer to return value
- * (i.e., dereference the package index)
- * Delete the ref object, increment the returned object
- */
- AcpiUtRemoveReference (StackDesc);
- AcpiUtAddReference (ObjDesc);
- *StackPtr = ObjDesc;
- }
- else
- {
- /*
- * A NULL object descriptor means an unitialized element of
- * the package, can't dereference it
- */
- ACPI_ERROR ((AE_INFO,
- "Attempt to deref an Index to NULL pkg element Idx=%p",
- StackDesc));
- Status = AE_AML_UNINITIALIZED_ELEMENT;
- }
- break;
-
-
- default:
-
- /* Invalid reference object */
-
- ACPI_ERROR ((AE_INFO,
- "Unknown TargetType %X in Index/Reference obj %p",
- StackDesc->Reference.TargetType, StackDesc));
- Status = AE_AML_INTERNAL;
- break;
- }
- break;
-
-
- case AML_REF_OF_OP:
- case AML_DEBUG_OP:
- case AML_LOAD_OP:
-
- /* Just leave the object as-is */
-
- break;
-
- case AML_INT_NAMEPATH_OP: /* Reference to a named object */
-
- /* Dereference the name */
-
- if ((StackDesc->Reference.Node->Type == ACPI_TYPE_DEVICE) ||
- (StackDesc->Reference.Node->Type == ACPI_TYPE_THERMAL))
- {
- /* These node types do not have 'real' subobjects */
-
- *StackPtr = (void *) StackDesc->Reference.Node;
- }
- else
- {
- /* Get the object pointed to by the namespace node */
-
- *StackPtr = (StackDesc->Reference.Node)->Object;
- AcpiUtAddReference (*StackPtr);
- }
-
- AcpiUtRemoveReference (StackDesc);
- break;
-
- default:
-
- ACPI_ERROR ((AE_INFO,
- "Unknown Reference opcode %X (%s) in %p",
- Opcode, AcpiPsGetOpcodeName (Opcode), StackDesc));
- Status = AE_AML_INTERNAL;
- break;
- }
- break;
-
-
- case ACPI_TYPE_BUFFER:
-
- Status = AcpiDsGetBufferArguments (StackDesc);
- break;
-
-
- case ACPI_TYPE_PACKAGE:
-
- Status = AcpiDsGetPackageArguments (StackDesc);
- break;
-
-
- case ACPI_TYPE_BUFFER_FIELD:
- case ACPI_TYPE_LOCAL_REGION_FIELD:
- case ACPI_TYPE_LOCAL_BANK_FIELD:
- case ACPI_TYPE_LOCAL_INDEX_FIELD:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "FieldRead SourceDesc=%p Type=%X\n",
- StackDesc, ACPI_GET_OBJECT_TYPE (StackDesc)));
-
- Status = AcpiExReadDataFromField (WalkState, StackDesc, &ObjDesc);
-
- /* Remove a reference to the original operand, then override */
-
- AcpiUtRemoveReference (*StackPtr);
- *StackPtr = (void *) ObjDesc;
- break;
-
- default:
- break;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExResolveMultiple
- *
- * PARAMETERS: WalkState - Current state (contains AML opcode)
- * Operand - Starting point for resolution
- * ReturnType - Where the object type is returned
- * ReturnDesc - Where the resolved object is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Return the base object and type. Traverse a reference list if
- * necessary to get to the base object.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExResolveMultiple (
- ACPI_WALK_STATE *WalkState,
- ACPI_OPERAND_OBJECT *Operand,
- ACPI_OBJECT_TYPE *ReturnType,
- ACPI_OPERAND_OBJECT **ReturnDesc)
-{
- ACPI_OPERAND_OBJECT *ObjDesc = (void *) Operand;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_OBJECT_TYPE Type;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (AcpiExResolveMultiple);
-
-
- /* Operand can be either a namespace node or an operand descriptor */
-
- switch (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc))
- {
- case ACPI_DESC_TYPE_OPERAND:
- Type = ObjDesc->Common.Type;
- break;
-
- case ACPI_DESC_TYPE_NAMED:
- Type = ((ACPI_NAMESPACE_NODE *) ObjDesc)->Type;
- ObjDesc = AcpiNsGetAttachedObject ((ACPI_NAMESPACE_NODE *) ObjDesc);
-
- /* If we had an Alias node, use the attached object for type info */
-
- if (Type == ACPI_TYPE_LOCAL_ALIAS)
- {
- Type = ((ACPI_NAMESPACE_NODE *) ObjDesc)->Type;
- ObjDesc = AcpiNsGetAttachedObject ((ACPI_NAMESPACE_NODE *) ObjDesc);
- }
- break;
-
- default:
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
-
- /* If type is anything other than a reference, we are done */
-
- if (Type != ACPI_TYPE_LOCAL_REFERENCE)
- {
- goto Exit;
- }
-
- /*
- * For reference objects created via the RefOf or Index operators,
- * we need to get to the base object (as per the ACPI specification
- * of the ObjectType and SizeOf operators). This means traversing
- * the list of possibly many nested references.
- */
- while (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_LOCAL_REFERENCE)
- {
- switch (ObjDesc->Reference.Opcode)
- {
- case AML_REF_OF_OP:
- case AML_INT_NAMEPATH_OP:
-
- /* Dereference the reference pointer */
-
- if (ObjDesc->Reference.Opcode == AML_REF_OF_OP)
- {
- Node = ObjDesc->Reference.Object;
- }
- else /* AML_INT_NAMEPATH_OP */
- {
- Node = ObjDesc->Reference.Node;
- }
-
- /* All "References" point to a NS node */
-
- if (ACPI_GET_DESCRIPTOR_TYPE (Node) != ACPI_DESC_TYPE_NAMED)
- {
- ACPI_ERROR ((AE_INFO,
- "Not a NS node %p [%s]",
- Node, AcpiUtGetDescriptorName (Node)));
- return_ACPI_STATUS (AE_AML_INTERNAL);
- }
-
- /* Get the attached object */
-
- ObjDesc = AcpiNsGetAttachedObject (Node);
- if (!ObjDesc)
- {
- /* No object, use the NS node type */
-
- Type = AcpiNsGetType (Node);
- goto Exit;
- }
-
- /* Check for circular references */
-
- if (ObjDesc == Operand)
- {
- return_ACPI_STATUS (AE_AML_CIRCULAR_REFERENCE);
- }
- break;
-
-
- case AML_INDEX_OP:
-
- /* Get the type of this reference (index into another object) */
-
- Type = ObjDesc->Reference.TargetType;
- if (Type != ACPI_TYPE_PACKAGE)
- {
- goto Exit;
- }
-
- /*
- * The main object is a package, we want to get the type
- * of the individual package element that is referenced by
- * the index.
- *
- * This could of course in turn be another reference object.
- */
- ObjDesc = *(ObjDesc->Reference.Where);
- if (!ObjDesc)
- {
- /* NULL package elements are allowed */
-
- Type = 0; /* Uninitialized */
- goto Exit;
- }
- break;
-
-
- case AML_LOCAL_OP:
- case AML_ARG_OP:
-
- if (ReturnDesc)
- {
- Status = AcpiDsMethodDataGetValue (ObjDesc->Reference.Opcode,
- ObjDesc->Reference.Offset, WalkState, &ObjDesc);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- AcpiUtRemoveReference (ObjDesc);
- }
- else
- {
- Status = AcpiDsMethodDataGetNode (ObjDesc->Reference.Opcode,
- ObjDesc->Reference.Offset, WalkState, &Node);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- ObjDesc = AcpiNsGetAttachedObject (Node);
- if (!ObjDesc)
- {
- Type = ACPI_TYPE_ANY;
- goto Exit;
- }
- }
- break;
-
-
- case AML_DEBUG_OP:
-
- /* The Debug Object is of type "DebugObject" */
-
- Type = ACPI_TYPE_DEBUG_OBJECT;
- goto Exit;
-
-
- default:
-
- ACPI_ERROR ((AE_INFO,
- "Unknown Reference subtype %X",
- ObjDesc->Reference.Opcode));
- return_ACPI_STATUS (AE_AML_INTERNAL);
- }
- }
-
- /*
- * Now we are guaranteed to have an object that has not been created
- * via the RefOf or Index operators.
- */
- Type = ACPI_GET_OBJECT_TYPE (ObjDesc);
-
-
-Exit:
- /* Convert internal types to external types */
-
- switch (Type)
- {
- case ACPI_TYPE_LOCAL_REGION_FIELD:
- case ACPI_TYPE_LOCAL_BANK_FIELD:
- case ACPI_TYPE_LOCAL_INDEX_FIELD:
-
- Type = ACPI_TYPE_FIELD_UNIT;
- break;
-
- case ACPI_TYPE_LOCAL_SCOPE:
-
- /* Per ACPI Specification, Scope is untyped */
-
- Type = ACPI_TYPE_ANY;
- break;
-
- default:
- /* No change to Type required */
- break;
- }
-
- *ReturnType = Type;
- if (ReturnDesc)
- {
- *ReturnDesc = ObjDesc;
- }
- return_ACPI_STATUS (AE_OK);
-}
-
-
diff --git a/sys/contrib/dev/acpica/exresop.c b/sys/contrib/dev/acpica/exresop.c
deleted file mode 100644
index 5bbce15..0000000
--- a/sys/contrib/dev/acpica/exresop.c
+++ /dev/null
@@ -1,812 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exresop - AML Interpreter operand/object resolution
- * $Revision: 1.95 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __EXRESOP_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-
-#define _COMPONENT ACPI_EXECUTER
- ACPI_MODULE_NAME ("exresop")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiExCheckObjectType (
- ACPI_OBJECT_TYPE TypeNeeded,
- ACPI_OBJECT_TYPE ThisType,
- void *Object);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExCheckObjectType
- *
- * PARAMETERS: TypeNeeded Object type needed
- * ThisType Actual object type
- * Object Object pointer
- *
- * RETURN: Status
- *
- * DESCRIPTION: Check required type against actual type
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiExCheckObjectType (
- ACPI_OBJECT_TYPE TypeNeeded,
- ACPI_OBJECT_TYPE ThisType,
- void *Object)
-{
- ACPI_FUNCTION_ENTRY ();
-
-
- if (TypeNeeded == ACPI_TYPE_ANY)
- {
- /* All types OK, so we don't perform any typechecks */
-
- return (AE_OK);
- }
-
- if (TypeNeeded == ACPI_TYPE_LOCAL_REFERENCE)
- {
- /*
- * Allow the AML "Constant" opcodes (Zero, One, etc.) to be reference
- * objects and thus allow them to be targets. (As per the ACPI
- * specification, a store to a constant is a noop.)
- */
- if ((ThisType == ACPI_TYPE_INTEGER) &&
- (((ACPI_OPERAND_OBJECT *) Object)->Common.Flags & AOPOBJ_AML_CONSTANT))
- {
- return (AE_OK);
- }
- }
-
- if (TypeNeeded != ThisType)
- {
- ACPI_ERROR ((AE_INFO,
- "Needed type [%s], found [%s] %p",
- AcpiUtGetTypeName (TypeNeeded),
- AcpiUtGetTypeName (ThisType), Object));
-
- return (AE_AML_OPERAND_TYPE);
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExResolveOperands
- *
- * PARAMETERS: Opcode - Opcode being interpreted
- * StackPtr - Pointer to the operand stack to be
- * resolved
- * WalkState - Current state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Convert multiple input operands to the types required by the
- * 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
- * abort with an exception.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExResolveOperands (
- UINT16 Opcode,
- ACPI_OPERAND_OBJECT **StackPtr,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_STATUS Status = AE_OK;
- UINT8 ObjectType;
- UINT32 ArgTypes;
- const ACPI_OPCODE_INFO *OpInfo;
- UINT32 ThisArgType;
- ACPI_OBJECT_TYPE TypeNeeded;
- UINT16 TargetOp = 0;
-
-
- ACPI_FUNCTION_TRACE_U32 (ExResolveOperands, Opcode);
-
-
- OpInfo = AcpiPsGetOpcodeInfo (Opcode);
- if (OpInfo->Class == AML_CLASS_UNKNOWN)
- {
- return_ACPI_STATUS (AE_AML_BAD_OPCODE);
- }
-
- ArgTypes = OpInfo->RuntimeArgs;
- if (ArgTypes == ARGI_INVALID_OPCODE)
- {
- ACPI_ERROR ((AE_INFO, "Unknown AML opcode %X",
- Opcode));
-
- return_ACPI_STATUS (AE_AML_INTERNAL);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "Opcode %X [%s] RequiredOperandTypes=%8.8X\n",
- Opcode, OpInfo->Name, ArgTypes));
-
- /*
- * Normal exit is with (ArgTypes == 0) at end of argument list.
- * Function will return an exception from within the loop upon
- * finding an entry which is not (or cannot be converted
- * to) the required type; if stack underflows; or upon
- * finding a NULL stack entry (which should not happen).
- */
- while (GET_CURRENT_ARG_TYPE (ArgTypes))
- {
- if (!StackPtr || !*StackPtr)
- {
- ACPI_ERROR ((AE_INFO, "Null stack entry at %p",
- StackPtr));
-
- return_ACPI_STATUS (AE_AML_INTERNAL);
- }
-
- /* Extract useful items */
-
- ObjDesc = *StackPtr;
-
- /* Decode the descriptor type */
-
- switch (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc))
- {
- case ACPI_DESC_TYPE_NAMED:
-
- /* Namespace Node */
-
- ObjectType = ((ACPI_NAMESPACE_NODE *) ObjDesc)->Type;
-
- /*
- * Resolve an alias object. The construction of these objects
- * guarantees that there is only one level of alias indirection;
- * thus, the attached object is always the aliased namespace node
- */
- if (ObjectType == ACPI_TYPE_LOCAL_ALIAS)
- {
- ObjDesc = AcpiNsGetAttachedObject ((ACPI_NAMESPACE_NODE *) ObjDesc);
- *StackPtr = ObjDesc;
- ObjectType = ((ACPI_NAMESPACE_NODE *) ObjDesc)->Type;
- }
- break;
-
-
- case ACPI_DESC_TYPE_OPERAND:
-
- /* ACPI internal object */
-
- ObjectType = ACPI_GET_OBJECT_TYPE (ObjDesc);
-
- /* Check for bad ACPI_OBJECT_TYPE */
-
- if (!AcpiUtValidObjectType (ObjectType))
- {
- ACPI_ERROR ((AE_INFO,
- "Bad operand object type [%X]",
- ObjectType));
-
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
-
- if (ObjectType == (UINT8) ACPI_TYPE_LOCAL_REFERENCE)
- {
- /* Decode the Reference */
-
- OpInfo = AcpiPsGetOpcodeInfo (Opcode);
- if (OpInfo->Class == AML_CLASS_UNKNOWN)
- {
- return_ACPI_STATUS (AE_AML_BAD_OPCODE);
- }
-
- switch (ObjDesc->Reference.Opcode)
- {
- case AML_DEBUG_OP:
- TargetOp = AML_DEBUG_OP;
-
- /*lint -fallthrough */
-
- case AML_INDEX_OP:
- case AML_REF_OF_OP:
- case AML_ARG_OP:
- case AML_LOCAL_OP:
- case AML_LOAD_OP: /* DdbHandle from LOAD_OP or LOAD_TABLE_OP */
- case AML_INT_NAMEPATH_OP: /* Reference to a named object */
-
- ACPI_DEBUG_ONLY_MEMBERS (ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "Operand is a Reference, RefOpcode [%s]\n",
- (AcpiPsGetOpcodeInfo (ObjDesc->Reference.Opcode))->Name)));
- break;
-
- default:
- ACPI_ERROR ((AE_INFO,
- "Operand is a Reference, Unknown Reference Opcode: %X",
- ObjDesc->Reference.Opcode));
-
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
- }
- break;
-
-
- default:
-
- /* Invalid descriptor */
-
- ACPI_ERROR ((AE_INFO,
- "Invalid descriptor %p [%s]",
- ObjDesc, AcpiUtGetDescriptorName (ObjDesc)));
-
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
-
- /* Get one argument type, point to the next */
-
- ThisArgType = GET_CURRENT_ARG_TYPE (ArgTypes);
- INCREMENT_ARG_LIST (ArgTypes);
-
- /*
- * Handle cases where the object does not need to be
- * resolved to a value
- */
- switch (ThisArgType)
- {
- case ARGI_REF_OR_STRING: /* Can be a String or Reference */
-
- if ((ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) == ACPI_DESC_TYPE_OPERAND) &&
- (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_STRING))
- {
- /*
- * String found - the string references a named object and
- * must be resolved to a node
- */
- goto NextOperand;
- }
-
- /*
- * Else not a string - fall through to the normal Reference
- * case below
- */
- /*lint -fallthrough */
-
- case ARGI_REFERENCE: /* References: */
- case ARGI_INTEGER_REF:
- case ARGI_OBJECT_REF:
- case ARGI_DEVICE_REF:
- case ARGI_TARGETREF: /* Allows implicit conversion rules before store */
- case ARGI_FIXED_TARGET: /* No implicit conversion before store to target */
- case ARGI_SIMPLE_TARGET: /* Name, Local, or Arg - no implicit conversion */
-
- /*
- * Need an operand of type ACPI_TYPE_LOCAL_REFERENCE
- * A Namespace Node is OK as-is
- */
- if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) == ACPI_DESC_TYPE_NAMED)
- {
- goto NextOperand;
- }
-
- Status = AcpiExCheckObjectType (ACPI_TYPE_LOCAL_REFERENCE,
- ObjectType, ObjDesc);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- goto NextOperand;
-
-
- case ARGI_DATAREFOBJ: /* Store operator only */
-
- /*
- * We don't want to resolve IndexOp reference objects during
- * a store because this would be an implicit DeRefOf operation.
- * Instead, we just want to store the reference object.
- * -- All others must be resolved below.
- */
- if ((Opcode == AML_STORE_OP) &&
- (ACPI_GET_OBJECT_TYPE (*StackPtr) == ACPI_TYPE_LOCAL_REFERENCE) &&
- ((*StackPtr)->Reference.Opcode == AML_INDEX_OP))
- {
- goto NextOperand;
- }
- break;
-
- default:
- /* All cases covered above */
- break;
- }
-
- /*
- * Resolve this object to a value
- */
- Status = AcpiExResolveToValue (StackPtr, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Get the resolved object */
-
- ObjDesc = *StackPtr;
-
- /*
- * Check the resulting object (value) type
- */
- switch (ThisArgType)
- {
- /*
- * For the simple cases, only one type of resolved object
- * is allowed
- */
- case ARGI_MUTEX:
-
- /* Need an operand of type ACPI_TYPE_MUTEX */
-
- TypeNeeded = ACPI_TYPE_MUTEX;
- break;
-
- case ARGI_EVENT:
-
- /* Need an operand of type ACPI_TYPE_EVENT */
-
- TypeNeeded = ACPI_TYPE_EVENT;
- break;
-
- case ARGI_PACKAGE: /* Package */
-
- /* Need an operand of type ACPI_TYPE_PACKAGE */
-
- TypeNeeded = ACPI_TYPE_PACKAGE;
- break;
-
- case ARGI_ANYTYPE:
-
- /* Any operand type will do */
-
- TypeNeeded = ACPI_TYPE_ANY;
- break;
-
- case ARGI_DDBHANDLE:
-
- /* Need an operand of type ACPI_TYPE_DDB_HANDLE */
-
- TypeNeeded = ACPI_TYPE_LOCAL_REFERENCE;
- break;
-
-
- /*
- * The more complex cases allow multiple resolved object types
- */
- case ARGI_INTEGER:
-
- /*
- * Need an operand of type ACPI_TYPE_INTEGER,
- * But we can implicitly convert from a STRING or BUFFER
- * Aka - "Implicit Source Operand Conversion"
- */
- Status = AcpiExConvertToInteger (ObjDesc, StackPtr, 16);
- if (ACPI_FAILURE (Status))
- {
- if (Status == AE_TYPE)
- {
- ACPI_ERROR ((AE_INFO,
- "Needed [Integer/String/Buffer], found [%s] %p",
- AcpiUtGetObjectTypeName (ObjDesc), ObjDesc));
-
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
-
- return_ACPI_STATUS (Status);
- }
-
- if (ObjDesc != *StackPtr)
- {
- AcpiUtRemoveReference (ObjDesc);
- }
- goto NextOperand;
-
-
- case ARGI_BUFFER:
-
- /*
- * Need an operand of type ACPI_TYPE_BUFFER,
- * But we can implicitly convert from a STRING or INTEGER
- * Aka - "Implicit Source Operand Conversion"
- */
- Status = AcpiExConvertToBuffer (ObjDesc, StackPtr);
- if (ACPI_FAILURE (Status))
- {
- if (Status == AE_TYPE)
- {
- ACPI_ERROR ((AE_INFO,
- "Needed [Integer/String/Buffer], found [%s] %p",
- AcpiUtGetObjectTypeName (ObjDesc), ObjDesc));
-
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
-
- return_ACPI_STATUS (Status);
- }
-
- if (ObjDesc != *StackPtr)
- {
- AcpiUtRemoveReference (ObjDesc);
- }
- goto NextOperand;
-
-
- case ARGI_STRING:
-
- /*
- * Need an operand of type ACPI_TYPE_STRING,
- * But we can implicitly convert from a BUFFER or INTEGER
- * Aka - "Implicit Source Operand Conversion"
- */
- Status = AcpiExConvertToString (ObjDesc, StackPtr,
- ACPI_IMPLICIT_CONVERT_HEX);
- if (ACPI_FAILURE (Status))
- {
- if (Status == AE_TYPE)
- {
- ACPI_ERROR ((AE_INFO,
- "Needed [Integer/String/Buffer], found [%s] %p",
- AcpiUtGetObjectTypeName (ObjDesc), ObjDesc));
-
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
-
- return_ACPI_STATUS (Status);
- }
-
- if (ObjDesc != *StackPtr)
- {
- AcpiUtRemoveReference (ObjDesc);
- }
- goto NextOperand;
-
-
- case ARGI_COMPUTEDATA:
-
- /* Need an operand of type INTEGER, STRING or BUFFER */
-
- switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
- {
- case ACPI_TYPE_INTEGER:
- case ACPI_TYPE_STRING:
- case ACPI_TYPE_BUFFER:
-
- /* Valid operand */
- break;
-
- default:
- ACPI_ERROR ((AE_INFO,
- "Needed [Integer/String/Buffer], found [%s] %p",
- AcpiUtGetObjectTypeName (ObjDesc), ObjDesc));
-
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
- goto NextOperand;
-
-
- case ARGI_BUFFER_OR_STRING:
-
- /* Need an operand of type STRING or BUFFER */
-
- switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
- {
- case ACPI_TYPE_STRING:
- case ACPI_TYPE_BUFFER:
-
- /* Valid operand */
- break;
-
- case ACPI_TYPE_INTEGER:
-
- /* Highest priority conversion is to type Buffer */
-
- Status = AcpiExConvertToBuffer (ObjDesc, StackPtr);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- if (ObjDesc != *StackPtr)
- {
- AcpiUtRemoveReference (ObjDesc);
- }
- break;
-
- default:
- ACPI_ERROR ((AE_INFO,
- "Needed [Integer/String/Buffer], found [%s] %p",
- AcpiUtGetObjectTypeName (ObjDesc), ObjDesc));
-
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
- goto NextOperand;
-
-
- case ARGI_DATAOBJECT:
- /*
- * ARGI_DATAOBJECT is only used by the SizeOf operator.
- * Need a buffer, string, package, or RefOf reference.
- *
- * The only reference allowed here is a direct reference to
- * a namespace node.
- */
- switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
- {
- case ACPI_TYPE_PACKAGE:
- case ACPI_TYPE_STRING:
- case ACPI_TYPE_BUFFER:
- case ACPI_TYPE_LOCAL_REFERENCE:
-
- /* Valid operand */
- break;
-
- default:
- ACPI_ERROR ((AE_INFO,
- "Needed [Buffer/String/Package/Reference], found [%s] %p",
- AcpiUtGetObjectTypeName (ObjDesc), ObjDesc));
-
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
- goto NextOperand;
-
-
- case ARGI_COMPLEXOBJ:
-
- /* Need a buffer or package or (ACPI 2.0) String */
-
- switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
- {
- case ACPI_TYPE_PACKAGE:
- case ACPI_TYPE_STRING:
- case ACPI_TYPE_BUFFER:
-
- /* Valid operand */
- break;
-
- default:
- ACPI_ERROR ((AE_INFO,
- "Needed [Buffer/String/Package], found [%s] %p",
- AcpiUtGetObjectTypeName (ObjDesc), ObjDesc));
-
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
- goto NextOperand;
-
-
- case ARGI_REGION_OR_BUFFER: /* Used by Load() only */
-
- /* Need an operand of type REGION or a BUFFER (which could be a resolved region field) */
-
- switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
- {
- case ACPI_TYPE_BUFFER:
- case ACPI_TYPE_REGION:
-
- /* Valid operand */
- break;
-
- default:
- ACPI_ERROR ((AE_INFO,
- "Needed [Region/Buffer], found [%s] %p",
- AcpiUtGetObjectTypeName (ObjDesc), ObjDesc));
-
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
- goto NextOperand;
-
-
- case ARGI_DATAREFOBJ:
-
- /* Used by the Store() operator only */
-
- switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
- {
- case ACPI_TYPE_INTEGER:
- case ACPI_TYPE_PACKAGE:
- case ACPI_TYPE_STRING:
- case ACPI_TYPE_BUFFER:
- case ACPI_TYPE_BUFFER_FIELD:
- case ACPI_TYPE_LOCAL_REFERENCE:
- case ACPI_TYPE_LOCAL_REGION_FIELD:
- case ACPI_TYPE_LOCAL_BANK_FIELD:
- case ACPI_TYPE_LOCAL_INDEX_FIELD:
- case ACPI_TYPE_DDB_HANDLE:
-
- /* Valid operand */
- break;
-
- default:
-
- if (AcpiGbl_EnableInterpreterSlack)
- {
- /*
- * Enable original behavior of Store(), allowing any and all
- * objects as the source operand. The ACPI spec does not
- * allow this, however.
- */
- break;
- }
-
- if (TargetOp == AML_DEBUG_OP)
- {
- /* Allow store of any object to the Debug object */
-
- break;
- }
-
- ACPI_ERROR ((AE_INFO,
- "Needed Integer/Buffer/String/Package/Ref/Ddb], found [%s] %p",
- AcpiUtGetObjectTypeName (ObjDesc), ObjDesc));
-
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
- goto NextOperand;
-
-
- default:
-
- /* Unknown type */
-
- ACPI_ERROR ((AE_INFO,
- "Internal - Unknown ARGI (required operand) type %X",
- ThisArgType));
-
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /*
- * Make sure that the original object was resolved to the
- * required object type (Simple cases only).
- */
- Status = AcpiExCheckObjectType (TypeNeeded,
- ACPI_GET_OBJECT_TYPE (*StackPtr), *StackPtr);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
-NextOperand:
- /*
- * If more operands needed, decrement StackPtr to point
- * to next operand on stack
- */
- if (GET_CURRENT_ARG_TYPE (ArgTypes))
- {
- StackPtr--;
- }
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
diff --git a/sys/contrib/dev/acpica/exstore.c b/sys/contrib/dev/acpica/exstore.c
deleted file mode 100644
index c4eb8915..0000000
--- a/sys/contrib/dev/acpica/exstore.c
+++ /dev/null
@@ -1,756 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exstore - AML Interpreter object store support
- * $Revision: 1.203 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __EXSTORE_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acparser.h>
-
-
-#define _COMPONENT ACPI_EXECUTER
- ACPI_MODULE_NAME ("exstore")
-
-/* Local prototypes */
-
-static void
-AcpiExDoDebugObject (
- ACPI_OPERAND_OBJECT *SourceDesc,
- UINT32 Level,
- UINT32 Index);
-
-static ACPI_STATUS
-AcpiExStoreObjectToIndex (
- ACPI_OPERAND_OBJECT *ValDesc,
- ACPI_OPERAND_OBJECT *DestDesc,
- ACPI_WALK_STATE *WalkState);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExDoDebugObject
- *
- * PARAMETERS: SourceDesc - Value to be stored
- * Level - Indentation level (used for packages)
- * Index - Current package element, zero if not pkg
- *
- * RETURN: None
- *
- * DESCRIPTION: Handles stores to the Debug Object.
- *
- ******************************************************************************/
-
-static void
-AcpiExDoDebugObject (
- ACPI_OPERAND_OBJECT *SourceDesc,
- UINT32 Level,
- UINT32 Index)
-{
- UINT32 i;
-
-
- ACPI_FUNCTION_TRACE_PTR (ExDoDebugObject, SourceDesc);
-
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "[ACPI Debug] %*s",
- Level, " "));
-
- /* Display index for package output only */
-
- if (Index > 0)
- {
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT,
- "(%.2u) ", Index -1));
- }
-
- if (!SourceDesc)
- {
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "<Null Object>\n"));
- return_VOID;
- }
-
- if (ACPI_GET_DESCRIPTOR_TYPE (SourceDesc) == ACPI_DESC_TYPE_OPERAND)
- {
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "%s: ",
- AcpiUtGetObjectTypeName (SourceDesc)));
-
- if (!AcpiUtValidInternalObject (SourceDesc))
- {
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT,
- "%p, Invalid Internal Object!\n", SourceDesc));
- return_VOID;
- }
- }
- else if (ACPI_GET_DESCRIPTOR_TYPE (SourceDesc) == ACPI_DESC_TYPE_NAMED)
- {
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "%s: %p\n",
- AcpiUtGetTypeName (((ACPI_NAMESPACE_NODE *) SourceDesc)->Type),
- SourceDesc));
- return_VOID;
- }
- else
- {
- return_VOID;
- }
-
- switch (ACPI_GET_OBJECT_TYPE (SourceDesc))
- {
- case ACPI_TYPE_INTEGER:
-
- /* Output correct integer width */
-
- if (AcpiGbl_IntegerByteWidth == 4)
- {
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "0x%8.8X\n",
- (UINT32) SourceDesc->Integer.Value));
- }
- else
- {
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "0x%8.8X%8.8X\n",
- ACPI_FORMAT_UINT64 (SourceDesc->Integer.Value)));
- }
- break;
-
- case ACPI_TYPE_BUFFER:
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "[0x%.2X]\n",
- (UINT32) SourceDesc->Buffer.Length));
- ACPI_DUMP_BUFFER (SourceDesc->Buffer.Pointer,
- (SourceDesc->Buffer.Length < 256) ? SourceDesc->Buffer.Length : 256);
- break;
-
- case ACPI_TYPE_STRING:
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "[0x%.2X] \"%s\"\n",
- SourceDesc->String.Length, SourceDesc->String.Pointer));
- break;
-
- case ACPI_TYPE_PACKAGE:
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "[0x%.2X Elements]\n",
- SourceDesc->Package.Count));
-
- /* Output the entire contents of the package */
-
- for (i = 0; i < SourceDesc->Package.Count; i++)
- {
- AcpiExDoDebugObject (SourceDesc->Package.Elements[i],
- Level+4, i+1);
- }
- break;
-
- case ACPI_TYPE_LOCAL_REFERENCE:
-
- if (SourceDesc->Reference.Opcode == AML_INDEX_OP)
- {
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "[%s, 0x%X]\n",
- AcpiPsGetOpcodeName (SourceDesc->Reference.Opcode),
- SourceDesc->Reference.Offset));
- }
- else
- {
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "[%s]\n",
- AcpiPsGetOpcodeName (SourceDesc->Reference.Opcode)));
- }
-
-
- if (SourceDesc->Reference.Object)
- {
- if (ACPI_GET_DESCRIPTOR_TYPE (SourceDesc->Reference.Object) ==
- ACPI_DESC_TYPE_NAMED)
- {
- AcpiExDoDebugObject (((ACPI_NAMESPACE_NODE *)
- SourceDesc->Reference.Object)->Object,
- Level+4, 0);
- }
- else
- {
- AcpiExDoDebugObject (SourceDesc->Reference.Object, Level+4, 0);
- }
- }
- else if (SourceDesc->Reference.Node)
- {
- AcpiExDoDebugObject ((SourceDesc->Reference.Node)->Object,
- Level+4, 0);
- }
- break;
-
- default:
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DEBUG_OBJECT, "%p %s\n",
- SourceDesc, AcpiUtGetObjectTypeName (SourceDesc)));
- break;
- }
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EXEC, "\n"));
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExStore
- *
- * PARAMETERS: *SourceDesc - Value to be stored
- * *DestDesc - Where to store it. Must be an NS node
- * or an ACPI_OPERAND_OBJECT of type
- * Reference;
- * WalkState - Current walk state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Store the value described by SourceDesc into the location
- * described by DestDesc. Called by various interpreter
- * functions to store the result of an operation into
- * the destination operand -- not just simply the actual "Store"
- * ASL operator.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExStore (
- ACPI_OPERAND_OBJECT *SourceDesc,
- ACPI_OPERAND_OBJECT *DestDesc,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_OPERAND_OBJECT *RefDesc = DestDesc;
-
-
- ACPI_FUNCTION_TRACE_PTR (ExStore, DestDesc);
-
-
- /* Validate parameters */
-
- if (!SourceDesc || !DestDesc)
- {
- ACPI_ERROR ((AE_INFO, "Null parameter"));
- return_ACPI_STATUS (AE_AML_NO_OPERAND);
- }
-
- /* DestDesc can be either a namespace node or an ACPI object */
-
- if (ACPI_GET_DESCRIPTOR_TYPE (DestDesc) == ACPI_DESC_TYPE_NAMED)
- {
- /*
- * Dest is a namespace node,
- * Storing an object into a Named node.
- */
- Status = AcpiExStoreObjectToNode (SourceDesc,
- (ACPI_NAMESPACE_NODE *) DestDesc, WalkState,
- ACPI_IMPLICIT_CONVERSION);
-
- return_ACPI_STATUS (Status);
- }
-
- /* Destination object must be a Reference or a Constant object */
-
- switch (ACPI_GET_OBJECT_TYPE (DestDesc))
- {
- case ACPI_TYPE_LOCAL_REFERENCE:
- break;
-
- case ACPI_TYPE_INTEGER:
-
- /* Allow stores to Constants -- a Noop as per ACPI spec */
-
- if (DestDesc->Common.Flags & AOPOBJ_AML_CONSTANT)
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- /*lint -fallthrough */
-
- default:
-
- /* Destination is not a Reference object */
-
- ACPI_ERROR ((AE_INFO,
- "Target is not a Reference or Constant object - %s [%p]",
- AcpiUtGetObjectTypeName (DestDesc), DestDesc));
-
- ACPI_DUMP_STACK_ENTRY (SourceDesc);
- ACPI_DUMP_STACK_ENTRY (DestDesc);
- ACPI_DUMP_OPERANDS (&DestDesc, ACPI_IMODE_EXECUTE, "ExStore",
- 2, "Target is not a Reference or Constant object");
-
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
-
- /*
- * Examine the Reference opcode. These cases are handled:
- *
- * 1) Store to Name (Change the object associated with a name)
- * 2) Store to an indexed area of a Buffer or Package
- * 3) Store to a Method Local or Arg
- * 4) Store to the debug object
- */
- switch (RefDesc->Reference.Opcode)
- {
- case AML_REF_OF_OP:
-
- /* Storing an object into a Name "container" */
-
- Status = AcpiExStoreObjectToNode (SourceDesc,
- RefDesc->Reference.Object,
- WalkState, ACPI_IMPLICIT_CONVERSION);
- break;
-
-
- case AML_INDEX_OP:
-
- /* Storing to an Index (pointer into a packager or buffer) */
-
- Status = AcpiExStoreObjectToIndex (SourceDesc, RefDesc, WalkState);
- break;
-
-
- case AML_LOCAL_OP:
- case AML_ARG_OP:
-
- /* Store to a method local/arg */
-
- Status = AcpiDsStoreObjectToLocal (RefDesc->Reference.Opcode,
- RefDesc->Reference.Offset, SourceDesc, WalkState);
- break;
-
-
- case AML_DEBUG_OP:
-
- /*
- * Storing to the Debug object causes the value stored to be
- * displayed and otherwise has no effect -- see ACPI Specification
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "**** Write to Debug Object: Object %p %s ****:\n\n",
- SourceDesc, AcpiUtGetObjectTypeName (SourceDesc)));
-
- AcpiExDoDebugObject (SourceDesc, 0, 0);
- break;
-
-
- default:
-
- ACPI_ERROR ((AE_INFO, "Unknown Reference opcode %X",
- RefDesc->Reference.Opcode));
- ACPI_DUMP_ENTRY (RefDesc, ACPI_LV_ERROR);
-
- Status = AE_AML_INTERNAL;
- break;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExStoreObjectToIndex
- *
- * PARAMETERS: *SourceDesc - Value to be stored
- * *DestDesc - Named object to receive the value
- * WalkState - Current walk state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Store the object to indexed Buffer or Package element
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiExStoreObjectToIndex (
- ACPI_OPERAND_OBJECT *SourceDesc,
- ACPI_OPERAND_OBJECT *IndexDesc,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_OPERAND_OBJECT *NewDesc;
- UINT8 Value = 0;
- UINT32 i;
-
-
- ACPI_FUNCTION_TRACE (ExStoreObjectToIndex);
-
-
- /*
- * Destination must be a reference pointer, and
- * must point to either a buffer or a package
- */
- switch (IndexDesc->Reference.TargetType)
- {
- case ACPI_TYPE_PACKAGE:
- /*
- * Storing to a package element. Copy the object and replace
- * any existing object with the new object. No implicit
- * conversion is performed.
- *
- * The object at *(IndexDesc->Reference.Where) is the
- * element within the package that is to be modified.
- * The parent package object is at IndexDesc->Reference.Object
- */
- ObjDesc = *(IndexDesc->Reference.Where);
-
- Status = AcpiUtCopyIobjectToIobject (SourceDesc, &NewDesc, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- if (ObjDesc)
- {
- /* Decrement reference count by the ref count of the parent package */
-
- for (i = 0;
- i < ((ACPI_OPERAND_OBJECT *)
- IndexDesc->Reference.Object)->Common.ReferenceCount;
- i++)
- {
- AcpiUtRemoveReference (ObjDesc);
- }
- }
-
- *(IndexDesc->Reference.Where) = NewDesc;
-
- /* Increment ref count by the ref count of the parent package-1 */
-
- for (i = 1;
- i < ((ACPI_OPERAND_OBJECT *)
- IndexDesc->Reference.Object)->Common.ReferenceCount;
- i++)
- {
- AcpiUtAddReference (NewDesc);
- }
-
- break;
-
-
- case ACPI_TYPE_BUFFER_FIELD:
-
- /*
- * Store into a Buffer or String (not actually a real BufferField)
- * at a location defined by an Index.
- *
- * The first 8-bit element of the source object is written to the
- * 8-bit Buffer location defined by the Index destination object,
- * according to the ACPI 2.0 specification.
- */
-
- /*
- * Make sure the target is a Buffer or String. An error should
- * not happen here, since the ReferenceObject was constructed
- * by the INDEX_OP code.
- */
- ObjDesc = IndexDesc->Reference.Object;
- if ((ACPI_GET_OBJECT_TYPE (ObjDesc) != ACPI_TYPE_BUFFER) &&
- (ACPI_GET_OBJECT_TYPE (ObjDesc) != ACPI_TYPE_STRING))
- {
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
-
- /*
- * The assignment of the individual elements will be slightly
- * different for each source type.
- */
- switch (ACPI_GET_OBJECT_TYPE (SourceDesc))
- {
- case ACPI_TYPE_INTEGER:
-
- /* Use the least-significant byte of the integer */
-
- Value = (UINT8) (SourceDesc->Integer.Value);
- break;
-
- case ACPI_TYPE_BUFFER:
- case ACPI_TYPE_STRING:
-
- /* Note: Takes advantage of common string/buffer fields */
-
- Value = SourceDesc->Buffer.Pointer[0];
- break;
-
- default:
-
- /* All other types are invalid */
-
- ACPI_ERROR ((AE_INFO,
- "Source must be Integer/Buffer/String type, not %s",
- AcpiUtGetObjectTypeName (SourceDesc)));
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
-
- /* Store the source value into the target buffer byte */
-
- ObjDesc->Buffer.Pointer[IndexDesc->Reference.Offset] = Value;
- break;
-
-
- default:
- ACPI_ERROR ((AE_INFO,
- "Target is not a Package or BufferField"));
- Status = AE_AML_OPERAND_TYPE;
- break;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExStoreObjectToNode
- *
- * PARAMETERS: SourceDesc - Value to be stored
- * Node - Named object to receive the value
- * WalkState - Current walk state
- * ImplicitConversion - Perform implicit conversion (yes/no)
- *
- * RETURN: Status
- *
- * DESCRIPTION: Store the object to the named object.
- *
- * The Assignment of an object to a named object is handled here
- * The value passed in will replace the current value (if any)
- * with the input value.
- *
- * When storing into an object the data is converted to the
- * target object type then stored in the object. This means
- * that the target object type (for an initialized target) will
- * not be changed by a store operation.
- *
- * Assumes parameters are already validated.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExStoreObjectToNode (
- ACPI_OPERAND_OBJECT *SourceDesc,
- ACPI_NAMESPACE_NODE *Node,
- ACPI_WALK_STATE *WalkState,
- UINT8 ImplicitConversion)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_OPERAND_OBJECT *TargetDesc;
- ACPI_OPERAND_OBJECT *NewDesc;
- ACPI_OBJECT_TYPE TargetType;
-
-
- ACPI_FUNCTION_TRACE_PTR (ExStoreObjectToNode, SourceDesc);
-
-
- /* Get current type of the node, and object attached to Node */
-
- TargetType = AcpiNsGetType (Node);
- TargetDesc = AcpiNsGetAttachedObject (Node);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Storing %p(%s) into node %p(%s)\n",
- SourceDesc, AcpiUtGetObjectTypeName (SourceDesc),
- Node, AcpiUtGetTypeName (TargetType)));
-
- /*
- * Resolve the source object to an actual value
- * (If it is a reference object)
- */
- Status = AcpiExResolveObject (&SourceDesc, TargetType, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* If no implicit conversion, drop into the default case below */
-
- if ((!ImplicitConversion) || (WalkState->Opcode == AML_COPY_OP))
- {
- /* Force execution of default (no implicit conversion) */
-
- TargetType = ACPI_TYPE_ANY;
- }
-
- /* Do the actual store operation */
-
- switch (TargetType)
- {
- case ACPI_TYPE_BUFFER_FIELD:
- case ACPI_TYPE_LOCAL_REGION_FIELD:
- case ACPI_TYPE_LOCAL_BANK_FIELD:
- case ACPI_TYPE_LOCAL_INDEX_FIELD:
-
- /* For fields, copy the source data to the target field. */
-
- Status = AcpiExWriteDataToField (SourceDesc, TargetDesc,
- &WalkState->ResultObj);
- break;
-
-
- case ACPI_TYPE_INTEGER:
- case ACPI_TYPE_STRING:
- case ACPI_TYPE_BUFFER:
-
- /*
- * These target types are all of type Integer/String/Buffer, and
- * therefore support implicit conversion before the store.
- *
- * Copy and/or convert the source object to a new target object
- */
- Status = AcpiExStoreObjectToObject (SourceDesc, TargetDesc,
- &NewDesc, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- if (NewDesc != TargetDesc)
- {
- /*
- * Store the new NewDesc as the new value of the Name, and set
- * the Name's type to that of the value being stored in it.
- * SourceDesc reference count is incremented by AttachObject.
- *
- * Note: This may change the type of the node if an explicit store
- * has been performed such that the node/object type has been
- * changed.
- */
- Status = AcpiNsAttachObject (Node, NewDesc, NewDesc->Common.Type);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "Store %s into %s via Convert/Attach\n",
- AcpiUtGetObjectTypeName (SourceDesc),
- AcpiUtGetObjectTypeName (NewDesc)));
- }
- break;
-
-
- default:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "Storing %s (%p) directly into node (%p) with no implicit conversion\n",
- AcpiUtGetObjectTypeName (SourceDesc), SourceDesc, Node));
-
- /* No conversions for all other types. Just attach the source object */
-
- Status = AcpiNsAttachObject (Node, SourceDesc,
- ACPI_GET_OBJECT_TYPE (SourceDesc));
- break;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
diff --git a/sys/contrib/dev/acpica/exstoren.c b/sys/contrib/dev/acpica/exstoren.c
deleted file mode 100644
index 1f87ab2..0000000
--- a/sys/contrib/dev/acpica/exstoren.c
+++ /dev/null
@@ -1,385 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exstoren - AML Interpreter object store support,
- * Store to Node (namespace object)
- * $Revision: 1.71 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __EXSTOREN_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/amlcode.h>
-
-
-#define _COMPONENT ACPI_EXECUTER
- ACPI_MODULE_NAME ("exstoren")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExResolveObject
- *
- * PARAMETERS: SourceDescPtr - Pointer to the source object
- * TargetType - Current type of the target
- * WalkState - Current walk state
- *
- * RETURN: Status, resolved object in SourceDescPtr.
- *
- * DESCRIPTION: Resolve an object. If the object is a reference, dereference
- * it and return the actual object in the SourceDescPtr.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExResolveObject (
- ACPI_OPERAND_OBJECT **SourceDescPtr,
- ACPI_OBJECT_TYPE TargetType,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_OPERAND_OBJECT *SourceDesc = *SourceDescPtr;
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (ExResolveObject);
-
-
- /* Ensure we have a Target that can be stored to */
-
- switch (TargetType)
- {
- case ACPI_TYPE_BUFFER_FIELD:
- case ACPI_TYPE_LOCAL_REGION_FIELD:
- case ACPI_TYPE_LOCAL_BANK_FIELD:
- case ACPI_TYPE_LOCAL_INDEX_FIELD:
- /*
- * These cases all require only Integers or values that
- * can be converted to Integers (Strings or Buffers)
- */
-
- case ACPI_TYPE_INTEGER:
- case ACPI_TYPE_STRING:
- case ACPI_TYPE_BUFFER:
-
- /*
- * Stores into a Field/Region or into a Integer/Buffer/String
- * are all essentially the same. This case handles the
- * "interchangeable" types Integer, String, and Buffer.
- */
- if (ACPI_GET_OBJECT_TYPE (SourceDesc) == ACPI_TYPE_LOCAL_REFERENCE)
- {
- /* Resolve a reference object first */
-
- Status = AcpiExResolveToValue (SourceDescPtr, WalkState);
- if (ACPI_FAILURE (Status))
- {
- break;
- }
- }
-
- /* For CopyObject, no further validation necessary */
-
- if (WalkState->Opcode == AML_COPY_OP)
- {
- break;
- }
-
- /* Must have a Integer, Buffer, or String */
-
- if ((ACPI_GET_OBJECT_TYPE (SourceDesc) != ACPI_TYPE_INTEGER) &&
- (ACPI_GET_OBJECT_TYPE (SourceDesc) != ACPI_TYPE_BUFFER) &&
- (ACPI_GET_OBJECT_TYPE (SourceDesc) != ACPI_TYPE_STRING) &&
- !((ACPI_GET_OBJECT_TYPE (SourceDesc) == ACPI_TYPE_LOCAL_REFERENCE) && (SourceDesc->Reference.Opcode == AML_LOAD_OP)))
- {
- /* Conversion successful but still not a valid type */
-
- ACPI_ERROR ((AE_INFO,
- "Cannot assign type %s to %s (must be type Int/Str/Buf)",
- AcpiUtGetObjectTypeName (SourceDesc),
- AcpiUtGetTypeName (TargetType)));
- Status = AE_AML_OPERAND_TYPE;
- }
- break;
-
-
- case ACPI_TYPE_LOCAL_ALIAS:
- case ACPI_TYPE_LOCAL_METHOD_ALIAS:
-
- /*
- * All aliases should have been resolved earlier, during the
- * operand resolution phase.
- */
- ACPI_ERROR ((AE_INFO, "Store into an unresolved Alias object"));
- Status = AE_AML_INTERNAL;
- break;
-
-
- case ACPI_TYPE_PACKAGE:
- default:
-
- /*
- * All other types than Alias and the various Fields come here,
- * including the untyped case - ACPI_TYPE_ANY.
- */
- break;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExStoreObjectToObject
- *
- * PARAMETERS: SourceDesc - Object to store
- * DestDesc - Object to receive a copy of the source
- * NewDesc - New object if DestDesc is obsoleted
- * WalkState - Current walk state
- *
- * RETURN: Status
- *
- * DESCRIPTION: "Store" an object to another object. This may include
- * converting the source type to the target type (implicit
- * conversion), and a copy of the value of the source to
- * the target.
- *
- * The Assignment of an object to another (not named) object
- * is handled here.
- * The Source passed in will replace the current value (if any)
- * with the input value.
- *
- * When storing into an object the data is converted to the
- * target object type then stored in the object. This means
- * that the target object type (for an initialized target) will
- * not be changed by a store operation.
- *
- * This module allows destination types of Number, String,
- * Buffer, and Package.
- *
- * Assumes parameters are already validated. NOTE: SourceDesc
- * resolution (from a reference object) must be performed by
- * the caller if necessary.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExStoreObjectToObject (
- ACPI_OPERAND_OBJECT *SourceDesc,
- ACPI_OPERAND_OBJECT *DestDesc,
- ACPI_OPERAND_OBJECT **NewDesc,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_OPERAND_OBJECT *ActualSrcDesc;
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE_PTR (ExStoreObjectToObject, SourceDesc);
-
-
- ActualSrcDesc = SourceDesc;
- if (!DestDesc)
- {
- /*
- * There is no destination object (An uninitialized node or
- * package element), so we can simply copy the source object
- * creating a new destination object
- */
- Status = AcpiUtCopyIobjectToIobject (ActualSrcDesc, NewDesc, WalkState);
- return_ACPI_STATUS (Status);
- }
-
- if (ACPI_GET_OBJECT_TYPE (SourceDesc) != ACPI_GET_OBJECT_TYPE (DestDesc))
- {
- /*
- * The source type does not match the type of the destination.
- * Perform the "implicit conversion" of the source to the current type
- * of the target as per the ACPI specification.
- *
- * If no conversion performed, ActualSrcDesc = SourceDesc.
- * Otherwise, ActualSrcDesc is a temporary object to hold the
- * converted object.
- */
- Status = AcpiExConvertToTargetType (ACPI_GET_OBJECT_TYPE (DestDesc),
- SourceDesc, &ActualSrcDesc, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- if (SourceDesc == ActualSrcDesc)
- {
- /*
- * No conversion was performed. Return the SourceDesc as the
- * new object.
- */
- *NewDesc = SourceDesc;
- return_ACPI_STATUS (AE_OK);
- }
- }
-
- /*
- * We now have two objects of identical types, and we can perform a
- * copy of the *value* of the source object.
- */
- switch (ACPI_GET_OBJECT_TYPE (DestDesc))
- {
- case ACPI_TYPE_INTEGER:
-
- DestDesc->Integer.Value = ActualSrcDesc->Integer.Value;
-
- /* Truncate value if we are executing from a 32-bit ACPI table */
-
- AcpiExTruncateFor32bitTable (DestDesc);
- break;
-
- case ACPI_TYPE_STRING:
-
- Status = AcpiExStoreStringToString (ActualSrcDesc, DestDesc);
- break;
-
- case ACPI_TYPE_BUFFER:
-
- Status = AcpiExStoreBufferToBuffer (ActualSrcDesc, DestDesc);
- break;
-
- case ACPI_TYPE_PACKAGE:
-
- Status = AcpiUtCopyIobjectToIobject (ActualSrcDesc, &DestDesc,
- WalkState);
- break;
-
- default:
- /*
- * All other types come here.
- */
- ACPI_WARNING ((AE_INFO, "Store into type %s not implemented",
- AcpiUtGetObjectTypeName (DestDesc)));
-
- Status = AE_NOT_IMPLEMENTED;
- break;
- }
-
- if (ActualSrcDesc != SourceDesc)
- {
- /* Delete the intermediate (temporary) source object */
-
- AcpiUtRemoveReference (ActualSrcDesc);
- }
-
- *NewDesc = DestDesc;
- return_ACPI_STATUS (Status);
-}
-
-
diff --git a/sys/contrib/dev/acpica/exstorob.c b/sys/contrib/dev/acpica/exstorob.c
deleted file mode 100644
index 02daa39..0000000
--- a/sys/contrib/dev/acpica/exstorob.c
+++ /dev/null
@@ -1,302 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exstorob - AML Interpreter object store support, store to object
- * $Revision: 1.62 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __EXSTOROB_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acinterp.h>
-
-
-#define _COMPONENT ACPI_EXECUTER
- ACPI_MODULE_NAME ("exstorob")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExStoreBufferToBuffer
- *
- * PARAMETERS: SourceDesc - Source object to copy
- * TargetDesc - Destination object of the copy
- *
- * RETURN: Status
- *
- * DESCRIPTION: Copy a buffer object to another buffer object.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExStoreBufferToBuffer (
- ACPI_OPERAND_OBJECT *SourceDesc,
- ACPI_OPERAND_OBJECT *TargetDesc)
-{
- UINT32 Length;
- UINT8 *Buffer;
-
-
- ACPI_FUNCTION_TRACE_PTR (ExStoreBufferToBuffer, SourceDesc);
-
-
- /* We know that SourceDesc is a buffer by now */
-
- Buffer = ACPI_CAST_PTR (UINT8, SourceDesc->Buffer.Pointer);
- Length = SourceDesc->Buffer.Length;
-
- /*
- * If target is a buffer of length zero or is a static buffer,
- * allocate a new buffer of the proper length
- */
- if ((TargetDesc->Buffer.Length == 0) ||
- (TargetDesc->Common.Flags & AOPOBJ_STATIC_POINTER))
- {
- TargetDesc->Buffer.Pointer = ACPI_ALLOCATE (Length);
- if (!TargetDesc->Buffer.Pointer)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- TargetDesc->Buffer.Length = Length;
- }
-
- /* Copy source buffer to target buffer */
-
- if (Length <= TargetDesc->Buffer.Length)
- {
- /* Clear existing buffer and copy in the new one */
-
- ACPI_MEMSET (TargetDesc->Buffer.Pointer, 0, TargetDesc->Buffer.Length);
- ACPI_MEMCPY (TargetDesc->Buffer.Pointer, Buffer, Length);
-
-#ifdef ACPI_OBSOLETE_BEHAVIOR
- /*
- * NOTE: ACPI versions up to 3.0 specified that the buffer must be
- * truncated if the string is smaller than the buffer. However, "other"
- * implementations of ACPI never did this and thus became the defacto
- * standard. ACPI 3.0A changes this behavior such that the buffer
- * is no longer truncated.
- */
-
- /*
- * OBSOLETE BEHAVIOR:
- * If the original source was a string, we must truncate the buffer,
- * according to the ACPI spec. Integer-to-Buffer and Buffer-to-Buffer
- * copy must not truncate the original buffer.
- */
- if (OriginalSrcType == ACPI_TYPE_STRING)
- {
- /* Set the new length of the target */
-
- TargetDesc->Buffer.Length = Length;
- }
-#endif
- }
- else
- {
- /* Truncate the source, copy only what will fit */
-
- ACPI_MEMCPY (TargetDesc->Buffer.Pointer, Buffer,
- TargetDesc->Buffer.Length);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "Truncating source buffer from %X to %X\n",
- Length, TargetDesc->Buffer.Length));
- }
-
- /* Copy flags */
-
- TargetDesc->Buffer.Flags = SourceDesc->Buffer.Flags;
- TargetDesc->Common.Flags &= ~AOPOBJ_STATIC_POINTER;
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExStoreStringToString
- *
- * PARAMETERS: SourceDesc - Source object to copy
- * TargetDesc - Destination object of the copy
- *
- * RETURN: Status
- *
- * DESCRIPTION: Copy a String object to another String object
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExStoreStringToString (
- ACPI_OPERAND_OBJECT *SourceDesc,
- ACPI_OPERAND_OBJECT *TargetDesc)
-{
- UINT32 Length;
- UINT8 *Buffer;
-
-
- ACPI_FUNCTION_TRACE_PTR (ExStoreStringToString, SourceDesc);
-
-
- /* We know that SourceDesc is a string by now */
-
- Buffer = ACPI_CAST_PTR (UINT8, SourceDesc->String.Pointer);
- Length = SourceDesc->String.Length;
-
- /*
- * Replace existing string value if it will fit and the string
- * pointer is not a static pointer (part of an ACPI table)
- */
- if ((Length < TargetDesc->String.Length) &&
- (!(TargetDesc->Common.Flags & AOPOBJ_STATIC_POINTER)))
- {
- /*
- * String will fit in existing non-static buffer.
- * Clear old string and copy in the new one
- */
- ACPI_MEMSET (TargetDesc->String.Pointer, 0,
- (ACPI_SIZE) TargetDesc->String.Length + 1);
- ACPI_MEMCPY (TargetDesc->String.Pointer, Buffer, Length);
- }
- else
- {
- /*
- * Free the current buffer, then allocate a new buffer
- * large enough to hold the value
- */
- if (TargetDesc->String.Pointer &&
- (!(TargetDesc->Common.Flags & AOPOBJ_STATIC_POINTER)))
- {
- /* Only free if not a pointer into the DSDT */
-
- ACPI_FREE (TargetDesc->String.Pointer);
- }
-
- TargetDesc->String.Pointer = ACPI_ALLOCATE_ZEROED (
- (ACPI_SIZE) Length + 1);
- if (!TargetDesc->String.Pointer)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- TargetDesc->Common.Flags &= ~AOPOBJ_STATIC_POINTER;
- ACPI_MEMCPY (TargetDesc->String.Pointer, Buffer, Length);
- }
-
- /* Set the new target length */
-
- TargetDesc->String.Length = Length;
- return_ACPI_STATUS (AE_OK);
-}
-
-
diff --git a/sys/contrib/dev/acpica/exsystem.c b/sys/contrib/dev/acpica/exsystem.c
deleted file mode 100644
index 81c92be..0000000
--- a/sys/contrib/dev/acpica/exsystem.c
+++ /dev/null
@@ -1,419 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exsystem - Interface to OS services
- * $Revision: 1.93 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __EXSYSTEM_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/acevents.h>
-
-#define _COMPONENT ACPI_EXECUTER
- ACPI_MODULE_NAME ("exsystem")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExSystemWaitSemaphore
- *
- * PARAMETERS: Semaphore - Semaphore to wait on
- * Timeout - Max time to wait
- *
- * RETURN: Status
- *
- * DESCRIPTION: Implements a semaphore wait with a check to see if the
- * semaphore is available immediately. If it is not, the
- * interpreter is released before waiting.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExSystemWaitSemaphore (
- ACPI_SEMAPHORE Semaphore,
- UINT16 Timeout)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (ExSystemWaitSemaphore);
-
-
- Status = AcpiOsWaitSemaphore (Semaphore, 1, ACPI_DO_NOT_WAIT);
- if (ACPI_SUCCESS (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- if (Status == AE_TIME)
- {
- /* We must wait, so unlock the interpreter */
-
- AcpiExRelinquishInterpreter ();
-
- Status = AcpiOsWaitSemaphore (Semaphore, 1, Timeout);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "*** Thread awake after blocking, %s\n",
- AcpiFormatException (Status)));
-
- /* Reacquire the interpreter */
-
- AcpiExReacquireInterpreter ();
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExSystemWaitMutex
- *
- * PARAMETERS: Mutex - Mutex to wait on
- * Timeout - Max time to wait
- *
- * RETURN: Status
- *
- * DESCRIPTION: Implements a mutex wait with a check to see if the
- * mutex is available immediately. If it is not, the
- * interpreter is released before waiting.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExSystemWaitMutex (
- ACPI_MUTEX Mutex,
- UINT16 Timeout)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (ExSystemWaitMutex);
-
-
- Status = AcpiOsAcquireMutex (Mutex, ACPI_DO_NOT_WAIT);
- if (ACPI_SUCCESS (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- if (Status == AE_TIME)
- {
- /* We must wait, so unlock the interpreter */
-
- AcpiExRelinquishInterpreter ();
-
- Status = AcpiOsAcquireMutex (Mutex, Timeout);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "*** Thread awake after blocking, %s\n",
- AcpiFormatException (Status)));
-
- /* Reacquire the interpreter */
-
- AcpiExReacquireInterpreter ();
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExSystemDoStall
- *
- * PARAMETERS: HowLong - The amount of time to stall,
- * in microseconds
- *
- * RETURN: Status
- *
- * DESCRIPTION: Suspend running thread for specified amount of time.
- * Note: ACPI specification requires that Stall() does not
- * relinquish the processor, and delays longer than 100 usec
- * should use Sleep() instead. We allow stalls up to 255 usec
- * for compatibility with other interpreters and existing BIOSs.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExSystemDoStall (
- UINT32 HowLong)
-{
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- if (HowLong > 255) /* 255 microseconds */
- {
- /*
- * Longer than 255 usec, this is an error
- *
- * (ACPI specifies 100 usec as max, but this gives some slack in
- * order to support existing BIOSs)
- */
- ACPI_ERROR ((AE_INFO, "Time parameter is too large (%d)",
- HowLong));
- Status = AE_AML_OPERAND_VALUE;
- }
- else
- {
- AcpiOsStall (HowLong);
- }
-
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExSystemDoSuspend
- *
- * PARAMETERS: HowLong - The amount of time to suspend,
- * in milliseconds
- *
- * RETURN: None
- *
- * DESCRIPTION: Suspend running thread for specified amount of time.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExSystemDoSuspend (
- ACPI_INTEGER HowLong)
-{
- ACPI_FUNCTION_ENTRY ();
-
-
- /* Since this thread will sleep, we must release the interpreter */
-
- AcpiExRelinquishInterpreter ();
-
- AcpiOsSleep (HowLong);
-
- /* And now we must get the interpreter again */
-
- AcpiExReacquireInterpreter ();
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExSystemSignalEvent
- *
- * PARAMETERS: ObjDesc - The object descriptor for this op
- *
- * RETURN: Status
- *
- * DESCRIPTION: Provides an access point to perform synchronization operations
- * within the AML.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExSystemSignalEvent (
- ACPI_OPERAND_OBJECT *ObjDesc)
-{
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (ExSystemSignalEvent);
-
-
- if (ObjDesc)
- {
- Status = AcpiOsSignalSemaphore (ObjDesc->Event.OsSemaphore, 1);
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExSystemWaitEvent
- *
- * PARAMETERS: TimeDesc - The 'time to delay' object descriptor
- * ObjDesc - The object descriptor for this op
- *
- * RETURN: Status
- *
- * DESCRIPTION: Provides an access point to perform synchronization operations
- * within the AML. This operation is a request to wait for an
- * event.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExSystemWaitEvent (
- ACPI_OPERAND_OBJECT *TimeDesc,
- ACPI_OPERAND_OBJECT *ObjDesc)
-{
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (ExSystemWaitEvent);
-
-
- if (ObjDesc)
- {
- Status = AcpiExSystemWaitSemaphore (ObjDesc->Event.OsSemaphore,
- (UINT16) TimeDesc->Integer.Value);
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExSystemResetEvent
- *
- * PARAMETERS: ObjDesc - The object descriptor for this op
- *
- * RETURN: Status
- *
- * DESCRIPTION: Reset an event to a known state.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiExSystemResetEvent (
- ACPI_OPERAND_OBJECT *ObjDesc)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_SEMAPHORE TempSemaphore;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /*
- * We are going to simply delete the existing semaphore and
- * create a new one!
- */
- Status = AcpiOsCreateSemaphore (ACPI_NO_UNIT_LIMIT, 0, &TempSemaphore);
- if (ACPI_SUCCESS (Status))
- {
- (void) AcpiOsDeleteSemaphore (ObjDesc->Event.OsSemaphore);
- ObjDesc->Event.OsSemaphore = TempSemaphore;
- }
-
- return (Status);
-}
-
diff --git a/sys/contrib/dev/acpica/exutils.c b/sys/contrib/dev/acpica/exutils.c
deleted file mode 100644
index 2ce75bb..0000000
--- a/sys/contrib/dev/acpica/exutils.c
+++ /dev/null
@@ -1,558 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: exutils - interpreter/scanner utilities
- * $Revision: 1.129 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __EXUTILS_C__
-
-/*
- * DEFINE_AML_GLOBALS is tested in amlcode.h
- * to determine whether certain global names should be "defined" or only
- * "declared" in the current compilation. This enhances maintainability
- * by enabling a single header file to embody all knowledge of the names
- * in question.
- *
- * Exactly one module of any executable should #define DEFINE_GLOBALS
- * before #including the header files which use this convention. The
- * names in question will be defined and initialized in that module,
- * and declared as extern in all other modules which #include those
- * header files.
- */
-
-#define DEFINE_AML_GLOBALS
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acevents.h>
-
-#define _COMPONENT ACPI_EXECUTER
- ACPI_MODULE_NAME ("exutils")
-
-/* Local prototypes */
-
-static UINT32
-AcpiExDigitsNeeded (
- ACPI_INTEGER Value,
- UINT32 Base);
-
-
-#ifndef ACPI_NO_METHOD_EXECUTION
-/*******************************************************************************
- *
- * FUNCTION: AcpiExEnterInterpreter
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Enter the interpreter execution region. Failure to enter
- * the interpreter region is a fatal system error. Used in
- * conjunction with ExitInterpreter.
- *
- ******************************************************************************/
-
-void
-AcpiExEnterInterpreter (
- void)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (ExEnterInterpreter);
-
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_INTERPRETER);
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR ((AE_INFO, "Could not acquire AML Interpreter mutex"));
- }
-
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExReacquireInterpreter
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Reacquire the interpreter execution region from within the
- * interpreter code. Failure to enter the interpreter region is a
- * fatal system error. Used in conjuction with
- * RelinquishInterpreter
- *
- ******************************************************************************/
-
-void
-AcpiExReacquireInterpreter (
- void)
-{
- ACPI_FUNCTION_TRACE (ExReacquireInterpreter);
-
-
- /*
- * If the global serialized flag is set, do not release the interpreter,
- * since it was not actually released by AcpiExRelinquishInterpreter.
- * This forces the interpreter to be single threaded.
- */
- if (!AcpiGbl_AllMethodsSerialized)
- {
- AcpiExEnterInterpreter ();
- }
-
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExExitInterpreter
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Exit the interpreter execution region. This is the top level
- * routine used to exit the interpreter when all processing has
- * been completed.
- *
- ******************************************************************************/
-
-void
-AcpiExExitInterpreter (
- void)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (ExExitInterpreter);
-
-
- Status = AcpiUtReleaseMutex (ACPI_MTX_INTERPRETER);
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR ((AE_INFO, "Could not release AML Interpreter mutex"));
- }
-
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExRelinquishInterpreter
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Exit the interpreter execution region, from within the
- * interpreter - before attempting an operation that will possibly
- * block the running thread.
- *
- * Cases where the interpreter is unlocked internally
- * 1) Method to be blocked on a Sleep() AML opcode
- * 2) Method to be blocked on an Acquire() AML opcode
- * 3) Method to be blocked on a Wait() AML opcode
- * 4) Method to be blocked to acquire the global lock
- * 5) Method to be blocked waiting to execute a serialized control method
- * that is currently executing
- * 6) About to invoke a user-installed opregion handler
- *
- ******************************************************************************/
-
-void
-AcpiExRelinquishInterpreter (
- void)
-{
- ACPI_FUNCTION_TRACE (ExRelinquishInterpreter);
-
-
- /*
- * If the global serialized flag is set, do not release the interpreter.
- * This forces the interpreter to be single threaded.
- */
- if (!AcpiGbl_AllMethodsSerialized)
- {
- AcpiExExitInterpreter ();
- }
-
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExTruncateFor32bitTable
- *
- * PARAMETERS: ObjDesc - Object to be truncated
- *
- * RETURN: none
- *
- * DESCRIPTION: Truncate an ACPI Integer to 32 bits if the execution mode is
- * 32-bit, as determined by the revision of the DSDT.
- *
- ******************************************************************************/
-
-void
-AcpiExTruncateFor32bitTable (
- ACPI_OPERAND_OBJECT *ObjDesc)
-{
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /*
- * Object must be a valid number and we must be executing
- * a control method. NS node could be there for AML_INT_NAMEPATH_OP.
- */
- if ((!ObjDesc) ||
- (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) != ACPI_DESC_TYPE_OPERAND) ||
- (ACPI_GET_OBJECT_TYPE (ObjDesc) != ACPI_TYPE_INTEGER))
- {
- return;
- }
-
- if (AcpiGbl_IntegerByteWidth == 4)
- {
- /*
- * We are running a method that exists in a 32-bit ACPI table.
- * Truncate the value to 32 bits by zeroing out the upper 32-bit field
- */
- ObjDesc->Integer.Value &= (ACPI_INTEGER) ACPI_UINT32_MAX;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExAcquireGlobalLock
- *
- * PARAMETERS: FieldFlags - Flags with Lock rule:
- * AlwaysLock or NeverLock
- *
- * RETURN: None
- *
- * DESCRIPTION: Obtain the ACPI hardware Global Lock, only if the field
- * flags specifiy that it is to be obtained before field access.
- *
- ******************************************************************************/
-
-void
-AcpiExAcquireGlobalLock (
- UINT32 FieldFlags)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (ExAcquireGlobalLock);
-
-
- /* Only use the lock if the AlwaysLock bit is set */
-
- if (!(FieldFlags & AML_FIELD_LOCK_RULE_MASK))
- {
- return_VOID;
- }
-
- /* Attempt to get the global lock, wait forever */
-
- Status = AcpiExAcquireMutexObject (ACPI_WAIT_FOREVER,
- AcpiGbl_GlobalLockMutex, AcpiOsGetThreadId ());
-
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Could not acquire Global Lock"));
- }
-
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExReleaseGlobalLock
- *
- * PARAMETERS: FieldFlags - Flags with Lock rule:
- * AlwaysLock or NeverLock
- *
- * RETURN: None
- *
- * DESCRIPTION: Release the ACPI hardware Global Lock
- *
- ******************************************************************************/
-
-void
-AcpiExReleaseGlobalLock (
- UINT32 FieldFlags)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (ExReleaseGlobalLock);
-
-
- /* Only use the lock if the AlwaysLock bit is set */
-
- if (!(FieldFlags & AML_FIELD_LOCK_RULE_MASK))
- {
- return_VOID;
- }
-
- /* Release the global lock */
-
- Status = AcpiExReleaseMutexObject (AcpiGbl_GlobalLockMutex);
- if (ACPI_FAILURE (Status))
- {
- /* Report the error, but there isn't much else we can do */
-
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Could not release Global Lock"));
- }
-
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExDigitsNeeded
- *
- * PARAMETERS: Value - Value to be represented
- * Base - Base of representation
- *
- * RETURN: The number of digits.
- *
- * DESCRIPTION: Calculate the number of digits needed to represent the Value
- * in the given Base (Radix)
- *
- ******************************************************************************/
-
-static UINT32
-AcpiExDigitsNeeded (
- ACPI_INTEGER Value,
- UINT32 Base)
-{
- UINT32 NumDigits;
- ACPI_INTEGER CurrentValue;
-
-
- ACPI_FUNCTION_TRACE (ExDigitsNeeded);
-
-
- /* ACPI_INTEGER is unsigned, so we don't worry about a '-' prefix */
-
- if (Value == 0)
- {
- return_UINT32 (1);
- }
-
- CurrentValue = Value;
- NumDigits = 0;
-
- /* Count the digits in the requested base */
-
- while (CurrentValue)
- {
- (void) AcpiUtShortDivide (CurrentValue, Base, &CurrentValue, NULL);
- NumDigits++;
- }
-
- return_UINT32 (NumDigits);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExEisaIdToString
- *
- * PARAMETERS: NumericId - EISA ID to be converted
- * OutString - Where to put the converted string (8 bytes)
- *
- * RETURN: None
- *
- * DESCRIPTION: Convert a numeric EISA ID to string representation
- *
- ******************************************************************************/
-
-void
-AcpiExEisaIdToString (
- UINT32 NumericId,
- char *OutString)
-{
- UINT32 EisaId;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /* Swap ID to big-endian to get contiguous bits */
-
- EisaId = AcpiUtDwordByteSwap (NumericId);
-
- OutString[0] = (char) ('@' + (((unsigned long) EisaId >> 26) & 0x1f));
- OutString[1] = (char) ('@' + ((EisaId >> 21) & 0x1f));
- OutString[2] = (char) ('@' + ((EisaId >> 16) & 0x1f));
- OutString[3] = AcpiUtHexToAsciiChar ((ACPI_INTEGER) EisaId, 12);
- OutString[4] = AcpiUtHexToAsciiChar ((ACPI_INTEGER) EisaId, 8);
- OutString[5] = AcpiUtHexToAsciiChar ((ACPI_INTEGER) EisaId, 4);
- OutString[6] = AcpiUtHexToAsciiChar ((ACPI_INTEGER) EisaId, 0);
- OutString[7] = 0;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiExUnsignedIntegerToString
- *
- * PARAMETERS: Value - Value to be converted
- * OutString - Where to put the converted string (8 bytes)
- *
- * RETURN: None, string
- *
- * DESCRIPTION: Convert a number to string representation. Assumes string
- * buffer is large enough to hold the string.
- *
- ******************************************************************************/
-
-void
-AcpiExUnsignedIntegerToString (
- ACPI_INTEGER Value,
- char *OutString)
-{
- UINT32 Count;
- UINT32 DigitsNeeded;
- UINT32 Remainder;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- DigitsNeeded = AcpiExDigitsNeeded (Value, 10);
- OutString[DigitsNeeded] = 0;
-
- for (Count = DigitsNeeded; Count > 0; Count--)
- {
- (void) AcpiUtShortDivide (Value, 10, &Value, &Remainder);
- OutString[Count-1] = (char) ('0' + Remainder);\
- }
-}
-
-#endif
diff --git a/sys/contrib/dev/acpica/hwacpi.c b/sys/contrib/dev/acpica/hwacpi.c
deleted file mode 100644
index 3c9bce9..0000000
--- a/sys/contrib/dev/acpica/hwacpi.c
+++ /dev/null
@@ -1,277 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: hwacpi - ACPI Hardware Initialization/Mode Interface
- * $Revision: 1.78 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __HWACPI_C__
-
-#include <contrib/dev/acpica/acpi.h>
-
-
-#define _COMPONENT ACPI_HARDWARE
- ACPI_MODULE_NAME ("hwacpi")
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiHwSetMode
- *
- * PARAMETERS: Mode - SYS_MODE_ACPI or SYS_MODE_LEGACY
- *
- * RETURN: Status
- *
- * DESCRIPTION: Transitions the system into the requested mode.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwSetMode (
- UINT32 Mode)
-{
-
- ACPI_STATUS Status;
- UINT32 Retry;
-
-
- 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.SmiCommand)
- {
- ACPI_ERROR ((AE_INFO, "No SMI_CMD in FADT, mode transition failed"));
- 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_ERROR ((AE_INFO,
- "No ACPI mode transition supported in this system (enable/disable both zero)"));
- 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.SmiCommand,
- (UINT32) AcpiGbl_FADT.AcpiEnable, 8);
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Attempting to enable ACPI mode\n"));
- break;
-
- case ACPI_SYS_MODE_LEGACY:
-
- /*
- * BIOS should clear all fixed status bits and restore fixed event
- * enable bits to default
- */
- Status = AcpiOsWritePort (AcpiGbl_FADT.SmiCommand,
- (UINT32) AcpiGbl_FADT.AcpiDisable, 8);
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "Attempting to enable Legacy (non-ACPI) mode\n"));
- break;
-
- default:
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Could not write ACPI mode change"));
- return_ACPI_STATUS (Status);
- }
-
- /*
- * Some hardware takes a LONG time to switch modes. Give them 3 sec to
- * do so, but allow faster systems to proceed more quickly.
- */
- Retry = 3000;
- while (Retry)
- {
- if (AcpiHwGetMode() == Mode)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Mode %X successfully enabled\n",
- Mode));
- return_ACPI_STATUS (AE_OK);
- }
- AcpiOsStall(1000);
- Retry--;
- }
-
- ACPI_ERROR ((AE_INFO, "Hardware did not change modes"));
- return_ACPI_STATUS (AE_NO_HARDWARE_RESPONSE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiHwGetMode
- *
- * PARAMETERS: none
- *
- * RETURN: SYS_MODE_ACPI or SYS_MODE_LEGACY
- *
- * DESCRIPTION: Return current operating state of system. Determined by
- * querying the SCI_EN bit.
- *
- ******************************************************************************/
-
-UINT32
-AcpiHwGetMode (
- void)
-{
- ACPI_STATUS Status;
- UINT32 Value;
-
-
- ACPI_FUNCTION_TRACE (HwGetMode);
-
-
- /*
- * ACPI 2.0 clarified that if SMI_CMD in FADT is zero,
- * system does not support mode transition.
- */
- if (!AcpiGbl_FADT.SmiCommand)
- {
- return_UINT32 (ACPI_SYS_MODE_ACPI);
- }
-
- Status = AcpiGetRegister (ACPI_BITREG_SCI_ENABLE, &Value);
- if (ACPI_FAILURE (Status))
- {
- return_UINT32 (ACPI_SYS_MODE_LEGACY);
- }
-
- if (Value)
- {
- return_UINT32 (ACPI_SYS_MODE_ACPI);
- }
- else
- {
- return_UINT32 (ACPI_SYS_MODE_LEGACY);
- }
-}
diff --git a/sys/contrib/dev/acpica/hwgpe.c b/sys/contrib/dev/acpica/hwgpe.c
deleted file mode 100644
index d7498e5..0000000
--- a/sys/contrib/dev/acpica/hwgpe.c
+++ /dev/null
@@ -1,545 +0,0 @@
-
-/******************************************************************************
- *
- * Module Name: hwgpe - Low level GPE enable/disable/clear functions
- * $Revision: 1.75 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acevents.h>
-
-#define _COMPONENT ACPI_HARDWARE
- ACPI_MODULE_NAME ("hwgpe")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiHwEnableWakeupGpeBlock (
- ACPI_GPE_XRUPT_INFO *GpeXruptInfo,
- ACPI_GPE_BLOCK_INFO *GpeBlock);
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiHwWriteGpeEnableReg
- *
- * PARAMETERS: GpeEventInfo - Info block for the GPE to be enabled
- *
- * RETURN: Status
- *
- * DESCRIPTION: Write a GPE enable register. Note: The bit for this GPE must
- * already be cleared or set in the parent register
- * EnableForRun mask.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwWriteGpeEnableReg (
- ACPI_GPE_EVENT_INFO *GpeEventInfo)
-{
- ACPI_GPE_REGISTER_INFO *GpeRegisterInfo;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /* Get the info block for the entire GPE register */
-
- GpeRegisterInfo = GpeEventInfo->RegisterInfo;
- if (!GpeRegisterInfo)
- {
- return (AE_NOT_EXIST);
- }
-
- /* Write the entire GPE (runtime) enable register */
-
- Status = AcpiHwLowLevelWrite (8, GpeRegisterInfo->EnableForRun,
- &GpeRegisterInfo->EnableAddress);
-
- return (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiHwClearGpe
- *
- * PARAMETERS: GpeEventInfo - Info block for the GPE to be cleared
- *
- * RETURN: Status
- *
- * DESCRIPTION: Clear the status bit for a single GPE.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwClearGpe (
- ACPI_GPE_EVENT_INFO *GpeEventInfo)
-{
- ACPI_STATUS Status;
- UINT8 RegisterBit;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- RegisterBit = (UINT8)
- (1 << (GpeEventInfo->GpeNumber - GpeEventInfo->RegisterInfo->BaseGpeNumber));
-
- /*
- * Write a one to the appropriate bit in the status register to
- * clear this GPE.
- */
- Status = AcpiHwLowLevelWrite (8, RegisterBit,
- &GpeEventInfo->RegisterInfo->StatusAddress);
-
- return (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiHwGetGpeStatus
- *
- * PARAMETERS: GpeEventInfo - Info block for the GPE to queried
- * EventStatus - Where the GPE status is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Return the status of a single GPE.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwGetGpeStatus (
- ACPI_GPE_EVENT_INFO *GpeEventInfo,
- ACPI_EVENT_STATUS *EventStatus)
-{
- UINT32 InByte;
- UINT8 RegisterBit;
- ACPI_GPE_REGISTER_INFO *GpeRegisterInfo;
- ACPI_STATUS Status;
- ACPI_EVENT_STATUS LocalEventStatus = 0;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- if (!EventStatus)
- {
- return (AE_BAD_PARAMETER);
- }
-
- /* Get the info block for the entire GPE register */
-
- GpeRegisterInfo = GpeEventInfo->RegisterInfo;
-
- /* Get the register bitmask for this GPE */
-
- RegisterBit = (UINT8)
- (1 << (GpeEventInfo->GpeNumber - GpeEventInfo->RegisterInfo->BaseGpeNumber));
-
- /* GPE currently enabled? (enabled for runtime?) */
-
- if (RegisterBit & GpeRegisterInfo->EnableForRun)
- {
- LocalEventStatus |= ACPI_EVENT_FLAG_ENABLED;
- }
-
- /* GPE enabled for wake? */
-
- if (RegisterBit & GpeRegisterInfo->EnableForWake)
- {
- LocalEventStatus |= ACPI_EVENT_FLAG_WAKE_ENABLED;
- }
-
- /* GPE currently active (status bit == 1)? */
-
- Status = AcpiHwLowLevelRead (8, &InByte, &GpeRegisterInfo->StatusAddress);
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
-
- if (RegisterBit & InByte)
- {
- LocalEventStatus |= ACPI_EVENT_FLAG_SET;
- }
-
- /* Set return value */
-
- (*EventStatus) = LocalEventStatus;
-
-
-UnlockAndExit:
- return (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiHwDisableGpeBlock
- *
- * PARAMETERS: GpeXruptInfo - GPE Interrupt info
- * GpeBlock - Gpe Block info
- *
- * RETURN: Status
- *
- * DESCRIPTION: Disable all GPEs within a single GPE block
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwDisableGpeBlock (
- ACPI_GPE_XRUPT_INFO *GpeXruptInfo,
- ACPI_GPE_BLOCK_INFO *GpeBlock)
-{
- UINT32 i;
- ACPI_STATUS Status;
-
-
- /* Examine each GPE Register within the block */
-
- for (i = 0; i < GpeBlock->RegisterCount; i++)
- {
- /* Disable all GPEs in this register */
-
- Status = AcpiHwLowLevelWrite (8, 0x00,
- &GpeBlock->RegisterInfo[i].EnableAddress);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
- }
-
- return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiHwClearGpeBlock
- *
- * PARAMETERS: GpeXruptInfo - GPE Interrupt info
- * GpeBlock - Gpe Block info
- *
- * RETURN: Status
- *
- * DESCRIPTION: Clear status bits for all GPEs within a single GPE block
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwClearGpeBlock (
- ACPI_GPE_XRUPT_INFO *GpeXruptInfo,
- ACPI_GPE_BLOCK_INFO *GpeBlock)
-{
- UINT32 i;
- ACPI_STATUS Status;
-
-
- /* Examine each GPE Register within the block */
-
- for (i = 0; i < GpeBlock->RegisterCount; i++)
- {
- /* Clear status on all GPEs in this register */
-
- Status = AcpiHwLowLevelWrite (8, 0xFF,
- &GpeBlock->RegisterInfo[i].StatusAddress);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
- }
-
- return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiHwEnableRuntimeGpeBlock
- *
- * PARAMETERS: GpeXruptInfo - GPE Interrupt info
- * GpeBlock - Gpe Block info
- *
- * RETURN: Status
- *
- * DESCRIPTION: Enable all "runtime" GPEs within a single GPE block. Includes
- * combination wake/run GPEs.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwEnableRuntimeGpeBlock (
- ACPI_GPE_XRUPT_INFO *GpeXruptInfo,
- ACPI_GPE_BLOCK_INFO *GpeBlock)
-{
- UINT32 i;
- ACPI_STATUS Status;
-
-
- /* NOTE: assumes that all GPEs are currently disabled */
-
- /* Examine each GPE Register within the block */
-
- for (i = 0; i < GpeBlock->RegisterCount; i++)
- {
- if (!GpeBlock->RegisterInfo[i].EnableForRun)
- {
- continue;
- }
-
- /* Enable all "runtime" GPEs in this register */
-
- Status = AcpiHwLowLevelWrite (8, GpeBlock->RegisterInfo[i].EnableForRun,
- &GpeBlock->RegisterInfo[i].EnableAddress);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
- }
-
- return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiHwEnableWakeupGpeBlock
- *
- * PARAMETERS: GpeXruptInfo - GPE Interrupt info
- * GpeBlock - Gpe Block info
- *
- * RETURN: Status
- *
- * DESCRIPTION: Enable all "wake" GPEs within a single GPE block. Includes
- * combination wake/run GPEs.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiHwEnableWakeupGpeBlock (
- ACPI_GPE_XRUPT_INFO *GpeXruptInfo,
- ACPI_GPE_BLOCK_INFO *GpeBlock)
-{
- UINT32 i;
- ACPI_STATUS Status;
-
-
- /* Examine each GPE Register within the block */
-
- for (i = 0; i < GpeBlock->RegisterCount; i++)
- {
- if (!GpeBlock->RegisterInfo[i].EnableForWake)
- {
- continue;
- }
-
- /* Enable all "wake" GPEs in this register */
-
- Status = AcpiHwLowLevelWrite (8,
- GpeBlock->RegisterInfo[i].EnableForWake,
- &GpeBlock->RegisterInfo[i].EnableAddress);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
- }
-
- return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiHwDisableAllGpes
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Disable and clear all GPEs in all GPE blocks
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwDisableAllGpes (
- void)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (HwDisableAllGpes);
-
-
- Status = AcpiEvWalkGpeList (AcpiHwDisableGpeBlock);
- Status = AcpiEvWalkGpeList (AcpiHwClearGpeBlock);
- return_ACPI_STATUS (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiHwEnableAllRuntimeGpes
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Enable all "runtime" GPEs, in all GPE blocks
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwEnableAllRuntimeGpes (
- void)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (HwEnableAllRuntimeGpes);
-
-
- Status = AcpiEvWalkGpeList (AcpiHwEnableRuntimeGpeBlock);
- return_ACPI_STATUS (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiHwEnableAllWakeupGpes
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Enable all "wakeup" GPEs, in all GPE blocks
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwEnableAllWakeupGpes (
- void)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (HwEnableAllWakeupGpes);
-
-
- Status = AcpiEvWalkGpeList (AcpiHwEnableWakeupGpeBlock);
- return_ACPI_STATUS (Status);
-}
-
diff --git a/sys/contrib/dev/acpica/hwregs.c b/sys/contrib/dev/acpica/hwregs.c
deleted file mode 100644
index 36cc47b..0000000
--- a/sys/contrib/dev/acpica/hwregs.c
+++ /dev/null
@@ -1,1001 +0,0 @@
-
-/*******************************************************************************
- *
- * Module Name: hwregs - Read/write access functions for the various ACPI
- * control and status registers.
- * $Revision: 1.187 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __HWREGS_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acevents.h>
-
-#define _COMPONENT ACPI_HARDWARE
- ACPI_MODULE_NAME ("hwregs")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiHwClearAcpiStatus
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Clears all fixed and general purpose status bits
- * THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwClearAcpiStatus (
- void)
-{
- ACPI_STATUS Status;
- ACPI_CPU_FLAGS LockFlags = 0;
-
-
- ACPI_FUNCTION_TRACE (HwClearAcpiStatus);
-
-
- ACPI_DEBUG_PRINT ((ACPI_DB_IO, "About to write %04X to %04X\n",
- ACPI_BITMASK_ALL_FIXED_STATUS,
- (UINT16) AcpiGbl_FADT.XPm1aEventBlock.Address));
-
- LockFlags = AcpiOsAcquireLock (AcpiGbl_HardwareLock);
-
- Status = AcpiHwRegisterWrite (ACPI_MTX_DO_NOT_LOCK,
- ACPI_REGISTER_PM1_STATUS,
- ACPI_BITMASK_ALL_FIXED_STATUS);
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
-
- /* Clear the fixed events */
-
- if (AcpiGbl_FADT.XPm1bEventBlock.Address)
- {
- Status = AcpiHwLowLevelWrite (16, ACPI_BITMASK_ALL_FIXED_STATUS,
- &AcpiGbl_FADT.XPm1bEventBlock);
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
- }
-
- /* Clear the GPE Bits in all GPE registers in all GPE blocks */
-
- Status = AcpiEvWalkGpeList (AcpiHwClearGpeBlock);
-
-UnlockAndExit:
- AcpiOsReleaseLock (AcpiGbl_HardwareLock, LockFlags);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiGetSleepTypeData
- *
- * PARAMETERS: SleepState - Numeric sleep state
- * *SleepTypeA - Where SLP_TYPa is returned
- * *SleepTypeB - Where SLP_TYPb is returned
- *
- * RETURN: Status - ACPI status
- *
- * DESCRIPTION: Obtain the SLP_TYPa and SLP_TYPb values for the requested sleep
- * state.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetSleepTypeData (
- UINT8 SleepState,
- UINT8 *SleepTypeA,
- UINT8 *SleepTypeB)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_EVALUATE_INFO *Info;
-
-
- ACPI_FUNCTION_TRACE (AcpiGetSleepTypeData);
-
-
- /* Validate parameters */
-
- if ((SleepState > ACPI_S_STATES_MAX) ||
- !SleepTypeA || !SleepTypeB)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /* Allocate the evaluation information block */
-
- Info = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_EVALUATE_INFO));
- if (!Info)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- Info->Pathname = ACPI_CAST_PTR (char, AcpiGbl_SleepStateNames[SleepState]);
-
- /* Evaluate the namespace object containing the values for this state */
-
- Status = AcpiNsEvaluate (Info);
- if (ACPI_FAILURE (Status))
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "%s while evaluating SleepState [%s]\n",
- AcpiFormatException (Status), Info->Pathname));
-
- goto Cleanup;
- }
-
- /* Must have a return object */
-
- if (!Info->ReturnObject)
- {
- ACPI_ERROR ((AE_INFO, "No Sleep State object returned from [%s]",
- Info->Pathname));
- Status = AE_NOT_EXIST;
- }
-
- /* It must be of type Package */
-
- else if (ACPI_GET_OBJECT_TYPE (Info->ReturnObject) != ACPI_TYPE_PACKAGE)
- {
- ACPI_ERROR ((AE_INFO, "Sleep State return object is not a Package"));
- Status = AE_AML_OPERAND_TYPE;
- }
-
- /*
- * The package must have at least two elements. NOTE (March 2005): This
- * goes against the current ACPI spec which defines this object as a
- * package with one encoded DWORD element. However, existing practice
- * by BIOS vendors seems to be to have 2 or more elements, at least
- * one per sleep type (A/B).
- */
- else if (Info->ReturnObject->Package.Count < 2)
- {
- ACPI_ERROR ((AE_INFO,
- "Sleep State return package does not have at least two elements"));
- Status = AE_AML_NO_OPERAND;
- }
-
- /* The first two elements must both be of type Integer */
-
- else if ((ACPI_GET_OBJECT_TYPE (Info->ReturnObject->Package.Elements[0])
- != ACPI_TYPE_INTEGER) ||
- (ACPI_GET_OBJECT_TYPE (Info->ReturnObject->Package.Elements[1])
- != ACPI_TYPE_INTEGER))
- {
- ACPI_ERROR ((AE_INFO,
- "Sleep State return package elements are not both Integers (%s, %s)",
- AcpiUtGetObjectTypeName (Info->ReturnObject->Package.Elements[0]),
- AcpiUtGetObjectTypeName (Info->ReturnObject->Package.Elements[1])));
- Status = AE_AML_OPERAND_TYPE;
- }
- else
- {
- /* Valid _Sx_ package size, type, and value */
-
- *SleepTypeA = (UINT8)
- (Info->ReturnObject->Package.Elements[0])->Integer.Value;
- *SleepTypeB = (UINT8)
- (Info->ReturnObject->Package.Elements[1])->Integer.Value;
- }
-
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "While evaluating SleepState [%s], bad Sleep object %p type %s",
- Info->Pathname, Info->ReturnObject,
- AcpiUtGetObjectTypeName (Info->ReturnObject)));
- }
-
- AcpiUtRemoveReference (Info->ReturnObject);
-
-Cleanup:
- ACPI_FREE (Info);
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetSleepTypeData)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiHwGetRegisterBitMask
- *
- * PARAMETERS: RegisterId - Index of ACPI Register to access
- *
- * RETURN: The bitmask to be used when accessing the register
- *
- * DESCRIPTION: Map RegisterId into a register bitmask.
- *
- ******************************************************************************/
-
-ACPI_BIT_REGISTER_INFO *
-AcpiHwGetBitRegisterInfo (
- UINT32 RegisterId)
-{
- ACPI_FUNCTION_ENTRY ();
-
-
- if (RegisterId > ACPI_BITREG_MAX)
- {
- ACPI_ERROR ((AE_INFO, "Invalid BitRegister ID: %X", RegisterId));
- return (NULL);
- }
-
- return (&AcpiGbl_BitRegisterInfo[RegisterId]);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiGetRegister
- *
- * PARAMETERS: RegisterId - ID of ACPI BitRegister to access
- * ReturnValue - Value that was read from the register
- *
- * RETURN: Status and the value read from specified Register. Value
- * returned is normalized to bit0 (is shifted all the way right)
- *
- * DESCRIPTION: ACPI BitRegister read function.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetRegister (
- UINT32 RegisterId,
- UINT32 *ReturnValue)
-{
- UINT32 RegisterValue = 0;
- ACPI_BIT_REGISTER_INFO *BitRegInfo;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (AcpiGetRegister);
-
-
- /* Get the info structure corresponding to the requested ACPI Register */
-
- BitRegInfo = AcpiHwGetBitRegisterInfo (RegisterId);
- if (!BitRegInfo)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /* Read from the register */
-
- Status = AcpiHwRegisterRead (ACPI_MTX_LOCK,
- BitRegInfo->ParentRegister, &RegisterValue);
-
- if (ACPI_SUCCESS (Status))
- {
- /* Normalize the value that was read */
-
- RegisterValue = ((RegisterValue & BitRegInfo->AccessBitMask)
- >> BitRegInfo->BitPosition);
-
- *ReturnValue = RegisterValue;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_IO, "Read value %8.8X register %X\n",
- RegisterValue, BitRegInfo->ParentRegister));
- }
-
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetRegister)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiSetRegister
- *
- * PARAMETERS: RegisterId - ID of ACPI BitRegister to access
- * Value - (only used on write) value to write to the
- * Register, NOT pre-normalized to the bit pos
- *
- * RETURN: Status
- *
- * DESCRIPTION: ACPI Bit Register write function.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiSetRegister (
- UINT32 RegisterId,
- UINT32 Value)
-{
- UINT32 RegisterValue = 0;
- ACPI_BIT_REGISTER_INFO *BitRegInfo;
- ACPI_STATUS Status;
- ACPI_CPU_FLAGS LockFlags;
-
-
- ACPI_FUNCTION_TRACE_U32 (AcpiSetRegister, RegisterId);
-
-
- /* Get the info structure corresponding to the requested ACPI Register */
-
- BitRegInfo = AcpiHwGetBitRegisterInfo (RegisterId);
- if (!BitRegInfo)
- {
- ACPI_ERROR ((AE_INFO, "Bad ACPI HW RegisterId: %X", RegisterId));
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- LockFlags = AcpiOsAcquireLock (AcpiGbl_HardwareLock);
-
- /* Always do a register read first so we can insert the new bits */
-
- Status = AcpiHwRegisterRead (ACPI_MTX_DO_NOT_LOCK,
- BitRegInfo->ParentRegister, &RegisterValue);
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
-
- /*
- * Decode the Register ID
- * Register ID = [Register block ID] | [bit ID]
- *
- * Check bit ID to fine locate Register offset.
- * Check Mask to determine Register offset, and then read-write.
- */
- switch (BitRegInfo->ParentRegister)
- {
- case ACPI_REGISTER_PM1_STATUS:
-
- /*
- * Status Registers are different from the rest. Clear by
- * writing 1, and writing 0 has no effect. So, the only relevant
- * 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,
- BitRegInfo->BitPosition, BitRegInfo->AccessBitMask);
- if (Value)
- {
- Status = AcpiHwRegisterWrite (ACPI_MTX_DO_NOT_LOCK,
- ACPI_REGISTER_PM1_STATUS, (UINT16) Value);
- RegisterValue = 0;
- }
- break;
-
-
- case ACPI_REGISTER_PM1_ENABLE:
-
- ACPI_REGISTER_INSERT_VALUE (RegisterValue, BitRegInfo->BitPosition,
- BitRegInfo->AccessBitMask, Value);
-
- Status = AcpiHwRegisterWrite (ACPI_MTX_DO_NOT_LOCK,
- ACPI_REGISTER_PM1_ENABLE, (UINT16) RegisterValue);
- break;
-
-
- case ACPI_REGISTER_PM1_CONTROL:
-
- /*
- * Write the PM1 Control register.
- * Note that at this level, the fact that there are actually TWO
- * registers (A and B - and B may not exist) is abstracted.
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_IO, "PM1 control: Read %X\n",
- RegisterValue));
-
- ACPI_REGISTER_INSERT_VALUE (RegisterValue, BitRegInfo->BitPosition,
- BitRegInfo->AccessBitMask, Value);
-
- Status = AcpiHwRegisterWrite (ACPI_MTX_DO_NOT_LOCK,
- ACPI_REGISTER_PM1_CONTROL, (UINT16) RegisterValue);
- break;
-
-
- case ACPI_REGISTER_PM2_CONTROL:
-
- Status = AcpiHwRegisterRead (ACPI_MTX_DO_NOT_LOCK,
- ACPI_REGISTER_PM2_CONTROL, &RegisterValue);
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_IO, "PM2 control: Read %X from %8.8X%8.8X\n",
- RegisterValue,
- ACPI_FORMAT_UINT64 (AcpiGbl_FADT.XPm2ControlBlock.Address)));
-
- 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",
- RegisterValue,
- ACPI_FORMAT_UINT64 (AcpiGbl_FADT.XPm2ControlBlock.Address)));
-
- Status = AcpiHwRegisterWrite (ACPI_MTX_DO_NOT_LOCK,
- ACPI_REGISTER_PM2_CONTROL, (UINT8) (RegisterValue));
- break;
-
-
- default:
- break;
- }
-
-
-UnlockAndExit:
-
- AcpiOsReleaseLock (AcpiGbl_HardwareLock, LockFlags);
-
- /* Normalize the value that was read */
-
- ACPI_DEBUG_EXEC (RegisterValue =
- ((RegisterValue & BitRegInfo->AccessBitMask) >>
- BitRegInfo->BitPosition));
-
- ACPI_DEBUG_PRINT ((ACPI_DB_IO, "Set bits: %8.8X actual %8.8X register %X\n",
- Value, RegisterValue, BitRegInfo->ParentRegister));
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiSetRegister)
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiHwRegisterRead
- *
- * PARAMETERS: UseLock - Lock hardware? True/False
- * RegisterId - ACPI Register ID
- * ReturnValue - Where the register value is returned
- *
- * RETURN: Status and the value read.
- *
- * DESCRIPTION: Read from the specified ACPI register
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwRegisterRead (
- BOOLEAN UseLock,
- UINT32 RegisterId,
- UINT32 *ReturnValue)
-{
- UINT32 Value1 = 0;
- UINT32 Value2 = 0;
- ACPI_STATUS Status;
- ACPI_CPU_FLAGS LockFlags = 0;
-
-
- ACPI_FUNCTION_TRACE (HwRegisterRead);
-
-
- if (ACPI_MTX_LOCK == UseLock)
- {
- LockFlags = AcpiOsAcquireLock (AcpiGbl_HardwareLock);
- }
-
- switch (RegisterId)
- {
- case ACPI_REGISTER_PM1_STATUS: /* 16-bit access */
-
- Status = AcpiHwLowLevelRead (16, &Value1, &AcpiGbl_FADT.XPm1aEventBlock);
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
-
- /* PM1B is optional */
-
- Status = AcpiHwLowLevelRead (16, &Value2, &AcpiGbl_FADT.XPm1bEventBlock);
- Value1 |= Value2;
- break;
-
-
- case ACPI_REGISTER_PM1_ENABLE: /* 16-bit access */
-
- Status = AcpiHwLowLevelRead (16, &Value1, &AcpiGbl_XPm1aEnable);
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
-
- /* PM1B is optional */
-
- Status = AcpiHwLowLevelRead (16, &Value2, &AcpiGbl_XPm1bEnable);
- Value1 |= Value2;
- break;
-
-
- case ACPI_REGISTER_PM1_CONTROL: /* 16-bit access */
-
- Status = AcpiHwLowLevelRead (16, &Value1, &AcpiGbl_FADT.XPm1aControlBlock);
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
-
- Status = AcpiHwLowLevelRead (16, &Value2, &AcpiGbl_FADT.XPm1bControlBlock);
- Value1 |= Value2;
- break;
-
-
- case ACPI_REGISTER_PM2_CONTROL: /* 8-bit access */
-
- Status = AcpiHwLowLevelRead (8, &Value1, &AcpiGbl_FADT.XPm2ControlBlock);
- break;
-
-
- case ACPI_REGISTER_PM_TIMER: /* 32-bit access */
-
- Status = AcpiHwLowLevelRead (32, &Value1, &AcpiGbl_FADT.XPmTimerBlock);
- break;
-
- case ACPI_REGISTER_SMI_COMMAND_BLOCK: /* 8-bit access */
-
- Status = AcpiOsReadPort (AcpiGbl_FADT.SmiCommand, &Value1, 8);
- break;
-
- default:
- ACPI_ERROR ((AE_INFO, "Unknown Register ID: %X",
- RegisterId));
- Status = AE_BAD_PARAMETER;
- break;
- }
-
-UnlockAndExit:
- if (ACPI_MTX_LOCK == UseLock)
- {
- AcpiOsReleaseLock (AcpiGbl_HardwareLock, LockFlags);
- }
-
- if (ACPI_SUCCESS (Status))
- {
- *ReturnValue = Value1;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiHwRegisterWrite
- *
- * PARAMETERS: UseLock - Lock hardware? True/False
- * RegisterId - ACPI Register ID
- * Value - The value to write
- *
- * RETURN: Status
- *
- * DESCRIPTION: Write to the specified ACPI register
- *
- * NOTE: In accordance with the ACPI specification, this function automatically
- * preserves the value of the following bits, meaning that these bits cannot be
- * changed via this interface:
- *
- * PM1_CONTROL[0] = SCI_EN
- * PM1_CONTROL[9]
- * PM1_STATUS[11]
- *
- * ACPI References:
- * 1) Hardware Ignored Bits: When software writes to a register with ignored
- * bit fields, it preserves the ignored bit fields
- * 2) SCI_EN: OSPM always preserves this bit position
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwRegisterWrite (
- BOOLEAN UseLock,
- UINT32 RegisterId,
- UINT32 Value)
-{
- ACPI_STATUS Status;
- ACPI_CPU_FLAGS LockFlags = 0;
- UINT32 ReadValue;
-
-
- ACPI_FUNCTION_TRACE (HwRegisterWrite);
-
-
- if (ACPI_MTX_LOCK == UseLock)
- {
- LockFlags = AcpiOsAcquireLock (AcpiGbl_HardwareLock);
- }
-
- switch (RegisterId)
- {
- case ACPI_REGISTER_PM1_STATUS: /* 16-bit access */
-
- /* Perform a read first to preserve certain bits (per ACPI spec) */
-
- Status = AcpiHwRegisterRead (ACPI_MTX_DO_NOT_LOCK,
- ACPI_REGISTER_PM1_STATUS, &ReadValue);
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
-
- /* Insert the bits to be preserved */
-
- ACPI_INSERT_BITS (Value, ACPI_PM1_STATUS_PRESERVED_BITS, ReadValue);
-
- /* Now we can write the data */
-
- Status = AcpiHwLowLevelWrite (16, Value, &AcpiGbl_FADT.XPm1aEventBlock);
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
-
- /* PM1B is optional */
-
- Status = AcpiHwLowLevelWrite (16, Value, &AcpiGbl_FADT.XPm1bEventBlock);
- break;
-
-
- case ACPI_REGISTER_PM1_ENABLE: /* 16-bit access */
-
- Status = AcpiHwLowLevelWrite (16, Value, &AcpiGbl_XPm1aEnable);
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
-
- /* PM1B is optional */
-
- Status = AcpiHwLowLevelWrite (16, Value, &AcpiGbl_XPm1bEnable);
- break;
-
-
- case ACPI_REGISTER_PM1_CONTROL: /* 16-bit access */
-
- /*
- * Perform a read first to preserve certain bits (per ACPI spec)
- *
- * Note: This includes SCI_EN, we never want to change this bit
- */
- Status = AcpiHwRegisterRead (ACPI_MTX_DO_NOT_LOCK,
- ACPI_REGISTER_PM1_CONTROL, &ReadValue);
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
-
- /* Insert the bits to be preserved */
-
- ACPI_INSERT_BITS (Value, ACPI_PM1_CONTROL_PRESERVED_BITS, ReadValue);
-
- /* Now we can write the data */
-
- Status = AcpiHwLowLevelWrite (16, Value, &AcpiGbl_FADT.XPm1aControlBlock);
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
-
- Status = AcpiHwLowLevelWrite (16, Value, &AcpiGbl_FADT.XPm1bControlBlock);
- break;
-
-
- case ACPI_REGISTER_PM1A_CONTROL: /* 16-bit access */
-
- Status = AcpiHwLowLevelWrite (16, Value, &AcpiGbl_FADT.XPm1aControlBlock);
- break;
-
-
- case ACPI_REGISTER_PM1B_CONTROL: /* 16-bit access */
-
- Status = AcpiHwLowLevelWrite (16, Value, &AcpiGbl_FADT.XPm1bControlBlock);
- break;
-
-
- case ACPI_REGISTER_PM2_CONTROL: /* 8-bit access */
-
- Status = AcpiHwLowLevelWrite (8, Value, &AcpiGbl_FADT.XPm2ControlBlock);
- break;
-
-
- case ACPI_REGISTER_PM_TIMER: /* 32-bit access */
-
- Status = AcpiHwLowLevelWrite (32, Value, &AcpiGbl_FADT.XPmTimerBlock);
- break;
-
-
- case ACPI_REGISTER_SMI_COMMAND_BLOCK: /* 8-bit access */
-
- /* SMI_CMD is currently always in IO space */
-
- Status = AcpiOsWritePort (AcpiGbl_FADT.SmiCommand, Value, 8);
- break;
-
-
- default:
- Status = AE_BAD_PARAMETER;
- break;
- }
-
-UnlockAndExit:
- if (ACPI_MTX_LOCK == UseLock)
- {
- AcpiOsReleaseLock (AcpiGbl_HardwareLock, LockFlags);
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiHwLowLevelRead
- *
- * PARAMETERS: Width - 8, 16, or 32
- * Value - Where the value is returned
- * Reg - GAS register structure
- *
- * RETURN: Status
- *
- * DESCRIPTION: Read from either memory or IO space.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwLowLevelRead (
- UINT32 Width,
- UINT32 *Value,
- ACPI_GENERIC_ADDRESS *Reg)
-{
- UINT64 Address;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_NAME (HwLowLevelRead);
-
-
- /*
- * Must have a valid pointer to a GAS structure, and
- * a non-zero address within. However, don't return an error
- * because the PM1A/B code must not fail if B isn't present.
- */
- if (!Reg)
- {
- return (AE_OK);
- }
-
- /* Get a local copy of the address. Handles possible alignment issues */
-
- ACPI_MOVE_64_TO_64 (&Address, &Reg->Address);
- if (!Address)
- {
- return (AE_OK);
- }
- *Value = 0;
-
- /*
- * Two address spaces supported: Memory or IO.
- * PCI_Config is not supported here because the GAS struct is insufficient
- */
- switch (Reg->SpaceId)
- {
- case ACPI_ADR_SPACE_SYSTEM_MEMORY:
-
- Status = AcpiOsReadMemory (
- (ACPI_PHYSICAL_ADDRESS) Address, Value, Width);
- break;
-
-
- case ACPI_ADR_SPACE_SYSTEM_IO:
-
- Status = AcpiOsReadPort ((ACPI_IO_ADDRESS) Address, Value, Width);
- break;
-
-
- default:
- ACPI_ERROR ((AE_INFO,
- "Unsupported address space: %X", Reg->SpaceId));
- return (AE_BAD_PARAMETER);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_IO,
- "Read: %8.8X width %2d from %8.8X%8.8X (%s)\n",
- *Value, Width, ACPI_FORMAT_UINT64 (Address),
- AcpiUtGetRegionName (Reg->SpaceId)));
-
- return (Status);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiHwLowLevelWrite
- *
- * PARAMETERS: Width - 8, 16, or 32
- * Value - To be written
- * Reg - GAS register structure
- *
- * RETURN: Status
- *
- * DESCRIPTION: Write to either memory or IO space.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiHwLowLevelWrite (
- UINT32 Width,
- UINT32 Value,
- ACPI_GENERIC_ADDRESS *Reg)
-{
- UINT64 Address;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_NAME (HwLowLevelWrite);
-
-
- /*
- * Must have a valid pointer to a GAS structure, and
- * a non-zero address within. However, don't return an error
- * because the PM1A/B code must not fail if B isn't present.
- */
- if (!Reg)
- {
- return (AE_OK);
- }
-
- /* Get a local copy of the address. Handles possible alignment issues */
-
- ACPI_MOVE_64_TO_64 (&Address, &Reg->Address);
- if (!Address)
- {
- return (AE_OK);
- }
-
- /*
- * Two address spaces supported: Memory or IO.
- * PCI_Config is not supported here because the GAS struct is insufficient
- */
- switch (Reg->SpaceId)
- {
- case ACPI_ADR_SPACE_SYSTEM_MEMORY:
-
- Status = AcpiOsWriteMemory (
- (ACPI_PHYSICAL_ADDRESS) Address, Value, Width);
- break;
-
-
- case ACPI_ADR_SPACE_SYSTEM_IO:
-
- Status = AcpiOsWritePort (
- (ACPI_IO_ADDRESS) Address, Value, Width);
- break;
-
-
- default:
- ACPI_ERROR ((AE_INFO,
- "Unsupported address space: %X", Reg->SpaceId));
- return (AE_BAD_PARAMETER);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_IO,
- "Wrote: %8.8X width %2d to %8.8X%8.8X (%s)\n",
- Value, Width, ACPI_FORMAT_UINT64 (Address),
- AcpiUtGetRegionName (Reg->SpaceId)));
-
- return (Status);
-}
diff --git a/sys/contrib/dev/acpica/hwsleep.c b/sys/contrib/dev/acpica/hwsleep.c
deleted file mode 100644
index 8dad09f..0000000
--- a/sys/contrib/dev/acpica/hwsleep.c
+++ /dev/null
@@ -1,752 +0,0 @@
-
-/******************************************************************************
- *
- * Name: hwsleep.c - ACPI Hardware Sleep/Wake Interface
- * $Revision: 1.87 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/actables.h>
-
-#define _COMPONENT ACPI_HARDWARE
- ACPI_MODULE_NAME ("hwsleep")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiSetFirmwareWakingVector
- *
- * PARAMETERS: PhysicalAddress - Physical address of ACPI real mode
- * entry point.
- *
- * RETURN: Status
- *
- * DESCRIPTION: Access function for the FirmwareWakingVector field in FACS
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiSetFirmwareWakingVector (
- ACPI_PHYSICAL_ADDRESS PhysicalAddress)
-{
- ACPI_TABLE_FACS *Facs;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (AcpiSetFirmwareWakingVector);
-
- /* Get the FACS */
-
- Status = AcpiGetTableByIndex (ACPI_TABLE_INDEX_FACS,
- ACPI_CAST_INDIRECT_PTR (ACPI_TABLE_HEADER, &Facs));
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Set the vector */
-
- if ((Facs->Length < 32) ||
- (!(Facs->XFirmwareWakingVector)))
- {
- /*
- * ACPI 1.0 FACS or short table or optional X_ field is zero
- */
- Facs->FirmwareWakingVector = (UINT32) PhysicalAddress;
- }
- else
- {
- /*
- * ACPI 2.0 FACS with valid X_ field
- */
- Facs->XFirmwareWakingVector = PhysicalAddress;
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiSetFirmwareWakingVector)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiGetFirmwareWakingVector
- *
- * PARAMETERS: *PhysicalAddress - Where the contents of
- * the FirmwareWakingVector field of
- * the FACS will be returned.
- *
- * RETURN: Status, vector
- *
- * DESCRIPTION: Access function for the FirmwareWakingVector field in FACS
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetFirmwareWakingVector (
- ACPI_PHYSICAL_ADDRESS *PhysicalAddress)
-{
- ACPI_TABLE_FACS *Facs;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (AcpiGetFirmwareWakingVector);
-
-
- if (!PhysicalAddress)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /* Get the FACS */
-
- Status = AcpiGetTableByIndex (ACPI_TABLE_INDEX_FACS,
- ACPI_CAST_INDIRECT_PTR (ACPI_TABLE_HEADER, &Facs));
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Get the vector */
-
- if ((Facs->Length < 32) ||
- (!(Facs->XFirmwareWakingVector)))
- {
- /*
- * ACPI 1.0 FACS or short table or optional X_ field is zero
- */
- *PhysicalAddress =
- (ACPI_PHYSICAL_ADDRESS) Facs->FirmwareWakingVector;
- }
- else
- {
- /*
- * ACPI 2.0 FACS with valid X_ field
- */
- *PhysicalAddress = (ACPI_PHYSICAL_ADDRESS) Facs->XFirmwareWakingVector;
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetFirmwareWakingVector)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEnterSleepStatePrep
- *
- * PARAMETERS: SleepState - Which sleep state to enter
- *
- * RETURN: Status
- *
- * DESCRIPTION: Prepare to enter a system sleep state (see ACPI 2.0 spec p 231)
- * This function must execute with interrupts enabled.
- * We break sleeping into 2 stages so that OSPM can handle
- * various OS-specific tasks between the two steps.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEnterSleepStatePrep (
- UINT8 SleepState)
-{
- ACPI_STATUS Status;
- ACPI_OBJECT_LIST ArgList;
- ACPI_OBJECT Arg;
-
-
- ACPI_FUNCTION_TRACE (AcpiEnterSleepStatePrep);
-
-
- /*
- * _PSW methods could be run here to enable wake-on keyboard, LAN, etc.
- */
- Status = AcpiGetSleepTypeData (SleepState,
- &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Setup parameter object */
-
- ArgList.Count = 1;
- ArgList.Pointer = &Arg;
-
- Arg.Type = ACPI_TYPE_INTEGER;
- Arg.Integer.Value = SleepState;
-
- /* Run the _PTS and _GTS methods */
-
- Status = AcpiEvaluateObject (NULL, METHOD_NAME__PTS, &ArgList, NULL);
- if (ACPI_FAILURE (Status) && Status != AE_NOT_FOUND)
- {
- return_ACPI_STATUS (Status);
- }
-
- Status = AcpiEvaluateObject (NULL, METHOD_NAME__GTS, &ArgList, NULL);
- if (ACPI_FAILURE (Status) && Status != AE_NOT_FOUND)
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Setup the argument to _SST */
-
- switch (SleepState)
- {
- case ACPI_STATE_S0:
- Arg.Integer.Value = ACPI_SST_WORKING;
- break;
-
- case ACPI_STATE_S1:
- case ACPI_STATE_S2:
- case ACPI_STATE_S3:
- Arg.Integer.Value = ACPI_SST_SLEEPING;
- break;
-
- case ACPI_STATE_S4:
- Arg.Integer.Value = ACPI_SST_SLEEP_CONTEXT;
- break;
-
- default:
- Arg.Integer.Value = ACPI_SST_INDICATOR_OFF; /* Default is off */
- break;
- }
-
- /* Set the system indicators to show the desired sleep state. */
-
- Status = AcpiEvaluateObject (NULL, METHOD_NAME__SST, &ArgList, NULL);
- if (ACPI_FAILURE (Status) && Status != AE_NOT_FOUND)
- {
- ACPI_EXCEPTION ((AE_INFO, Status, "While executing method _SST"));
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiEnterSleepStatePrep)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEnterSleepState
- *
- * PARAMETERS: SleepState - Which sleep state to enter
- *
- * RETURN: Status
- *
- * DESCRIPTION: Enter a system sleep state (see ACPI 2.0 spec p 231)
- * THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEnterSleepState (
- UINT8 SleepState)
-{
- UINT32 PM1AControl;
- UINT32 PM1BControl;
- ACPI_BIT_REGISTER_INFO *SleepTypeRegInfo;
- ACPI_BIT_REGISTER_INFO *SleepEnableRegInfo;
- UINT32 InValue;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (AcpiEnterSleepState);
-
-
- if ((AcpiGbl_SleepTypeA > ACPI_SLEEP_TYPE_MAX) ||
- (AcpiGbl_SleepTypeB > ACPI_SLEEP_TYPE_MAX))
- {
- ACPI_ERROR ((AE_INFO, "Sleep values out of range: A=%X B=%X",
- AcpiGbl_SleepTypeA, AcpiGbl_SleepTypeB));
- return_ACPI_STATUS (AE_AML_OPERAND_VALUE);
- }
-
- SleepTypeRegInfo = AcpiHwGetBitRegisterInfo (ACPI_BITREG_SLEEP_TYPE_A);
- SleepEnableRegInfo = AcpiHwGetBitRegisterInfo (ACPI_BITREG_SLEEP_ENABLE);
-
- /* Clear wake status */
-
- Status = AcpiSetRegister (ACPI_BITREG_WAKE_STATUS, 1);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Clear all fixed and general purpose status bits */
-
- Status = AcpiHwClearAcpiStatus ();
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- if (SleepState != ACPI_STATE_S5)
- {
- /* Disable BM arbitration */
-
- Status = AcpiSetRegister (ACPI_BITREG_ARB_DISABLE, 1);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- /*
- * 1) Disable/Clear all GPEs
- * 2) Enable all wakeup GPEs
- */
- Status = AcpiHwDisableAllGpes ();
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- AcpiGbl_SystemAwakeAndRunning = FALSE;
-
- Status = AcpiHwEnableAllWakeupGpes ();
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Get current value of PM1A control */
-
- Status = AcpiHwRegisterRead (ACPI_MTX_DO_NOT_LOCK,
- ACPI_REGISTER_PM1_CONTROL, &PM1AControl);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- ACPI_DEBUG_PRINT ((ACPI_DB_INIT,
- "Entering sleep state [S%d]\n", SleepState));
-
- /* Clear SLP_EN and SLP_TYP fields */
-
- PM1AControl &= ~(SleepTypeRegInfo->AccessBitMask |
- SleepEnableRegInfo->AccessBitMask);
- PM1BControl = PM1AControl;
-
- /* Insert SLP_TYP bits */
-
- PM1AControl |= (AcpiGbl_SleepTypeA << SleepTypeRegInfo->BitPosition);
- PM1BControl |= (AcpiGbl_SleepTypeB << SleepTypeRegInfo->BitPosition);
-
- /*
- * We split the writes of SLP_TYP and SLP_EN to workaround
- * poorly implemented hardware.
- */
-
- /* Write #1: fill in SLP_TYP data */
-
- Status = AcpiHwRegisterWrite (ACPI_MTX_DO_NOT_LOCK,
- ACPI_REGISTER_PM1A_CONTROL, PM1AControl);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- Status = AcpiHwRegisterWrite (ACPI_MTX_DO_NOT_LOCK,
- ACPI_REGISTER_PM1B_CONTROL, PM1BControl);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Insert SLP_ENABLE bit */
-
- PM1AControl |= SleepEnableRegInfo->AccessBitMask;
- PM1BControl |= SleepEnableRegInfo->AccessBitMask;
-
- /* Write #2: SLP_TYP + SLP_EN */
-
- ACPI_FLUSH_CPU_CACHE ();
-
- Status = AcpiHwRegisterWrite (ACPI_MTX_DO_NOT_LOCK,
- ACPI_REGISTER_PM1A_CONTROL, PM1AControl);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- Status = AcpiHwRegisterWrite (ACPI_MTX_DO_NOT_LOCK,
- ACPI_REGISTER_PM1B_CONTROL, PM1BControl);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- if (SleepState > ACPI_STATE_S3)
- {
- /*
- * We wanted to sleep > S3, but it didn't happen (by virtue of the
- * fact that we are still executing!)
- *
- * Wait ten seconds, then try again. This is to get S4/S5 to work on
- * all machines.
- *
- * We wait so long to allow chipsets that poll this reg very slowly to
- * still read the right value. Ideally, this block would go
- * away entirely.
- */
- AcpiOsStall (10000000);
-
- Status = AcpiHwRegisterWrite (ACPI_MTX_DO_NOT_LOCK,
- ACPI_REGISTER_PM1_CONTROL,
- SleepEnableRegInfo->AccessBitMask);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- /* Wait until we enter sleep state */
-
- do
- {
- Status = AcpiGetRegister (ACPI_BITREG_WAKE_STATUS, &InValue);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Spin until we wake */
-
- } while (!InValue);
-
- return_ACPI_STATUS (AE_OK);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiEnterSleepState)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEnterSleepStateS4bios
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Perform a S4 bios request.
- * THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEnterSleepStateS4bios (
- void)
-{
- UINT32 InValue;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (AcpiEnterSleepStateS4bios);
-
-
- Status = AcpiSetRegister (ACPI_BITREG_WAKE_STATUS, 1);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- Status = AcpiHwClearAcpiStatus ();
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * 1) Disable/Clear all GPEs
- * 2) Enable all wakeup GPEs
- */
- Status = AcpiHwDisableAllGpes ();
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- AcpiGbl_SystemAwakeAndRunning = FALSE;
-
- Status = AcpiHwEnableAllWakeupGpes ();
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- ACPI_FLUSH_CPU_CACHE ();
-
- Status = AcpiOsWritePort (AcpiGbl_FADT.SmiCommand,
- (UINT32) AcpiGbl_FADT.S4BiosRequest, 8);
-
- do {
- AcpiOsStall(1000);
- Status = AcpiGetRegister (ACPI_BITREG_WAKE_STATUS, &InValue);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- } while (!InValue);
-
- return_ACPI_STATUS (AE_OK);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiEnterSleepStateS4bios)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiLeaveSleepState
- *
- * PARAMETERS: SleepState - Which sleep state we just exited
- *
- * RETURN: Status
- *
- * DESCRIPTION: Perform OS-independent ACPI cleanup after a sleep
- * Called with interrupts ENABLED.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiLeaveSleepState (
- UINT8 SleepState)
-{
- ACPI_OBJECT_LIST ArgList;
- ACPI_OBJECT Arg;
- ACPI_STATUS Status;
- ACPI_BIT_REGISTER_INFO *SleepTypeRegInfo;
- ACPI_BIT_REGISTER_INFO *SleepEnableRegInfo;
- UINT32 PM1AControl;
- UINT32 PM1BControl;
-
-
- ACPI_FUNCTION_TRACE (AcpiLeaveSleepState);
-
-
- /*
- * Set SLP_TYPE and SLP_EN to state S0.
- * This is unclear from the ACPI Spec, but it is required
- * by some machines.
- */
- Status = AcpiGetSleepTypeData (ACPI_STATE_S0,
- &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB);
- if (ACPI_SUCCESS (Status))
- {
- SleepTypeRegInfo = AcpiHwGetBitRegisterInfo (ACPI_BITREG_SLEEP_TYPE_A);
- SleepEnableRegInfo = AcpiHwGetBitRegisterInfo (ACPI_BITREG_SLEEP_ENABLE);
-
- /* Get current value of PM1A control */
-
- Status = AcpiHwRegisterRead (ACPI_MTX_DO_NOT_LOCK,
- ACPI_REGISTER_PM1_CONTROL, &PM1AControl);
- if (ACPI_SUCCESS (Status))
- {
- /* Clear SLP_EN and SLP_TYP fields */
-
- PM1AControl &= ~(SleepTypeRegInfo->AccessBitMask |
- SleepEnableRegInfo->AccessBitMask);
- PM1BControl = PM1AControl;
-
- /* Insert SLP_TYP bits */
-
- PM1AControl |= (AcpiGbl_SleepTypeA << SleepTypeRegInfo->BitPosition);
- PM1BControl |= (AcpiGbl_SleepTypeB << SleepTypeRegInfo->BitPosition);
-
- /* Just ignore any errors */
-
- (void) AcpiHwRegisterWrite (ACPI_MTX_DO_NOT_LOCK,
- ACPI_REGISTER_PM1A_CONTROL, PM1AControl);
- (void) AcpiHwRegisterWrite (ACPI_MTX_DO_NOT_LOCK,
- ACPI_REGISTER_PM1B_CONTROL, PM1BControl);
- }
- }
-
- /* Ensure EnterSleepStatePrep -> EnterSleepState ordering */
-
- AcpiGbl_SleepTypeA = ACPI_SLEEP_TYPE_INVALID;
-
- /* Setup parameter object */
-
- ArgList.Count = 1;
- ArgList.Pointer = &Arg;
- Arg.Type = ACPI_TYPE_INTEGER;
-
- /* Ignore any errors from these methods */
-
- Arg.Integer.Value = ACPI_SST_WAKING;
- Status = AcpiEvaluateObject (NULL, METHOD_NAME__SST, &ArgList, NULL);
- if (ACPI_FAILURE (Status) && Status != AE_NOT_FOUND)
- {
- ACPI_EXCEPTION ((AE_INFO, Status, "During Method _SST"));
- }
-
- Arg.Integer.Value = SleepState;
- Status = AcpiEvaluateObject (NULL, METHOD_NAME__BFS, &ArgList, NULL);
- if (ACPI_FAILURE (Status) && Status != AE_NOT_FOUND)
- {
- ACPI_EXCEPTION ((AE_INFO, Status, "During Method _BFS"));
- }
-
- Status = AcpiEvaluateObject (NULL, METHOD_NAME__WAK, &ArgList, NULL);
- if (ACPI_FAILURE (Status) && Status != AE_NOT_FOUND)
- {
- ACPI_EXCEPTION ((AE_INFO, Status, "During Method _WAK"));
- }
- /* TBD: _WAK "sometimes" returns stuff - do we want to look at it? */
-
- /*
- * Restore the GPEs:
- * 1) Disable/Clear all GPEs
- * 2) Enable all runtime GPEs
- */
- Status = AcpiHwDisableAllGpes ();
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- AcpiGbl_SystemAwakeAndRunning = TRUE;
-
- Status = AcpiHwEnableAllRuntimeGpes ();
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Enable power button */
-
- (void) AcpiSetRegister(
- AcpiGbl_FixedEventInfo[ACPI_EVENT_POWER_BUTTON].EnableRegisterId, 1);
-
- (void) AcpiSetRegister(
- AcpiGbl_FixedEventInfo[ACPI_EVENT_POWER_BUTTON].StatusRegisterId, 1);
-
- /* Enable BM arbitration */
-
- Status = AcpiSetRegister (ACPI_BITREG_ARB_DISABLE, 0);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- Arg.Integer.Value = ACPI_SST_WORKING;
- Status = AcpiEvaluateObject (NULL, METHOD_NAME__SST, &ArgList, NULL);
- if (ACPI_FAILURE (Status) && Status != AE_NOT_FOUND)
- {
- ACPI_EXCEPTION ((AE_INFO, Status, "During Method _SST"));
- }
-
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiLeaveSleepState)
-
diff --git a/sys/contrib/dev/acpica/hwtimer.c b/sys/contrib/dev/acpica/hwtimer.c
deleted file mode 100644
index 78114e5..0000000
--- a/sys/contrib/dev/acpica/hwtimer.c
+++ /dev/null
@@ -1,288 +0,0 @@
-
-/******************************************************************************
- *
- * Name: hwtimer.c - ACPI Power Management Timer Interface
- * $Revision: 1.37 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#include <contrib/dev/acpica/acpi.h>
-
-#define _COMPONENT ACPI_HARDWARE
- ACPI_MODULE_NAME ("hwtimer")
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiGetTimerResolution
- *
- * PARAMETERS: Resolution - Where the resolution is returned
- *
- * RETURN: Status and timer resolution
- *
- * DESCRIPTION: Obtains resolution of the ACPI PM Timer (24 or 32 bits).
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetTimerResolution (
- UINT32 *Resolution)
-{
- ACPI_FUNCTION_TRACE (AcpiGetTimerResolution);
-
-
- if (!Resolution)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- if ((AcpiGbl_FADT.Flags & ACPI_FADT_32BIT_TIMER) == 0)
- {
- *Resolution = 24;
- }
- else
- {
- *Resolution = 32;
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetTimerResolution)
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiGetTimer
- *
- * PARAMETERS: Ticks - Where the timer value is returned
- *
- * RETURN: Status and current timer value (ticks)
- *
- * DESCRIPTION: Obtains current value of ACPI PM Timer (in ticks).
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetTimer (
- UINT32 *Ticks)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (AcpiGetTimer);
-
-
- if (!Ticks)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- Status = AcpiHwLowLevelRead (32, Ticks, &AcpiGbl_FADT.XPmTimerBlock);
-
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetTimer)
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiGetTimerDuration
- *
- * PARAMETERS: StartTicks - Starting timestamp
- * EndTicks - End timestamp
- * TimeElapsed - Where the elapsed time is returned
- *
- * RETURN: Status and TimeElapsed
- *
- * DESCRIPTION: Computes the time elapsed (in microseconds) between two
- * PM Timer time stamps, taking into account the possibility of
- * rollovers, the timer resolution, and timer frequency.
- *
- * The PM Timer's clock ticks at roughly 3.6 times per
- * _microsecond_, and its clock continues through Cx state
- * transitions (unlike many CPU timestamp counters) -- making it
- * a versatile and accurate timer.
- *
- * Note that this function accommodates only a single timer
- * rollover. Thus for 24-bit timers, this function should only
- * be used for calculating durations less than ~4.6 seconds
- * (~20 minutes for 32-bit timers) -- calculations below:
- *
- * 2**24 Ticks / 3,600,000 Ticks/Sec = 4.66 sec
- * 2**32 Ticks / 3,600,000 Ticks/Sec = 1193 sec or 19.88 minutes
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetTimerDuration (
- UINT32 StartTicks,
- UINT32 EndTicks,
- UINT32 *TimeElapsed)
-{
- ACPI_STATUS Status;
- UINT32 DeltaTicks;
- ACPI_INTEGER Quotient;
-
-
- ACPI_FUNCTION_TRACE (AcpiGetTimerDuration);
-
-
- if (!TimeElapsed)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /*
- * Compute Tick Delta:
- * Handle (max one) timer rollovers on 24-bit versus 32-bit timers.
- */
- if (StartTicks < EndTicks)
- {
- DeltaTicks = EndTicks - StartTicks;
- }
- else if (StartTicks > EndTicks)
- {
- if ((AcpiGbl_FADT.Flags & ACPI_FADT_32BIT_TIMER) == 0)
- {
- /* 24-bit Timer */
-
- DeltaTicks = (((0x00FFFFFF - StartTicks) + EndTicks) & 0x00FFFFFF);
- }
- else
- {
- /* 32-bit Timer */
-
- DeltaTicks = (0xFFFFFFFF - StartTicks) + EndTicks;
- }
- }
- else /* StartTicks == EndTicks */
- {
- *TimeElapsed = 0;
- return_ACPI_STATUS (AE_OK);
- }
-
- /*
- * Compute Duration (Requires a 64-bit multiply and divide):
- *
- * TimeElapsed = (DeltaTicks * 1000000) / PM_TIMER_FREQUENCY;
- */
- Status = AcpiUtShortDivide (((UINT64) DeltaTicks) * 1000000,
- PM_TIMER_FREQUENCY, &Quotient, NULL);
-
- *TimeElapsed = (UINT32) Quotient;
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetTimerDuration)
-
diff --git a/sys/contrib/dev/acpica/nsaccess.c b/sys/contrib/dev/acpica/nsaccess.c
deleted file mode 100644
index d1b4f73..0000000
--- a/sys/contrib/dev/acpica/nsaccess.c
+++ /dev/null
@@ -1,750 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: nsaccess - Top-level functions for accessing ACPI namespace
- * $Revision: 1.206 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __NSACCESS_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acdispat.h>
-
-
-#define _COMPONENT ACPI_NAMESPACE
- ACPI_MODULE_NAME ("nsaccess")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsRootInitialize
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Allocate and initialize the default root named objects
- *
- * MUTEX: Locks namespace for entire execution
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsRootInitialize (
- void)
-{
- ACPI_STATUS Status;
- const ACPI_PREDEFINED_NAMES *InitVal = NULL;
- ACPI_NAMESPACE_NODE *NewNode;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_STRING Val = NULL;
-
-
- ACPI_FUNCTION_TRACE (NsRootInitialize);
-
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * The global root ptr is initially NULL, so a non-NULL value indicates
- * that AcpiNsRootInitialize() has already been called; just return.
- */
- if (AcpiGbl_RootNode)
- {
- Status = AE_OK;
- goto UnlockAndExit;
- }
-
- /*
- * Tell the rest of the subsystem that the root is initialized
- * (This is OK because the namespace is locked)
- */
- AcpiGbl_RootNode = &AcpiGbl_RootNodeStruct;
-
- /* Enter the pre-defined names in the name table */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "Entering predefined entries into namespace\n"));
-
- for (InitVal = AcpiGbl_PreDefinedNames; InitVal->Name; InitVal++)
- {
- /* _OSI is optional for now, will be permanent later */
-
- if (!ACPI_STRCMP (InitVal->Name, "_OSI") && !AcpiGbl_CreateOsiMethod)
- {
- continue;
- }
-
- Status = AcpiNsLookup (NULL, InitVal->Name, InitVal->Type,
- ACPI_IMODE_LOAD_PASS2, ACPI_NS_NO_UPSEARCH,
- NULL, &NewNode);
-
- if (ACPI_FAILURE (Status) || (!NewNode)) /* Must be on same line for code converter */
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Could not create predefined name %s",
- InitVal->Name));
- }
-
- /*
- * Name entered successfully.
- * If entry in PreDefinedNames[] specifies an
- * initial value, create the initial value.
- */
- if (InitVal->Val)
- {
- Status = AcpiOsPredefinedOverride (InitVal, &Val);
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR ((AE_INFO,
- "Could not override predefined %s",
- InitVal->Name));
- }
-
- if (!Val)
- {
- Val = InitVal->Val;
- }
-
- /*
- * Entry requests an initial value, allocate a
- * descriptor for it.
- */
- ObjDesc = AcpiUtCreateInternalObject (InitVal->Type);
- if (!ObjDesc)
- {
- Status = AE_NO_MEMORY;
- goto UnlockAndExit;
- }
-
- /*
- * Convert value string from table entry to
- * internal representation. Only types actually
- * used for initial values are implemented here.
- */
- switch (InitVal->Type)
- {
- case ACPI_TYPE_METHOD:
- ObjDesc->Method.ParamCount = (UINT8) ACPI_TO_INTEGER (Val);
- ObjDesc->Common.Flags |= AOPOBJ_DATA_VALID;
-
-#if defined (ACPI_ASL_COMPILER)
-
- /* Save the parameter count for the iASL compiler */
-
- NewNode->Value = ObjDesc->Method.ParamCount;
-#else
- /* Mark this as a very SPECIAL method */
-
- ObjDesc->Method.MethodFlags = AML_METHOD_INTERNAL_ONLY;
-
-#ifndef ACPI_DUMP_APP
- ObjDesc->Method.Implementation = AcpiUtOsiImplementation;
-#endif
-#endif
- break;
-
- case ACPI_TYPE_INTEGER:
-
- ObjDesc->Integer.Value = ACPI_TO_INTEGER (Val);
- break;
-
-
- case ACPI_TYPE_STRING:
-
- /*
- * Build an object around the static string
- */
- ObjDesc->String.Length = (UINT32) ACPI_STRLEN (Val);
- ObjDesc->String.Pointer = Val;
- ObjDesc->Common.Flags |= AOPOBJ_STATIC_POINTER;
- break;
-
-
- case ACPI_TYPE_MUTEX:
-
- ObjDesc->Mutex.Node = NewNode;
- ObjDesc->Mutex.SyncLevel = (UINT8) (ACPI_TO_INTEGER (Val) - 1);
-
- /* Create a mutex */
-
- Status = AcpiOsCreateMutex (&ObjDesc->Mutex.OsMutex);
- if (ACPI_FAILURE (Status))
- {
- AcpiUtRemoveReference (ObjDesc);
- goto UnlockAndExit;
- }
-
- /* Special case for ACPI Global Lock */
-
- if (ACPI_STRCMP (InitVal->Name, "_GL_") == 0)
- {
- AcpiGbl_GlobalLockMutex = ObjDesc;
-
- /* Create additional counting semaphore for global lock */
-
- Status = AcpiOsCreateSemaphore (
- 1, 0, &AcpiGbl_GlobalLockSemaphore);
- if (ACPI_FAILURE (Status))
- {
- AcpiUtRemoveReference (ObjDesc);
- goto UnlockAndExit;
- }
- }
- break;
-
-
- default:
-
- ACPI_ERROR ((AE_INFO, "Unsupported initial type value %X",
- InitVal->Type));
- AcpiUtRemoveReference (ObjDesc);
- ObjDesc = NULL;
- continue;
- }
-
- /* Store pointer to value descriptor in the Node */
-
- Status = AcpiNsAttachObject (NewNode, ObjDesc,
- ACPI_GET_OBJECT_TYPE (ObjDesc));
-
- /* Remove local reference to the object */
-
- AcpiUtRemoveReference (ObjDesc);
- }
- }
-
-
-UnlockAndExit:
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-
- /* Save a handle to "_GPE", it is always present */
-
- if (ACPI_SUCCESS (Status))
- {
- Status = AcpiNsGetNode (NULL, "\\_GPE", ACPI_NS_NO_UPSEARCH,
- &AcpiGbl_FadtGpeDevice);
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsLookup
- *
- * PARAMETERS: ScopeInfo - Current scope info block
- * Pathname - Search pathname, in internal format
- * (as represented in the AML stream)
- * Type - Type associated with name
- * InterpreterMode - IMODE_LOAD_PASS2 => add name if not found
- * Flags - Flags describing the search restrictions
- * WalkState - Current state of the walk
- * ReturnNode - Where the Node is placed (if found
- * or created successfully)
- *
- * RETURN: Status
- *
- * DESCRIPTION: Find or enter the passed name in the name space.
- * Log an error if name not found in Exec mode.
- *
- * MUTEX: Assumes namespace is locked.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsLookup (
- ACPI_GENERIC_STATE *ScopeInfo,
- char *Pathname,
- ACPI_OBJECT_TYPE Type,
- ACPI_INTERPRETER_MODE InterpreterMode,
- UINT32 Flags,
- ACPI_WALK_STATE *WalkState,
- ACPI_NAMESPACE_NODE **ReturnNode)
-{
- ACPI_STATUS Status;
- char *Path = Pathname;
- ACPI_NAMESPACE_NODE *PrefixNode;
- ACPI_NAMESPACE_NODE *CurrentNode = NULL;
- ACPI_NAMESPACE_NODE *ThisNode = NULL;
- UINT32 NumSegments;
- UINT32 NumCarats;
- ACPI_NAME SimpleName;
- ACPI_OBJECT_TYPE TypeToCheckFor;
- ACPI_OBJECT_TYPE ThisSearchType;
- UINT32 SearchParentFlag = ACPI_NS_SEARCH_PARENT;
- UINT32 LocalFlags;
-
-
- ACPI_FUNCTION_TRACE (NsLookup);
-
-
- if (!ReturnNode)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- LocalFlags = Flags & ~(ACPI_NS_ERROR_IF_FOUND | ACPI_NS_SEARCH_PARENT);
- *ReturnNode = ACPI_ENTRY_NOT_FOUND;
- AcpiGbl_NsLookupCount++;
-
- if (!AcpiGbl_RootNode)
- {
- return_ACPI_STATUS (AE_NO_NAMESPACE);
- }
-
- /*
- * Get the prefix scope.
- * A null scope means use the root scope
- */
- if ((!ScopeInfo) ||
- (!ScopeInfo->Scope.Node))
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
- "Null scope prefix, using root node (%p)\n",
- AcpiGbl_RootNode));
-
- PrefixNode = AcpiGbl_RootNode;
- }
- else
- {
- PrefixNode = ScopeInfo->Scope.Node;
- if (ACPI_GET_DESCRIPTOR_TYPE (PrefixNode) != ACPI_DESC_TYPE_NAMED)
- {
- ACPI_ERROR ((AE_INFO, "%p is not a namespace node [%s]",
- PrefixNode, AcpiUtGetDescriptorName (PrefixNode)));
- return_ACPI_STATUS (AE_AML_INTERNAL);
- }
-
- if (!(Flags & ACPI_NS_PREFIX_IS_SCOPE))
- {
- /*
- * 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);
- }
- }
- }
-
- /* Save type TBD: may be no longer necessary */
-
- TypeToCheckFor = Type;
-
- /*
- * Begin examination of the actual pathname
- */
- if (!Pathname)
- {
- /* A Null NamePath is allowed and refers to the root */
-
- NumSegments = 0;
- ThisNode = AcpiGbl_RootNode;
- Path = "";
-
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
- "Null Pathname (Zero segments), Flags=%X\n", Flags));
- }
- else
- {
- /*
- * Name pointer is valid (and must be in internal name format)
- *
- * Check for scope prefixes:
- *
- * As represented in the AML stream, a namepath consists of an
- * optional scope prefix followed by a name segment part.
- *
- * If present, the scope prefix is either a Root Prefix (in
- * which case the name is fully qualified), or one or more
- * Parent Prefixes (in which case the name's scope is relative
- * to the current scope).
- */
- 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 */
-
- Path++;
-
- 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 prefix scope [%4.4s] (%p)\n",
- AcpiUtGetNodeName (PrefixNode), PrefixNode));
-
- /*
- * Handle multiple Parent Prefixes (carat) by just getting
- * the parent node for each prefix instance.
- */
- ThisNode = PrefixNode;
- NumCarats = 0;
- 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
- */
- Path++;
-
- /* Backup to the parent node */
-
- NumCarats++;
- ThisNode = AcpiNsGetParentNode (ThisNode);
- if (!ThisNode)
- {
- /* Current scope has no parent scope */
-
- ACPI_ERROR ((AE_INFO,
- "ACPI path has too many parent prefixes (^) - reached beyond root node"));
- return_ACPI_STATUS (AE_NOT_FOUND);
- }
- }
-
- if (SearchParentFlag == ACPI_NS_NO_UPSEARCH)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
- "Search scope is [%4.4s], path has %d carat(s)\n",
- AcpiUtGetNodeName (ThisNode), NumCarats));
- }
- }
-
- /*
- * Determine the number of ACPI name segments in this pathname.
- *
- * The segment part consists of either:
- * - A Null name segment (0)
- * - A DualNamePrefix followed by two 4-byte name segments
- * - A MultiNamePrefix followed by a byte indicating the
- * number of segments and the segments themselves.
- * - A single 4-byte name segment
- *
- * Examine the name prefix opcode, if any, to determine the number of
- * segments.
- */
- switch (*Path)
- {
- case 0:
- /*
- * Null name after a root or parent prefixes. We already
- * have the correct target node and there are no name segments.
- */
- NumSegments = 0;
- Type = ThisNode->Type;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
- "Prefix-only Pathname (Zero name segments), Flags=%X\n",
- Flags));
- break;
-
- 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;
- Path++;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
- "Dual Pathname (2 segments, Flags=%X)\n", Flags));
- break;
-
- 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 */
-
- Path++;
- NumSegments = (UINT32) (UINT8) *Path;
- Path++;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
- "Multi Pathname (%d Segments, Flags=%X)\n",
- NumSegments, Flags));
- break;
-
- default:
- /*
- * Not a Null name, no Dual or Multi prefix, hence there is
- * only one name segment and Pathname is already pointing to it.
- */
- NumSegments = 1;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
- "Simple Pathname (1 segment, Flags=%X)\n", Flags));
- break;
- }
-
- ACPI_DEBUG_EXEC (AcpiNsPrintPathname (NumSegments, Path));
- }
-
-
- /*
- * Search namespace for each segment of the name. Loop through and
- * 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)
- {
- NumSegments--;
- if (!NumSegments)
- {
- /*
- * This is the last segment, enable typechecking
- */
- ThisSearchType = Type;
-
- /*
- * 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_32_TO_32 (&SimpleName, Path);
-
- /* Try to find the single (4 character) ACPI name */
-
- Status = AcpiNsSearchAndEnter (SimpleName, WalkState, CurrentNode,
- InterpreterMode, ThisSearchType, LocalFlags, &ThisNode);
- if (ACPI_FAILURE (Status))
- {
- if (Status == AE_NOT_FOUND)
- {
- /* Name not found in ACPI namespace */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
- "Name [%4.4s] not found in scope [%4.4s] %p\n",
- (char *) &SimpleName, (char *) &CurrentNode->Name,
- CurrentNode));
- }
-
- *ReturnNode = ThisNode;
- return_ACPI_STATUS (Status);
- }
-
- /*
- * Sanity typecheck of the target object:
- *
- * If 1) This is the last segment (NumSegments == 0)
- * 2) And we are looking for a specific type
- * (Not checking for TYPE_ANY)
- * 3) Which is not an alias
- * 4) Which is not a local type (TYPE_SCOPE)
- * 5) And the type of target object is known (not TYPE_ANY)
- * 6) And target object does not match what we are looking for
- *
- * Then we have a type mismatch. Just warn and ignore it.
- */
- if ((NumSegments == 0) &&
- (TypeToCheckFor != ACPI_TYPE_ANY) &&
- (TypeToCheckFor != ACPI_TYPE_LOCAL_ALIAS) &&
- (TypeToCheckFor != ACPI_TYPE_LOCAL_METHOD_ALIAS) &&
- (TypeToCheckFor != ACPI_TYPE_LOCAL_SCOPE) &&
- (ThisNode->Type != ACPI_TYPE_ANY) &&
- (ThisNode->Type != TypeToCheckFor))
- {
- /* Complain about a type mismatch */
-
- ACPI_WARNING ((AE_INFO,
- "NsLookup: Type mismatch on %4.4s (%s), searching for (%s)",
- ACPI_CAST_PTR (char, &SimpleName),
- AcpiUtGetTypeName (ThisNode->Type),
- AcpiUtGetTypeName (TypeToCheckFor)));
- }
-
- /*
- * If this is the last name segment and we are not looking for a
- * specific type, but the type of found object is known, use that type
- * to see if it opens a scope.
- */
- if ((NumSegments == 0) && (Type == ACPI_TYPE_ANY))
- {
- Type = ThisNode->Type;
- }
-
- /* Point to next name segment and make this node current */
-
- Path += ACPI_NAME_SIZE;
- CurrentNode = ThisNode;
- }
-
- /*
- * Always check if we need to open a new scope
- */
- if (!(Flags & ACPI_NS_DONT_OPEN_SCOPE) && (WalkState))
- {
- /*
- * If entry is a type which opens a scope, push the new scope on the
- * scope stack.
- */
- if (AcpiNsOpensScope (Type))
- {
- Status = AcpiDsScopeStackPush (ThisNode, Type, WalkState);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
- }
-
- *ReturnNode = ThisNode;
- return_ACPI_STATUS (AE_OK);
-}
-
diff --git a/sys/contrib/dev/acpica/nsalloc.c b/sys/contrib/dev/acpica/nsalloc.c
deleted file mode 100644
index e6ecf5a..0000000
--- a/sys/contrib/dev/acpica/nsalloc.c
+++ /dev/null
@@ -1,628 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: nsalloc - Namespace allocation and deletion utilities
- * $Revision: 1.108 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __NSALLOC_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-
-#define _COMPONENT ACPI_NAMESPACE
- ACPI_MODULE_NAME ("nsalloc")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsCreateNode
- *
- * PARAMETERS: Name - Name of the new node (4 char ACPI name)
- *
- * RETURN: New namespace node (Null on failure)
- *
- * DESCRIPTION: Create a namespace node
- *
- ******************************************************************************/
-
-ACPI_NAMESPACE_NODE *
-AcpiNsCreateNode (
- UINT32 Name)
-{
- ACPI_NAMESPACE_NODE *Node;
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
- UINT32 Temp;
-#endif
-
-
- ACPI_FUNCTION_TRACE (NsCreateNode);
-
-
- Node = AcpiOsAcquireObject (AcpiGbl_NamespaceCache);
- if (!Node)
- {
- return_PTR (NULL);
- }
-
- ACPI_MEM_TRACKING (AcpiGbl_NsNodeList->TotalAllocated++);
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
- Temp = AcpiGbl_NsNodeList->TotalAllocated - AcpiGbl_NsNodeList->TotalFreed;
- if (Temp > AcpiGbl_NsNodeList->MaxOccupied)
- {
- AcpiGbl_NsNodeList->MaxOccupied = Temp;
- }
-#endif
-
- Node->Name.Integer = Name;
- ACPI_SET_DESCRIPTOR_TYPE (Node, ACPI_DESC_TYPE_NAMED);
- return_PTR (Node);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsDeleteNode
- *
- * PARAMETERS: Node - Node to be deleted
- *
- * RETURN: None
- *
- * DESCRIPTION: Delete a namespace node
- *
- ******************************************************************************/
-
-void
-AcpiNsDeleteNode (
- ACPI_NAMESPACE_NODE *Node)
-{
- ACPI_NAMESPACE_NODE *ParentNode;
- ACPI_NAMESPACE_NODE *PrevNode;
- ACPI_NAMESPACE_NODE *NextNode;
-
-
- ACPI_FUNCTION_TRACE_PTR (NsDeleteNode, Node);
-
-
- ParentNode = AcpiNsGetParentNode (Node);
-
- PrevNode = NULL;
- NextNode = ParentNode->Child;
-
- /* Find the node that is the previous peer in the parent's child list */
-
- while (NextNode != Node)
- {
- PrevNode = NextNode;
- NextNode = PrevNode->Peer;
- }
-
- if (PrevNode)
- {
- /* Node is not first child, unlink it */
-
- PrevNode->Peer = NextNode->Peer;
- if (NextNode->Flags & ANOBJ_END_OF_PEER_LIST)
- {
- PrevNode->Flags |= ANOBJ_END_OF_PEER_LIST;
- }
- }
- else
- {
- /* Node is first child (has no previous peer) */
-
- if (NextNode->Flags & ANOBJ_END_OF_PEER_LIST)
- {
- /* No peers at all */
-
- ParentNode->Child = NULL;
- }
- else
- { /* Link peer list to parent */
-
- ParentNode->Child = NextNode->Peer;
- }
- }
-
- ACPI_MEM_TRACKING (AcpiGbl_NsNodeList->TotalFreed++);
-
- /*
- * Detach an object if there is one, then delete the node
- */
- AcpiNsDetachObject (Node);
- (void) AcpiOsReleaseObject (AcpiGbl_NamespaceCache, Node);
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsInstallNode
- *
- * PARAMETERS: WalkState - Current state of the walk
- * ParentNode - The parent of the new Node
- * Node - The new Node to install
- * Type - ACPI object type of the new Node
- *
- * RETURN: None
- *
- * DESCRIPTION: Initialize a new namespace node and install it amongst
- * its peers.
- *
- * Note: Current namespace lookup is linear search. This appears
- * to be sufficient as namespace searches consume only a small
- * fraction of the execution time of the ACPI subsystem.
- *
- ******************************************************************************/
-
-void
-AcpiNsInstallNode (
- ACPI_WALK_STATE *WalkState,
- ACPI_NAMESPACE_NODE *ParentNode, /* Parent */
- ACPI_NAMESPACE_NODE *Node, /* New Child*/
- ACPI_OBJECT_TYPE Type)
-{
- ACPI_OWNER_ID OwnerId = 0;
- ACPI_NAMESPACE_NODE *ChildNode;
-
-
- ACPI_FUNCTION_TRACE (NsInstallNode);
-
-
- /*
- * Get the owner ID from the Walk state
- * The owner ID is used to track table deletion and
- * deletion of objects created by methods
- */
- if (WalkState)
- {
- OwnerId = WalkState->OwnerId;
- }
-
- /* Link the new entry into the parent and existing children */
-
- ChildNode = ParentNode->Child;
- if (!ChildNode)
- {
- ParentNode->Child = Node;
- Node->Flags |= ANOBJ_END_OF_PEER_LIST;
- Node->Peer = ParentNode;
- }
- else
- {
- while (!(ChildNode->Flags & ANOBJ_END_OF_PEER_LIST))
- {
- ChildNode = ChildNode->Peer;
- }
-
- ChildNode->Peer = Node;
-
- /* Clear end-of-list flag */
-
- ChildNode->Flags &= ~ANOBJ_END_OF_PEER_LIST;
- Node->Flags |= ANOBJ_END_OF_PEER_LIST;
- Node->Peer = ParentNode;
- }
-
- /* Init the new entry */
-
- Node->OwnerId = OwnerId;
- Node->Type = (UINT8) Type;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
- "%4.4s (%s) [Node %p Owner %X] added to %4.4s (%s) [Node %p]\n",
- AcpiUtGetNodeName (Node), AcpiUtGetTypeName (Node->Type), Node, OwnerId,
- AcpiUtGetNodeName (ParentNode), AcpiUtGetTypeName (ParentNode->Type),
- ParentNode));
-
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsDeleteChildren
- *
- * PARAMETERS: ParentNode - Delete this objects children
- *
- * RETURN: None.
- *
- * DESCRIPTION: Delete all children of the parent object. In other words,
- * deletes a "scope".
- *
- ******************************************************************************/
-
-void
-AcpiNsDeleteChildren (
- ACPI_NAMESPACE_NODE *ParentNode)
-{
- ACPI_NAMESPACE_NODE *ChildNode;
- ACPI_NAMESPACE_NODE *NextNode;
- UINT8 Flags;
-
-
- ACPI_FUNCTION_TRACE_PTR (NsDeleteChildren, ParentNode);
-
-
- if (!ParentNode)
- {
- return_VOID;
- }
-
- /* If no children, all done! */
-
- ChildNode = ParentNode->Child;
- if (!ChildNode)
- {
- return_VOID;
- }
-
- /*
- * Deallocate all children at this level
- */
- do
- {
- /* Get the things we need */
-
- NextNode = ChildNode->Peer;
- Flags = ChildNode->Flags;
-
- /* Grandchildren should have all been deleted already */
-
- if (ChildNode->Child)
- {
- ACPI_ERROR ((AE_INFO, "Found a grandchild! P=%p C=%p",
- ParentNode, ChildNode));
- }
-
- /* Now we can free this child object */
-
- ACPI_MEM_TRACKING (AcpiGbl_NsNodeList->TotalFreed++);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "Object %p, Remaining %X\n",
- ChildNode, AcpiGbl_CurrentNodeCount));
-
- /*
- * Detach an object if there is one, then free the child node
- */
- AcpiNsDetachObject (ChildNode);
-
- /* Now we can delete the node */
-
- (void) AcpiOsReleaseObject (AcpiGbl_NamespaceCache, ChildNode);
-
- /* And move on to the next child in the list */
-
- ChildNode = NextNode;
-
- } while (!(Flags & ANOBJ_END_OF_PEER_LIST));
-
-
- /* Clear the parent's child pointer */
-
- ParentNode->Child = NULL;
-
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsDeleteNamespaceSubtree
- *
- * PARAMETERS: ParentNode - Root of the subtree to be deleted
- *
- * RETURN: None.
- *
- * DESCRIPTION: Delete a subtree of the namespace. This includes all objects
- * stored within the subtree.
- *
- ******************************************************************************/
-
-void
-AcpiNsDeleteNamespaceSubtree (
- ACPI_NAMESPACE_NODE *ParentNode)
-{
- ACPI_NAMESPACE_NODE *ChildNode = NULL;
- UINT32 Level = 1;
-
-
- ACPI_FUNCTION_TRACE (NsDeleteNamespaceSubtree);
-
-
- if (!ParentNode)
- {
- return_VOID;
- }
-
- /*
- * Traverse the tree of objects until we bubble back up
- * to where we started.
- */
- while (Level > 0)
- {
- /* Get the next node in this scope (NULL if none) */
-
- ChildNode = AcpiNsGetNextNode (ACPI_TYPE_ANY, ParentNode, ChildNode);
- if (ChildNode)
- {
- /* Found a child node - detach any attached object */
-
- AcpiNsDetachObject (ChildNode);
-
- /* Check if this node has any children */
-
- if (AcpiNsGetNextNode (ACPI_TYPE_ANY, ChildNode, NULL))
- {
- /*
- * There is at least one child of this node,
- * visit the node
- */
- Level++;
- ParentNode = ChildNode;
- ChildNode = NULL;
- }
- }
- else
- {
- /*
- * No more children of this parent node.
- * Move up to the grandparent.
- */
- Level--;
-
- /*
- * Now delete all of the children of this parent
- * all at the same time.
- */
- AcpiNsDeleteChildren (ParentNode);
-
- /* New "last child" is this parent node */
-
- ChildNode = ParentNode;
-
- /* Move up the tree to the grandparent */
-
- ParentNode = AcpiNsGetParentNode (ParentNode);
- }
- }
-
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsDeleteNamespaceByOwner
- *
- * PARAMETERS: OwnerId - All nodes with this owner will be deleted
- *
- * RETURN: Status
- *
- * DESCRIPTION: Delete entries within the namespace that are owned by a
- * specific ID. Used to delete entire ACPI tables. All
- * reference counts are updated.
- *
- * MUTEX: Locks namespace during deletion walk.
- *
- ******************************************************************************/
-
-void
-AcpiNsDeleteNamespaceByOwner (
- ACPI_OWNER_ID OwnerId)
-{
- ACPI_NAMESPACE_NODE *ChildNode;
- ACPI_NAMESPACE_NODE *DeletionNode;
- ACPI_NAMESPACE_NODE *ParentNode;
- UINT32 Level;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE_U32 (NsDeleteNamespaceByOwner, OwnerId);
-
-
- if (OwnerId == 0)
- {
- return_VOID;
- }
-
- /* Lock namespace for possible update */
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return_VOID;
- }
-
- DeletionNode = NULL;
- ParentNode = AcpiGbl_RootNode;
- ChildNode = NULL;
- Level = 1;
-
- /*
- * Traverse the tree of nodes until we bubble back up
- * to where we started.
- */
- while (Level > 0)
- {
- /*
- * Get the next child of this parent node. When ChildNode is NULL,
- * the first child of the parent is returned
- */
- ChildNode = AcpiNsGetNextNode (ACPI_TYPE_ANY, ParentNode, ChildNode);
-
- if (DeletionNode)
- {
- AcpiNsDeleteChildren (DeletionNode);
- AcpiNsDeleteNode (DeletionNode);
- DeletionNode = NULL;
- }
-
- if (ChildNode)
- {
- if (ChildNode->OwnerId == OwnerId)
- {
- /* Found a matching child node - detach any attached object */
-
- AcpiNsDetachObject (ChildNode);
- }
-
- /* Check if this node has any children */
-
- if (AcpiNsGetNextNode (ACPI_TYPE_ANY, ChildNode, NULL))
- {
- /*
- * There is at least one child of this node,
- * visit the node
- */
- Level++;
- ParentNode = ChildNode;
- ChildNode = NULL;
- }
- else if (ChildNode->OwnerId == OwnerId)
- {
- DeletionNode = ChildNode;
- }
- }
- else
- {
- /*
- * No more children of this parent node.
- * Move up to the grandparent.
- */
- Level--;
- if (Level != 0)
- {
- if (ParentNode->OwnerId == OwnerId)
- {
- DeletionNode = ParentNode;
- }
- }
-
- /* New "last child" is this parent node */
-
- ChildNode = ParentNode;
-
- /* Move up the tree to the grandparent */
-
- ParentNode = AcpiNsGetParentNode (ParentNode);
- }
- }
-
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- return_VOID;
-}
-
-
diff --git a/sys/contrib/dev/acpica/nsdump.c b/sys/contrib/dev/acpica/nsdump.c
deleted file mode 100644
index 7c2028a..0000000
--- a/sys/contrib/dev/acpica/nsdump.c
+++ /dev/null
@@ -1,826 +0,0 @@
-/******************************************************************************
- *
- * Module Name: nsdump - table dumping routines for debug
- * $Revision: 1.182 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __NSDUMP_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acparser.h>
-
-
-#define _COMPONENT ACPI_NAMESPACE
- ACPI_MODULE_NAME ("nsdump")
-
-/* Local prototypes */
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-void
-AcpiNsDumpRootDevices (
- void);
-
-static ACPI_STATUS
-AcpiNsDumpOneDevice (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *Context,
- void **ReturnValue);
-#endif
-
-
-#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsPrintPathname
- *
- * PARAMETERS: NumSegments - Number of ACPI name segments
- * Pathname - The compressed (internal) path
- *
- * RETURN: None
- *
- * DESCRIPTION: Print an object's full namespace pathname
- *
- ******************************************************************************/
-
-void
-AcpiNsPrintPathname (
- UINT32 NumSegments,
- char *Pathname)
-{
- ACPI_NATIVE_UINT i;
-
-
- ACPI_FUNCTION_NAME (NsPrintPathname);
-
-
- if (!(AcpiDbgLevel & ACPI_LV_NAMES) || !(AcpiDbgLayer & ACPI_NAMESPACE))
- {
- return;
- }
-
- /* Print the entire name */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "["));
-
- while (NumSegments)
- {
- for (i = 0; i < 4; i++)
- {
- ACPI_IS_PRINT (Pathname[i]) ?
- AcpiOsPrintf ("%c", Pathname[i]) :
- AcpiOsPrintf ("?");
- }
-
- Pathname += ACPI_NAME_SIZE;
- NumSegments--;
- if (NumSegments)
- {
- AcpiOsPrintf (".");
- }
- }
-
- AcpiOsPrintf ("]\n");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsDumpPathname
- *
- * PARAMETERS: Handle - Object
- * Msg - Prefix message
- * Level - Desired debug level
- * Component - Caller's component ID
- *
- * RETURN: None
- *
- * DESCRIPTION: Print an object's full namespace pathname
- * Manages allocation/freeing of a pathname buffer
- *
- ******************************************************************************/
-
-void
-AcpiNsDumpPathname (
- ACPI_HANDLE Handle,
- char *Msg,
- UINT32 Level,
- UINT32 Component)
-{
-
- ACPI_FUNCTION_TRACE (NsDumpPathname);
-
-
- /* Do this only if the requested debug level and component are enabled */
-
- if (!(AcpiDbgLevel & Level) || !(AcpiDbgLayer & Component))
- {
- return_VOID;
- }
-
- /* Convert handle to a full pathname and print it (with supplied message) */
-
- AcpiNsPrintNodePathname (Handle, Msg);
- AcpiOsPrintf ("\n");
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsDumpOneObject
- *
- * PARAMETERS: ObjHandle - Node to be dumped
- * Level - Nesting level of the handle
- * Context - Passed into WalkNamespace
- * ReturnValue - Not used
- *
- * RETURN: Status
- *
- * DESCRIPTION: Dump a single Node
- * This procedure is a UserFunction called by AcpiNsWalkNamespace.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsDumpOneObject (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *Context,
- void **ReturnValue)
-{
- ACPI_WALK_INFO *Info = (ACPI_WALK_INFO *) Context;
- ACPI_NAMESPACE_NODE *ThisNode;
- ACPI_OPERAND_OBJECT *ObjDesc = NULL;
- ACPI_OBJECT_TYPE ObjType;
- ACPI_OBJECT_TYPE Type;
- UINT32 BytesToDump;
- UINT32 DbgLevel;
- UINT32 i;
-
-
- ACPI_FUNCTION_NAME (NsDumpOneObject);
-
-
- /* Is output enabled? */
-
- if (!(AcpiDbgLevel & Info->DebugLevel))
- {
- return (AE_OK);
- }
-
- if (!ObjHandle)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Null object handle\n"));
- return (AE_OK);
- }
-
- ThisNode = AcpiNsMapHandleToNode (ObjHandle);
- Type = ThisNode->Type;
-
- /* Check if the owner matches */
-
- if ((Info->OwnerId != ACPI_OWNER_ID_MAX) &&
- (Info->OwnerId != ThisNode->OwnerId))
- {
- return (AE_OK);
- }
-
- if (!(Info->DisplayType & ACPI_DISPLAY_SHORT))
- {
- /* Indent the object according to the level */
-
- AcpiOsPrintf ("%2d%*s", (UINT32) Level - 1, (int) Level * 2, " ");
-
- /* Check the node type and name */
-
- if (Type > ACPI_TYPE_LOCAL_MAX)
- {
- ACPI_WARNING ((AE_INFO, "Invalid ACPI Object Type %08X", Type));
- }
-
- if (!AcpiUtValidAcpiName (ThisNode->Name.Integer))
- {
- ThisNode->Name.Integer = AcpiUtRepairName (ThisNode->Name.Ascii);
-
- ACPI_WARNING ((AE_INFO, "Invalid ACPI Name %08X",
- ThisNode->Name.Integer));
- }
-
- AcpiOsPrintf ("%4.4s", AcpiUtGetNodeName (ThisNode));
- }
-
- /*
- * Now we can print out the pertinent information
- */
- AcpiOsPrintf (" %-12s %p %2.2X ",
- AcpiUtGetTypeName (Type), ThisNode, ThisNode->OwnerId);
-
- DbgLevel = AcpiDbgLevel;
- AcpiDbgLevel = 0;
- ObjDesc = AcpiNsGetAttachedObject (ThisNode);
- AcpiDbgLevel = DbgLevel;
-
- /* Temp nodes are those nodes created by a control method */
-
- if (ThisNode->Flags & ANOBJ_TEMPORARY)
- {
- AcpiOsPrintf ("(T) ");
- }
-
- switch (Info->DisplayType & ACPI_DISPLAY_MASK)
- {
- case ACPI_DISPLAY_SUMMARY:
-
- if (!ObjDesc)
- {
- /* No attached object, we are done */
-
- AcpiOsPrintf ("\n");
- return (AE_OK);
- }
-
- switch (Type)
- {
- case ACPI_TYPE_PROCESSOR:
-
- AcpiOsPrintf ("ID %X Len %.4X Addr %p\n",
- ObjDesc->Processor.ProcId, ObjDesc->Processor.Length,
- (char *) ObjDesc->Processor.Address);
- break;
-
-
- case ACPI_TYPE_DEVICE:
-
- AcpiOsPrintf ("Notify Object: %p\n", ObjDesc);
- break;
-
-
- case ACPI_TYPE_METHOD:
-
- AcpiOsPrintf ("Args %X Len %.4X Aml %p\n",
- (UINT32) ObjDesc->Method.ParamCount,
- ObjDesc->Method.AmlLength, ObjDesc->Method.AmlStart);
- break;
-
-
- case ACPI_TYPE_INTEGER:
-
- AcpiOsPrintf ("= %8.8X%8.8X\n",
- ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
- break;
-
-
- case ACPI_TYPE_PACKAGE:
-
- if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)
- {
- AcpiOsPrintf ("Elements %.2X\n",
- ObjDesc->Package.Count);
- }
- else
- {
- AcpiOsPrintf ("[Length not yet evaluated]\n");
- }
- break;
-
-
- case ACPI_TYPE_BUFFER:
-
- if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)
- {
- AcpiOsPrintf ("Len %.2X",
- ObjDesc->Buffer.Length);
-
- /* Dump some of the buffer */
-
- if (ObjDesc->Buffer.Length > 0)
- {
- AcpiOsPrintf (" =");
- for (i = 0; (i < ObjDesc->Buffer.Length && i < 12); i++)
- {
- AcpiOsPrintf (" %.2hX", ObjDesc->Buffer.Pointer[i]);
- }
- }
- AcpiOsPrintf ("\n");
- }
- else
- {
- AcpiOsPrintf ("[Length not yet evaluated]\n");
- }
- break;
-
-
- case ACPI_TYPE_STRING:
-
- AcpiOsPrintf ("Len %.2X ", ObjDesc->String.Length);
- AcpiUtPrintString (ObjDesc->String.Pointer, 32);
- AcpiOsPrintf ("\n");
- break;
-
-
- case ACPI_TYPE_REGION:
-
- AcpiOsPrintf ("[%s]",
- AcpiUtGetRegionName (ObjDesc->Region.SpaceId));
- if (ObjDesc->Region.Flags & AOPOBJ_DATA_VALID)
- {
- AcpiOsPrintf (" Addr %8.8X%8.8X Len %.4X\n",
- ACPI_FORMAT_UINT64 (ObjDesc->Region.Address),
- ObjDesc->Region.Length);
- }
- else
- {
- AcpiOsPrintf (" [Address/Length not yet evaluated]\n");
- }
- break;
-
-
- case ACPI_TYPE_LOCAL_REFERENCE:
-
- AcpiOsPrintf ("[%s]\n",
- AcpiPsGetOpcodeName (ObjDesc->Reference.Opcode));
- break;
-
-
- case ACPI_TYPE_BUFFER_FIELD:
-
- if (ObjDesc->BufferField.BufferObj &&
- ObjDesc->BufferField.BufferObj->Buffer.Node)
- {
- AcpiOsPrintf ("Buf [%4.4s]",
- AcpiUtGetNodeName (ObjDesc->BufferField.BufferObj->Buffer.Node));
- }
- break;
-
-
- case ACPI_TYPE_LOCAL_REGION_FIELD:
-
- AcpiOsPrintf ("Rgn [%4.4s]",
- AcpiUtGetNodeName (ObjDesc->CommonField.RegionObj->Region.Node));
- break;
-
-
- case ACPI_TYPE_LOCAL_BANK_FIELD:
-
- AcpiOsPrintf ("Rgn [%4.4s] Bnk [%4.4s]",
- AcpiUtGetNodeName (ObjDesc->CommonField.RegionObj->Region.Node),
- AcpiUtGetNodeName (ObjDesc->BankField.BankObj->CommonField.Node));
- break;
-
-
- case ACPI_TYPE_LOCAL_INDEX_FIELD:
-
- AcpiOsPrintf ("Idx [%4.4s] Dat [%4.4s]",
- AcpiUtGetNodeName (ObjDesc->IndexField.IndexObj->CommonField.Node),
- AcpiUtGetNodeName (ObjDesc->IndexField.DataObj->CommonField.Node));
- break;
-
-
- case ACPI_TYPE_LOCAL_ALIAS:
- case ACPI_TYPE_LOCAL_METHOD_ALIAS:
-
- AcpiOsPrintf ("Target %4.4s (%p)\n",
- AcpiUtGetNodeName (ObjDesc), ObjDesc);
- break;
-
- default:
-
- AcpiOsPrintf ("Object %p\n", ObjDesc);
- break;
- }
-
- /* Common field handling */
-
- switch (Type)
- {
- case ACPI_TYPE_BUFFER_FIELD:
- case ACPI_TYPE_LOCAL_REGION_FIELD:
- case ACPI_TYPE_LOCAL_BANK_FIELD:
- case ACPI_TYPE_LOCAL_INDEX_FIELD:
-
- AcpiOsPrintf (" Off %.3X Len %.2X Acc %.2hd\n",
- (ObjDesc->CommonField.BaseByteOffset * 8)
- + ObjDesc->CommonField.StartFieldBitOffset,
- ObjDesc->CommonField.BitLength,
- ObjDesc->CommonField.AccessByteWidth);
- break;
-
- default:
- break;
- }
- break;
-
-
- case ACPI_DISPLAY_OBJECTS:
-
- AcpiOsPrintf ("O:%p", ObjDesc);
- if (!ObjDesc)
- {
- /* No attached object, we are done */
-
- AcpiOsPrintf ("\n");
- return (AE_OK);
- }
-
- AcpiOsPrintf ("(R%d)", ObjDesc->Common.ReferenceCount);
-
- switch (Type)
- {
- case ACPI_TYPE_METHOD:
-
- /* Name is a Method and its AML offset/length are set */
-
- AcpiOsPrintf (" M:%p-%X\n", ObjDesc->Method.AmlStart,
- ObjDesc->Method.AmlLength);
- break;
-
- case ACPI_TYPE_INTEGER:
-
- AcpiOsPrintf (" I:%8.8X8.8%X\n",
- ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
- break;
-
- case ACPI_TYPE_STRING:
-
- AcpiOsPrintf (" S:%p-%X\n", ObjDesc->String.Pointer,
- ObjDesc->String.Length);
- break;
-
- case ACPI_TYPE_BUFFER:
-
- AcpiOsPrintf (" B:%p-%X\n", ObjDesc->Buffer.Pointer,
- ObjDesc->Buffer.Length);
- break;
-
- default:
-
- AcpiOsPrintf ("\n");
- break;
- }
- break;
-
-
- default:
- AcpiOsPrintf ("\n");
- break;
- }
-
- /* If debug turned off, done */
-
- if (!(AcpiDbgLevel & ACPI_LV_VALUES))
- {
- return (AE_OK);
- }
-
-
- /* If there is an attached object, display it */
-
- DbgLevel = AcpiDbgLevel;
- AcpiDbgLevel = 0;
- ObjDesc = AcpiNsGetAttachedObject (ThisNode);
- AcpiDbgLevel = DbgLevel;
-
- /* Dump attached objects */
-
- while (ObjDesc)
- {
- ObjType = ACPI_TYPE_INVALID;
- AcpiOsPrintf ("Attached Object %p: ", ObjDesc);
-
- /* Decode the type of attached object and dump the contents */
-
- switch (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc))
- {
- case ACPI_DESC_TYPE_NAMED:
-
- AcpiOsPrintf ("(Ptr to Node)\n");
- BytesToDump = sizeof (ACPI_NAMESPACE_NODE);
- ACPI_DUMP_BUFFER (ObjDesc, BytesToDump);
- break;
-
- case ACPI_DESC_TYPE_OPERAND:
-
- ObjType = ACPI_GET_OBJECT_TYPE (ObjDesc);
-
- if (ObjType > ACPI_TYPE_LOCAL_MAX)
- {
- AcpiOsPrintf ("(Ptr to ACPI Object type %X [UNKNOWN])\n",
- ObjType);
- BytesToDump = 32;
- }
- else
- {
- AcpiOsPrintf ("(Ptr to ACPI Object type %X [%s])\n",
- ObjType, AcpiUtGetTypeName (ObjType));
- BytesToDump = sizeof (ACPI_OPERAND_OBJECT);
- }
-
- ACPI_DUMP_BUFFER (ObjDesc, BytesToDump);
- break;
-
- default:
-
- break;
- }
-
- /* If value is NOT an internal object, we are done */
-
- if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) != ACPI_DESC_TYPE_OPERAND)
- {
- goto Cleanup;
- }
-
- /*
- * Valid object, get the pointer to next level, if any
- */
- switch (ObjType)
- {
- case ACPI_TYPE_BUFFER:
- case ACPI_TYPE_STRING:
- /*
- * NOTE: takes advantage of common fields between string/buffer
- */
- BytesToDump = ObjDesc->String.Length;
- ObjDesc = (void *) ObjDesc->String.Pointer;
- AcpiOsPrintf ( "(Buffer/String pointer %p length %X)\n",
- ObjDesc, BytesToDump);
- ACPI_DUMP_BUFFER (ObjDesc, BytesToDump);
- goto Cleanup;
-
- case ACPI_TYPE_BUFFER_FIELD:
- ObjDesc = (ACPI_OPERAND_OBJECT *) ObjDesc->BufferField.BufferObj;
- break;
-
- case ACPI_TYPE_PACKAGE:
- ObjDesc = (void *) ObjDesc->Package.Elements;
- break;
-
- case ACPI_TYPE_METHOD:
- ObjDesc = (void *) ObjDesc->Method.AmlStart;
- break;
-
- case ACPI_TYPE_LOCAL_REGION_FIELD:
- ObjDesc = (void *) ObjDesc->Field.RegionObj;
- break;
-
- case ACPI_TYPE_LOCAL_BANK_FIELD:
- ObjDesc = (void *) ObjDesc->BankField.RegionObj;
- break;
-
- case ACPI_TYPE_LOCAL_INDEX_FIELD:
- ObjDesc = (void *) ObjDesc->IndexField.IndexObj;
- break;
-
- default:
- goto Cleanup;
- }
-
- ObjType = ACPI_TYPE_INVALID; /* Terminate loop after next pass */
- }
-
-Cleanup:
- AcpiOsPrintf ("\n");
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsDumpObjects
- *
- * PARAMETERS: Type - Object type to be dumped
- * DisplayType - 0 or ACPI_DISPLAY_SUMMARY
- * MaxDepth - Maximum depth of dump. Use ACPI_UINT32_MAX
- * for an effectively unlimited depth.
- * OwnerId - Dump only objects owned by this ID. Use
- * ACPI_UINT32_MAX to match all owners.
- * StartHandle - Where in namespace to start/end search
- *
- * RETURN: None
- *
- * DESCRIPTION: Dump typed objects within the loaded namespace.
- * Uses AcpiNsWalkNamespace in conjunction with AcpiNsDumpOneObject.
- *
- ******************************************************************************/
-
-void
-AcpiNsDumpObjects (
- ACPI_OBJECT_TYPE Type,
- UINT8 DisplayType,
- UINT32 MaxDepth,
- ACPI_OWNER_ID OwnerId,
- ACPI_HANDLE StartHandle)
-{
- ACPI_WALK_INFO Info;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- Info.DebugLevel = ACPI_LV_TABLES;
- Info.OwnerId = OwnerId;
- Info.DisplayType = DisplayType;
-
- (void) AcpiNsWalkNamespace (Type, StartHandle, MaxDepth,
- ACPI_NS_WALK_NO_UNLOCK | ACPI_NS_WALK_TEMP_NODES,
- AcpiNsDumpOneObject, (void *) &Info, NULL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsDumpEntry
- *
- * PARAMETERS: Handle - Node to be dumped
- * DebugLevel - Output level
- *
- * RETURN: None
- *
- * DESCRIPTION: Dump a single Node
- *
- ******************************************************************************/
-
-void
-AcpiNsDumpEntry (
- ACPI_HANDLE Handle,
- UINT32 DebugLevel)
-{
- ACPI_WALK_INFO Info;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- Info.DebugLevel = DebugLevel;
- Info.OwnerId = ACPI_OWNER_ID_MAX;
- Info.DisplayType = ACPI_DISPLAY_SUMMARY;
-
- (void) AcpiNsDumpOneObject (Handle, 1, &Info, NULL);
-}
-
-
-#ifdef ACPI_ASL_COMPILER
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsDumpTables
- *
- * PARAMETERS: SearchBase - Root of subtree to be dumped, or
- * NS_ALL to dump the entire namespace
- * MaxDepth - Maximum depth of dump. Use INT_MAX
- * for an effectively unlimited depth.
- *
- * RETURN: None
- *
- * DESCRIPTION: Dump the name space, or a portion of it.
- *
- ******************************************************************************/
-
-void
-AcpiNsDumpTables (
- ACPI_HANDLE SearchBase,
- UINT32 MaxDepth)
-{
- ACPI_HANDLE SearchHandle = SearchBase;
-
-
- ACPI_FUNCTION_TRACE (NsDumpTables);
-
-
- if (!AcpiGbl_RootNode)
- {
- /*
- * If the name space has not been initialized,
- * there is nothing to dump.
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, "namespace not initialized!\n"));
- return_VOID;
- }
-
- if (ACPI_NS_ALL == SearchBase)
- {
- /* Entire namespace */
-
- SearchHandle = AcpiGbl_RootNode;
- ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, "\\\n"));
- }
-
- AcpiNsDumpObjects (ACPI_TYPE_ANY, ACPI_DISPLAY_OBJECTS, MaxDepth,
- ACPI_OWNER_ID_MAX, SearchHandle);
- return_VOID;
-}
-#endif
-#endif
-
diff --git a/sys/contrib/dev/acpica/nsdumpdv.c b/sys/contrib/dev/acpica/nsdumpdv.c
deleted file mode 100644
index 91c6b54..0000000
--- a/sys/contrib/dev/acpica/nsdumpdv.c
+++ /dev/null
@@ -1,235 +0,0 @@
-/******************************************************************************
- *
- * Module Name: nsdump - table dumping routines for debug
- * $Revision: 1.20 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __NSDUMPDV_C__
-
-#include <contrib/dev/acpica/acpi.h>
-
-
-/* TBD: This entire module is apparently obsolete and should be removed */
-
-#define _COMPONENT ACPI_NAMESPACE
- ACPI_MODULE_NAME ("nsdumpdv")
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
-
-#include <contrib/dev/acpica/acnamesp.h>
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsDumpOneDevice
- *
- * PARAMETERS: Handle - Node to be dumped
- * Level - Nesting level of the handle
- * Context - Passed into WalkNamespace
- * ReturnValue - Not used
- *
- * RETURN: Status
- *
- * DESCRIPTION: Dump a single Node that represents a device
- * This procedure is a UserFunction called by AcpiNsWalkNamespace.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiNsDumpOneDevice (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *Context,
- void **ReturnValue)
-{
- ACPI_BUFFER Buffer;
- ACPI_DEVICE_INFO *Info;
- ACPI_STATUS Status;
- UINT32 i;
-
-
- ACPI_FUNCTION_NAME (NsDumpOneDevice);
-
-
- Status = AcpiNsDumpOneObject (ObjHandle, Level, Context, ReturnValue);
-
- Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
- Status = AcpiGetObjectInfo (ObjHandle, &Buffer);
- if (ACPI_SUCCESS (Status))
- {
- Info = Buffer.Pointer;
- for (i = 0; i < Level; i++)
- {
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES, " "));
- }
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES,
- " HID: %s, ADR: %8.8X%8.8X, Status: %X\n",
- Info->HardwareId.Value, ACPI_FORMAT_UINT64 (Info->Address),
- Info->CurrentStatus));
- ACPI_FREE (Info);
- }
-
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsDumpRootDevices
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Dump all objects of type "device"
- *
- ******************************************************************************/
-
-void
-AcpiNsDumpRootDevices (
- void)
-{
- ACPI_HANDLE SysBusHandle;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_NAME (NsDumpRootDevices);
-
-
- /* Only dump the table if tracing is enabled */
-
- if (!(ACPI_LV_TABLES & AcpiDbgLevel))
- {
- return;
- }
-
- Status = AcpiGetHandle (NULL, ACPI_NS_SYSTEM_BUS, &SysBusHandle);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_TABLES,
- "Display of all devices in the namespace:\n"));
-
- Status = AcpiNsWalkNamespace (ACPI_TYPE_DEVICE, SysBusHandle,
- ACPI_UINT32_MAX, ACPI_NS_WALK_NO_UNLOCK,
- AcpiNsDumpOneDevice, NULL, NULL);
-}
-
-#endif
-#endif
-
-
diff --git a/sys/contrib/dev/acpica/nseval.c b/sys/contrib/dev/acpica/nseval.c
deleted file mode 100644
index c44af2d..0000000
--- a/sys/contrib/dev/acpica/nseval.c
+++ /dev/null
@@ -1,316 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: nseval - Object evaluation, includes control method execution
- * $Revision: 1.144 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __NSEVAL_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-
-#define _COMPONENT ACPI_NAMESPACE
- ACPI_MODULE_NAME ("nseval")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsEvaluate
- *
- * PARAMETERS: Info - Evaluation info block, contains:
- * PrefixNode - Prefix or Method/Object Node to execute
- * Pathname - Name of method to execute, If NULL, the
- * Node is the object to execute
- * Parameters - List of parameters to pass to the method,
- * terminated by NULL. Params itself may be
- * NULL if no parameters are being passed.
- * ReturnObject - Where to put method's return value (if
- * any). If NULL, no value is returned.
- * ParameterType - Type of Parameter list
- * ReturnObject - Where to put method's return value (if
- * any). If NULL, no value is returned.
- * Flags - ACPI_IGNORE_RETURN_VALUE to delete return
- *
- * RETURN: Status
- *
- * DESCRIPTION: Execute a control method or return the current value of an
- * ACPI namespace object.
- *
- * MUTEX: Locks interpreter
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsEvaluate (
- ACPI_EVALUATE_INFO *Info)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (NsEvaluate);
-
-
- if (!Info)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /* Initialize the return value to an invalid object */
-
- Info->ReturnObject = NULL;
-
- /*
- * Get the actual namespace node for the target object. Handles these cases:
- *
- * 1) Null node, Pathname (absolute path)
- * 2) Node, Pathname (path relative to Node)
- * 3) Node, Null Pathname
- */
- Status = AcpiNsGetNode (Info->PrefixNode, Info->Pathname,
- ACPI_NS_NO_UPSEARCH, &Info->ResolvedNode);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * For a method alias, we must grab the actual method node so that proper
- * scoping context will be established before execution.
- */
- if (AcpiNsGetType (Info->ResolvedNode) == ACPI_TYPE_LOCAL_METHOD_ALIAS)
- {
- Info->ResolvedNode =
- ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, Info->ResolvedNode->Object);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "%s [%p] Value %p\n", Info->Pathname,
- Info->ResolvedNode, AcpiNsGetAttachedObject (Info->ResolvedNode)));
-
- /*
- * Two major cases here:
- *
- * 1) The object is a control method -- execute it
- * 2) The object is not a method -- just return it's current value
- */
- if (AcpiNsGetType (Info->ResolvedNode) == ACPI_TYPE_METHOD)
- {
- /*
- * 1) Object is a control method - execute it
- */
-
- /* Verify that there is a method object associated with this node */
-
- Info->ObjDesc = AcpiNsGetAttachedObject (Info->ResolvedNode);
- if (!Info->ObjDesc)
- {
- ACPI_ERROR ((AE_INFO, "Control method has no attached sub-object"));
- return_ACPI_STATUS (AE_NULL_OBJECT);
- }
-
- ACPI_DUMP_PATHNAME (Info->ResolvedNode, "Execute Method:",
- ACPI_LV_INFO, _COMPONENT);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "Method at AML address %p Length %X\n",
- Info->ObjDesc->Method.AmlStart + 1,
- Info->ObjDesc->Method.AmlLength - 1));
-
- /*
- * Any namespace deletion must acquire both the namespace and
- * interpreter locks to ensure that no thread is using the portion of
- * the namespace that is being deleted.
- *
- * Execute the method via the interpreter. The interpreter is locked
- * here before calling into the AML parser
- */
- AcpiExEnterInterpreter ();
- Status = AcpiPsExecuteMethod (Info);
- AcpiExExitInterpreter ();
- }
- else
- {
- /*
- * 2) Object is not a method, return its current value
- */
-
- /*
- * Objects require additional resolution steps (e.g., the Node may be
- * a field that must be read, etc.) -- we can't just grab the object
- * out of the node.
- *
- * Use ResolveNodeToValue() to get the associated value.
- *
- * NOTE: we can get away with passing in NULL for a walk state because
- * ResolvedNode is guaranteed to not be a reference to either a method
- * local or a method argument (because this interface is never called
- * from a running method.)
- *
- * Even though we do not directly invoke the interpreter for object
- * resolution, we must lock it because we could access an opregion.
- * The opregion access code assumes that the interpreter is locked.
- */
- AcpiExEnterInterpreter ();
-
- /* Function has a strange interface */
-
- Status = AcpiExResolveNodeToValue (&Info->ResolvedNode, NULL);
- AcpiExExitInterpreter ();
-
- /*
- * If AcpiExResolveNodeToValue() succeeded, the return value was placed
- * in ResolvedNode.
- */
- if (ACPI_SUCCESS (Status))
- {
- Status = AE_CTRL_RETURN_VALUE;
- Info->ReturnObject =
- ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, Info->ResolvedNode);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Returning object %p [%s]\n",
- Info->ReturnObject,
- AcpiUtGetObjectTypeName (Info->ReturnObject)));
- }
- }
-
- /*
- * Check if there is a return value that must be dealt with
- */
- if (Status == AE_CTRL_RETURN_VALUE)
- {
- /* If caller does not want the return value, delete it */
-
- if (Info->Flags & ACPI_IGNORE_RETURN_VALUE)
- {
- AcpiUtRemoveReference (Info->ReturnObject);
- Info->ReturnObject = NULL;
- }
-
- /* Map AE_CTRL_RETURN_VALUE to AE_OK, we are done with it */
-
- Status = AE_OK;
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
- "*** Completed evaluation of object %s ***\n", Info->Pathname));
-
- /*
- * Namespace was unlocked by the handling AcpiNs* function, so we
- * just return
- */
- return_ACPI_STATUS (Status);
-}
-
diff --git a/sys/contrib/dev/acpica/nsinit.c b/sys/contrib/dev/acpica/nsinit.c
deleted file mode 100644
index e06ccf7..0000000
--- a/sys/contrib/dev/acpica/nsinit.c
+++ /dev/null
@@ -1,701 +0,0 @@
-/******************************************************************************
- *
- * Module Name: nsinit - namespace initialization
- * $Revision: 1.86 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __NSXFINIT_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/acinterp.h>
-
-#define _COMPONENT ACPI_NAMESPACE
- ACPI_MODULE_NAME ("nsinit")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiNsInitOneObject (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *Context,
- void **ReturnValue);
-
-static ACPI_STATUS
-AcpiNsInitOneDevice (
- ACPI_HANDLE ObjHandle,
- UINT32 NestingLevel,
- void *Context,
- void **ReturnValue);
-
-static ACPI_STATUS
-AcpiNsFindIniMethods (
- ACPI_HANDLE ObjHandle,
- UINT32 NestingLevel,
- void *Context,
- void **ReturnValue);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsInitializeObjects
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Walk the entire namespace and perform any necessary
- * initialization on the objects found therein
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsInitializeObjects (
- void)
-{
- ACPI_STATUS Status;
- ACPI_INIT_WALK_INFO Info;
-
-
- ACPI_FUNCTION_TRACE (NsInitializeObjects);
-
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "**** Starting initialization of namespace objects ****\n"));
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
- "Completing Region/Field/Buffer/Package initialization:"));
-
- /* Set all init info to zero */
-
- ACPI_MEMSET (&Info, 0, sizeof (ACPI_INIT_WALK_INFO));
-
- /* Walk entire namespace from the supplied root */
-
- Status = AcpiWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT,
- ACPI_UINT32_MAX, AcpiNsInitOneObject,
- &Info, NULL);
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status, "During WalkNamespace"));
- }
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
- "\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.PackageInit, Info.PackageCount, Info.ObjectCount));
-
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "%hd Control Methods found\n", Info.MethodCount));
- ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
- "%hd Op Regions found\n", Info.OpRegionCount));
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsInitializeDevices
- *
- * PARAMETERS: None
- *
- * RETURN: ACPI_STATUS
- *
- * DESCRIPTION: Walk the entire namespace and initialize all ACPI devices.
- * This means running _INI on all present devices.
- *
- * Note: We install PCI config space handler on region access,
- * not here.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsInitializeDevices (
- void)
-{
- ACPI_STATUS Status;
- ACPI_DEVICE_WALK_INFO Info;
-
-
- ACPI_FUNCTION_TRACE (NsInitializeDevices);
-
-
- /* Init counters */
-
- Info.DeviceCount = 0;
- Info.Num_STA = 0;
- Info.Num_INI = 0;
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
- "Initializing Device/Processor/Thermal objects by executing _INI methods:"));
-
- /* Tree analysis: find all subtrees that contain _INI methods */
-
- Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT,
- ACPI_UINT32_MAX, FALSE, AcpiNsFindIniMethods, &Info, NULL);
- if (ACPI_FAILURE (Status))
- {
- goto ErrorExit;
- }
-
- /* Allocate the evaluation information block */
-
- Info.EvaluateInfo = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_EVALUATE_INFO));
- if (!Info.EvaluateInfo)
- {
- Status = AE_NO_MEMORY;
- goto ErrorExit;
- }
-
- /* Walk namespace to execute all _INIs on present devices */
-
- Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT,
- ACPI_UINT32_MAX, FALSE, AcpiNsInitOneDevice, &Info, NULL);
-
- ACPI_FREE (Info.EvaluateInfo);
- if (ACPI_FAILURE (Status))
- {
- goto ErrorExit;
- }
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
- "\nExecuted %hd _INI methods requiring %hd _STA executions (examined %hd objects)\n",
- Info.Num_INI, Info.Num_STA, Info.DeviceCount));
-
- return_ACPI_STATUS (Status);
-
-
-ErrorExit:
- ACPI_EXCEPTION ((AE_INFO, Status, "During device initialization"));
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsInitOneObject
- *
- * PARAMETERS: ObjHandle - Node
- * Level - Current nesting level
- * Context - Points to a init info struct
- * ReturnValue - Not used
- *
- * RETURN: Status
- *
- * DESCRIPTION: Callback from AcpiWalkNamespace. Invoked for every object
- * within the namespace.
- *
- * Currently, the only objects that require initialization are:
- * 1) Methods
- * 2) Op Regions
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiNsInitOneObject (
- ACPI_HANDLE ObjHandle,
- UINT32 Level,
- void *Context,
- void **ReturnValue)
-{
- ACPI_OBJECT_TYPE Type;
- ACPI_STATUS Status = AE_OK;
- ACPI_INIT_WALK_INFO *Info = (ACPI_INIT_WALK_INFO *) Context;
- ACPI_NAMESPACE_NODE *Node = (ACPI_NAMESPACE_NODE *) ObjHandle;
- ACPI_OPERAND_OBJECT *ObjDesc;
-
-
- ACPI_FUNCTION_NAME (NsInitOneObject);
-
-
- Info->ObjectCount++;
-
- /* And even then, we are only interested in a few object types */
-
- Type = AcpiNsGetType (ObjHandle);
- ObjDesc = AcpiNsGetAttachedObject (Node);
- if (!ObjDesc)
- {
- return (AE_OK);
- }
-
- /* Increment counters for object types we are looking for */
-
- switch (Type)
- {
- case ACPI_TYPE_REGION:
- Info->OpRegionCount++;
- break;
-
- case ACPI_TYPE_BUFFER_FIELD:
- Info->FieldCount++;
- break;
-
- case ACPI_TYPE_BUFFER:
- Info->BufferCount++;
- break;
-
- case ACPI_TYPE_PACKAGE:
- Info->PackageCount++;
- break;
-
- default:
-
- /* No init required, just exit now */
- return (AE_OK);
- }
-
- /*
- * If the object is already initialized, nothing else to do
- */
- if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)
- {
- return (AE_OK);
- }
-
- /*
- * Must lock the interpreter before executing AML code
- */
- AcpiExEnterInterpreter ();
-
- /*
- * Each of these types can contain executable AML code within the
- * declaration.
- */
- switch (Type)
- {
- case ACPI_TYPE_REGION:
-
- Info->OpRegionInit++;
- Status = AcpiDsGetRegionArguments (ObjDesc);
- break;
-
- case ACPI_TYPE_BUFFER_FIELD:
-
- Info->FieldInit++;
- Status = AcpiDsGetBufferFieldArguments (ObjDesc);
- break;
-
- case ACPI_TYPE_BUFFER:
-
- Info->BufferInit++;
- Status = AcpiDsGetBufferArguments (ObjDesc);
- break;
-
- case ACPI_TYPE_PACKAGE:
-
- Info->PackageInit++;
- Status = AcpiDsGetPackageArguments (ObjDesc);
- break;
-
- default:
- /* No other types can get here */
- break;
- }
-
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Could not execute arguments for [%4.4s] (%s)",
- AcpiUtGetNodeName (Node), AcpiUtGetTypeName (Type)));
- }
-
- /*
- * Print a dot for each object unless we are going to print the entire
- * pathname
- */
- if (!(AcpiDbgLevel & ACPI_LV_INIT_NAMES))
- {
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, "."));
- }
-
- /*
- * We ignore errors from above, and always return OK, since we don't want
- * to abort the walk on any single error.
- */
- AcpiExExitInterpreter ();
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsFindIniMethods
- *
- * PARAMETERS: ACPI_WALK_CALLBACK
- *
- * RETURN: ACPI_STATUS
- *
- * DESCRIPTION: Called during namespace walk. Finds objects named _INI under
- * device/processor/thermal objects, and marks the entire subtree
- * with a SUBTREE_HAS_INI flag. This flag is used during the
- * subsequent device initialization walk to avoid entire subtrees
- * that do not contain an _INI.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiNsFindIniMethods (
- ACPI_HANDLE ObjHandle,
- UINT32 NestingLevel,
- void *Context,
- void **ReturnValue)
-{
- ACPI_DEVICE_WALK_INFO *Info = ACPI_CAST_PTR (ACPI_DEVICE_WALK_INFO, Context);
- ACPI_NAMESPACE_NODE *Node;
- ACPI_NAMESPACE_NODE *ParentNode;
-
-
- /* Keep count of device/processor/thermal objects */
-
- Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, ObjHandle);
- if ((Node->Type == ACPI_TYPE_DEVICE) ||
- (Node->Type == ACPI_TYPE_PROCESSOR) ||
- (Node->Type == ACPI_TYPE_THERMAL))
- {
- Info->DeviceCount++;
- return (AE_OK);
- }
-
- /* We are only looking for methods named _INI */
-
- if (!ACPI_COMPARE_NAME (Node->Name.Ascii, METHOD_NAME__INI))
- {
- return (AE_OK);
- }
-
- /*
- * The only _INI methods that we care about are those that are
- * present under Device, Processor, and Thermal objects.
- */
- ParentNode = AcpiNsGetParentNode (Node);
- switch (ParentNode->Type)
- {
- case ACPI_TYPE_DEVICE:
- case ACPI_TYPE_PROCESSOR:
- case ACPI_TYPE_THERMAL:
-
- /* Mark parent and bubble up the INI present flag to the root */
-
- while (ParentNode)
- {
- ParentNode->Flags |= ANOBJ_SUBTREE_HAS_INI;
- ParentNode = AcpiNsGetParentNode (ParentNode);
- }
- break;
-
- default:
- break;
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsInitOneDevice
- *
- * PARAMETERS: ACPI_WALK_CALLBACK
- *
- * RETURN: ACPI_STATUS
- *
- * DESCRIPTION: This is called once per device soon after ACPI is enabled
- * to initialize each device. It determines if the device is
- * present, and if so, calls _INI.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiNsInitOneDevice (
- ACPI_HANDLE ObjHandle,
- UINT32 NestingLevel,
- void *Context,
- void **ReturnValue)
-{
- ACPI_DEVICE_WALK_INFO *WalkInfo = ACPI_CAST_PTR (ACPI_DEVICE_WALK_INFO, Context);
- ACPI_EVALUATE_INFO *Info = WalkInfo->EvaluateInfo;
- UINT32 Flags;
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *DeviceNode;
-
-
- ACPI_FUNCTION_TRACE (NsInitOneDevice);
-
-
- /* We are interested in Devices, Processors and ThermalZones only */
-
- DeviceNode = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, ObjHandle);
- if ((DeviceNode->Type != ACPI_TYPE_DEVICE) &&
- (DeviceNode->Type != ACPI_TYPE_PROCESSOR) &&
- (DeviceNode->Type != ACPI_TYPE_THERMAL))
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- /*
- * Because of an earlier namespace analysis, all subtrees that contain an
- * _INI method are tagged.
- *
- * If this device subtree does not contain any _INI methods, we
- * can exit now and stop traversing this entire subtree.
- */
- if (!(DeviceNode->Flags & ANOBJ_SUBTREE_HAS_INI))
- {
- return_ACPI_STATUS (AE_CTRL_DEPTH);
- }
-
- /*
- * Run _STA to determine if this device is present and functioning. We
- * must know this information for two important reasons (from ACPI spec):
- *
- * 1) We can only run _INI if the device is present.
- * 2) We must abort the device tree walk on this subtree if the device is
- * not present and is not functional (we will not examine the children)
- *
- * The _STA method is not required to be present under the device, we
- * assume the device is present if _STA does not exist.
- */
- ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname (
- ACPI_TYPE_METHOD, DeviceNode, METHOD_NAME__STA));
-
- Status = AcpiUtExecute_STA (DeviceNode, &Flags);
- if (ACPI_FAILURE (Status))
- {
- /* Ignore error and move on to next device */
-
- return_ACPI_STATUS (AE_OK);
- }
-
- /*
- * Flags == -1 means that _STA was not found. In this case, we assume that
- * the device is both present and functional.
- *
- * From the ACPI spec, description of _STA:
- *
- * "If a device object (including the processor object) does not have an
- * _STA object, then OSPM assumes that all of the above bits are set (in
- * other words, the device is present, ..., and functioning)"
- */
- if (Flags != ACPI_UINT32_MAX)
- {
- WalkInfo->Num_STA++;
- }
-
- /*
- * Examine the PRESENT and FUNCTIONING status bits
- *
- * Note: ACPI spec does not seem to specify behavior for the present but
- * not functioning case, so we assume functioning if present.
- */
- if (!(Flags & ACPI_STA_DEVICE_PRESENT))
- {
- /* Device is not present, we must examine the Functioning bit */
-
- if (Flags & ACPI_STA_DEVICE_FUNCTIONING)
- {
- /*
- * Device is not present but is "functioning". In this case,
- * we will not run _INI, but we continue to examine the children
- * of this device.
- *
- * From the ACPI spec, description of _STA: (Note - no mention
- * of whether to run _INI or not on the device in question)
- *
- * "_STA may return bit 0 clear (not present) with bit 3 set
- * (device is functional). This case is used to indicate a valid
- * device for which no device driver should be loaded (for example,
- * a bridge device.) Children of this device may be present and
- * valid. OSPM should continue enumeration below a device whose
- * _STA returns this bit combination"
- */
- return_ACPI_STATUS (AE_OK);
- }
- else
- {
- /*
- * Device is not present and is not functioning. We must abort the
- * walk of this subtree immediately -- don't look at the children
- * of such a device.
- *
- * From the ACPI spec, description of _INI:
- *
- * "If the _STA method indicates that the device is not present,
- * OSPM will not run the _INI and will not examine the children
- * of the device for _INI methods"
- */
- return_ACPI_STATUS (AE_CTRL_DEPTH);
- }
- }
-
- /*
- * The device is present or is assumed present if no _STA exists.
- * Run the _INI if it exists (not required to exist)
- *
- * Note: We know there is an _INI within this subtree, but it may not be
- * under this particular device, it may be lower in the branch.
- */
- ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname (
- ACPI_TYPE_METHOD, DeviceNode, METHOD_NAME__INI));
-
- Info->PrefixNode = DeviceNode;
- Info->Pathname = METHOD_NAME__INI;
- Info->Parameters = NULL;
- Info->ParameterType = ACPI_PARAM_ARGS;
- Info->Flags = ACPI_IGNORE_RETURN_VALUE;
-
- Status = AcpiNsEvaluate (Info);
- if (ACPI_SUCCESS (Status))
- {
- WalkInfo->Num_INI++;
-
- if ((AcpiDbgLevel <= ACPI_LV_ALL_EXCEPTIONS) &&
- (!(AcpiDbgLevel & ACPI_LV_INFO)))
- {
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, "."));
- }
- }
-
-#ifdef ACPI_DEBUG_OUTPUT
- else if (Status != AE_NOT_FOUND)
- {
- /* Ignore error and move on to next device */
-
- char *ScopeName = AcpiNsGetExternalPathname (Info->ResolvedNode);
-
- ACPI_EXCEPTION ((AE_INFO, Status, "during %s._INI execution",
- ScopeName));
- ACPI_FREE (ScopeName);
- }
-#endif
-
- /* Ignore errors from above */
-
- Status = AE_OK;
-
- /*
- * The _INI method has been run if present; call the Global Initialization
- * Handler for this device.
- */
- if (AcpiGbl_InitHandler)
- {
- Status = AcpiGbl_InitHandler (DeviceNode, ACPI_INIT_DEVICE_INI);
- }
-
- return_ACPI_STATUS (Status);
-}
diff --git a/sys/contrib/dev/acpica/nsload.c b/sys/contrib/dev/acpica/nsload.c
deleted file mode 100644
index 07dd567..0000000
--- a/sys/contrib/dev/acpica/nsload.c
+++ /dev/null
@@ -1,429 +0,0 @@
-/******************************************************************************
- *
- * Module Name: nsload - namespace loading/expanding/contracting procedures
- * $Revision: 1.80 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __NSLOAD_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/actables.h>
-
-
-#define _COMPONENT ACPI_NAMESPACE
- ACPI_MODULE_NAME ("nsload")
-
-/* Local prototypes */
-
-#ifdef ACPI_FUTURE_IMPLEMENTATION
-ACPI_STATUS
-AcpiNsUnloadNamespace (
- ACPI_HANDLE Handle);
-
-static ACPI_STATUS
-AcpiNsDeleteSubtree (
- ACPI_HANDLE StartHandle);
-#endif
-
-
-#ifndef ACPI_NO_METHOD_EXECUTION
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsLoadTable
- *
- * PARAMETERS: TableIndex - Index for table to be loaded
- * Node - Owning NS node
- *
- * RETURN: Status
- *
- * DESCRIPTION: Load one ACPI table into the namespace
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsLoadTable (
- ACPI_NATIVE_UINT TableIndex,
- ACPI_NAMESPACE_NODE *Node)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (NsLoadTable);
-
-
- /*
- * Parse the table and load the namespace with all named
- * objects found within. Control methods are NOT parsed
- * at this time. In fact, the control methods cannot be
- * parsed until the entire namespace is loaded, because
- * if a control method makes a forward reference (call)
- * to another control method, we can't continue parsing
- * because we don't know how many arguments to parse next!
- */
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* If table already loaded into namespace, just return */
-
- if (AcpiTbIsTableLoaded (TableIndex))
- {
- Status = AE_ALREADY_EXISTS;
- goto Unlock;
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "**** Loading table into namespace ****\n"));
-
- Status = AcpiTbAllocateOwnerId (TableIndex);
- if (ACPI_FAILURE (Status))
- {
- goto Unlock;
- }
-
- Status = AcpiNsParseTable (TableIndex, Node->Child);
- if (ACPI_SUCCESS (Status))
- {
- AcpiTbSetTableLoadedFlag (TableIndex, TRUE);
- }
- else
- {
- AcpiTbReleaseOwnerId (TableIndex);
- }
-
-Unlock:
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * Now we can parse the control methods. We always parse
- * them here for a sanity check, and if configured for
- * just-in-time parsing, we delete the control method
- * parse trees.
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "**** Begin Table Method Parsing and Object Initialization ****\n"));
-
- Status = AcpiDsInitializeObjects (TableIndex, Node);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "**** Completed Table Method Parsing and Object Initialization ****\n"));
-
- return_ACPI_STATUS (Status);
-}
-
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-/*******************************************************************************
- *
- * FUNCTION: AcpiLoadNamespace
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Load the name space from what ever is pointed to by DSDT.
- * (DSDT points to either the BIOS or a buffer.)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsLoadNamespace (
- void)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (AcpiLoadNameSpace);
-
-
- /* There must be at least a DSDT installed */
-
- if (AcpiGbl_DSDT == NULL)
- {
- ACPI_ERROR ((AE_INFO, "DSDT is not in memory"));
- return_ACPI_STATUS (AE_NO_ACPI_TABLES);
- }
-
- /*
- * Load the namespace. The DSDT is required,
- * but the SSDT and PSDT tables are optional.
- */
- Status = AcpiNsLoadTableByType (ACPI_TABLE_ID_DSDT);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Ignore exceptions from these */
-
- (void) AcpiNsLoadTableByType (ACPI_TABLE_ID_SSDT);
- (void) AcpiNsLoadTableByType (ACPI_TABLE_ID_PSDT);
-
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
- "ACPI Namespace successfully loaded at root %p\n",
- AcpiGbl_RootNode));
-
- return_ACPI_STATUS (Status);
-}
-#endif
-
-#ifdef ACPI_FUTURE_IMPLEMENTATION
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsDeleteSubtree
- *
- * PARAMETERS: StartHandle - Handle in namespace where search begins
- *
- * RETURNS Status
- *
- * DESCRIPTION: Walks the namespace starting at the given handle and deletes
- * all objects, entries, and scopes in the entire subtree.
- *
- * Namespace/Interpreter should be locked or the subsystem should
- * be in shutdown before this routine is called.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiNsDeleteSubtree (
- ACPI_HANDLE StartHandle)
-{
- ACPI_STATUS Status;
- ACPI_HANDLE ChildHandle;
- ACPI_HANDLE ParentHandle;
- ACPI_HANDLE NextChildHandle;
- ACPI_HANDLE Dummy;
- UINT32 Level;
-
-
- ACPI_FUNCTION_TRACE (NsDeleteSubtree);
-
-
- ParentHandle = StartHandle;
- ChildHandle = NULL;
- Level = 1;
-
- /*
- * Traverse the tree of objects until we bubble back up
- * to where we started.
- */
- while (Level > 0)
- {
- /* Attempt to get the next object in this scope */
-
- Status = AcpiGetNextObject (ACPI_TYPE_ANY, ParentHandle,
- ChildHandle, &NextChildHandle);
-
- ChildHandle = NextChildHandle;
-
- /* Did we get a new object? */
-
- if (ACPI_SUCCESS (Status))
- {
- /* Check if this object has any children */
-
- if (ACPI_SUCCESS (AcpiGetNextObject (ACPI_TYPE_ANY, ChildHandle,
- NULL, &Dummy)))
- {
- /*
- * There is at least one child of this object,
- * visit the object
- */
- Level++;
- ParentHandle = ChildHandle;
- ChildHandle = NULL;
- }
- }
- else
- {
- /*
- * No more children in this object, go back up to
- * the object's parent
- */
- Level--;
-
- /* Delete all children now */
-
- AcpiNsDeleteChildren (ChildHandle);
-
- ChildHandle = ParentHandle;
- Status = AcpiGetParent (ParentHandle, &ParentHandle);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
- }
-
- /* Now delete the starting object, and we are done */
-
- AcpiNsDeleteNode (ChildHandle);
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsUnloadNameSpace
- *
- * PARAMETERS: Handle - Root of namespace subtree to be deleted
- *
- * RETURN: Status
- *
- * DESCRIPTION: Shrinks the namespace, typically in response to an undocking
- * event. Deletes an entire subtree starting from (and
- * including) the given handle.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsUnloadNamespace (
- ACPI_HANDLE Handle)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (NsUnloadNameSpace);
-
-
- /* Parameter validation */
-
- if (!AcpiGbl_RootNode)
- {
- return_ACPI_STATUS (AE_NO_NAMESPACE);
- }
-
- if (!Handle)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /* This function does the real work */
-
- Status = AcpiNsDeleteSubtree (Handle);
-
- return_ACPI_STATUS (Status);
-}
-#endif
-#endif
-
diff --git a/sys/contrib/dev/acpica/nsnames.c b/sys/contrib/dev/acpica/nsnames.c
deleted file mode 100644
index 8ff7aaf..0000000
--- a/sys/contrib/dev/acpica/nsnames.c
+++ /dev/null
@@ -1,347 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: nsnames - Name manipulation and search
- * $Revision: 1.98 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __NSNAMES_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-
-#define _COMPONENT ACPI_NAMESPACE
- ACPI_MODULE_NAME ("nsnames")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsBuildExternalPath
- *
- * PARAMETERS: Node - NS node whose pathname is needed
- * Size - Size of the pathname
- * *NameBuffer - Where to return the pathname
- *
- * RETURN: Places the pathname into the NameBuffer, in external format
- * (name segments separated by path separators)
- *
- * DESCRIPTION: Generate a full pathaname
- *
- ******************************************************************************/
-
-void
-AcpiNsBuildExternalPath (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_SIZE Size,
- char *NameBuffer)
-{
- ACPI_SIZE Index;
- ACPI_NAMESPACE_NODE *ParentNode;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /* Special case for root */
-
- Index = Size - 1;
- if (Index < ACPI_NAME_SIZE)
- {
- NameBuffer[0] = AML_ROOT_PREFIX;
- NameBuffer[1] = 0;
- return;
- }
-
- /* Store terminator byte, then build name backwards */
-
- ParentNode = Node;
- NameBuffer[Index] = 0;
-
- while ((Index > ACPI_NAME_SIZE) && (ParentNode != AcpiGbl_RootNode))
- {
- Index -= ACPI_NAME_SIZE;
-
- /* Put the name into the buffer */
-
- ACPI_MOVE_32_TO_32 ((NameBuffer + Index), &ParentNode->Name);
- ParentNode = AcpiNsGetParentNode (ParentNode);
-
- /* Prefix name with the path separator */
-
- Index--;
- NameBuffer[Index] = ACPI_PATH_SEPARATOR;
- }
-
- /* Overwrite final separator with the root prefix character */
-
- NameBuffer[Index] = AML_ROOT_PREFIX;
-
- if (Index != 0)
- {
- ACPI_ERROR ((AE_INFO,
- "Could not construct pathname; index=%X, size=%X, Path=%s",
- (UINT32) Index, (UINT32) Size, &NameBuffer[Size]));
- }
-
- return;
-}
-
-
-#ifdef ACPI_DEBUG_OUTPUT
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsGetExternalPathname
- *
- * PARAMETERS: Node - Namespace node whose pathname is needed
- *
- * RETURN: Pointer to storage containing the fully qualified name of
- * the node, In external format (name segments separated by path
- * separators.)
- *
- * DESCRIPTION: Used for debug printing in AcpiNsSearchTable().
- *
- ******************************************************************************/
-
-char *
-AcpiNsGetExternalPathname (
- ACPI_NAMESPACE_NODE *Node)
-{
- char *NameBuffer;
- ACPI_SIZE Size;
-
-
- ACPI_FUNCTION_TRACE_PTR (NsGetExternalPathname, Node);
-
-
- /* Calculate required buffer size based on depth below root */
-
- Size = AcpiNsGetPathnameLength (Node);
-
- /* Allocate a buffer to be returned to caller */
-
- NameBuffer = ACPI_ALLOCATE_ZEROED (Size);
- if (!NameBuffer)
- {
- ACPI_ERROR ((AE_INFO, "Allocation failure"));
- return_PTR (NULL);
- }
-
- /* Build the path in the allocated buffer */
-
- AcpiNsBuildExternalPath (Node, Size, NameBuffer);
- return_PTR (NameBuffer);
-}
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsGetPathnameLength
- *
- * PARAMETERS: Node - Namespace node
- *
- * RETURN: Length of path, including prefix
- *
- * DESCRIPTION: Get the length of the pathname string for this node
- *
- ******************************************************************************/
-
-ACPI_SIZE
-AcpiNsGetPathnameLength (
- ACPI_NAMESPACE_NODE *Node)
-{
- ACPI_SIZE Size;
- ACPI_NAMESPACE_NODE *NextNode;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /*
- * Compute length of pathname as 5 * number of name segments.
- * Go back up the parent tree to the root
- */
- Size = 0;
- NextNode = Node;
-
- while (NextNode && (NextNode != AcpiGbl_RootNode))
- {
- Size += ACPI_PATH_SEGMENT_LENGTH;
- NextNode = AcpiNsGetParentNode (NextNode);
- }
-
- if (!Size)
- {
- Size = 1; /* Root node case */
- }
-
- return (Size + 1); /* +1 for null string terminator */
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsHandleToPathname
- *
- * PARAMETERS: TargetHandle - Handle of named object whose name is
- * to be found
- * Buffer - Where the pathname is returned
- *
- * RETURN: Status, Buffer is filled with pathname if status is AE_OK
- *
- * DESCRIPTION: Build and return a full namespace pathname
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsHandleToPathname (
- ACPI_HANDLE TargetHandle,
- ACPI_BUFFER *Buffer)
-{
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_SIZE RequiredSize;
-
-
- ACPI_FUNCTION_TRACE_PTR (NsHandleToPathname, TargetHandle);
-
-
- Node = AcpiNsMapHandleToNode (TargetHandle);
- if (!Node)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /* Determine size required for the caller buffer */
-
- RequiredSize = AcpiNsGetPathnameLength (Node);
-
- /* Validate/Allocate/Clear caller buffer */
-
- Status = AcpiUtInitializeBuffer (Buffer, RequiredSize);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Build the path in the caller buffer */
-
- AcpiNsBuildExternalPath (Node, RequiredSize, Buffer->Pointer);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%s [%X]\n",
- (char *) Buffer->Pointer, (UINT32) RequiredSize));
- return_ACPI_STATUS (AE_OK);
-}
-
-
diff --git a/sys/contrib/dev/acpica/nsobject.c b/sys/contrib/dev/acpica/nsobject.c
deleted file mode 100644
index 622638c..0000000
--- a/sys/contrib/dev/acpica/nsobject.c
+++ /dev/null
@@ -1,567 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: nsobject - Utilities for objects attached to namespace
- * table entries
- * $Revision: 1.98 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __NSOBJECT_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-
-#define _COMPONENT ACPI_NAMESPACE
- ACPI_MODULE_NAME ("nsobject")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsAttachObject
- *
- * PARAMETERS: Node - Parent Node
- * Object - Object to be attached
- * Type - Type of object, or ACPI_TYPE_ANY if not
- * known
- *
- * RETURN: Status
- *
- * DESCRIPTION: Record the given object as the value associated with the
- * name whose ACPI_HANDLE is passed. If Object is NULL
- * and Type is ACPI_TYPE_ANY, set the name as having no value.
- * Note: Future may require that the Node->Flags field be passed
- * as a parameter.
- *
- * MUTEX: Assumes namespace is locked
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsAttachObject (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_OPERAND_OBJECT *Object,
- ACPI_OBJECT_TYPE Type)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_OPERAND_OBJECT *LastObjDesc;
- ACPI_OBJECT_TYPE ObjectType = ACPI_TYPE_ANY;
-
-
- ACPI_FUNCTION_TRACE (NsAttachObject);
-
-
- /*
- * Parameter validation
- */
- if (!Node)
- {
- /* Invalid handle */
-
- ACPI_ERROR ((AE_INFO, "Null NamedObj handle"));
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- if (!Object && (ACPI_TYPE_ANY != Type))
- {
- /* Null object */
-
- ACPI_ERROR ((AE_INFO,
- "Null object, but type not ACPI_TYPE_ANY"));
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- if (ACPI_GET_DESCRIPTOR_TYPE (Node) != ACPI_DESC_TYPE_NAMED)
- {
- /* Not a name handle */
-
- ACPI_ERROR ((AE_INFO, "Invalid handle %p [%s]",
- Node, AcpiUtGetDescriptorName (Node)));
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /* Check if this object is already attached */
-
- if (Node->Object == Object)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "Obj %p already installed in NameObj %p\n",
- Object, Node));
-
- return_ACPI_STATUS (AE_OK);
- }
-
- /* If null object, we will just install it */
-
- if (!Object)
- {
- ObjDesc = NULL;
- ObjectType = ACPI_TYPE_ANY;
- }
-
- /*
- * If the source object is a namespace Node with an attached object,
- * we will use that (attached) object
- */
- else if ((ACPI_GET_DESCRIPTOR_TYPE (Object) == ACPI_DESC_TYPE_NAMED) &&
- ((ACPI_NAMESPACE_NODE *) Object)->Object)
- {
- /*
- * Value passed is a name handle and that name has a
- * non-null value. Use that name's value and type.
- */
- ObjDesc = ((ACPI_NAMESPACE_NODE *) Object)->Object;
- ObjectType = ((ACPI_NAMESPACE_NODE *) Object)->Type;
- }
-
- /*
- * Otherwise, we will use the parameter object, but we must type
- * it first
- */
- else
- {
- ObjDesc = (ACPI_OPERAND_OBJECT *) Object;
-
- /* Use the given type */
-
- ObjectType = Type;
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Installing %p into Node %p [%4.4s]\n",
- ObjDesc, Node, AcpiUtGetNodeName (Node)));
-
- /* Detach an existing attached object if present */
-
- if (Node->Object)
- {
- AcpiNsDetachObject (Node);
- }
-
- if (ObjDesc)
- {
- /*
- * Must increment the new value's reference count
- * (if it is an internal object)
- */
- AcpiUtAddReference (ObjDesc);
-
- /*
- * Handle objects with multiple descriptors - walk
- * to the end of the descriptor list
- */
- LastObjDesc = ObjDesc;
- while (LastObjDesc->Common.NextObject)
- {
- LastObjDesc = LastObjDesc->Common.NextObject;
- }
-
- /* Install the object at the front of the object list */
-
- LastObjDesc->Common.NextObject = Node->Object;
- }
-
- Node->Type = (UINT8) ObjectType;
- Node->Object = ObjDesc;
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsDetachObject
- *
- * PARAMETERS: Node - A Namespace node whose object will be detached
- *
- * RETURN: None.
- *
- * DESCRIPTION: Detach/delete an object associated with a namespace node.
- * if the object is an allocated object, it is freed.
- * Otherwise, the field is simply cleared.
- *
- ******************************************************************************/
-
-void
-AcpiNsDetachObject (
- ACPI_NAMESPACE_NODE *Node)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
-
-
- ACPI_FUNCTION_TRACE (NsDetachObject);
-
-
- ObjDesc = Node->Object;
-
- if (!ObjDesc ||
- (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_LOCAL_DATA))
- {
- return_VOID;
- }
-
- /* Clear the entry in all cases */
-
- Node->Object = NULL;
- if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) == ACPI_DESC_TYPE_OPERAND)
- {
- Node->Object = ObjDesc->Common.NextObject;
- if (Node->Object &&
- (ACPI_GET_OBJECT_TYPE (Node->Object) != ACPI_TYPE_LOCAL_DATA))
- {
- Node->Object = Node->Object->Common.NextObject;
- }
- }
-
- /* Reset the node type to untyped */
-
- Node->Type = ACPI_TYPE_ANY;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Node %p [%4.4s] Object %p\n",
- Node, AcpiUtGetNodeName (Node), ObjDesc));
-
- /* Remove one reference on the object (and all subobjects) */
-
- AcpiUtRemoveReference (ObjDesc);
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsGetAttachedObject
- *
- * PARAMETERS: Node - Namespace node
- *
- * RETURN: Current value of the object field from the Node whose
- * handle is passed
- *
- * DESCRIPTION: Obtain the object attached to a namespace node.
- *
- ******************************************************************************/
-
-ACPI_OPERAND_OBJECT *
-AcpiNsGetAttachedObject (
- ACPI_NAMESPACE_NODE *Node)
-{
- ACPI_FUNCTION_TRACE_PTR (NsGetAttachedObject, Node);
-
-
- if (!Node)
- {
- ACPI_WARNING ((AE_INFO, "Null Node ptr"));
- return_PTR (NULL);
- }
-
- if (!Node->Object ||
- ((ACPI_GET_DESCRIPTOR_TYPE (Node->Object) != ACPI_DESC_TYPE_OPERAND) &&
- (ACPI_GET_DESCRIPTOR_TYPE (Node->Object) != ACPI_DESC_TYPE_NAMED)) ||
- (ACPI_GET_OBJECT_TYPE (Node->Object) == ACPI_TYPE_LOCAL_DATA))
- {
- return_PTR (NULL);
- }
-
- return_PTR (Node->Object);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsGetSecondaryObject
- *
- * PARAMETERS: Node - Namespace node
- *
- * RETURN: Current value of the object field from the Node whose
- * handle is passed.
- *
- * DESCRIPTION: Obtain a secondary object associated with a namespace node.
- *
- ******************************************************************************/
-
-ACPI_OPERAND_OBJECT *
-AcpiNsGetSecondaryObject (
- ACPI_OPERAND_OBJECT *ObjDesc)
-{
- ACPI_FUNCTION_TRACE_PTR (NsGetSecondaryObject, ObjDesc);
-
-
- if ((!ObjDesc) ||
- (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_LOCAL_DATA) ||
- (!ObjDesc->Common.NextObject) ||
- (ACPI_GET_OBJECT_TYPE (ObjDesc->Common.NextObject) == ACPI_TYPE_LOCAL_DATA))
- {
- return_PTR (NULL);
- }
-
- return_PTR (ObjDesc->Common.NextObject);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsAttachData
- *
- * PARAMETERS: Node - Namespace node
- * Handler - Handler to be associated with the data
- * Data - Data to be attached
- *
- * RETURN: Status
- *
- * DESCRIPTION: Low-level attach data. Create and attach a Data object.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsAttachData (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_OBJECT_HANDLER Handler,
- void *Data)
-{
- ACPI_OPERAND_OBJECT *PrevObjDesc;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_OPERAND_OBJECT *DataDesc;
-
-
- /* We only allow one attachment per handler */
-
- PrevObjDesc = NULL;
- ObjDesc = Node->Object;
- while (ObjDesc)
- {
- if ((ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_LOCAL_DATA) &&
- (ObjDesc->Data.Handler == Handler))
- {
- return (AE_ALREADY_EXISTS);
- }
-
- PrevObjDesc = ObjDesc;
- ObjDesc = ObjDesc->Common.NextObject;
- }
-
- /* Create an internal object for the data */
-
- DataDesc = AcpiUtCreateInternalObject (ACPI_TYPE_LOCAL_DATA);
- if (!DataDesc)
- {
- return (AE_NO_MEMORY);
- }
-
- DataDesc->Data.Handler = Handler;
- DataDesc->Data.Pointer = Data;
-
- /* Install the data object */
-
- if (PrevObjDesc)
- {
- PrevObjDesc->Common.NextObject = DataDesc;
- }
- else
- {
- Node->Object = DataDesc;
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsDetachData
- *
- * PARAMETERS: Node - Namespace node
- * Handler - Handler associated with the data
- *
- * RETURN: Status
- *
- * DESCRIPTION: Low-level detach data. Delete the data node, but the caller
- * is responsible for the actual data.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsDetachData (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_OBJECT_HANDLER Handler)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_OPERAND_OBJECT *PrevObjDesc;
-
-
- PrevObjDesc = NULL;
- ObjDesc = Node->Object;
- while (ObjDesc)
- {
- if ((ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_LOCAL_DATA) &&
- (ObjDesc->Data.Handler == Handler))
- {
- if (PrevObjDesc)
- {
- PrevObjDesc->Common.NextObject = ObjDesc->Common.NextObject;
- }
- else
- {
- Node->Object = ObjDesc->Common.NextObject;
- }
-
- AcpiUtRemoveReference (ObjDesc);
- return (AE_OK);
- }
-
- PrevObjDesc = ObjDesc;
- ObjDesc = ObjDesc->Common.NextObject;
- }
-
- return (AE_NOT_FOUND);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsGetAttachedData
- *
- * PARAMETERS: Node - Namespace node
- * Handler - Handler associated with the data
- * Data - Where the data is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Low level interface to obtain data previously associated with
- * a namespace node.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsGetAttachedData (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_OBJECT_HANDLER Handler,
- void **Data)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
-
-
- ObjDesc = Node->Object;
- while (ObjDesc)
- {
- if ((ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_LOCAL_DATA) &&
- (ObjDesc->Data.Handler == Handler))
- {
- *Data = ObjDesc->Data.Pointer;
- return (AE_OK);
- }
-
- ObjDesc = ObjDesc->Common.NextObject;
- }
-
- return (AE_NOT_FOUND);
-}
-
-
diff --git a/sys/contrib/dev/acpica/nsparse.c b/sys/contrib/dev/acpica/nsparse.c
deleted file mode 100644
index 8cb17a7..0000000
--- a/sys/contrib/dev/acpica/nsparse.c
+++ /dev/null
@@ -1,283 +0,0 @@
-/******************************************************************************
- *
- * Module Name: nsparse - namespace interface to AML parser
- * $Revision: 1.16 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __NSPARSE_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/actables.h>
-
-
-#define _COMPONENT ACPI_NAMESPACE
- ACPI_MODULE_NAME ("nsparse")
-
-
-/*******************************************************************************
- *
- * FUNCTION: NsOneCompleteParse
- *
- * PARAMETERS: PassNumber - 1 or 2
- * TableDesc - The table to be parsed.
- *
- * RETURN: Status
- *
- * DESCRIPTION: Perform one complete parse of an ACPI/AML table.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsOneCompleteParse (
- ACPI_NATIVE_UINT PassNumber,
- ACPI_NATIVE_UINT TableIndex)
-{
- ACPI_PARSE_OBJECT *ParseRoot;
- ACPI_STATUS Status;
- ACPI_NATIVE_UINT AmlLength;
- UINT8 *AmlStart;
- ACPI_WALK_STATE *WalkState;
- ACPI_TABLE_HEADER *Table;
- ACPI_OWNER_ID OwnerId;
-
-
- ACPI_FUNCTION_TRACE (NsOneCompleteParse);
-
-
- Status = AcpiTbGetOwnerId (TableIndex, &OwnerId);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Create and init a Root Node */
-
- ParseRoot = AcpiPsCreateScopeOp ();
- if (!ParseRoot)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* Create and initialize a new walk state */
-
- WalkState = AcpiDsCreateWalkState (OwnerId, NULL, NULL, NULL);
- if (!WalkState)
- {
- AcpiPsFreeOp (ParseRoot);
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- Status = AcpiGetTableByIndex (TableIndex, &Table);
- if (ACPI_FAILURE (Status))
- {
- AcpiDsDeleteWalkState (WalkState);
- AcpiPsFreeOp (ParseRoot);
- return_ACPI_STATUS (Status);
- }
-
- /* Table must consist of at least a complete header */
-
- if (Table->Length < sizeof (ACPI_TABLE_HEADER))
- {
- Status = AE_BAD_HEADER;
- }
- else
- {
- AmlStart = (UINT8 *) Table + sizeof (ACPI_TABLE_HEADER);
- AmlLength = Table->Length - sizeof (ACPI_TABLE_HEADER);
- Status = AcpiDsInitAmlWalk (WalkState, ParseRoot, NULL,
- AmlStart, AmlLength, NULL, (UINT8) PassNumber);
- }
-
- if (ACPI_FAILURE (Status))
- {
- AcpiDsDeleteWalkState (WalkState);
- AcpiPsDeleteParseTree (ParseRoot);
- return_ACPI_STATUS (Status);
- }
-
- /* Parse the AML */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "*PARSE* pass %lu parse\n",
- (unsigned long) PassNumber));
- Status = AcpiPsParseAml (WalkState);
-
- AcpiPsDeleteParseTree (ParseRoot);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsParseTable
- *
- * PARAMETERS: TableDesc - An ACPI table descriptor for table to parse
- * StartNode - Where to enter the table into the namespace
- *
- * RETURN: Status
- *
- * DESCRIPTION: Parse AML within an ACPI table and return a tree of ops
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsParseTable (
- ACPI_NATIVE_UINT TableIndex,
- ACPI_NAMESPACE_NODE *StartNode)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (NsParseTable);
-
-
- /*
- * AML Parse, pass 1
- *
- * In this pass, we load most of the namespace. Control methods
- * are not parsed until later. A parse tree is not created. Instead,
- * each Parser Op subtree is deleted when it is finished. This saves
- * a great deal of memory, and allows a small cache of parse objects
- * to service the entire parse. The second pass of the parse then
- * performs another complete parse of the AML.
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "**** Start pass 1\n"));
- Status = AcpiNsOneCompleteParse (ACPI_IMODE_LOAD_PASS1, TableIndex);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * AML Parse, pass 2
- *
- * In this pass, we resolve forward references and other things
- * that could not be completed during the first pass.
- * Another complete parse of the AML is performed, but the
- * overhead of this is compensated for by the fact that the
- * parse objects are all cached.
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "**** Start pass 2\n"));
- Status = AcpiNsOneCompleteParse (ACPI_IMODE_LOAD_PASS2, TableIndex);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
diff --git a/sys/contrib/dev/acpica/nssearch.c b/sys/contrib/dev/acpica/nssearch.c
deleted file mode 100644
index 23d6ec2..0000000
--- a/sys/contrib/dev/acpica/nssearch.c
+++ /dev/null
@@ -1,514 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: nssearch - Namespace search
- * $Revision: 1.121 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __NSSEARCH_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-
-#define _COMPONENT ACPI_NAMESPACE
- ACPI_MODULE_NAME ("nssearch")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiNsSearchParentTree (
- UINT32 TargetName,
- ACPI_NAMESPACE_NODE *Node,
- ACPI_OBJECT_TYPE Type,
- ACPI_NAMESPACE_NODE **ReturnNode);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsSearchOneScope
- *
- * PARAMETERS: TargetName - Ascii ACPI name to search for
- * ParentNode - Starting node where search will begin
- * Type - Object type to match
- * ReturnNode - Where the matched Named obj is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Search a single level of the namespace. Performs a
- * simple search of the specified level, and does not add
- * entries or search parents.
- *
- *
- * Named object lists are built (and subsequently dumped) in the
- * order in which the names are encountered during the namespace load;
- *
- * All namespace searching is linear in this implementation, but
- * could be easily modified to support any improved search
- * algorithm. However, the linear search was chosen for simplicity
- * and because the trees are small and the other interpreter
- * execution overhead is relatively high.
- *
- * Note: CPU execution analysis has shown that the AML interpreter spends
- * a very small percentage of its time searching the namespace. Therefore,
- * the linear search seems to be sufficient, as there would seem to be
- * little value in improving the search.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsSearchOneScope (
- UINT32 TargetName,
- ACPI_NAMESPACE_NODE *ParentNode,
- ACPI_OBJECT_TYPE Type,
- ACPI_NAMESPACE_NODE **ReturnNode)
-{
- ACPI_NAMESPACE_NODE *Node;
-
-
- ACPI_FUNCTION_TRACE (NsSearchOneScope);
-
-
-#ifdef ACPI_DEBUG_OUTPUT
- if (ACPI_LV_NAMES & AcpiDbgLevel)
- {
- char *ScopeName;
-
- ScopeName = AcpiNsGetExternalPathname (ParentNode);
- if (ScopeName)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
- "Searching %s (%p) For [%4.4s] (%s)\n",
- ScopeName, ParentNode, ACPI_CAST_PTR (char, &TargetName),
- AcpiUtGetTypeName (Type)));
-
- ACPI_FREE (ScopeName);
- }
- }
-#endif
-
- /*
- * Search for name at this namespace level, which is to say that we
- * must search for the name among the children of this object
- */
- Node = ParentNode->Child;
- while (Node)
- {
- /* Check for match against the name */
-
- if (Node->Name.Integer == TargetName)
- {
- /* Resolve a control method alias if any */
-
- if (AcpiNsGetType (Node) == ACPI_TYPE_LOCAL_METHOD_ALIAS)
- {
- Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, Node->Object);
- }
-
- /* Found matching entry */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
- "Name [%4.4s] (%s) %p found in scope [%4.4s] %p\n",
- ACPI_CAST_PTR (char, &TargetName),
- AcpiUtGetTypeName (Node->Type),
- Node, AcpiUtGetNodeName (ParentNode), ParentNode));
-
- *ReturnNode = Node;
- return_ACPI_STATUS (AE_OK);
- }
-
- /*
- * The last entry in the list points back to the parent,
- * so a flag is used to indicate the end-of-list
- */
- if (Node->Flags & ANOBJ_END_OF_PEER_LIST)
- {
- /* Searched entire list, we are done */
-
- break;
- }
-
- /* Didn't match name, move on to the next peer object */
-
- Node = Node->Peer;
- }
-
- /* Searched entire namespace level, not found */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
- "Name [%4.4s] (%s) not found in search in scope [%4.4s] %p first child %p\n",
- ACPI_CAST_PTR (char, &TargetName), AcpiUtGetTypeName (Type),
- AcpiUtGetNodeName (ParentNode), ParentNode, ParentNode->Child));
-
- return_ACPI_STATUS (AE_NOT_FOUND);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsSearchParentTree
- *
- * PARAMETERS: TargetName - Ascii ACPI name to search for
- * Node - Starting node where search will begin
- * Type - Object type to match
- * ReturnNode - Where the matched Node is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Called when a name has not been found in the current namespace
- * level. Before adding it or giving up, ACPI scope rules require
- * searching enclosing scopes in cases identified by AcpiNsLocal().
- *
- * "A name is located by finding the matching name in the current
- * name space, and then in the parent name space. If the parent
- * name space does not contain the name, the search continues
- * recursively until either the name is found or the name space
- * does not have a parent (the root of the name space). This
- * indicates that the name is not found" (From ACPI Specification,
- * section 5.3)
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiNsSearchParentTree (
- UINT32 TargetName,
- ACPI_NAMESPACE_NODE *Node,
- ACPI_OBJECT_TYPE Type,
- ACPI_NAMESPACE_NODE **ReturnNode)
-{
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *ParentNode;
-
-
- ACPI_FUNCTION_TRACE (NsSearchParentTree);
-
-
- ParentNode = AcpiNsGetParentNode (Node);
-
- /*
- * If there is no parent (i.e., we are at the root) or type is "local",
- * we won't be searching the parent tree.
- */
- if (!ParentNode)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "[%4.4s] has no parent\n",
- ACPI_CAST_PTR (char, &TargetName)));
- return_ACPI_STATUS (AE_NOT_FOUND);
- }
-
- if (AcpiNsLocal (Type))
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
- "[%4.4s] type [%s] must be local to this scope (no parent search)\n",
- ACPI_CAST_PTR (char, &TargetName), AcpiUtGetTypeName (Type)));
- return_ACPI_STATUS (AE_NOT_FOUND);
- }
-
- /* Search the parent tree */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
- "Searching parent [%4.4s] for [%4.4s]\n",
- AcpiUtGetNodeName (ParentNode), ACPI_CAST_PTR (char, &TargetName)));
-
- /*
- * Search parents until target is found or we have backed up to the root
- */
- while (ParentNode)
- {
- /*
- * Search parent scope. Use TYPE_ANY because we don't care about the
- * object type at this point, we only care about the existence of
- * the actual name we are searching for. Typechecking comes later.
- */
- Status = AcpiNsSearchOneScope (
- TargetName, ParentNode, ACPI_TYPE_ANY, ReturnNode);
- if (ACPI_SUCCESS (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Not found here, go up another level (until we reach the root) */
-
- ParentNode = AcpiNsGetParentNode (ParentNode);
- }
-
- /* Not found in parent tree */
-
- return_ACPI_STATUS (AE_NOT_FOUND);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsSearchAndEnter
- *
- * PARAMETERS: TargetName - Ascii ACPI name to search for (4 chars)
- * WalkState - Current state of the walk
- * Node - Starting node where search will begin
- * InterpreterMode - Add names only in ACPI_MODE_LOAD_PASS_x.
- * Otherwise,search only.
- * Type - Object type to match
- * Flags - Flags describing the search restrictions
- * ReturnNode - Where the Node is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Search for a name segment in a single namespace level,
- * optionally adding it if it is not found. If the passed
- * Type is not Any and the type previously stored in the
- * entry was Any (i.e. unknown), update the stored type.
- *
- * In ACPI_IMODE_EXECUTE, search only.
- * In other modes, search and add if not found.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsSearchAndEnter (
- UINT32 TargetName,
- ACPI_WALK_STATE *WalkState,
- ACPI_NAMESPACE_NODE *Node,
- ACPI_INTERPRETER_MODE InterpreterMode,
- ACPI_OBJECT_TYPE Type,
- UINT32 Flags,
- ACPI_NAMESPACE_NODE **ReturnNode)
-{
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *NewNode;
-
-
- ACPI_FUNCTION_TRACE (NsSearchAndEnter);
-
-
- /* Parameter validation */
-
- if (!Node || !TargetName || !ReturnNode)
- {
- ACPI_ERROR ((AE_INFO,
- "Null parameter: Node %p Name %X ReturnNode %p",
- Node, TargetName, ReturnNode));
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /*
- * Name must consist of valid ACPI characters. We will repair the name if
- * necessary because we don't want to abort because of this, but we want
- * all namespace names to be printable. A warning message is appropriate.
- *
- * This issue came up because there are in fact machines that exhibit
- * this problem, and we want to be able to enable ACPI support for them,
- * even though there are a few bad names.
- */
- if (!AcpiUtValidAcpiName (TargetName))
- {
- TargetName = AcpiUtRepairName (ACPI_CAST_PTR (char, &TargetName));
-
- /* Report warning only if in strict mode or debug mode */
-
- if (!AcpiGbl_EnableInterpreterSlack)
- {
- ACPI_WARNING ((AE_INFO,
- "Found bad character(s) in name, repaired: [%4.4s]\n",
- ACPI_CAST_PTR (char, &TargetName)));
- }
- else
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_WARN,
- "Found bad character(s) in name, repaired: [%4.4s]\n",
- ACPI_CAST_PTR (char, &TargetName)));
- }
- }
-
- /* Try to find the name in the namespace level specified by the caller */
-
- *ReturnNode = ACPI_ENTRY_NOT_FOUND;
- Status = AcpiNsSearchOneScope (TargetName, Node, Type, ReturnNode);
- if (Status != AE_NOT_FOUND)
- {
- /*
- * If we found it AND the request specifies that a find is an error,
- * return the error
- */
- if ((Status == AE_OK) &&
- (Flags & ACPI_NS_ERROR_IF_FOUND))
- {
- Status = AE_ALREADY_EXISTS;
- }
-
- /* Either found it or there was an error: finished either way */
-
- return_ACPI_STATUS (Status);
- }
-
- /*
- * The name was not found. If we are NOT performing the first pass
- * (name entry) of loading the namespace, search the parent tree (all the
- * way to the root if necessary.) We don't want to perform the parent
- * search when the namespace is actually being loaded. We want to perform
- * the search when namespace references are being resolved (load pass 2)
- * and during the execution phase.
- */
- if ((InterpreterMode != ACPI_IMODE_LOAD_PASS1) &&
- (Flags & ACPI_NS_SEARCH_PARENT))
- {
- /*
- * Not found at this level - search parent tree according to the
- * ACPI specification
- */
- Status = AcpiNsSearchParentTree (TargetName, Node, Type, ReturnNode);
- if (ACPI_SUCCESS (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- /* In execute mode, just search, never add names. Exit now */
-
- if (InterpreterMode == ACPI_IMODE_EXECUTE)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
- "%4.4s Not found in %p [Not adding]\n",
- ACPI_CAST_PTR (char, &TargetName), Node));
-
- return_ACPI_STATUS (AE_NOT_FOUND);
- }
-
- /* Create the new named object */
-
- NewNode = AcpiNsCreateNode (TargetName);
- if (!NewNode)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
-#ifdef ACPI_ASL_COMPILER
- /*
- * Node is an object defined by an External() statement
- */
- if (Flags & ACPI_NS_EXTERNAL)
- {
- NewNode->Flags |= ANOBJ_IS_EXTERNAL;
- }
-#endif
-
- if (Flags & ACPI_NS_TEMPORARY)
- {
- NewNode->Flags |= ANOBJ_TEMPORARY;
- }
-
- /* Install the new object into the parent's list of children */
-
- AcpiNsInstallNode (WalkState, Node, NewNode, Type);
- *ReturnNode = NewNode;
- return_ACPI_STATUS (AE_OK);
-}
-
diff --git a/sys/contrib/dev/acpica/nsutils.c b/sys/contrib/dev/acpica/nsutils.c
deleted file mode 100644
index 7aac1f3..0000000
--- a/sys/contrib/dev/acpica/nsutils.c
+++ /dev/null
@@ -1,1220 +0,0 @@
-/******************************************************************************
- *
- * Module Name: nsutils - Utilities for accessing ACPI namespace, accessing
- * parents and siblings and Scope manipulation
- * $Revision: 1.155 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __NSUTILS_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/actables.h>
-
-#define _COMPONENT ACPI_NAMESPACE
- ACPI_MODULE_NAME ("nsutils")
-
-/* Local prototypes */
-
-static BOOLEAN
-AcpiNsValidPathSeparator (
- char Sep);
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-ACPI_NAME
-AcpiNsFindParentName (
- ACPI_NAMESPACE_NODE *NodeToSearch);
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsReportError
- *
- * PARAMETERS: ModuleName - Caller's module name (for error output)
- * LineNumber - Caller's line number (for error output)
- * InternalName - Name or path of the namespace node
- * LookupStatus - Exception code from NS lookup
- *
- * RETURN: None
- *
- * DESCRIPTION: Print warning message with full pathname
- *
- ******************************************************************************/
-
-void
-AcpiNsReportError (
- char *ModuleName,
- UINT32 LineNumber,
- char *InternalName,
- ACPI_STATUS LookupStatus)
-{
- ACPI_STATUS Status;
- UINT32 BadName;
- char *Name = NULL;
-
-
- AcpiOsPrintf ("ACPI Error (%s-%04d): ", ModuleName, LineNumber);
-
- if (LookupStatus == AE_BAD_CHARACTER)
- {
- /* There is a non-ascii character in the name */
-
- ACPI_MOVE_32_TO_32 (&BadName, InternalName);
- AcpiOsPrintf ("[0x%4.4X] (NON-ASCII)", BadName);
- }
- else
- {
- /* Convert path to external format */
-
- Status = AcpiNsExternalizeName (ACPI_UINT32_MAX,
- InternalName, NULL, &Name);
-
- /* Print target name */
-
- if (ACPI_SUCCESS (Status))
- {
- AcpiOsPrintf ("[%s]", Name);
- }
- else
- {
- AcpiOsPrintf ("[COULD NOT EXTERNALIZE NAME]");
- }
-
- if (Name)
- {
- ACPI_FREE (Name);
- }
- }
-
- AcpiOsPrintf (" Namespace lookup failure, %s\n",
- AcpiFormatException (LookupStatus));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsReportMethodError
- *
- * PARAMETERS: ModuleName - Caller's module name (for error output)
- * LineNumber - Caller's line number (for error output)
- * Message - Error message to use on failure
- * PrefixNode - Prefix relative to the path
- * Path - Path to the node (optional)
- * MethodStatus - Execution status
- *
- * RETURN: None
- *
- * DESCRIPTION: Print warning message with full pathname
- *
- ******************************************************************************/
-
-void
-AcpiNsReportMethodError (
- char *ModuleName,
- UINT32 LineNumber,
- char *Message,
- ACPI_NAMESPACE_NODE *PrefixNode,
- char *Path,
- ACPI_STATUS MethodStatus)
-{
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node = PrefixNode;
-
-
- AcpiOsPrintf ("ACPI Error (%s-%04d): ", ModuleName, LineNumber);
-
- if (Path)
- {
- Status = AcpiNsGetNode (PrefixNode, Path, ACPI_NS_NO_UPSEARCH,
- &Node);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsPrintf ("[Could not get node by pathname]");
- }
- }
-
- AcpiNsPrintNodePathname (Node, Message);
- AcpiOsPrintf (", %s\n", AcpiFormatException (MethodStatus));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsPrintNodePathname
- *
- * PARAMETERS: Node - Object
- * Message - Prefix message
- *
- * DESCRIPTION: Print an object's full namespace pathname
- * Manages allocation/freeing of a pathname buffer
- *
- ******************************************************************************/
-
-void
-AcpiNsPrintNodePathname (
- ACPI_NAMESPACE_NODE *Node,
- char *Message)
-{
- ACPI_BUFFER Buffer;
- ACPI_STATUS Status;
-
-
- if (!Node)
- {
- AcpiOsPrintf ("[NULL NAME]");
- return;
- }
-
- /* Convert handle to full pathname and print it (with supplied message) */
-
- Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
-
- Status = AcpiNsHandleToPathname (Node, &Buffer);
- if (ACPI_SUCCESS (Status))
- {
- if (Message)
- {
- AcpiOsPrintf ("%s ", Message);
- }
-
- AcpiOsPrintf ("[%s] (Node %p)", (char *) Buffer.Pointer, Node);
- ACPI_FREE (Buffer.Pointer);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsValidRootPrefix
- *
- * PARAMETERS: Prefix - Character to be checked
- *
- * RETURN: TRUE if a valid prefix
- *
- * DESCRIPTION: Check if a character is a valid ACPI Root prefix
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiNsValidRootPrefix (
- char Prefix)
-{
-
- return ((BOOLEAN) (Prefix == '\\'));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsValidPathSeparator
- *
- * PARAMETERS: Sep - Character to be checked
- *
- * RETURN: TRUE if a valid path separator
- *
- * DESCRIPTION: Check if a character is a valid ACPI path separator
- *
- ******************************************************************************/
-
-static BOOLEAN
-AcpiNsValidPathSeparator (
- char Sep)
-{
-
- return ((BOOLEAN) (Sep == '.'));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsGetType
- *
- * PARAMETERS: Node - Parent Node to be examined
- *
- * RETURN: Type field from Node whose handle is passed
- *
- * DESCRIPTION: Return the type of a Namespace node
- *
- ******************************************************************************/
-
-ACPI_OBJECT_TYPE
-AcpiNsGetType (
- ACPI_NAMESPACE_NODE *Node)
-{
- ACPI_FUNCTION_TRACE (NsGetType);
-
-
- if (!Node)
- {
- ACPI_WARNING ((AE_INFO, "Null Node parameter"));
- return_UINT32 (ACPI_TYPE_ANY);
- }
-
- return_UINT32 ((ACPI_OBJECT_TYPE) Node->Type);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsLocal
- *
- * PARAMETERS: Type - A namespace object type
- *
- * RETURN: LOCAL if names must be found locally in objects of the
- * passed type, 0 if enclosing scopes should be searched
- *
- * DESCRIPTION: Returns scope rule for the given object type.
- *
- ******************************************************************************/
-
-UINT32
-AcpiNsLocal (
- ACPI_OBJECT_TYPE Type)
-{
- ACPI_FUNCTION_TRACE (NsLocal);
-
-
- if (!AcpiUtValidObjectType (Type))
- {
- /* Type code out of range */
-
- ACPI_WARNING ((AE_INFO, "Invalid Object Type %X", Type));
- return_UINT32 (ACPI_NS_NORMAL);
- }
-
- return_UINT32 ((UINT32) AcpiGbl_NsProperties[Type] & ACPI_NS_LOCAL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsGetInternalNameLength
- *
- * PARAMETERS: Info - Info struct initialized with the
- * external name pointer.
- *
- * RETURN: None
- *
- * DESCRIPTION: Calculate the length of the internal (AML) namestring
- * corresponding to the external (ASL) namestring.
- *
- ******************************************************************************/
-
-void
-AcpiNsGetInternalNameLength (
- ACPI_NAMESTRING_INFO *Info)
-{
- char *NextExternalChar;
- UINT32 i;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- NextExternalChar = Info->ExternalName;
- Info->NumCarats = 0;
- Info->NumSegments = 0;
- Info->FullyQualified = FALSE;
-
- /*
- * For the internal name, the required length is 4 bytes per segment, plus
- * 1 each for RootPrefix, MultiNamePrefixOp, segment count, trailing null
- * (which is not really needed, but no there's harm in putting it there)
- *
- * strlen() + 1 covers the first NameSeg, which has no path separator
- */
- if (AcpiNsValidRootPrefix (NextExternalChar[0]))
- {
- Info->FullyQualified = TRUE;
- NextExternalChar++;
- }
- else
- {
- /*
- * Handle Carat prefixes
- */
- while (*NextExternalChar == '^')
- {
- Info->NumCarats++;
- NextExternalChar++;
- }
- }
-
- /*
- * Determine the number of ACPI name "segments" by counting the number of
- * path separators within the string. Start with one segment since the
- * segment count is [(# separators) + 1], and zero separators is ok.
- */
- if (*NextExternalChar)
- {
- Info->NumSegments = 1;
- for (i = 0; NextExternalChar[i]; i++)
- {
- if (AcpiNsValidPathSeparator (NextExternalChar[i]))
- {
- Info->NumSegments++;
- }
- }
- }
-
- Info->Length = (ACPI_NAME_SIZE * Info->NumSegments) +
- 4 + Info->NumCarats;
-
- Info->NextExternalChar = NextExternalChar;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsBuildInternalName
- *
- * PARAMETERS: Info - Info struct fully initialized
- *
- * RETURN: Status
- *
- * DESCRIPTION: Construct the internal (AML) namestring
- * corresponding to the external (ASL) namestring.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsBuildInternalName (
- ACPI_NAMESTRING_INFO *Info)
-{
- UINT32 NumSegments = Info->NumSegments;
- char *InternalName = Info->InternalName;
- char *ExternalName = Info->NextExternalChar;
- char *Result = NULL;
- ACPI_NATIVE_UINT i;
-
-
- ACPI_FUNCTION_TRACE (NsBuildInternalName);
-
-
- /* Setup the correct prefixes, counts, and pointers */
-
- if (Info->FullyQualified)
- {
- InternalName[0] = '\\';
-
- if (NumSegments <= 1)
- {
- Result = &InternalName[1];
- }
- else if (NumSegments == 2)
- {
- InternalName[1] = AML_DUAL_NAME_PREFIX;
- Result = &InternalName[2];
- }
- else
- {
- InternalName[1] = AML_MULTI_NAME_PREFIX_OP;
- InternalName[2] = (char) NumSegments;
- Result = &InternalName[3];
- }
- }
- else
- {
- /*
- * Not fully qualified.
- * Handle Carats first, then append the name segments
- */
- i = 0;
- if (Info->NumCarats)
- {
- for (i = 0; i < Info->NumCarats; i++)
- {
- InternalName[i] = '^';
- }
- }
-
- if (NumSegments <= 1)
- {
- Result = &InternalName[i];
- }
- else if (NumSegments == 2)
- {
- InternalName[i] = AML_DUAL_NAME_PREFIX;
- Result = &InternalName[(ACPI_NATIVE_UINT) (i+1)];
- }
- else
- {
- InternalName[i] = AML_MULTI_NAME_PREFIX_OP;
- InternalName[(ACPI_NATIVE_UINT) (i+1)] = (char) NumSegments;
- Result = &InternalName[(ACPI_NATIVE_UINT) (i+2)];
- }
- }
-
- /* Build the name (minus path separators) */
-
- for (; NumSegments; NumSegments--)
- {
- for (i = 0; i < ACPI_NAME_SIZE; i++)
- {
- if (AcpiNsValidPathSeparator (*ExternalName) ||
- (*ExternalName == 0))
- {
- /* Pad the segment with underscore(s) if segment is short */
-
- Result[i] = '_';
- }
- else
- {
- /* Convert the character to uppercase and save it */
-
- Result[i] = (char) ACPI_TOUPPER ((int) *ExternalName);
- ExternalName++;
- }
- }
-
- /* Now we must have a path separator, or the pathname is bad */
-
- if (!AcpiNsValidPathSeparator (*ExternalName) &&
- (*ExternalName != 0))
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /* Move on the next segment */
-
- ExternalName++;
- Result += ACPI_NAME_SIZE;
- }
-
- /* Terminate the string */
-
- *Result = 0;
-
- if (Info->FullyQualified)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Returning [%p] (abs) \"\\%s\"\n",
- InternalName, InternalName));
- }
- else
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Returning [%p] (rel) \"%s\"\n",
- InternalName, InternalName));
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsInternalizeName
- *
- * PARAMETERS: *ExternalName - External representation of name
- * **Converted Name - Where to return the resulting
- * internal represention of the name
- *
- * RETURN: Status
- *
- * DESCRIPTION: Convert an external representation (e.g. "\_PR_.CPU0")
- * to internal form (e.g. 5c 2f 02 5f 50 52 5f 43 50 55 30)
- *
- *******************************************************************************/
-
-ACPI_STATUS
-AcpiNsInternalizeName (
- char *ExternalName,
- char **ConvertedName)
-{
- char *InternalName;
- ACPI_NAMESTRING_INFO Info;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (NsInternalizeName);
-
-
- if ((!ExternalName) ||
- (*ExternalName == 0) ||
- (!ConvertedName))
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /* Get the length of the new internal name */
-
- Info.ExternalName = ExternalName;
- AcpiNsGetInternalNameLength (&Info);
-
- /* We need a segment to store the internal name */
-
- InternalName = ACPI_ALLOCATE_ZEROED (Info.Length);
- if (!InternalName)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* Build the name */
-
- Info.InternalName = InternalName;
- Status = AcpiNsBuildInternalName (&Info);
- if (ACPI_FAILURE (Status))
- {
- ACPI_FREE (InternalName);
- return_ACPI_STATUS (Status);
- }
-
- *ConvertedName = InternalName;
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsExternalizeName
- *
- * PARAMETERS: InternalNameLength - Lenth of the internal name below
- * InternalName - Internal representation of name
- * ConvertedNameLength - Where the length is returned
- * ConvertedName - Where the resulting external name
- * is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Convert internal name (e.g. 5c 2f 02 5f 50 52 5f 43 50 55 30)
- * to its external (printable) form (e.g. "\_PR_.CPU0")
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsExternalizeName (
- UINT32 InternalNameLength,
- char *InternalName,
- UINT32 *ConvertedNameLength,
- char **ConvertedName)
-{
- ACPI_NATIVE_UINT NamesIndex = 0;
- ACPI_NATIVE_UINT NumSegments = 0;
- ACPI_NATIVE_UINT RequiredLength;
- ACPI_NATIVE_UINT PrefixLength = 0;
- ACPI_NATIVE_UINT i = 0;
- ACPI_NATIVE_UINT j = 0;
-
-
- ACPI_FUNCTION_TRACE (NsExternalizeName);
-
-
- if (!InternalNameLength ||
- !InternalName ||
- !ConvertedName)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /*
- * Check for a prefix (one '\' | one or more '^').
- */
- switch (InternalName[0])
- {
- case '\\':
- PrefixLength = 1;
- break;
-
- case '^':
- for (i = 0; i < InternalNameLength; i++)
- {
- if (InternalName[i] == '^')
- {
- PrefixLength = i + 1;
- }
- else
- {
- break;
- }
- }
-
- if (i == InternalNameLength)
- {
- PrefixLength = i;
- }
-
- break;
-
- default:
- break;
- }
-
- /*
- * Check for object names. Note that there could be 0-255 of these
- * 4-byte elements.
- */
- if (PrefixLength < InternalNameLength)
- {
- switch (InternalName[PrefixLength])
- {
- case AML_MULTI_NAME_PREFIX_OP:
-
- /* <count> 4-byte names */
-
- NamesIndex = PrefixLength + 2;
- NumSegments = (ACPI_NATIVE_UINT) (UINT8)
- InternalName[(ACPI_NATIVE_UINT) (PrefixLength + 1)];
- break;
-
- case AML_DUAL_NAME_PREFIX:
-
- /* Two 4-byte names */
-
- NamesIndex = PrefixLength + 1;
- NumSegments = 2;
- break;
-
- case 0:
-
- /* NullName */
-
- NamesIndex = 0;
- NumSegments = 0;
- break;
-
- default:
-
- /* one 4-byte name */
-
- NamesIndex = PrefixLength;
- NumSegments = 1;
- break;
- }
- }
-
- /*
- * Calculate the length of ConvertedName, which equals the length
- * of the prefix, length of all object names, length of any required
- * punctuation ('.') between object names, plus the NULL terminator.
- */
- RequiredLength = PrefixLength + (4 * NumSegments) +
- ((NumSegments > 0) ? (NumSegments - 1) : 0) + 1;
-
- /*
- * Check to see if we're still in bounds. If not, there's a problem
- * with InternalName (invalid format).
- */
- if (RequiredLength > InternalNameLength)
- {
- ACPI_ERROR ((AE_INFO, "Invalid internal name"));
- return_ACPI_STATUS (AE_BAD_PATHNAME);
- }
-
- /*
- * Build ConvertedName
- */
- *ConvertedName = ACPI_ALLOCATE_ZEROED (RequiredLength);
- if (!(*ConvertedName))
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- j = 0;
-
- for (i = 0; i < PrefixLength; i++)
- {
- (*ConvertedName)[j++] = InternalName[i];
- }
-
- if (NumSegments > 0)
- {
- for (i = 0; i < NumSegments; i++)
- {
- if (i > 0)
- {
- (*ConvertedName)[j++] = '.';
- }
-
- (*ConvertedName)[j++] = InternalName[NamesIndex++];
- (*ConvertedName)[j++] = InternalName[NamesIndex++];
- (*ConvertedName)[j++] = InternalName[NamesIndex++];
- (*ConvertedName)[j++] = InternalName[NamesIndex++];
- }
- }
-
- if (ConvertedNameLength)
- {
- *ConvertedNameLength = (UINT32) RequiredLength;
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsMapHandleToNode
- *
- * PARAMETERS: Handle - Handle to be converted to an Node
- *
- * RETURN: A Name table entry pointer
- *
- * DESCRIPTION: Convert a namespace handle to a real Node
- *
- * Note: Real integer handles would allow for more verification
- * and keep all pointers within this subsystem - however this introduces
- * more (and perhaps unnecessary) overhead.
- *
- ******************************************************************************/
-
-ACPI_NAMESPACE_NODE *
-AcpiNsMapHandleToNode (
- ACPI_HANDLE Handle)
-{
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /*
- * Simple implementation
- */
- if ((!Handle) || (Handle == ACPI_ROOT_OBJECT))
- {
- return (AcpiGbl_RootNode);
- }
-
- /* We can at least attempt to verify the handle */
-
- if (ACPI_GET_DESCRIPTOR_TYPE (Handle) != ACPI_DESC_TYPE_NAMED)
- {
- return (NULL);
- }
-
- return (ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, Handle));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsConvertEntryToHandle
- *
- * PARAMETERS: Node - Node to be converted to a Handle
- *
- * RETURN: A user handle
- *
- * DESCRIPTION: Convert a real Node to a namespace handle
- *
- ******************************************************************************/
-
-ACPI_HANDLE
-AcpiNsConvertEntryToHandle (
- ACPI_NAMESPACE_NODE *Node)
-{
-
-
- /*
- * Simple implementation for now;
- */
- return ((ACPI_HANDLE) Node);
-
-
-/* Example future implementation ---------------------
-
- if (!Node)
- {
- return (NULL);
- }
-
- if (Node == AcpiGbl_RootNode)
- {
- return (ACPI_ROOT_OBJECT);
- }
-
-
- return ((ACPI_HANDLE) Node);
-------------------------------------------------------*/
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsTerminate
- *
- * PARAMETERS: none
- *
- * RETURN: none
- *
- * DESCRIPTION: free memory allocated for namespace and ACPI table storage.
- *
- ******************************************************************************/
-
-void
-AcpiNsTerminate (
- void)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
-
-
- ACPI_FUNCTION_TRACE (NsTerminate);
-
-
- /*
- * 1) Free the entire namespace -- all nodes and objects
- *
- * Delete all object descriptors attached to namepsace nodes
- */
- AcpiNsDeleteNamespaceSubtree (AcpiGbl_RootNode);
-
- /* Detach any objects attached to the root */
-
- ObjDesc = AcpiNsGetAttachedObject (AcpiGbl_RootNode);
- if (ObjDesc)
- {
- AcpiNsDetachObject (AcpiGbl_RootNode);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Namespace freed\n"));
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsOpensScope
- *
- * PARAMETERS: Type - A valid namespace type
- *
- * RETURN: NEWSCOPE if the passed type "opens a name scope" according
- * to the ACPI specification, else 0
- *
- ******************************************************************************/
-
-UINT32
-AcpiNsOpensScope (
- ACPI_OBJECT_TYPE Type)
-{
- ACPI_FUNCTION_TRACE_STR (NsOpensScope, AcpiUtGetTypeName (Type));
-
-
- if (!AcpiUtValidObjectType (Type))
- {
- /* type code out of range */
-
- ACPI_WARNING ((AE_INFO, "Invalid Object Type %X", Type));
- return_UINT32 (ACPI_NS_NORMAL);
- }
-
- return_UINT32 (((UINT32) AcpiGbl_NsProperties[Type]) & ACPI_NS_NEWSCOPE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsGetNode
- *
- * PARAMETERS: *Pathname - Name to be found, in external (ASL) format. The
- * \ (backslash) and ^ (carat) prefixes, and the
- * . (period) to separate segments are supported.
- * PrefixNode - Root of subtree to be searched, or NS_ALL for the
- * root of the name space. If Name is fully
- * qualified (first INT8 is '\'), the passed value
- * of Scope will not be accessed.
- * Flags - Used to indicate whether to perform upsearch or
- * not.
- * ReturnNode - Where the Node is returned
- *
- * DESCRIPTION: Look up a name relative to a given scope and return the
- * corresponding Node. NOTE: Scope can be null.
- *
- * MUTEX: Locks namespace
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsGetNode (
- ACPI_NAMESPACE_NODE *PrefixNode,
- char *Pathname,
- UINT32 Flags,
- ACPI_NAMESPACE_NODE **ReturnNode)
-{
- ACPI_GENERIC_STATE ScopeInfo;
- ACPI_STATUS Status;
- char *InternalPath;
-
-
- ACPI_FUNCTION_TRACE_PTR (NsGetNode, Pathname);
-
-
- if (!Pathname)
- {
- *ReturnNode = PrefixNode;
- if (!PrefixNode)
- {
- *ReturnNode = AcpiGbl_RootNode;
- }
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Convert path to internal representation */
-
- Status = AcpiNsInternalizeName (Pathname, &InternalPath);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Must lock namespace during lookup */
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- /* Setup lookup scope (search starting point) */
-
- ScopeInfo.Scope.Node = PrefixNode;
-
- /* Lookup the name in the namespace */
-
- Status = AcpiNsLookup (&ScopeInfo, InternalPath, ACPI_TYPE_ANY,
- ACPI_IMODE_EXECUTE, (Flags | ACPI_NS_DONT_OPEN_SCOPE),
- NULL, ReturnNode);
- if (ACPI_FAILURE (Status))
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "%s, %s\n",
- Pathname, AcpiFormatException (Status)));
- }
-
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-
-Cleanup:
- ACPI_FREE (InternalPath);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsGetParentNode
- *
- * PARAMETERS: Node - Current table entry
- *
- * RETURN: Parent entry of the given entry
- *
- * DESCRIPTION: Obtain the parent entry for a given entry in the namespace.
- *
- ******************************************************************************/
-
-ACPI_NAMESPACE_NODE *
-AcpiNsGetParentNode (
- ACPI_NAMESPACE_NODE *Node)
-{
- ACPI_FUNCTION_ENTRY ();
-
-
- if (!Node)
- {
- return (NULL);
- }
-
- /*
- * Walk to the end of this peer list. The last entry is marked with a flag
- * and the peer pointer is really a pointer back to the parent. This saves
- * putting a parent back pointer in each and every named object!
- */
- while (!(Node->Flags & ANOBJ_END_OF_PEER_LIST))
- {
- Node = Node->Peer;
- }
-
- return (Node->Peer);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsGetNextValidNode
- *
- * PARAMETERS: Node - Current table entry
- *
- * RETURN: Next valid Node in the linked node list. NULL if no more valid
- * nodes.
- *
- * DESCRIPTION: Find the next valid node within a name table.
- * Useful for implementing NULL-end-of-list loops.
- *
- ******************************************************************************/
-
-ACPI_NAMESPACE_NODE *
-AcpiNsGetNextValidNode (
- ACPI_NAMESPACE_NODE *Node)
-{
-
- /* If we are at the end of this peer list, return NULL */
-
- if (Node->Flags & ANOBJ_END_OF_PEER_LIST)
- {
- return NULL;
- }
-
- /* Otherwise just return the next peer */
-
- return (Node->Peer);
-}
-
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsFindParentName
- *
- * PARAMETERS: *ChildNode - Named Obj whose name is to be found
- *
- * RETURN: The ACPI name
- *
- * DESCRIPTION: Search for the given obj in its parent scope and return the
- * name segment, or "????" if the parent name can't be found
- * (which "should not happen").
- *
- ******************************************************************************/
-
-ACPI_NAME
-AcpiNsFindParentName (
- ACPI_NAMESPACE_NODE *ChildNode)
-{
- ACPI_NAMESPACE_NODE *ParentNode;
-
-
- ACPI_FUNCTION_TRACE (NsFindParentName);
-
-
- if (ChildNode)
- {
- /* Valid entry. Get the parent Node */
-
- ParentNode = AcpiNsGetParentNode (ChildNode);
- if (ParentNode)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "Parent of %p [%4.4s] is %p [%4.4s]\n",
- ChildNode, AcpiUtGetNodeName (ChildNode),
- ParentNode, AcpiUtGetNodeName (ParentNode)));
-
- if (ParentNode->Name.Integer)
- {
- return_VALUE ((ACPI_NAME) ParentNode->Name.Integer);
- }
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "Unable to find parent of %p (%4.4s)\n",
- ChildNode, AcpiUtGetNodeName (ChildNode)));
- }
-
- return_VALUE (ACPI_UNKNOWN_NAME);
-}
-#endif
-
-
diff --git a/sys/contrib/dev/acpica/nswalk.c b/sys/contrib/dev/acpica/nswalk.c
deleted file mode 100644
index a3ac86c..0000000
--- a/sys/contrib/dev/acpica/nswalk.c
+++ /dev/null
@@ -1,388 +0,0 @@
-/******************************************************************************
- *
- * Module Name: nswalk - Functions for walking the ACPI namespace
- * $Revision: 1.46 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __NSWALK_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-
-#define _COMPONENT ACPI_NAMESPACE
- ACPI_MODULE_NAME ("nswalk")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsGetNextNode
- *
- * PARAMETERS: Type - Type of node to be searched for
- * ParentNode - Parent node whose children we are
- * getting
- * ChildNode - Previous child that was found.
- * The NEXT child will be returned
- *
- * RETURN: ACPI_NAMESPACE_NODE - Pointer to the NEXT child or NULL if
- * none is found.
- *
- * DESCRIPTION: Return the next peer node within the namespace. If Handle
- * is valid, Scope is ignored. Otherwise, the first node
- * within Scope is returned.
- *
- ******************************************************************************/
-
-ACPI_NAMESPACE_NODE *
-AcpiNsGetNextNode (
- ACPI_OBJECT_TYPE Type,
- ACPI_NAMESPACE_NODE *ParentNode,
- ACPI_NAMESPACE_NODE *ChildNode)
-{
- ACPI_NAMESPACE_NODE *NextNode = NULL;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- if (!ChildNode)
- {
- /* It's really the parent's _scope_ that we want */
-
- NextNode = ParentNode->Child;
- }
-
- else
- {
- /* Start search at the NEXT node */
-
- NextNode = AcpiNsGetNextValidNode (ChildNode);
- }
-
- /* If any type is OK, we are done */
-
- if (Type == ACPI_TYPE_ANY)
- {
- /* NextNode is NULL if we are at the end-of-list */
-
- return (NextNode);
- }
-
- /* Must search for the node -- but within this scope only */
-
- while (NextNode)
- {
- /* If type matches, we are done */
-
- if (NextNode->Type == Type)
- {
- return (NextNode);
- }
-
- /* Otherwise, move on to the next node */
-
- NextNode = AcpiNsGetNextValidNode (NextNode);
- }
-
- /* Not found */
-
- return (NULL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsWalkNamespace
- *
- * PARAMETERS: Type - ACPI_OBJECT_TYPE to search for
- * StartNode - Handle in namespace where search begins
- * MaxDepth - Depth to which search is to reach
- * Flags - Whether to unlock the NS before invoking
- * the callback routine
- * UserFunction - Called when an object of "Type" is found
- * Context - Passed to user function
- * ReturnValue - from the UserFunction if terminated early.
- * Otherwise, returns NULL.
- * RETURNS: Status
- *
- * DESCRIPTION: Performs a modified depth-first walk of the namespace tree,
- * starting (and ending) at the node specified by StartHandle.
- * The UserFunction is called whenever a node that matches
- * the type parameter is found. If the user function returns
- * a non-zero value, the search is terminated immediately and this
- * value is returned to the caller.
- *
- * The point of this procedure is to provide a generic namespace
- * walk routine that can be called from multiple places to
- * provide multiple services; the User Function can be tailored
- * to each task, whether it is a print function, a compare
- * function, etc.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiNsWalkNamespace (
- ACPI_OBJECT_TYPE Type,
- ACPI_HANDLE StartNode,
- UINT32 MaxDepth,
- UINT32 Flags,
- ACPI_WALK_CALLBACK UserFunction,
- void *Context,
- void **ReturnValue)
-{
- ACPI_STATUS Status;
- ACPI_STATUS MutexStatus;
- ACPI_NAMESPACE_NODE *ChildNode;
- ACPI_NAMESPACE_NODE *ParentNode;
- ACPI_OBJECT_TYPE ChildType;
- UINT32 Level;
-
-
- ACPI_FUNCTION_TRACE (NsWalkNamespace);
-
-
- /* Special case for the namespace Root Node */
-
- if (StartNode == ACPI_ROOT_OBJECT)
- {
- StartNode = AcpiGbl_RootNode;
- }
-
- /* Null child means "get first node" */
-
- ParentNode = StartNode;
- ChildNode = NULL;
- ChildType = ACPI_TYPE_ANY;
- Level = 1;
-
- /*
- * Traverse the tree of nodes until we bubble back up to where we
- * started. When Level is zero, the loop is done because we have
- * bubbled up to (and passed) the original parent handle (StartEntry)
- */
- while (Level > 0)
- {
- /* Get the next node in this scope. Null if not found */
-
- Status = AE_OK;
- ChildNode = AcpiNsGetNextNode (ACPI_TYPE_ANY, ParentNode, ChildNode);
- if (ChildNode)
- {
- /* Found next child, get the type if we are not searching for ANY */
-
- if (Type != ACPI_TYPE_ANY)
- {
- ChildType = ChildNode->Type;
- }
-
- /*
- * Ignore all temporary namespace nodes (created during control
- * method execution) unless told otherwise. These temporary nodes
- * can cause a race condition because they can be deleted during the
- * execution of the user function (if the namespace is unlocked before
- * invocation of the user function.) Only the debugger namespace dump
- * will examine the temporary nodes.
- */
- if ((ChildNode->Flags & ANOBJ_TEMPORARY) &&
- !(Flags & ACPI_NS_WALK_TEMP_NODES))
- {
- Status = AE_CTRL_DEPTH;
- }
-
- /* Type must match requested type */
-
- else if (ChildType == Type)
- {
- /*
- * Found a matching node, invoke the user callback function.
- * Unlock the namespace if flag is set.
- */
- if (Flags & ACPI_NS_WALK_UNLOCK)
- {
- MutexStatus = AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (MutexStatus))
- {
- return_ACPI_STATUS (MutexStatus);
- }
- }
-
- Status = UserFunction (ChildNode, Level, Context, ReturnValue);
-
- if (Flags & ACPI_NS_WALK_UNLOCK)
- {
- MutexStatus = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (MutexStatus))
- {
- return_ACPI_STATUS (MutexStatus);
- }
- }
-
- switch (Status)
- {
- case AE_OK:
- case AE_CTRL_DEPTH:
-
- /* Just keep going */
- break;
-
- case AE_CTRL_TERMINATE:
-
- /* Exit now, with OK status */
-
- return_ACPI_STATUS (AE_OK);
-
- default:
-
- /* All others are valid exceptions */
-
- return_ACPI_STATUS (Status);
- }
- }
-
- /*
- * Depth first search: Attempt to go down another level in the
- * namespace if we are allowed to. Don't go any further if we have
- * reached the caller specified maximum depth or if the user
- * function has specified that the maximum depth has been reached.
- */
- if ((Level < MaxDepth) && (Status != AE_CTRL_DEPTH))
- {
- if (AcpiNsGetNextNode (ACPI_TYPE_ANY, ChildNode, NULL))
- {
- /* There is at least one child of this node, visit it */
-
- Level++;
- ParentNode = ChildNode;
- ChildNode = NULL;
- }
- }
- }
- else
- {
- /*
- * No more children of this node (AcpiNsGetNextNode failed), go
- * back upwards in the namespace tree to the node's parent.
- */
- Level--;
- ChildNode = ParentNode;
- ParentNode = AcpiNsGetParentNode (ParentNode);
- }
- }
-
- /* Complete walk, not terminated by user function */
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
diff --git a/sys/contrib/dev/acpica/nsxfeval.c b/sys/contrib/dev/acpica/nsxfeval.c
deleted file mode 100644
index 617002c..0000000
--- a/sys/contrib/dev/acpica/nsxfeval.c
+++ /dev/null
@@ -1,891 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: nsxfeval - Public interfaces to the ACPI subsystem
- * ACPI Object evaluation interfaces
- * $Revision: 1.30 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __NSXFEVAL_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acinterp.h>
-
-
-#define _COMPONENT ACPI_NAMESPACE
- ACPI_MODULE_NAME ("nsxfeval")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvaluateObjectTyped
- *
- * PARAMETERS: Handle - Object handle (optional)
- * Pathname - Object pathname (optional)
- * ExternalParams - List of parameters to pass to method,
- * terminated by NULL. May be NULL
- * if no parameters are being passed.
- * ReturnBuffer - Where to put method's return value (if
- * any). If NULL, no value is returned.
- * ReturnType - Expected type of return object
- *
- * RETURN: Status
- *
- * DESCRIPTION: Find and evaluate the given object, passing the given
- * parameters if necessary. One of "Handle" or "Pathname" must
- * be valid (non-null)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvaluateObjectTyped (
- ACPI_HANDLE Handle,
- ACPI_STRING Pathname,
- ACPI_OBJECT_LIST *ExternalParams,
- ACPI_BUFFER *ReturnBuffer,
- ACPI_OBJECT_TYPE ReturnType)
-{
- ACPI_STATUS Status;
- BOOLEAN MustFree = FALSE;
-
-
- ACPI_FUNCTION_TRACE (AcpiEvaluateObjectTyped);
-
-
- /* Return buffer must be valid */
-
- if (!ReturnBuffer)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- if (ReturnBuffer->Length == ACPI_ALLOCATE_BUFFER)
- {
- MustFree = TRUE;
- }
-
- /* Evaluate the object */
-
- Status = AcpiEvaluateObject (Handle, Pathname, ExternalParams, ReturnBuffer);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Type ANY means "don't care" */
-
- if (ReturnType == ACPI_TYPE_ANY)
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- if (ReturnBuffer->Length == 0)
- {
- /* Error because caller specifically asked for a return value */
-
- ACPI_ERROR ((AE_INFO, "No return value"));
- return_ACPI_STATUS (AE_NULL_OBJECT);
- }
-
- /* Examine the object type returned from EvaluateObject */
-
- if (((ACPI_OBJECT *) ReturnBuffer->Pointer)->Type == ReturnType)
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Return object type does not match requested type */
-
- ACPI_ERROR ((AE_INFO,
- "Incorrect return type [%s] requested [%s]",
- AcpiUtGetTypeName (((ACPI_OBJECT *) ReturnBuffer->Pointer)->Type),
- AcpiUtGetTypeName (ReturnType)));
-
- if (MustFree)
- {
- /* Caller used ACPI_ALLOCATE_BUFFER, free the return buffer */
-
- AcpiOsFree (ReturnBuffer->Pointer);
- ReturnBuffer->Pointer = NULL;
- }
-
- ReturnBuffer->Length = 0;
- return_ACPI_STATUS (AE_TYPE);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiEvaluateObjectTyped)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEvaluateObject
- *
- * PARAMETERS: Handle - Object handle (optional)
- * Pathname - Object pathname (optional)
- * ExternalParams - List of parameters to pass to method,
- * terminated by NULL. May be NULL
- * if no parameters are being passed.
- * ReturnBuffer - Where to put method's return value (if
- * any). If NULL, no value is returned.
- *
- * RETURN: Status
- *
- * DESCRIPTION: Find and evaluate the given object, passing the given
- * parameters if necessary. One of "Handle" or "Pathname" must
- * be valid (non-null)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEvaluateObject (
- ACPI_HANDLE Handle,
- ACPI_STRING Pathname,
- ACPI_OBJECT_LIST *ExternalParams,
- ACPI_BUFFER *ReturnBuffer)
-{
- ACPI_STATUS Status;
- ACPI_EVALUATE_INFO *Info;
- ACPI_SIZE BufferSpaceNeeded;
- UINT32 i;
-
-
- ACPI_FUNCTION_TRACE (AcpiEvaluateObject);
-
-
- /* Allocate and initialize the evaluation information block */
-
- Info = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_EVALUATE_INFO));
- if (!Info)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- Info->Pathname = Pathname;
- Info->ParameterType = ACPI_PARAM_ARGS;
-
- /* Convert and validate the device handle */
-
- Info->PrefixNode = AcpiNsMapHandleToNode (Handle);
- if (!Info->PrefixNode)
- {
- Status = AE_BAD_PARAMETER;
- goto Cleanup;
- }
-
- /*
- * If there are parameters to be passed to a control method, the external
- * objects must all be converted to internal objects
- */
- if (ExternalParams && ExternalParams->Count)
- {
- /*
- * Allocate a new parameter block for the internal objects
- * Add 1 to count to allow for null terminated internal list
- */
- Info->Parameters = ACPI_ALLOCATE_ZEROED (
- ((ACPI_SIZE) ExternalParams->Count + 1) * sizeof (void *));
- if (!Info->Parameters)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- /* Convert each external object in the list to an internal object */
-
- for (i = 0; i < ExternalParams->Count; i++)
- {
- Status = AcpiUtCopyEobjectToIobject (
- &ExternalParams->Pointer[i], &Info->Parameters[i]);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
- }
- Info->Parameters[ExternalParams->Count] = NULL;
- }
-
- /*
- * Three major cases:
- * 1) Fully qualified pathname
- * 2) No handle, not fully qualified pathname (error)
- * 3) Valid handle
- */
- if ((Pathname) &&
- (AcpiNsValidRootPrefix (Pathname[0])))
- {
- /* The path is fully qualified, just evaluate by name */
-
- Info->PrefixNode = NULL;
- Status = AcpiNsEvaluate (Info);
- }
- else if (!Handle)
- {
- /*
- * A handle is optional iff a fully qualified pathname is specified.
- * Since we've already handled fully qualified names above, this is
- * an error
- */
- if (!Pathname)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "Both Handle and Pathname are NULL"));
- }
- else
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "Null Handle with relative pathname [%s]", Pathname));
- }
-
- Status = AE_BAD_PARAMETER;
- }
- else
- {
- /* We have a namespace a node and a possible relative path */
-
- Status = AcpiNsEvaluate (Info);
- }
-
- /*
- * If we are expecting a return value, and all went well above,
- * copy the return value to an external object.
- */
- if (ReturnBuffer)
- {
- if (!Info->ReturnObject)
- {
- ReturnBuffer->Length = 0;
- }
- else
- {
- if (ACPI_GET_DESCRIPTOR_TYPE (Info->ReturnObject) ==
- ACPI_DESC_TYPE_NAMED)
- {
- /*
- * If we received a NS Node as a return object, this means that
- * the object we are evaluating has nothing interesting to
- * return (such as a mutex, etc.) We return an error because
- * these types are essentially unsupported by this interface.
- * We don't check up front because this makes it easier to add
- * support for various types at a later date if necessary.
- */
- Status = AE_TYPE;
- Info->ReturnObject = NULL; /* No need to delete a NS Node */
- ReturnBuffer->Length = 0;
- }
-
- if (ACPI_SUCCESS (Status))
- {
- /* Get the size of the returned object */
-
- Status = AcpiUtGetObjectSize (Info->ReturnObject,
- &BufferSpaceNeeded);
- if (ACPI_SUCCESS (Status))
- {
- /* Validate/Allocate/Clear caller buffer */
-
- Status = AcpiUtInitializeBuffer (ReturnBuffer,
- BufferSpaceNeeded);
- if (ACPI_FAILURE (Status))
- {
- /*
- * Caller's buffer is too small or a new one can't
- * be allocated
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "Needed buffer size %X, %s\n",
- (UINT32) BufferSpaceNeeded,
- AcpiFormatException (Status)));
- }
- else
- {
- /* We have enough space for the object, build it */
-
- Status = AcpiUtCopyIobjectToEobject (Info->ReturnObject,
- ReturnBuffer);
- }
- }
- }
- }
- }
-
- if (Info->ReturnObject)
- {
- /*
- * Delete the internal return object. NOTE: Interpreter must be
- * locked to avoid race condition.
- */
- AcpiExEnterInterpreter ();
-
- /* Remove one reference on the return object (should delete it) */
-
- AcpiUtRemoveReference (Info->ReturnObject);
- AcpiExExitInterpreter ();
- }
-
-
-Cleanup:
-
- /* Free the input parameter list (if we created one) */
-
- if (Info->Parameters)
- {
- /* Free the allocated parameter block */
-
- AcpiUtDeleteInternalObjectList (Info->Parameters);
- }
-
- ACPI_FREE (Info);
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiEvaluateObject)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiWalkNamespace
- *
- * PARAMETERS: Type - ACPI_OBJECT_TYPE to search for
- * StartObject - Handle in namespace where search begins
- * MaxDepth - Depth to which search is to reach
- * UserFunction - Called when an object of "Type" is found
- * Context - Passed to user function
- * ReturnValue - Location where return value of
- * UserFunction is put if terminated early
- *
- * RETURNS Return value from the UserFunction if terminated early.
- * Otherwise, returns NULL.
- *
- * DESCRIPTION: Performs a modified depth-first walk of the namespace tree,
- * starting (and ending) at the object specified by StartHandle.
- * The UserFunction is called whenever an object that matches
- * the type parameter is found. If the user function returns
- * a non-zero value, the search is terminated immediately and this
- * value is returned to the caller.
- *
- * The point of this procedure is to provide a generic namespace
- * walk routine that can be called from multiple places to
- * provide multiple services; the User Function can be tailored
- * to each task, whether it is a print function, a compare
- * function, etc.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiWalkNamespace (
- ACPI_OBJECT_TYPE Type,
- ACPI_HANDLE StartObject,
- UINT32 MaxDepth,
- ACPI_WALK_CALLBACK UserFunction,
- void *Context,
- void **ReturnValue)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (AcpiWalkNamespace);
-
-
- /* Parameter validation */
-
- if ((Type > ACPI_TYPE_LOCAL_MAX) ||
- (!MaxDepth) ||
- (!UserFunction))
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /*
- * Lock the namespace around the walk.
- * The namespace will be unlocked/locked around each call
- * to the user function - since this function
- * must be allowed to make Acpi calls itself.
- */
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- Status = AcpiNsWalkNamespace (Type, StartObject, MaxDepth,
- ACPI_NS_WALK_UNLOCK,
- UserFunction, Context, ReturnValue);
-
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiWalkNamespace)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiNsGetDeviceCallback
- *
- * PARAMETERS: Callback from AcpiGetDevice
- *
- * RETURN: Status
- *
- * DESCRIPTION: Takes callbacks from WalkNamespace and filters out all non-
- * present devices, or if they specified a HID, it filters based
- * on that.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiNsGetDeviceCallback (
- ACPI_HANDLE ObjHandle,
- UINT32 NestingLevel,
- void *Context,
- void **ReturnValue)
-{
- ACPI_GET_DEVICES_INFO *Info = Context;
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node;
- UINT32 Flags;
- ACPI_DEVICE_ID Hid;
- ACPI_COMPATIBLE_ID_LIST *Cid;
- ACPI_NATIVE_UINT i;
-
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- Node = AcpiNsMapHandleToNode (ObjHandle);
- Status = AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- if (!Node)
- {
- return (AE_BAD_PARAMETER);
- }
-
- /* Run _STA to determine if device is present */
-
- Status = AcpiUtExecute_STA (Node, &Flags);
- if (ACPI_FAILURE (Status))
- {
- return (AE_CTRL_DEPTH);
- }
-
- if (!(Flags & ACPI_STA_DEVICE_PRESENT))
- {
- /* Don't examine children of the device if not present */
-
- return (AE_CTRL_DEPTH);
- }
-
- /* Filter based on device HID & CID */
-
- if (Info->Hid != NULL)
- {
- Status = AcpiUtExecute_HID (Node, &Hid);
- if (Status == AE_NOT_FOUND)
- {
- return (AE_OK);
- }
- else if (ACPI_FAILURE (Status))
- {
- return (AE_CTRL_DEPTH);
- }
-
- if (ACPI_STRNCMP (Hid.Value, Info->Hid, sizeof (Hid.Value)) != 0)
- {
- /* Get the list of Compatible IDs */
-
- Status = AcpiUtExecute_CID (Node, &Cid);
- if (Status == AE_NOT_FOUND)
- {
- return (AE_OK);
- }
- else if (ACPI_FAILURE (Status))
- {
- return (AE_CTRL_DEPTH);
- }
-
- /* Walk the CID list */
-
- for (i = 0; i < Cid->Count; i++)
- {
- if (ACPI_STRNCMP (Cid->Id[i].Value, Info->Hid,
- sizeof (ACPI_COMPATIBLE_ID)) != 0)
- {
- ACPI_FREE (Cid);
- return (AE_OK);
- }
- }
- ACPI_FREE (Cid);
- }
- }
-
- Status = Info->UserFunction (ObjHandle, NestingLevel, Info->Context,
- ReturnValue);
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiGetDevices
- *
- * PARAMETERS: HID - HID to search for. Can be NULL.
- * UserFunction - Called when a matching object is found
- * Context - Passed to user function
- * ReturnValue - Location where return value of
- * UserFunction is put if terminated early
- *
- * RETURNS Return value from the UserFunction if terminated early.
- * Otherwise, returns NULL.
- *
- * DESCRIPTION: Performs a modified depth-first walk of the namespace tree,
- * starting (and ending) at the object specified by StartHandle.
- * The UserFunction is called whenever an object of type
- * Device is found. If the user function returns
- * a non-zero value, the search is terminated immediately and this
- * value is returned to the caller.
- *
- * This is a wrapper for WalkNamespace, but the callback performs
- * additional filtering. Please see AcpiGetDeviceCallback.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetDevices (
- char *HID,
- ACPI_WALK_CALLBACK UserFunction,
- void *Context,
- void **ReturnValue)
-{
- ACPI_STATUS Status;
- ACPI_GET_DEVICES_INFO Info;
-
-
- ACPI_FUNCTION_TRACE (AcpiGetDevices);
-
-
- /* Parameter validation */
-
- if (!UserFunction)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /*
- * We're going to call their callback from OUR callback, so we need
- * to know what it is, and their context parameter.
- */
- Info.Hid = HID;
- Info.Context = Context;
- Info.UserFunction = UserFunction;
-
- /*
- * Lock the namespace around the walk.
- * The namespace will be unlocked/locked around each call
- * to the user function - since this function
- * must be allowed to make Acpi calls itself.
- */
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- Status = AcpiNsWalkNamespace (ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT,
- ACPI_UINT32_MAX, ACPI_NS_WALK_UNLOCK,
- AcpiNsGetDeviceCallback, &Info, ReturnValue);
-
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetDevices)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiAttachData
- *
- * PARAMETERS: ObjHandle - Namespace node
- * Handler - Handler for this attachment
- * Data - Pointer to data to be attached
- *
- * RETURN: Status
- *
- * DESCRIPTION: Attach arbitrary data and handler to a namespace node.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiAttachData (
- ACPI_HANDLE ObjHandle,
- ACPI_OBJECT_HANDLER Handler,
- void *Data)
-{
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
-
-
- /* Parameter validation */
-
- if (!ObjHandle ||
- !Handler ||
- !Data)
- {
- return (AE_BAD_PARAMETER);
- }
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- /* Convert and validate the handle */
-
- Node = AcpiNsMapHandleToNode (ObjHandle);
- if (!Node)
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
-
- Status = AcpiNsAttachData (Node, Handler, Data);
-
-UnlockAndExit:
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiAttachData)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDetachData
- *
- * PARAMETERS: ObjHandle - Namespace node handle
- * Handler - Handler used in call to AcpiAttachData
- *
- * RETURN: Status
- *
- * DESCRIPTION: Remove data that was previously attached to a node.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDetachData (
- ACPI_HANDLE ObjHandle,
- ACPI_OBJECT_HANDLER Handler)
-{
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
-
-
- /* Parameter validation */
-
- if (!ObjHandle ||
- !Handler)
- {
- return (AE_BAD_PARAMETER);
- }
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- /* Convert and validate the handle */
-
- Node = AcpiNsMapHandleToNode (ObjHandle);
- if (!Node)
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
-
- Status = AcpiNsDetachData (Node, Handler);
-
-UnlockAndExit:
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiDetachData)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiGetData
- *
- * PARAMETERS: ObjHandle - Namespace node
- * Handler - Handler used in call to AttachData
- * Data - Where the data is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Retrieve data that was previously attached to a namespace node.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetData (
- ACPI_HANDLE ObjHandle,
- ACPI_OBJECT_HANDLER Handler,
- void **Data)
-{
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
-
-
- /* Parameter validation */
-
- if (!ObjHandle ||
- !Handler ||
- !Data)
- {
- return (AE_BAD_PARAMETER);
- }
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- /* Convert and validate the handle */
-
- Node = AcpiNsMapHandleToNode (ObjHandle);
- if (!Node)
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
-
- Status = AcpiNsGetAttachedData (Node, Handler, Data);
-
-UnlockAndExit:
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetData)
-
-
diff --git a/sys/contrib/dev/acpica/nsxfname.c b/sys/contrib/dev/acpica/nsxfname.c
deleted file mode 100644
index c19f2a9..0000000
--- a/sys/contrib/dev/acpica/nsxfname.c
+++ /dev/null
@@ -1,474 +0,0 @@
-/******************************************************************************
- *
- * Module Name: nsxfname - Public interfaces to the ACPI subsystem
- * ACPI Namespace oriented interfaces
- * $Revision: 1.112 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __NSXFNAME_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-
-#define _COMPONENT ACPI_NAMESPACE
- ACPI_MODULE_NAME ("nsxfname")
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiGetHandle
- *
- * PARAMETERS: Parent - Object to search under (search scope).
- * Pathname - Pointer to an asciiz string containing the
- * name
- * RetHandle - Where the return handle is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: This routine will search for a caller specified name in the
- * name space. The caller can restrict the search region by
- * specifying a non NULL parent. The parent value is itself a
- * namespace handle.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetHandle (
- ACPI_HANDLE Parent,
- ACPI_STRING Pathname,
- ACPI_HANDLE *RetHandle)
-{
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node = NULL;
- ACPI_NAMESPACE_NODE *PrefixNode = NULL;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /* Parameter Validation */
-
- if (!RetHandle || !Pathname)
- {
- return (AE_BAD_PARAMETER);
- }
-
- /* Convert a parent handle to a prefix node */
-
- if (Parent)
- {
- PrefixNode = AcpiNsMapHandleToNode (Parent);
- if (!PrefixNode)
- {
- return (AE_BAD_PARAMETER);
- }
- }
-
- /*
- * Valid cases are:
- * 1) Fully qualified pathname
- * 2) Parent + Relative pathname
- *
- * Error for <null Parent + relative path>
- */
- if (AcpiNsValidRootPrefix (Pathname[0]))
- {
- /* Pathname is fully qualified (starts with '\') */
-
- /* Special case for root-only, since we can't search for it */
-
- if (!ACPI_STRCMP (Pathname, ACPI_NS_ROOT_PATH))
- {
- *RetHandle = AcpiNsConvertEntryToHandle (AcpiGbl_RootNode);
- return (AE_OK);
- }
- }
- else if (!PrefixNode)
- {
- /* Relative path with null prefix is disallowed */
-
- return (AE_BAD_PARAMETER);
- }
-
- /* Find the Node and convert to a handle */
-
- Status = AcpiNsGetNode (PrefixNode, Pathname, ACPI_NS_NO_UPSEARCH, &Node);
- if (ACPI_SUCCESS (Status))
- {
- *RetHandle = AcpiNsConvertEntryToHandle (Node);
- }
-
- return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetHandle)
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiGetName
- *
- * PARAMETERS: Handle - Handle to be converted to a pathname
- * NameType - Full pathname or single segment
- * Buffer - Buffer for returned path
- *
- * RETURN: Pointer to a string containing the fully qualified Name.
- *
- * DESCRIPTION: This routine returns the fully qualified name associated with
- * the Handle parameter. This and the AcpiPathnameToHandle are
- * complementary functions.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetName (
- ACPI_HANDLE Handle,
- UINT32 NameType,
- ACPI_BUFFER *Buffer)
-{
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node;
-
-
- /* Parameter validation */
-
- if (NameType > ACPI_NAME_TYPE_MAX)
- {
- return (AE_BAD_PARAMETER);
- }
-
- Status = AcpiUtValidateBuffer (Buffer);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- if (NameType == ACPI_FULL_PATHNAME)
- {
- /* Get the full pathname (From the namespace root) */
-
- Status = AcpiNsHandleToPathname (Handle, Buffer);
- return (Status);
- }
-
- /*
- * Wants the single segment ACPI name.
- * Validate handle and convert to a namespace Node
- */
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- Node = AcpiNsMapHandleToNode (Handle);
- if (!Node)
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
-
- /* Validate/Allocate/Clear caller buffer */
-
- Status = AcpiUtInitializeBuffer (Buffer, ACPI_PATH_SEGMENT_LENGTH);
- if (ACPI_FAILURE (Status))
- {
- goto UnlockAndExit;
- }
-
- /* Just copy the ACPI name from the Node and zero terminate it */
-
- ACPI_STRNCPY (Buffer->Pointer, AcpiUtGetNodeName (Node),
- ACPI_NAME_SIZE);
- ((char *) Buffer->Pointer) [ACPI_NAME_SIZE] = 0;
- Status = AE_OK;
-
-
-UnlockAndExit:
-
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetName)
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiGetObjectInfo
- *
- * PARAMETERS: Handle - Object Handle
- * Buffer - Where the info is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Returns information about an object as gleaned from the
- * namespace node and possibly by running several standard
- * control methods (Such as in the case of a device.)
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetObjectInfo (
- ACPI_HANDLE Handle,
- ACPI_BUFFER *Buffer)
-{
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_DEVICE_INFO *Info;
- ACPI_DEVICE_INFO *ReturnInfo;
- ACPI_COMPATIBLE_ID_LIST *CidList = NULL;
- ACPI_SIZE Size;
-
-
- /* Parameter validation */
-
- if (!Handle || !Buffer)
- {
- return (AE_BAD_PARAMETER);
- }
-
- Status = AcpiUtValidateBuffer (Buffer);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- Info = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_DEVICE_INFO));
- if (!Info)
- {
- return (AE_NO_MEMORY);
- }
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- Node = AcpiNsMapHandleToNode (Handle);
- if (!Node)
- {
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- goto Cleanup;
- }
-
- /* Init return structure */
-
- Size = sizeof (ACPI_DEVICE_INFO);
-
- Info->Type = Node->Type;
- Info->Name = Node->Name.Integer;
- Info->Valid = 0;
-
- Status = AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- /* If not a device, we are all done */
-
- if (Info->Type == ACPI_TYPE_DEVICE)
- {
- /*
- * Get extra info for ACPI Devices objects only:
- * Run the Device _HID, _UID, _CID, _STA, _ADR and _SxD methods.
- *
- * Note: none of these methods are required, so they may or may
- * not be present for this device. The Info->Valid bitfield is used
- * to indicate which methods were found and ran successfully.
- */
-
- /* Execute the Device._HID method */
-
- Status = AcpiUtExecute_HID (Node, &Info->HardwareId);
- if (ACPI_SUCCESS (Status))
- {
- Info->Valid |= ACPI_VALID_HID;
- }
-
- /* Execute the Device._UID method */
-
- Status = AcpiUtExecute_UID (Node, &Info->UniqueId);
- if (ACPI_SUCCESS (Status))
- {
- Info->Valid |= ACPI_VALID_UID;
- }
-
- /* Execute the Device._CID method */
-
- Status = AcpiUtExecute_CID (Node, &CidList);
- if (ACPI_SUCCESS (Status))
- {
- Size += CidList->Size;
- Info->Valid |= ACPI_VALID_CID;
- }
-
- /* Execute the Device._STA method */
-
- Status = AcpiUtExecute_STA (Node, &Info->CurrentStatus);
- if (ACPI_SUCCESS (Status))
- {
- Info->Valid |= ACPI_VALID_STA;
- }
-
- /* Execute the Device._ADR method */
-
- Status = AcpiUtEvaluateNumericObject (METHOD_NAME__ADR, Node,
- &Info->Address);
- if (ACPI_SUCCESS (Status))
- {
- Info->Valid |= ACPI_VALID_ADR;
- }
-
- /* Execute the Device._SxD methods */
-
- Status = AcpiUtExecute_Sxds (Node, Info->HighestDstates);
- if (ACPI_SUCCESS (Status))
- {
- Info->Valid |= ACPI_VALID_SXDS;
- }
- }
-
- /* Validate/Allocate/Clear caller buffer */
-
- Status = AcpiUtInitializeBuffer (Buffer, Size);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- /* Populate the return buffer */
-
- ReturnInfo = Buffer->Pointer;
- ACPI_MEMCPY (ReturnInfo, Info, sizeof (ACPI_DEVICE_INFO));
-
- if (CidList)
- {
- ACPI_MEMCPY (&ReturnInfo->CompatibilityId, CidList, CidList->Size);
- }
-
-
-Cleanup:
- ACPI_FREE (Info);
- if (CidList)
- {
- ACPI_FREE (CidList);
- }
- return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetObjectInfo)
-
diff --git a/sys/contrib/dev/acpica/nsxfobj.c b/sys/contrib/dev/acpica/nsxfobj.c
deleted file mode 100644
index 3277379..0000000
--- a/sys/contrib/dev/acpica/nsxfobj.c
+++ /dev/null
@@ -1,356 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: nsxfobj - Public interfaces to the ACPI subsystem
- * ACPI Object oriented interfaces
- * $Revision: 1.122 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __NSXFOBJ_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-
-#define _COMPONENT ACPI_NAMESPACE
- ACPI_MODULE_NAME ("nsxfobj")
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiGetType
- *
- * PARAMETERS: Handle - Handle of object whose type is desired
- * RetType - Where the type will be placed
- *
- * RETURN: Status
- *
- * DESCRIPTION: This routine returns the type associatd with a particular handle
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetType (
- ACPI_HANDLE Handle,
- ACPI_OBJECT_TYPE *RetType)
-{
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
-
-
- /* Parameter Validation */
-
- if (!RetType)
- {
- return (AE_BAD_PARAMETER);
- }
-
- /*
- * Special case for the predefined Root Node
- * (return type ANY)
- */
- if (Handle == ACPI_ROOT_OBJECT)
- {
- *RetType = ACPI_TYPE_ANY;
- return (AE_OK);
- }
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- /* Convert and validate the handle */
-
- Node = AcpiNsMapHandleToNode (Handle);
- if (!Node)
- {
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- return (AE_BAD_PARAMETER);
- }
-
- *RetType = Node->Type;
-
-
- Status = AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetType)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiGetParent
- *
- * PARAMETERS: Handle - Handle of object whose parent is desired
- * RetHandle - Where the parent handle will be placed
- *
- * RETURN: Status
- *
- * DESCRIPTION: Returns a handle to the parent of the object represented by
- * Handle.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetParent (
- ACPI_HANDLE Handle,
- ACPI_HANDLE *RetHandle)
-{
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
-
-
- if (!RetHandle)
- {
- return (AE_BAD_PARAMETER);
- }
-
- /* Special case for the predefined Root Node (no parent) */
-
- if (Handle == ACPI_ROOT_OBJECT)
- {
- return (AE_NULL_ENTRY);
- }
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- /* Convert and validate the handle */
-
- Node = AcpiNsMapHandleToNode (Handle);
- if (!Node)
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
-
- /* Get the parent entry */
-
- *RetHandle =
- AcpiNsConvertEntryToHandle (AcpiNsGetParentNode (Node));
-
- /* Return exception if parent is null */
-
- if (!AcpiNsGetParentNode (Node))
- {
- Status = AE_NULL_ENTRY;
- }
-
-
-UnlockAndExit:
-
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetParent)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiGetNextObject
- *
- * PARAMETERS: Type - Type of object to be searched for
- * Parent - Parent object whose children we are getting
- * LastChild - Previous child that was found.
- * The NEXT child will be returned
- * RetHandle - Where handle to the next object is placed
- *
- * RETURN: Status
- *
- * DESCRIPTION: Return the next peer object within the namespace. If Handle is
- * valid, Scope is ignored. Otherwise, the first object within
- * Scope is returned.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetNextObject (
- ACPI_OBJECT_TYPE Type,
- ACPI_HANDLE Parent,
- ACPI_HANDLE Child,
- ACPI_HANDLE *RetHandle)
-{
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_NAMESPACE_NODE *ParentNode = NULL;
- ACPI_NAMESPACE_NODE *ChildNode = NULL;
-
-
- /* Parameter validation */
-
- if (Type > ACPI_TYPE_EXTERNAL_MAX)
- {
- return (AE_BAD_PARAMETER);
- }
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- /* If null handle, use the parent */
-
- if (!Child)
- {
- /* Start search at the beginning of the specified scope */
-
- ParentNode = AcpiNsMapHandleToNode (Parent);
- if (!ParentNode)
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
- }
- else
- {
- /* Non-null handle, ignore the parent */
- /* Convert and validate the handle */
-
- ChildNode = AcpiNsMapHandleToNode (Child);
- if (!ChildNode)
- {
- Status = AE_BAD_PARAMETER;
- goto UnlockAndExit;
- }
- }
-
- /* Internal function does the real work */
-
- Node = AcpiNsGetNextNode (Type, ParentNode, ChildNode);
- if (!Node)
- {
- Status = AE_NOT_FOUND;
- goto UnlockAndExit;
- }
-
- if (RetHandle)
- {
- *RetHandle = AcpiNsConvertEntryToHandle (Node);
- }
-
-
-UnlockAndExit:
-
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- return (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetNextObject)
-
diff --git a/sys/contrib/dev/acpica/osunixxf.c b/sys/contrib/dev/acpica/osunixxf.c
deleted file mode 100644
index 8fc21fc..0000000
--- a/sys/contrib/dev/acpica/osunixxf.c
+++ /dev/null
@@ -1,1155 +0,0 @@
-/******************************************************************************
- *
- * Module Name: osunixxf - UNIX OSL interfaces
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-/*
- * These interfaces are required in order to compile the ASL compiler under
- * Linux.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <unistd.h>
-#include <sys/time.h>
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/acdebug.h>
-
-#define _COMPONENT ACPI_OS_SERVICES
- ACPI_MODULE_NAME ("osunixxf")
-
-
-extern FILE *AcpiGbl_DebugFile;
-FILE *AcpiGbl_OutputFile;
-
-ACPI_PHYSICAL_ADDRESS
-AeLocalGetRootPointer (
- void);
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsInitialize, AcpiOsTerminate
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Init and terminate. Nothing to do.
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsInitialize (void)
-{
- AcpiGbl_OutputFile = stdout;
-
- return AE_OK;
-}
-
-
-ACPI_STATUS
-AcpiOsTerminate (void)
-{
- return AE_OK;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsGetRootPointer
- *
- * PARAMETERS: None
- *
- * RETURN: RSDP physical address
- *
- * DESCRIPTION: Gets the root pointer (RSDP)
- *
- *****************************************************************************/
-
-ACPI_PHYSICAL_ADDRESS
-AcpiOsGetRootPointer (
- void)
-{
-
- return (AeLocalGetRootPointer ());
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsPredefinedOverride
- *
- * PARAMETERS: InitVal - Initial value of the predefined object
- * NewVal - The new value for the object
- *
- * RETURN: Status, pointer to value. Null pointer returned if not
- * overriding.
- *
- * DESCRIPTION: Allow the OS to override predefined names
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsPredefinedOverride (
- const ACPI_PREDEFINED_NAMES *InitVal,
- ACPI_STRING *NewVal)
-{
-
- if (!InitVal || !NewVal)
- {
- return (AE_BAD_PARAMETER);
- }
-
- *NewVal = NULL;
- return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsTableOverride
- *
- * PARAMETERS: ExistingTable - Header of current table (probably firmware)
- * NewTable - Where an entire new table is returned.
- *
- * RETURN: Status, pointer to new table. Null pointer returned if no
- * table is available to override
- *
- * DESCRIPTION: Return a different version of a table if one is available
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsTableOverride (
- ACPI_TABLE_HEADER *ExistingTable,
- ACPI_TABLE_HEADER **NewTable)
-{
-
- if (!ExistingTable || !NewTable)
- {
- return (AE_BAD_PARAMETER);
- }
-
- *NewTable = NULL;
-
-#ifdef ACPI_EXEC_APP
-
- /* This code exercises the table override mechanism in the core */
-
- if (ACPI_COMPARE_NAME (ExistingTable->Signature, ACPI_SIG_DSDT))
- {
- /* override DSDT with itself */
-
- *NewTable = AcpiGbl_DbTablePtr;
- }
- return (AE_OK);
-#else
- return AE_NO_ACPI_TABLES;
-#endif
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsReadable
- *
- * PARAMETERS: Pointer - Area to be verified
- * Length - Size of area
- *
- * RETURN: TRUE if readable for entire length
- *
- * DESCRIPTION: Verify that a pointer is valid for reading
- *
- *****************************************************************************/
-
-BOOLEAN
-AcpiOsReadable (
- void *Pointer,
- ACPI_SIZE Length)
-{
-
- return (TRUE);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsWritable
- *
- * PARAMETERS: Pointer - Area to be verified
- * Length - Size of area
- *
- * RETURN: TRUE if writable for entire length
- *
- * DESCRIPTION: Verify that a pointer is valid for writing
- *
- *****************************************************************************/
-
-BOOLEAN
-AcpiOsWritable (
- void *Pointer,
- ACPI_SIZE Length)
-{
-
- return (TRUE);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsRedirectOutput
- *
- * PARAMETERS: Destination - An open file handle/pointer
- *
- * RETURN: None
- *
- * DESCRIPTION: Causes redirect of AcpiOsPrintf and AcpiOsVprintf
- *
- *****************************************************************************/
-
-void
-AcpiOsRedirectOutput (
- void *Destination)
-{
-
- AcpiGbl_OutputFile = Destination;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsPrintf
- *
- * PARAMETERS: fmt, ... Standard printf format
- *
- * RETURN: None
- *
- * DESCRIPTION: Formatted output
- *
- *****************************************************************************/
-
-void ACPI_INTERNAL_VAR_XFACE
-AcpiOsPrintf (
- const char *Fmt,
- ...)
-{
- va_list Args;
-
-
- va_start (Args, Fmt);
-
- AcpiOsVprintf (Fmt, Args);
-
- va_end (Args);
- return;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsVprintf
- *
- * PARAMETERS: fmt Standard printf format
- * args Argument list
- *
- * RETURN: None
- *
- * DESCRIPTION: Formatted output with argument list pointer
- *
- *****************************************************************************/
-
-void
-AcpiOsVprintf (
- const char *Fmt,
- va_list Args)
-{
- INT32 Count = 0;
- UINT8 Flags;
-
-
- Flags = AcpiGbl_DbOutputFlags;
- if (Flags & ACPI_DB_REDIRECTABLE_OUTPUT)
- {
- /* Output is directable to either a file (if open) or the console */
-
- if (AcpiGbl_DebugFile)
- {
- /* Output file is open, send the output there */
-
- Count = vfprintf (AcpiGbl_DebugFile, Fmt, Args);
- }
- else
- {
- /* No redirection, send output to console (once only!) */
-
- Flags |= ACPI_DB_CONSOLE_OUTPUT;
- }
- }
-
- if (Flags & ACPI_DB_CONSOLE_OUTPUT)
- {
- Count = vfprintf (AcpiGbl_OutputFile, Fmt, Args);
- }
-
- return;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsGetLine
- *
- * PARAMETERS: fmt Standard printf format
- * args Argument list
- *
- * RETURN: Actual bytes read
- *
- * DESCRIPTION: Formatted input with argument list pointer
- *
- *****************************************************************************/
-
-UINT32
-AcpiOsGetLine (
- char *Buffer)
-{
- UINT8 Temp;
- UINT32 i;
-
-
- for (i = 0; ; i++)
- {
- scanf ("%1c", &Temp);
- if (!Temp || Temp == '\n')
- {
- break;
- }
-
- Buffer [i] = Temp;
- }
-
- /* Null terminate the buffer */
-
- Buffer [i] = 0;
-
- /* Return the number of bytes in the string */
-
- return (i);
-}
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsMapMemory
- *
- * PARAMETERS: where Physical address of memory to be mapped
- * length How much memory to map
- *
- * RETURN: Pointer to mapped memory. Null on error.
- *
- * DESCRIPTION: Map physical memory into caller's address space
- *
- *****************************************************************************/
-
-void *
-AcpiOsMapMemory (
- ACPI_PHYSICAL_ADDRESS where,
- ACPI_SIZE length)
-{
-
- return (ACPI_TO_POINTER ((ACPI_NATIVE_UINT) where));
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsUnmapMemory
- *
- * PARAMETERS: where Logical address of memory to be unmapped
- * length How much memory to unmap
- *
- * RETURN: None.
- *
- * DESCRIPTION: Delete a previously created mapping. Where and Length must
- * correspond to a previous mapping exactly.
- *
- *****************************************************************************/
-
-void
-AcpiOsUnmapMemory (
- void *where,
- ACPI_SIZE length)
-{
-
- return;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsAllocate
- *
- * PARAMETERS: Size Amount to allocate, in bytes
- *
- * RETURN: Pointer to the new allocation. Null on error.
- *
- * DESCRIPTION: Allocate memory. Algorithm is dependent on the OS.
- *
- *****************************************************************************/
-
-void *
-AcpiOsAllocate (
- ACPI_SIZE size)
-{
- void *Mem;
-
-
- Mem = (void *) malloc ((size_t) size);
-
- return Mem;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsFree
- *
- * PARAMETERS: mem Pointer to previously allocated memory
- *
- * RETURN: None.
- *
- * DESCRIPTION: Free memory allocated via AcpiOsAllocate
- *
- *****************************************************************************/
-
-void
-AcpiOsFree (
- void *mem)
-{
-
-
- free (mem);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsCreateSemaphore
- *
- * PARAMETERS: InitialUnits - Units to be assigned to the new semaphore
- * OutHandle - Where a handle will be returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create an OS semaphore
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsCreateSemaphore (
- UINT32 MaxUnits,
- UINT32 InitialUnits,
- ACPI_HANDLE *OutHandle)
-{
-
-
- *OutHandle = (ACPI_HANDLE) 1;
- return AE_OK;
-}
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsDeleteSemaphore
- *
- * PARAMETERS: Handle - Handle returned by AcpiOsCreateSemaphore
- *
- * RETURN: Status
- *
- * DESCRIPTION: Delete an OS semaphore
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsDeleteSemaphore (
- ACPI_HANDLE Handle)
-{
-
- if (!Handle)
- {
- return AE_BAD_PARAMETER;
- }
-
- return AE_OK;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsWaitSemaphore
- *
- * PARAMETERS: Handle - Handle returned by AcpiOsCreateSemaphore
- * Units - How many units to wait for
- * Timeout - How long to wait
- *
- * RETURN: Status
- *
- * DESCRIPTION: Wait for units
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsWaitSemaphore (
- ACPI_HANDLE Handle,
- UINT32 Units,
- UINT16 Timeout)
-{
-
-
- return AE_OK;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsSignalSemaphore
- *
- * PARAMETERS: Handle - Handle returned by AcpiOsCreateSemaphore
- * Units - Number of units to send
- *
- * RETURN: Status
- *
- * DESCRIPTION: Send units
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsSignalSemaphore (
- ACPI_HANDLE Handle,
- UINT32 Units)
-{
-
-
- return AE_OK;
-}
-
-
-ACPI_STATUS
-AcpiOsCreateLock (
- ACPI_SPINLOCK *OutHandle)
-{
-
- return (AcpiOsCreateSemaphore (1, 1, OutHandle));
-}
-
-void
-AcpiOsDeleteLock (
- ACPI_SPINLOCK Handle)
-{
- AcpiOsDeleteSemaphore (Handle);
-}
-
-
-ACPI_CPU_FLAGS
-AcpiOsAcquireLock (
- ACPI_HANDLE Handle)
-{
- AcpiOsWaitSemaphore (Handle, 1, 0xFFFF);
- return (0);
-}
-
-
-void
-AcpiOsReleaseLock (
- ACPI_SPINLOCK Handle,
- ACPI_CPU_FLAGS Flags)
-{
- AcpiOsSignalSemaphore (Handle, 1);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsInstallInterruptHandler
- *
- * PARAMETERS: InterruptNumber Level handler should respond to.
- * Isr Address of the ACPI interrupt handler
- * ExceptPtr Where status is returned
- *
- * RETURN: Handle to the newly installed handler.
- *
- * DESCRIPTION: Install an interrupt handler. Used to install the ACPI
- * OS-independent handler.
- *
- *****************************************************************************/
-
-UINT32
-AcpiOsInstallInterruptHandler (
- UINT32 InterruptNumber,
- ACPI_OSD_HANDLER ServiceRoutine,
- void *Context)
-{
-
-
- return AE_OK;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsRemoveInterruptHandler
- *
- * PARAMETERS: Handle Returned when handler was installed
- *
- * RETURN: Status
- *
- * DESCRIPTION: Uninstalls an interrupt handler.
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsRemoveInterruptHandler (
- UINT32 InterruptNumber,
- ACPI_OSD_HANDLER ServiceRoutine)
-{
-
- return AE_OK;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsExecute
- *
- * PARAMETERS: Type - Type of execution
- * Function - Address of the function to execute
- * Context - Passed as a parameter to the function
- *
- * RETURN: Status.
- *
- * DESCRIPTION: Execute a new thread
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsExecute (
- ACPI_EXECUTE_TYPE Type,
- ACPI_OSD_EXEC_CALLBACK Function,
- void *Context)
-{
-
-// _beginthread (Function, (unsigned) 0, Context);
- return 0;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsBreakpoint
- *
- * PARAMETERS: Msg Message to print
- *
- * RETURN: Status
- *
- * DESCRIPTION: Print a message and break to the debugger.
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsBreakpoint (
- char *Msg)
-{
-
- if (Msg)
- {
- AcpiOsPrintf ("AcpiOsBreakpoint: %s ****\n", Msg);
- }
- else
- {
- AcpiOsPrintf ("At AcpiOsBreakpoint ****\n");
- }
-
- return AE_OK;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsStall
- *
- * PARAMETERS: microseconds To sleep
- *
- * RETURN: Blocks until sleep is completed.
- *
- * DESCRIPTION: Sleep at microsecond granularity
- *
- *****************************************************************************/
-
-void
-AcpiOsStall (
- UINT32 microseconds)
-{
-
- if (microseconds)
- {
- usleep (microseconds);
- }
- return;
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsSleep
- *
- * PARAMETERS: milliseconds To sleep
- *
- * RETURN: Blocks until sleep is completed.
- *
- * DESCRIPTION: Sleep at millisecond granularity
- *
- *****************************************************************************/
-
-void
-AcpiOsSleep (
- ACPI_INTEGER milliseconds)
-{
-
- sleep (milliseconds / 1000); /* Sleep for whole seconds */
-
- /*
- * Arg to usleep() must be less than 1,000,000 (1 second)
- */
- usleep ((milliseconds % 1000) * 1000); /* Sleep for remaining usecs */
-
- return;
-}
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsGetTimer
- *
- * PARAMETERS: None
- *
- * RETURN: Current time in 100 nanosecond units
- *
- * DESCRIPTION: Get the current system time
- *
- *****************************************************************************/
-
-UINT64
-AcpiOsGetTimer (void)
-{
- struct timeval time;
-
- gettimeofday(&time, NULL);
-
- /* Seconds * 10^7 = 100ns(10^-7), Microseconds(10^-6) * 10^1 = 100ns */
-
- return (((UINT64) time.tv_sec * 10000000) + ((UINT64) time.tv_usec * 10));
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsValidateInterface
- *
- * PARAMETERS: Interface - Requested interface to be validated
- *
- * RETURN: AE_OK if interface is supported, AE_SUPPORT otherwise
- *
- * DESCRIPTION: Match an interface string to the interfaces supported by the
- * host. Strings originate from an AML call to the _OSI method.
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsValidateInterface (
- char *Interface)
-{
-
- return (AE_SUPPORT);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsValidateAddress
- *
- * PARAMETERS: SpaceId - ACPI space ID
- * Address - Physical address
- * Length - Address length
- *
- * RETURN: AE_OK if Address/Length is valid for the SpaceId. Otherwise,
- * should return AE_AML_ILLEGAL_ADDRESS.
- *
- * DESCRIPTION: Validate a system address via the host OS. Used to validate
- * the addresses accessed by AML operation regions.
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsValidateAddress (
- UINT8 SpaceId,
- ACPI_PHYSICAL_ADDRESS Address,
- ACPI_SIZE Length)
-{
-
- return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsReadPciConfiguration
- *
- * PARAMETERS: PciId Seg/Bus/Dev
- * Register Device Register
- * Value Buffer where value is placed
- * Width Number of bits
- *
- * RETURN: Status
- *
- * DESCRIPTION: Read data from PCI configuration space
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsReadPciConfiguration (
- ACPI_PCI_ID *PciId,
- UINT32 Register,
- void *Value,
- UINT32 Width)
-{
-
- return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsWritePciConfiguration
- *
- * PARAMETERS: PciId Seg/Bus/Dev
- * Register Device Register
- * Value Value to be written
- * Width Number of bits
- *
- * RETURN: Status.
- *
- * DESCRIPTION: Write data to PCI configuration space
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsWritePciConfiguration (
- ACPI_PCI_ID *PciId,
- UINT32 Register,
- ACPI_INTEGER Value,
- UINT32 Width)
-{
-
- return (AE_OK);
-}
-
-/* TEMPORARY STUB FUNCTION */
-void
-AcpiOsDerivePciId(
- ACPI_HANDLE rhandle,
- ACPI_HANDLE chandle,
- ACPI_PCI_ID **PciId)
-{
-
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsReadPort
- *
- * PARAMETERS: Address Address of I/O port/register to read
- * Value Where value is placed
- * Width Number of bits
- *
- * RETURN: Value read from port
- *
- * DESCRIPTION: Read data from an I/O port or register
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsReadPort (
- ACPI_IO_ADDRESS Address,
- UINT32 *Value,
- UINT32 Width)
-{
-
- switch (Width)
- {
- case 8:
- *Value = 0xFF;
- break;
-
- case 16:
- *Value = 0xFFFF;
- break;
-
- case 32:
- *Value = 0xFFFFFFFF;
- break;
- }
-
- return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsWritePort
- *
- * PARAMETERS: Address Address of I/O port/register to write
- * Value Value to write
- * Width Number of bits
- *
- * RETURN: None
- *
- * DESCRIPTION: Write data to an I/O port or register
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsWritePort (
- ACPI_IO_ADDRESS Address,
- UINT32 Value,
- UINT32 Width)
-{
-
- return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsReadMemory
- *
- * PARAMETERS: Address Physical Memory Address to read
- * Value Where value is placed
- * Width Number of bits
- *
- * RETURN: Value read from physical memory address
- *
- * DESCRIPTION: Read data from a physical memory address
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsReadMemory (
- ACPI_PHYSICAL_ADDRESS Address,
- UINT32 *Value,
- UINT32 Width)
-{
-
- switch (Width)
- {
- case 8:
- case 16:
- case 32:
- *Value = 0;
- break;
-
- default:
- return (AE_BAD_PARAMETER);
- break;
- }
- return (AE_OK);
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsWriteMemory
- *
- * PARAMETERS: Address Physical Memory Address to write
- * Value Value to write
- * Width Number of bits
- *
- * RETURN: None
- *
- * DESCRIPTION: Write data to a physical memory address
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsWriteMemory (
- ACPI_PHYSICAL_ADDRESS Address,
- UINT32 Value,
- UINT32 Width)
-{
-
- return (AE_OK);
-}
-
-
-ACPI_THREAD_ID
-AcpiOsGetThreadId(void)
-{
- return getpid();
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiOsSignal
- *
- * PARAMETERS: Function ACPI CA signal function code
- * Info Pointer to function-dependent structure
- *
- * RETURN: Status
- *
- * DESCRIPTION: Miscellaneous functions
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiOsSignal (
- UINT32 Function,
- void *Info)
-{
-
- switch (Function)
- {
- case ACPI_SIGNAL_FATAL:
- break;
-
- case ACPI_SIGNAL_BREAKPOINT:
-
- if (Info)
- {
- AcpiOsPrintf ("AcpiOsBreakpoint: %s ****\n", Info);
- }
- else
- {
- AcpiOsPrintf ("At AcpiOsBreakpoint ****\n");
- }
-
- break;
- }
-
-
- return (AE_OK);
-}
-
-
diff --git a/sys/contrib/dev/acpica/psargs.c b/sys/contrib/dev/acpica/psargs.c
deleted file mode 100644
index 3c39919..0000000
--- a/sys/contrib/dev/acpica/psargs.c
+++ /dev/null
@@ -1,869 +0,0 @@
-/******************************************************************************
- *
- * Module Name: psargs - Parse AML opcode arguments
- * $Revision: 1.92 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __PSARGS_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acdispat.h>
-
-#define _COMPONENT ACPI_PARSER
- ACPI_MODULE_NAME ("psargs")
-
-/* Local prototypes */
-
-static UINT32
-AcpiPsGetNextPackageLength (
- ACPI_PARSE_STATE *ParserState);
-
-static ACPI_PARSE_OBJECT *
-AcpiPsGetNextField (
- ACPI_PARSE_STATE *ParserState);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsGetNextPackageLength
- *
- * PARAMETERS: ParserState - Current parser state object
- *
- * RETURN: Decoded package length. On completion, the AML pointer points
- * past the length byte or bytes.
- *
- * DESCRIPTION: Decode and return a package length field.
- * Note: Largest package length is 28 bits, from ACPI specification
- *
- ******************************************************************************/
-
-static UINT32
-AcpiPsGetNextPackageLength (
- ACPI_PARSE_STATE *ParserState)
-{
- UINT8 *Aml = ParserState->Aml;
- UINT32 PackageLength = 0;
- ACPI_NATIVE_UINT ByteCount;
- UINT8 ByteZeroMask = 0x3F; /* Default [0:5] */
-
-
- ACPI_FUNCTION_TRACE (PsGetNextPackageLength);
-
-
- /*
- * Byte 0 bits [6:7] contain the number of additional bytes
- * used to encode the package length, either 0,1,2, or 3
- */
- ByteCount = (Aml[0] >> 6);
- ParserState->Aml += (ByteCount + 1);
-
- /* Get bytes 3, 2, 1 as needed */
-
- while (ByteCount)
- {
- /*
- * Final bit positions for the package length bytes:
- * Byte3->[20:27]
- * Byte2->[12:19]
- * Byte1->[04:11]
- * Byte0->[00:03]
- */
- PackageLength |= (Aml[ByteCount] << ((ByteCount << 3) - 4));
-
- ByteZeroMask = 0x0F; /* Use bits [0:3] of byte 0 */
- ByteCount--;
- }
-
- /* Byte 0 is a special case, either bits [0:3] or [0:5] are used */
-
- PackageLength |= (Aml[0] & ByteZeroMask);
- return_UINT32 (PackageLength);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsGetNextPackageEnd
- *
- * PARAMETERS: ParserState - Current parser state object
- *
- * RETURN: Pointer to end-of-package +1
- *
- * DESCRIPTION: Get next package length and return a pointer past the end of
- * the package. Consumes the package length field
- *
- ******************************************************************************/
-
-UINT8 *
-AcpiPsGetNextPackageEnd (
- ACPI_PARSE_STATE *ParserState)
-{
- UINT8 *Start = ParserState->Aml;
- UINT32 PackageLength;
-
-
- ACPI_FUNCTION_TRACE (PsGetNextPackageEnd);
-
-
- /* Function below updates ParserState->Aml */
-
- PackageLength = AcpiPsGetNextPackageLength (ParserState);
-
- return_PTR (Start + PackageLength); /* end of package */
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsGetNextNamestring
- *
- * PARAMETERS: ParserState - Current parser state object
- *
- * RETURN: Pointer to the start of the name string (pointer points into
- * the AML.
- *
- * DESCRIPTION: Get next raw namestring within the AML stream. Handles all name
- * prefix characters. Set parser state to point past the string.
- * (Name is consumed from the AML.)
- *
- ******************************************************************************/
-
-char *
-AcpiPsGetNextNamestring (
- ACPI_PARSE_STATE *ParserState)
-{
- UINT8 *Start = ParserState->Aml;
- UINT8 *End = ParserState->Aml;
-
-
- ACPI_FUNCTION_TRACE (PsGetNextNamestring);
-
-
- /* Point past any namestring prefix characters (backslash or carat) */
-
- while (AcpiPsIsPrefixChar (*End))
- {
- End++;
- }
-
- /* Decode the path prefix character */
-
- switch (*End)
- {
- case 0:
-
- /* NullName */
-
- if (End == Start)
- {
- Start = NULL;
- }
- End++;
- break;
-
- case AML_DUAL_NAME_PREFIX:
-
- /* Two name segments */
-
- End += 1 + (2 * ACPI_NAME_SIZE);
- break;
-
- case AML_MULTI_NAME_PREFIX_OP:
-
- /* Multiple name segments, 4 chars each, count in next byte */
-
- End += 2 + (*(End + 1) * ACPI_NAME_SIZE);
- break;
-
- default:
-
- /* Single name segment */
-
- End += ACPI_NAME_SIZE;
- break;
- }
-
- ParserState->Aml = End;
- return_PTR ((char *) Start);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsGetNextNamepath
- *
- * PARAMETERS: ParserState - Current parser state object
- * Arg - Where the namepath will be stored
- * ArgCount - If the namepath points to a control method
- * the method's argument is returned here.
- * PossibleMethodCall - Whether the namepath can possibly be the
- * start of a method call
- *
- * RETURN: Status
- *
- * 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.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiPsGetNextNamepath (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_STATE *ParserState,
- ACPI_PARSE_OBJECT *Arg,
- BOOLEAN PossibleMethodCall)
-{
- 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);
- AcpiPsInitOp (Arg, AML_INT_NAMEPATH_OP);
-
- /* Null path case is allowed, just exit */
-
- if (!Path)
- {
- Arg->Common.Value.Name = Path;
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Setup search scope info */
-
- ScopeInfo.Scope.Node = NULL;
- Node = ParserState->StartNode;
- if (Node)
- {
- ScopeInfo.Scope.Node = Node;
- }
-
- /*
- * Lookup the name in the internal namespace. 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
- * the upsearch)
- */
- Status = AcpiNsLookup (&ScopeInfo, Path, ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE,
- ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, NULL, &Node);
-
- /*
- * If this name is a control method invocation, we must
- * setup the method call
- */
- if (ACPI_SUCCESS (Status) &&
- PossibleMethodCall &&
- (Node->Type == ACPI_TYPE_METHOD))
- {
- /* This name is actually a control method invocation */
-
- 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_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* 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_ERROR ((AE_INFO,
- "Control Method %p has no attached object",
- Node));
- return_ACPI_STATUS (AE_AML_INTERNAL);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
- "Control Method - %p Args %X\n",
- Node, MethodDesc->Method.ParamCount));
-
- /* Get the number of arguments to expect */
-
- WalkState->ArgCount = MethodDesc->Method.ParamCount;
- return_ACPI_STATUS (AE_OK);
- }
-
- /*
- * Special handling if the name was not found during the lookup -
- * some NotFound cases are allowed
- */
- if (Status == AE_NOT_FOUND)
- {
- /* 1) NotFound is ok during load pass 1/2 (allow forward references) */
-
- if ((WalkState->ParseFlags & ACPI_PARSE_MODE_MASK) !=
- ACPI_PARSE_EXECUTE)
- {
- Status = AE_OK;
- }
-
- /* 2) NotFound during a CondRefOf(x) is ok by definition */
-
- else if (WalkState->Op->Common.AmlOpcode == AML_COND_REF_OF_OP)
- {
- Status = AE_OK;
- }
-
- /*
- * 3) NotFound while building a Package is ok at this point, we
- * may flag as an error later if slack mode is not enabled.
- * (Some ASL code depends on allowing this behavior)
- */
- else if ((Arg->Common.Parent) &&
- ((Arg->Common.Parent->Common.AmlOpcode == AML_PACKAGE_OP) ||
- (Arg->Common.Parent->Common.AmlOpcode == AML_VAR_PACKAGE_OP)))
- {
- Status = AE_OK;
- }
- }
-
- /* Final exception check (may have been changed from code above) */
-
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR_NAMESPACE (Path, Status);
-
- if ((WalkState->ParseFlags & ACPI_PARSE_MODE_MASK) ==
- ACPI_PARSE_EXECUTE)
- {
- /* Report a control method execution error */
-
- Status = AcpiDsMethodError (Status, WalkState);
- }
- }
-
- /* Save the namepath */
-
- Arg->Common.Value.Name = Path;
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsGetNextSimpleArg
- *
- * PARAMETERS: ParserState - Current parser state object
- * ArgType - The argument type (AML_*_ARG)
- * Arg - Where the argument is returned
- *
- * RETURN: None
- *
- * DESCRIPTION: Get the next simple argument (constant, string, or namestring)
- *
- ******************************************************************************/
-
-void
-AcpiPsGetNextSimpleArg (
- ACPI_PARSE_STATE *ParserState,
- UINT32 ArgType,
- ACPI_PARSE_OBJECT *Arg)
-{
- UINT32 Length;
- UINT16 Opcode;
- UINT8 *Aml = ParserState->Aml;
-
-
- ACPI_FUNCTION_TRACE_U32 (PsGetNextSimpleArg, ArgType);
-
-
- switch (ArgType)
- {
- case ARGP_BYTEDATA:
-
- /* Get 1 byte from the AML stream */
-
- Opcode = AML_BYTE_OP;
- Arg->Common.Value.Integer = (ACPI_INTEGER) *Aml;
- Length = 1;
- break;
-
-
- case ARGP_WORDDATA:
-
- /* Get 2 bytes from the AML stream */
-
- Opcode = AML_WORD_OP;
- ACPI_MOVE_16_TO_64 (&Arg->Common.Value.Integer, Aml);
- Length = 2;
- break;
-
-
- case ARGP_DWORDDATA:
-
- /* Get 4 bytes from the AML stream */
-
- Opcode = AML_DWORD_OP;
- ACPI_MOVE_32_TO_64 (&Arg->Common.Value.Integer, Aml);
- Length = 4;
- break;
-
-
- case ARGP_QWORDDATA:
-
- /* Get 8 bytes from the AML stream */
-
- Opcode = AML_QWORD_OP;
- ACPI_MOVE_64_TO_64 (&Arg->Common.Value.Integer, Aml);
- Length = 8;
- break;
-
-
- case ARGP_CHARLIST:
-
- /* Get a pointer to the string, point past the string */
-
- Opcode = AML_STRING_OP;
- Arg->Common.Value.String = ACPI_CAST_PTR (char, Aml);
-
- /* Find the null terminator */
-
- Length = 0;
- while (Aml[Length])
- {
- Length++;
- }
- Length++;
- break;
-
-
- case ARGP_NAME:
- case ARGP_NAMESTRING:
-
- AcpiPsInitOp (Arg, AML_INT_NAMEPATH_OP);
- Arg->Common.Value.Name = AcpiPsGetNextNamestring (ParserState);
- return_VOID;
-
-
- default:
-
- ACPI_ERROR ((AE_INFO, "Invalid ArgType %X", ArgType));
- return_VOID;
- }
-
- AcpiPsInitOp (Arg, Opcode);
- ParserState->Aml += Length;
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsGetNextField
- *
- * PARAMETERS: ParserState - Current parser state object
- *
- * RETURN: A newly allocated FIELD op
- *
- * DESCRIPTION: Get next field (NamedField, ReservedField, or AccessField)
- *
- ******************************************************************************/
-
-static ACPI_PARSE_OBJECT *
-AcpiPsGetNextField (
- ACPI_PARSE_STATE *ParserState)
-{
- UINT32 AmlOffset = (UINT32)
- ACPI_PTR_DIFF (ParserState->Aml,
- ParserState->AmlStart);
- ACPI_PARSE_OBJECT *Field;
- UINT16 Opcode;
- UINT32 Name;
-
-
- ACPI_FUNCTION_TRACE (PsGetNextField);
-
-
- /* Determine field type */
-
- switch (ACPI_GET8 (ParserState->Aml))
- {
- default:
-
- Opcode = AML_INT_NAMEDFIELD_OP;
- break;
-
- case 0x00:
-
- Opcode = AML_INT_RESERVEDFIELD_OP;
- ParserState->Aml++;
- break;
-
- case 0x01:
-
- Opcode = AML_INT_ACCESSFIELD_OP;
- ParserState->Aml++;
- break;
- }
-
- /* Allocate a new field op */
-
- Field = AcpiPsAllocOp (Opcode);
- if (!Field)
- {
- return_PTR (NULL);
- }
-
- Field->Common.AmlOffset = AmlOffset;
-
- /* Decode the field type */
-
- switch (Opcode)
- {
- case AML_INT_NAMEDFIELD_OP:
-
- /* Get the 4-character name */
-
- ACPI_MOVE_32_TO_32 (&Name, ParserState->Aml);
- AcpiPsSetName (Field, Name);
- ParserState->Aml += ACPI_NAME_SIZE;
-
- /* Get the length which is encoded as a package length */
-
- Field->Common.Value.Size = AcpiPsGetNextPackageLength (ParserState);
- break;
-
-
- case AML_INT_RESERVEDFIELD_OP:
-
- /* Get the length which is encoded as a package length */
-
- Field->Common.Value.Size = AcpiPsGetNextPackageLength (ParserState);
- break;
-
-
- case AML_INT_ACCESSFIELD_OP:
-
- /*
- * Get AccessType and AccessAttrib and merge into the field Op
- * AccessType is first operand, AccessAttribute is second
- */
- Field->Common.Value.Integer = (((UINT32) ACPI_GET8 (ParserState->Aml) << 8));
- ParserState->Aml++;
- Field->Common.Value.Integer |= ACPI_GET8 (ParserState->Aml);
- ParserState->Aml++;
- break;
-
- default:
-
- /* Opcode was set in previous switch */
- break;
- }
-
- return_PTR (Field);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsGetNextArg
- *
- * PARAMETERS: WalkState - Current state
- * ParserState - Current parser state object
- * ArgType - The argument type (AML_*_ARG)
- * ReturnArg - Where the next arg is returned
- *
- * 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_STATUS
-AcpiPsGetNextArg (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_STATE *ParserState,
- UINT32 ArgType,
- 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);
-
-
- switch (ArgType)
- {
- case ARGP_BYTEDATA:
- case ARGP_WORDDATA:
- case ARGP_DWORDDATA:
- case ARGP_CHARLIST:
- case ARGP_NAME:
- case ARGP_NAMESTRING:
-
- /* Constants, strings, and namestrings are all the same size */
-
- Arg = AcpiPsAllocOp (AML_BYTE_OP);
- if (!Arg)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
- AcpiPsGetNextSimpleArg (ParserState, ArgType, Arg);
- break;
-
-
- case ARGP_PKGLENGTH:
-
- /* Package length, nothing returned */
-
- ParserState->PkgEnd = AcpiPsGetNextPackageEnd (ParserState);
- break;
-
-
- case ARGP_FIELDLIST:
-
- if (ParserState->Aml < ParserState->PkgEnd)
- {
- /* Non-empty list */
-
- while (ParserState->Aml < ParserState->PkgEnd)
- {
- Field = AcpiPsGetNextField (ParserState);
- if (!Field)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- if (Prev)
- {
- Prev->Common.Next = Field;
- }
- else
- {
- Arg = Field;
- }
- Prev = Field;
- }
-
- /* Skip to End of byte data */
-
- ParserState->Aml = ParserState->PkgEnd;
- }
- break;
-
-
- case ARGP_BYTELIST:
-
- if (ParserState->Aml < ParserState->PkgEnd)
- {
- /* Non-empty list */
-
- Arg = AcpiPsAllocOp (AML_INT_BYTELIST_OP);
- if (!Arg)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* Fill in bytelist data */
-
- Arg->Common.Value.Size = (UINT32)
- ACPI_PTR_DIFF (ParserState->PkgEnd, ParserState->Aml);
- Arg->Named.Data = ParserState->Aml;
-
- /* Skip to End of byte data */
-
- ParserState->Aml = ParserState->PkgEnd;
- }
- break;
-
-
- case ARGP_TARGET:
- case ARGP_SUPERNAME:
- case ARGP_SIMPLENAME:
-
- Subop = AcpiPsPeekOpcode (ParserState);
- if (Subop == 0 ||
- AcpiPsIsLeadingChar (Subop) ||
- AcpiPsIsPrefixChar (Subop))
- {
- /* NullName or NameString */
-
- Arg = AcpiPsAllocOp (AML_INT_NAMEPATH_OP);
- if (!Arg)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- Status = AcpiPsGetNextNamepath (WalkState, ParserState, Arg, 0);
- }
- else
- {
- /* Single complex argument, nothing returned */
-
- WalkState->ArgCount = 1;
- }
- break;
-
-
- case ARGP_DATAOBJ:
- case ARGP_TERMARG:
-
- /* Single complex argument, nothing returned */
-
- WalkState->ArgCount = 1;
- break;
-
-
- case ARGP_DATAOBJLIST:
- case ARGP_TERMLIST:
- case ARGP_OBJLIST:
-
- if (ParserState->Aml < ParserState->PkgEnd)
- {
- /* Non-empty list of variable arguments, nothing returned */
-
- WalkState->ArgCount = ACPI_VAR_ARGS;
- }
- break;
-
-
- default:
-
- ACPI_ERROR ((AE_INFO, "Invalid ArgType: %X", ArgType));
- Status = AE_AML_OPERAND_TYPE;
- break;
- }
-
- *ReturnArg = Arg;
- return_ACPI_STATUS (Status);
-}
diff --git a/sys/contrib/dev/acpica/psloop.c b/sys/contrib/dev/acpica/psloop.c
deleted file mode 100644
index 6c6ce47..0000000
--- a/sys/contrib/dev/acpica/psloop.c
+++ /dev/null
@@ -1,1186 +0,0 @@
-/******************************************************************************
- *
- * Module Name: psloop - Main AML parse loop
- * $Revision: 1.16 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-/*
- * Parse the AML and build an operation tree as most interpreters, (such as
- * Perl) do. Parsing is done by hand rather than with a YACC generated parser
- * to tightly constrain stack and dynamic memory usage. Parsing is kept
- * flexible and the code fairly compact by parsing based on a list of AML
- * opcode templates in AmlOpInfo[].
- */
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/amlcode.h>
-
-#define _COMPONENT ACPI_PARSER
- ACPI_MODULE_NAME ("psloop")
-
-static UINT32 AcpiGbl_Depth = 0;
-
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiPsGetAmlOpcode (
- ACPI_WALK_STATE *WalkState);
-
-static ACPI_STATUS
-AcpiPsBuildNamedOp (
- ACPI_WALK_STATE *WalkState,
- UINT8 *AmlOpStart,
- ACPI_PARSE_OBJECT *UnnamedOp,
- ACPI_PARSE_OBJECT **Op);
-
-static ACPI_STATUS
-AcpiPsCreateOp (
- ACPI_WALK_STATE *WalkState,
- UINT8 *AmlOpStart,
- ACPI_PARSE_OBJECT **NewOp);
-
-static ACPI_STATUS
-AcpiPsGetArguments (
- ACPI_WALK_STATE *WalkState,
- UINT8 *AmlOpStart,
- ACPI_PARSE_OBJECT *Op);
-
-static ACPI_STATUS
-AcpiPsCompleteOp (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT **Op,
- ACPI_STATUS Status);
-
-static ACPI_STATUS
-AcpiPsCompleteFinalOp (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op,
- ACPI_STATUS Status);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsGetAmlOpcode
- *
- * PARAMETERS: WalkState - Current state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Extract the next AML opcode from the input stream.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiPsGetAmlOpcode (
- ACPI_WALK_STATE *WalkState)
-{
-
- ACPI_FUNCTION_TRACE_PTR (PsGetAmlOpcode, WalkState);
-
-
- WalkState->AmlOffset = (UINT32) ACPI_PTR_DIFF (WalkState->ParserState.Aml,
- WalkState->ParserState.AmlStart);
- WalkState->Opcode = AcpiPsPeekOpcode (&(WalkState->ParserState));
-
- /*
- * First cut to determine what we have found:
- * 1) A valid AML opcode
- * 2) A name string
- * 3) An unknown/invalid opcode
- */
- WalkState->OpInfo = AcpiPsGetOpcodeInfo (WalkState->Opcode);
-
- switch (WalkState->OpInfo->Class)
- {
- case AML_CLASS_ASCII:
- case AML_CLASS_PREFIX:
- /*
- * Starts with a valid prefix or ASCII char, this is a name
- * string. Convert the bare name string to a namepath.
- */
- WalkState->Opcode = AML_INT_NAMEPATH_OP;
- WalkState->ArgTypes = ARGP_NAMESTRING;
- break;
-
- case AML_CLASS_UNKNOWN:
-
- /* The opcode is unrecognized. Just skip unknown opcodes */
-
- ACPI_ERROR ((AE_INFO,
- "Found unknown opcode %X at AML address %p offset %X, ignoring",
- WalkState->Opcode, WalkState->ParserState.Aml, WalkState->AmlOffset));
-
- ACPI_DUMP_BUFFER (WalkState->ParserState.Aml, 128);
-
- /* Assume one-byte bad opcode */
-
- WalkState->ParserState.Aml++;
- return_ACPI_STATUS (AE_CTRL_PARSE_CONTINUE);
-
- default:
-
- /* Found opcode info, this is a normal opcode */
-
- WalkState->ParserState.Aml += AcpiPsGetOpcodeSize (WalkState->Opcode);
- WalkState->ArgTypes = WalkState->OpInfo->ParseArgs;
- break;
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsBuildNamedOp
- *
- * PARAMETERS: WalkState - Current state
- * AmlOpStart - Begin of named Op in AML
- * UnnamedOp - Early Op (not a named Op)
- * Op - Returned Op
- *
- * RETURN: Status
- *
- * DESCRIPTION: Parse a named Op
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiPsBuildNamedOp (
- ACPI_WALK_STATE *WalkState,
- UINT8 *AmlOpStart,
- ACPI_PARSE_OBJECT *UnnamedOp,
- ACPI_PARSE_OBJECT **Op)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_PARSE_OBJECT *Arg = NULL;
-
-
- ACPI_FUNCTION_TRACE_PTR (PsBuildNamedOp, WalkState);
-
-
- UnnamedOp->Common.Value.Arg = NULL;
- UnnamedOp->Common.ArgListLength = 0;
- UnnamedOp->Common.AmlOpcode = WalkState->Opcode;
-
- /*
- * Get and append arguments until we find the node that contains
- * the name (the type ARGP_NAME).
- */
- while (GET_CURRENT_ARG_TYPE (WalkState->ArgTypes) &&
- (GET_CURRENT_ARG_TYPE (WalkState->ArgTypes) != ARGP_NAME))
- {
- Status = AcpiPsGetNextArg (WalkState, &(WalkState->ParserState),
- GET_CURRENT_ARG_TYPE (WalkState->ArgTypes), &Arg);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- AcpiPsAppendArg (UnnamedOp, 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);
-
- /*
- * Find the object. This will either insert the object into
- * the namespace or simply look it up
- */
- WalkState->Op = NULL;
-
- Status = WalkState->DescendingCallback (WalkState, Op);
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status, "During name lookup/catalog"));
- return_ACPI_STATUS (Status);
- }
-
- if (!*Op)
- {
- return_ACPI_STATUS (AE_CTRL_PARSE_CONTINUE);
- }
-
- Status = AcpiPsNextParseState (WalkState, *Op, Status);
- if (ACPI_FAILURE (Status))
- {
- if (Status == AE_CTRL_PENDING)
- {
- return_ACPI_STATUS (AE_CTRL_PARSE_PENDING);
- }
- return_ACPI_STATUS (Status);
- }
-
- AcpiPsAppendArg (*Op, UnnamedOp->Common.Value.Arg);
- AcpiGbl_Depth++;
-
- if ((*Op)->Common.AmlOpcode == AML_REGION_OP)
- {
- /*
- * Defer final parsing of an OperationRegion body, because we don't
- * have enough info in the first pass to parse it correctly (i.e.,
- * there may be method calls within the TermArg elements of the body.)
- *
- * However, we must continue parsing because the opregion is not a
- * standalone package -- we don't know where the end is at this point.
- *
- * (Length is unknown until parse of the body complete)
- */
- (*Op)->Named.Data = AmlOpStart;
- (*Op)->Named.Length = 0;
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsCreateOp
- *
- * PARAMETERS: WalkState - Current state
- * AmlOpStart - Op start in AML
- * NewOp - Returned Op
- *
- * RETURN: Status
- *
- * DESCRIPTION: Get Op from AML
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiPsCreateOp (
- ACPI_WALK_STATE *WalkState,
- UINT8 *AmlOpStart,
- ACPI_PARSE_OBJECT **NewOp)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_PARSE_OBJECT *Op;
- ACPI_PARSE_OBJECT *NamedOp = NULL;
- ACPI_PARSE_OBJECT *ParentScope;
- UINT8 ArgumentCount;
- const ACPI_OPCODE_INFO *OpInfo;
-
-
- ACPI_FUNCTION_TRACE_PTR (PsCreateOp, WalkState);
-
-
- Status = AcpiPsGetAmlOpcode (WalkState);
- if (Status == AE_CTRL_PARSE_CONTINUE)
- {
- return_ACPI_STATUS (AE_CTRL_PARSE_CONTINUE);
- }
-
- /* Create Op structure and append to parent's argument list */
-
- WalkState->OpInfo = AcpiPsGetOpcodeInfo (WalkState->Opcode);
- Op = AcpiPsAllocOp (WalkState->Opcode);
- if (!Op)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- if (WalkState->OpInfo->Flags & AML_NAMED)
- {
- Status = AcpiPsBuildNamedOp (WalkState, AmlOpStart, Op, &NamedOp);
- AcpiPsFreeOp (Op);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- *NewOp = NamedOp;
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Not a named opcode, just allocate Op and append to parent */
-
- if (WalkState->OpInfo->Flags & AML_CREATE)
- {
- /*
- * Backup to beginning of CreateXXXfield declaration
- * BodyLength is unknown until we parse the body
- */
- Op->Named.Data = AmlOpStart;
- Op->Named.Length = 0;
- }
-
- ParentScope = AcpiPsGetParentScope (&(WalkState->ParserState));
- AcpiPsAppendArg (ParentScope, Op);
-
- if (ParentScope)
- {
- OpInfo = AcpiPsGetOpcodeInfo (ParentScope->Common.AmlOpcode);
- if (OpInfo->Flags & AML_HAS_TARGET)
- {
- ArgumentCount = AcpiPsGetArgumentCount (OpInfo->Type);
- if (ParentScope->Common.ArgListLength > ArgumentCount)
- {
- Op->Common.Flags |= ACPI_PARSEOP_TARGET;
- }
- }
- else if (ParentScope->Common.AmlOpcode == AML_INCREMENT_OP)
- {
- Op->Common.Flags |= ACPI_PARSEOP_TARGET;
- }
- }
-
- if (WalkState->DescendingCallback != NULL)
- {
- /*
- * Find the object. This will either insert the object into
- * the namespace or simply look it up
- */
- WalkState->Op = *NewOp = Op;
-
- Status = WalkState->DescendingCallback (WalkState, &Op);
- Status = AcpiPsNextParseState (WalkState, Op, Status);
- if (Status == AE_CTRL_PENDING)
- {
- Status = AE_CTRL_PARSE_PENDING;
- }
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsGetArguments
- *
- * PARAMETERS: WalkState - Current state
- * AmlOpStart - Op start in AML
- * Op - Current Op
- *
- * RETURN: Status
- *
- * DESCRIPTION: Get arguments for passed Op.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiPsGetArguments (
- ACPI_WALK_STATE *WalkState,
- UINT8 *AmlOpStart,
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_PARSE_OBJECT *Arg = NULL;
-
-
- ACPI_FUNCTION_TRACE_PTR (PsGetArguments, WalkState);
-
-
- switch (Op->Common.AmlOpcode)
- {
- case AML_BYTE_OP: /* AML_BYTEDATA_ARG */
- case AML_WORD_OP: /* AML_WORDDATA_ARG */
- case AML_DWORD_OP: /* AML_DWORDATA_ARG */
- case AML_QWORD_OP: /* AML_QWORDATA_ARG */
- case AML_STRING_OP: /* AML_ASCIICHARLIST_ARG */
-
- /* Fill in constant or string argument directly */
-
- AcpiPsGetNextSimpleArg (&(WalkState->ParserState),
- GET_CURRENT_ARG_TYPE (WalkState->ArgTypes), Op);
- break;
-
- case AML_INT_NAMEPATH_OP: /* AML_NAMESTRING_ARG */
-
- Status = AcpiPsGetNextNamepath (WalkState, &(WalkState->ParserState), Op, 1);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- WalkState->ArgTypes = 0;
- break;
-
- default:
- /*
- * Op is not a constant or string, append each argument to the Op
- */
- while (GET_CURRENT_ARG_TYPE (WalkState->ArgTypes) && !WalkState->ArgCount)
- {
- WalkState->AmlOffset = (UINT32) ACPI_PTR_DIFF (WalkState->ParserState.Aml,
- WalkState->ParserState.AmlStart);
-
- Status = AcpiPsGetNextArg (WalkState, &(WalkState->ParserState),
- GET_CURRENT_ARG_TYPE (WalkState->ArgTypes), &Arg);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- if (Arg)
- {
- Arg->Common.AmlOffset = WalkState->AmlOffset;
- AcpiPsAppendArg (Op, Arg);
- }
-
- INCREMENT_ARG_LIST (WalkState->ArgTypes);
- }
-
-
- /* Special processing for certain opcodes */
-
- /* TBD (remove): Temporary mechanism to disable this code if needed */
-
-#ifdef ACPI_ENABLE_MODULE_LEVEL_CODE
-
- if ((WalkState->PassNumber <= ACPI_IMODE_LOAD_PASS1) &&
- ((WalkState->ParseFlags & ACPI_PARSE_DISASSEMBLE) == 0))
- {
- /*
- * We want to skip If/Else/While constructs during Pass1 because we
- * want to actually conditionally execute the code during Pass2.
- *
- * Except for disassembly, where we always want to walk the
- * If/Else/While packages
- */
- switch (Op->Common.AmlOpcode)
- {
- case AML_IF_OP:
- case AML_ELSE_OP:
- case AML_WHILE_OP:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
- "Pass1: Skipping an If/Else/While body\n"));
-
- /* Skip body of if/else/while in pass 1 */
-
- WalkState->ParserState.Aml = WalkState->ParserState.PkgEnd;
- WalkState->ArgCount = 0;
- break;
-
- default:
- break;
- }
- }
-#endif
-
- switch (Op->Common.AmlOpcode)
- {
- case AML_METHOD_OP:
- /*
- * Skip parsing of control method because we don't have enough
- * info in the first pass to parse it correctly.
- *
- * Save the length and address of the body
- */
- Op->Named.Data = WalkState->ParserState.Aml;
- Op->Named.Length = (UINT32)
- (WalkState->ParserState.PkgEnd - WalkState->ParserState.Aml);
-
- /* Skip body of method */
-
- WalkState->ParserState.Aml = WalkState->ParserState.PkgEnd;
- WalkState->ArgCount = 0;
- break;
-
- case AML_BUFFER_OP:
- case AML_PACKAGE_OP:
- case AML_VAR_PACKAGE_OP:
-
- if ((Op->Common.Parent) &&
- (Op->Common.Parent->Common.AmlOpcode == AML_NAME_OP) &&
- (WalkState->PassNumber <= ACPI_IMODE_LOAD_PASS2))
- {
- /*
- * Skip parsing of Buffers and Packages because we don't have
- * enough info in the first pass to parse them correctly.
- */
- Op->Named.Data = AmlOpStart;
- Op->Named.Length = (UINT32)
- (WalkState->ParserState.PkgEnd - AmlOpStart);
-
- /* Skip body */
-
- WalkState->ParserState.Aml = WalkState->ParserState.PkgEnd;
- WalkState->ArgCount = 0;
- }
- break;
-
- case AML_WHILE_OP:
-
- if (WalkState->ControlState)
- {
- WalkState->ControlState->Control.PackageEnd =
- WalkState->ParserState.PkgEnd;
- }
- break;
-
- default:
-
- /* No action for all other opcodes */
- break;
- }
-
- break;
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsCompleteOp
- *
- * PARAMETERS: WalkState - Current state
- * Op - Returned Op
- * Status - Parse status before complete Op
- *
- * RETURN: Status
- *
- * DESCRIPTION: Complete Op
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiPsCompleteOp (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT **Op,
- ACPI_STATUS Status)
-{
- ACPI_STATUS Status2;
-
-
- ACPI_FUNCTION_TRACE_PTR (PsCompleteOp, WalkState);
-
-
- /*
- * Finished one argument of the containing scope
- */
- WalkState->ParserState.Scope->ParseScope.ArgCount--;
-
- /* Close this Op (will result in parse subtree deletion) */
-
- Status2 = AcpiPsCompleteThisOp (WalkState, *Op);
- if (ACPI_FAILURE (Status2))
- {
- return_ACPI_STATUS (Status2);
- }
-
- *Op = NULL;
-
- switch (Status)
- {
- case AE_OK:
- break;
-
-
- case AE_CTRL_TRANSFER:
-
- /* We are about to transfer to a called method */
-
- WalkState->PrevOp = NULL;
- WalkState->PrevArgTypes = WalkState->ArgTypes;
- return_ACPI_STATUS (Status);
-
-
- case AE_CTRL_END:
-
- AcpiPsPopScope (&(WalkState->ParserState), Op,
- &WalkState->ArgTypes, &WalkState->ArgCount);
-
- 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);
-
- Status2 = AcpiPsCompleteThisOp (WalkState, *Op);
- if (ACPI_FAILURE (Status2))
- {
- return_ACPI_STATUS (Status2);
- }
- }
-
- Status = AE_OK;
- break;
-
-
- case AE_CTRL_BREAK:
- case AE_CTRL_CONTINUE:
-
- /* Pop off scopes until we find the While */
-
- while (!(*Op) || ((*Op)->Common.AmlOpcode != AML_WHILE_OP))
- {
- AcpiPsPopScope (&(WalkState->ParserState), Op,
- &WalkState->ArgTypes, &WalkState->ArgCount);
- }
-
- /* Close this iteration of the While loop */
-
- WalkState->Op = *Op;
- WalkState->OpInfo = AcpiPsGetOpcodeInfo ((*Op)->Common.AmlOpcode);
- WalkState->Opcode = (*Op)->Common.AmlOpcode;
-
- Status = WalkState->AscendingCallback (WalkState);
- Status = AcpiPsNextParseState (WalkState, *Op, Status);
-
- Status2 = AcpiPsCompleteThisOp (WalkState, *Op);
- if (ACPI_FAILURE (Status2))
- {
- return_ACPI_STATUS (Status2);
- }
-
- Status = AE_OK;
- break;
-
-
- case AE_CTRL_TERMINATE:
-
- /* Clean up */
- do
- {
- if (*Op)
- {
- Status2 = AcpiPsCompleteThisOp (WalkState, *Op);
- if (ACPI_FAILURE (Status2))
- {
- return_ACPI_STATUS (Status2);
- }
-
- AcpiUtDeleteGenericState (
- AcpiUtPopGenericState (&WalkState->ControlState));
- }
-
- AcpiPsPopScope (&(WalkState->ParserState), Op,
- &WalkState->ArgTypes, &WalkState->ArgCount);
-
- } while (*Op);
-
- return_ACPI_STATUS (AE_OK);
-
-
- default: /* All other non-AE_OK status */
-
- do
- {
- if (*Op)
- {
- Status2 = AcpiPsCompleteThisOp (WalkState, *Op);
- if (ACPI_FAILURE (Status2))
- {
- return_ACPI_STATUS (Status2);
- }
- }
-
- AcpiPsPopScope (&(WalkState->ParserState), Op,
- &WalkState->ArgTypes, &WalkState->ArgCount);
-
- } while (*Op);
-
-
-#if 0
- /*
- * TBD: Cleanup parse ops on error
- */
- if (*Op == NULL)
- {
- AcpiPsPopScope (ParserState, Op,
- &WalkState->ArgTypes, &WalkState->ArgCount);
- }
-#endif
- WalkState->PrevOp = NULL;
- WalkState->PrevArgTypes = WalkState->ArgTypes;
- return_ACPI_STATUS (Status);
- }
-
- /* This scope complete? */
-
- if (AcpiPsHasCompletedScope (&(WalkState->ParserState)))
- {
- AcpiPsPopScope (&(WalkState->ParserState), Op,
- &WalkState->ArgTypes, &WalkState->ArgCount);
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Popped scope, Op=%p\n", *Op));
- }
- else
- {
- *Op = NULL;
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsCompleteFinalOp
- *
- * PARAMETERS: WalkState - Current state
- * Op - Current Op
- * Status - Current parse status before complete last
- * Op
- *
- * RETURN: Status
- *
- * DESCRIPTION: Complete last Op.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiPsCompleteFinalOp (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op,
- ACPI_STATUS Status)
-{
- ACPI_STATUS Status2;
-
-
- ACPI_FUNCTION_TRACE_PTR (PsCompleteFinalOp, WalkState);
-
-
- /*
- * Complete the last Op (if not completed), and clear the scope stack.
- * It is easily possible to end an AML "package" with an unbounded number
- * of open scopes (such as when several ASL blocks are closed with
- * sequential closing braces). We want to terminate each one cleanly.
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "AML package complete at Op %p\n", Op));
- do
- {
- if (Op)
- {
- if (WalkState->AscendingCallback != NULL)
- {
- WalkState->Op = Op;
- WalkState->OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- WalkState->Opcode = Op->Common.AmlOpcode;
-
- Status = WalkState->AscendingCallback (WalkState);
- Status = AcpiPsNextParseState (WalkState, Op, Status);
- if (Status == AE_CTRL_PENDING)
- {
- Status = AcpiPsCompleteOp (WalkState, &Op, AE_OK);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- if (Status == AE_CTRL_TERMINATE)
- {
- Status = AE_OK;
-
- /* Clean up */
- do
- {
- if (Op)
- {
- Status2 = AcpiPsCompleteThisOp (WalkState, Op);
- if (ACPI_FAILURE (Status2))
- {
- return_ACPI_STATUS (Status2);
- }
- }
-
- AcpiPsPopScope (&(WalkState->ParserState), &Op,
- &WalkState->ArgTypes, &WalkState->ArgCount);
-
- } while (Op);
-
- return_ACPI_STATUS (Status);
- }
-
- else if (ACPI_FAILURE (Status))
- {
- /* First error is most important */
-
- (void) AcpiPsCompleteThisOp (WalkState, Op);
- return_ACPI_STATUS (Status);
- }
- }
-
- Status2 = AcpiPsCompleteThisOp (WalkState, Op);
- if (ACPI_FAILURE (Status2))
- {
- return_ACPI_STATUS (Status2);
- }
- }
-
- AcpiPsPopScope (&(WalkState->ParserState), &Op, &WalkState->ArgTypes,
- &WalkState->ArgCount);
-
- } while (Op);
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsParseLoop
- *
- * PARAMETERS: WalkState - Current state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Parse AML (pointed to by the current parser state) and return
- * a tree of ops.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiPsParseLoop (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_PARSE_OBJECT *Op = NULL; /* current op */
- ACPI_PARSE_STATE *ParserState;
- UINT8 *AmlOpStart = NULL;
-
-
- ACPI_FUNCTION_TRACE_PTR (PsParseLoop, WalkState);
-
-
- if (WalkState->DescendingCallback == NULL)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- ParserState = &WalkState->ParserState;
- WalkState->ArgTypes = 0;
-
-#if (!defined (ACPI_NO_METHOD_EXECUTION) && !defined (ACPI_CONSTANT_EVAL_ONLY))
-
- if (WalkState->WalkType & ACPI_WALK_METHOD_RESTART)
- {
- /* We are restarting a preempted control method */
-
- if (AcpiPsHasCompletedScope (ParserState))
- {
- /*
- * We must check if a predicate to an IF or WHILE statement
- * was just completed
- */
- if ((ParserState->Scope->ParseScope.Op) &&
- ((ParserState->Scope->ParseScope.Op->Common.AmlOpcode == AML_IF_OP) ||
- (ParserState->Scope->ParseScope.Op->Common.AmlOpcode == AML_WHILE_OP)) &&
- (WalkState->ControlState) &&
- (WalkState->ControlState->Common.State ==
- ACPI_CONTROL_PREDICATE_EXECUTING))
- {
- /*
- * A predicate was just completed, get the value of the
- * predicate and branch based on that value
- */
- WalkState->Op = NULL;
- Status = AcpiDsGetPredicateValue (WalkState, ACPI_TO_POINTER (TRUE));
- if (ACPI_FAILURE (Status) &&
- ((Status & AE_CODE_MASK) != AE_CODE_CONTROL))
- {
- if (Status == AE_AML_NO_RETURN_VALUE)
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Invoked method did not return a value"));
-
- }
-
- ACPI_EXCEPTION ((AE_INFO, Status, "GetPredicate Failed"));
- return_ACPI_STATUS (Status);
- }
-
- Status = AcpiPsNextParseState (WalkState, Op, Status);
- }
-
- AcpiPsPopScope (ParserState, &Op,
- &WalkState->ArgTypes, &WalkState->ArgCount);
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Popped scope, Op=%p\n", Op));
- }
- else if (WalkState->PrevOp)
- {
- /* We were in the middle of an op */
-
- Op = WalkState->PrevOp;
- WalkState->ArgTypes = WalkState->PrevArgTypes;
- }
- }
-#endif
-
- /* Iterative parsing loop, while there is more AML to process: */
-
- while ((ParserState->Aml < ParserState->AmlEnd) || (Op))
- {
- AmlOpStart = ParserState->Aml;
- if (!Op)
- {
- Status = AcpiPsCreateOp (WalkState, AmlOpStart, &Op);
- if (ACPI_FAILURE (Status))
- {
- if (Status == AE_CTRL_PARSE_CONTINUE)
- {
- continue;
- }
-
- if (Status == AE_CTRL_PARSE_PENDING)
- {
- Status = AE_OK;
- }
-
- Status = AcpiPsCompleteOp (WalkState, &Op, Status);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- continue;
- }
-
- Op->Common.AmlOffset = WalkState->AmlOffset;
-
- if (WalkState->OpInfo)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
- "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));
- }
- }
-
-
- /*
- * Start ArgCount at zero because we don't know if there are
- * any args yet
- */
- WalkState->ArgCount = 0;
-
- /* Are there any arguments that must be processed? */
-
- if (WalkState->ArgTypes)
- {
- /* Get arguments */
-
- Status = AcpiPsGetArguments (WalkState, AmlOpStart, Op);
- if (ACPI_FAILURE (Status))
- {
- Status = AcpiPsCompleteOp (WalkState, &Op, Status);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- continue;
- }
- }
-
- /* Check for arguments that need to be processed */
-
- if (WalkState->ArgCount)
- {
- /*
- * There are arguments (complex ones), push Op and
- * prepare for argument
- */
- Status = AcpiPsPushScope (ParserState, Op,
- WalkState->ArgTypes, WalkState->ArgCount);
- if (ACPI_FAILURE (Status))
- {
- Status = AcpiPsCompleteOp (WalkState, &Op, Status);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- continue;
- }
-
- Op = NULL;
- continue;
- }
-
- /*
- * All arguments have been processed -- Op is complete,
- * prepare for next
- */
- WalkState->OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- if (WalkState->OpInfo->Flags & AML_NAMED)
- {
- if (AcpiGbl_Depth)
- {
- AcpiGbl_Depth--;
- }
-
- if (Op->Common.AmlOpcode == AML_REGION_OP)
- {
- /*
- * Skip parsing of control method or opregion body,
- * because we don't have enough info in the first pass
- * to parse them correctly.
- *
- * Completed parsing an OpRegion declaration, we now
- * know the length.
- */
- Op->Named.Length = (UINT32) (ParserState->Aml - Op->Named.Data);
- }
- }
-
- if (WalkState->OpInfo->Flags & AML_CREATE)
- {
- /*
- * Backup to beginning of CreateXXXfield declaration (1 for
- * Opcode)
- *
- * BodyLength is unknown until we parse the body
- */
- Op->Named.Length = (UINT32) (ParserState->Aml - Op->Named.Data);
- }
-
- /* This op complete, notify the dispatcher */
-
- if (WalkState->AscendingCallback != NULL)
- {
- WalkState->Op = Op;
- WalkState->Opcode = Op->Common.AmlOpcode;
-
- Status = WalkState->AscendingCallback (WalkState);
- Status = AcpiPsNextParseState (WalkState, Op, Status);
- if (Status == AE_CTRL_PENDING)
- {
- Status = AE_OK;
- }
- }
-
- Status = AcpiPsCompleteOp (WalkState, &Op, Status);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- } /* while ParserState->Aml */
-
- Status = AcpiPsCompleteFinalOp (WalkState, Op, Status);
- return_ACPI_STATUS (Status);
-}
-
diff --git a/sys/contrib/dev/acpica/psopcode.c b/sys/contrib/dev/acpica/psopcode.c
deleted file mode 100644
index fad6d39..0000000
--- a/sys/contrib/dev/acpica/psopcode.c
+++ /dev/null
@@ -1,589 +0,0 @@
-/******************************************************************************
- *
- * Module Name: psopcode - Parser/Interpreter opcode information table
- * $Revision: 1.99 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/acopcode.h>
-#include <contrib/dev/acpica/amlcode.h>
-
-
-#define _COMPONENT ACPI_PARSER
- ACPI_MODULE_NAME ("psopcode")
-
-
-const UINT8 AcpiGbl_ArgumentCount[] = {0,1,1,1,1,2,2,2,2,3,3,6};
-
-
-/*******************************************************************************
- *
- * NAME: AcpiGbl_AmlOpInfo
- *
- * DESCRIPTION: Opcode table. Each entry contains <opcode, type, name, operands>
- * The name is a simple ascii string, the operand specifier is an
- * ascii string with one letter per operand. The letter specifies
- * the operand type.
- *
- ******************************************************************************/
-
-/*
- * Summary of opcode types/flags
- *
-
- Opcodes that have associated namespace objects (AML_NSOBJECT flag)
-
- AML_SCOPE_OP
- AML_DEVICE_OP
- AML_THERMAL_ZONE_OP
- AML_METHOD_OP
- AML_POWER_RES_OP
- AML_PROCESSOR_OP
- AML_FIELD_OP
- AML_INDEX_FIELD_OP
- AML_BANK_FIELD_OP
- AML_NAME_OP
- AML_ALIAS_OP
- AML_MUTEX_OP
- AML_EVENT_OP
- AML_REGION_OP
- AML_CREATE_FIELD_OP
- AML_CREATE_BIT_FIELD_OP
- AML_CREATE_BYTE_FIELD_OP
- AML_CREATE_WORD_FIELD_OP
- AML_CREATE_DWORD_FIELD_OP
- AML_CREATE_QWORD_FIELD_OP
- AML_INT_NAMEDFIELD_OP
- AML_INT_METHODCALL_OP
- AML_INT_NAMEPATH_OP
-
- Opcodes that are "namespace" opcodes (AML_NSOPCODE flag)
-
- AML_SCOPE_OP
- AML_DEVICE_OP
- AML_THERMAL_ZONE_OP
- AML_METHOD_OP
- AML_POWER_RES_OP
- AML_PROCESSOR_OP
- AML_FIELD_OP
- AML_INDEX_FIELD_OP
- AML_BANK_FIELD_OP
- AML_NAME_OP
- AML_ALIAS_OP
- AML_MUTEX_OP
- AML_EVENT_OP
- AML_REGION_OP
- AML_INT_NAMEDFIELD_OP
-
- Opcodes that have an associated namespace node (AML_NSNODE flag)
-
- AML_SCOPE_OP
- AML_DEVICE_OP
- AML_THERMAL_ZONE_OP
- AML_METHOD_OP
- AML_POWER_RES_OP
- AML_PROCESSOR_OP
- AML_NAME_OP
- AML_ALIAS_OP
- AML_MUTEX_OP
- AML_EVENT_OP
- AML_REGION_OP
- AML_CREATE_FIELD_OP
- AML_CREATE_BIT_FIELD_OP
- AML_CREATE_BYTE_FIELD_OP
- AML_CREATE_WORD_FIELD_OP
- AML_CREATE_DWORD_FIELD_OP
- AML_CREATE_QWORD_FIELD_OP
- AML_INT_NAMEDFIELD_OP
- AML_INT_METHODCALL_OP
- AML_INT_NAMEPATH_OP
-
- Opcodes that define named ACPI objects (AML_NAMED flag)
-
- AML_SCOPE_OP
- AML_DEVICE_OP
- AML_THERMAL_ZONE_OP
- AML_METHOD_OP
- AML_POWER_RES_OP
- AML_PROCESSOR_OP
- AML_NAME_OP
- AML_ALIAS_OP
- AML_MUTEX_OP
- AML_EVENT_OP
- AML_REGION_OP
- AML_INT_NAMEDFIELD_OP
-
- Opcodes that contain executable AML as part of the definition that
- must be deferred until needed
-
- AML_METHOD_OP
- AML_VAR_PACKAGE_OP
- AML_CREATE_FIELD_OP
- AML_CREATE_BIT_FIELD_OP
- AML_CREATE_BYTE_FIELD_OP
- AML_CREATE_WORD_FIELD_OP
- AML_CREATE_DWORD_FIELD_OP
- AML_CREATE_QWORD_FIELD_OP
- AML_REGION_OP
- AML_BUFFER_OP
-
- Field opcodes
-
- AML_CREATE_FIELD_OP
- AML_FIELD_OP
- AML_INDEX_FIELD_OP
- AML_BANK_FIELD_OP
-
- Field "Create" opcodes
-
- AML_CREATE_FIELD_OP
- AML_CREATE_BIT_FIELD_OP
- AML_CREATE_BYTE_FIELD_OP
- AML_CREATE_WORD_FIELD_OP
- AML_CREATE_DWORD_FIELD_OP
- AML_CREATE_QWORD_FIELD_OP
-
- ******************************************************************************/
-
-
-/*
- * Master Opcode information table. A summary of everything we know about each
- * opcode, all in one place.
- */
-const ACPI_OPCODE_INFO AcpiGbl_AmlOpInfo[AML_NUM_OPCODES] =
-{
-/*! [Begin] no source code translation */
-/* Index Name Parser Args Interpreter Args ObjectType Class Type Flags */
-
-/* 00 */ ACPI_OP ("Zero", ARGP_ZERO_OP, ARGI_ZERO_OP, ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT, AML_TYPE_CONSTANT, AML_CONSTANT),
-/* 01 */ ACPI_OP ("One", ARGP_ONE_OP, ARGI_ONE_OP, ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT, AML_TYPE_CONSTANT, AML_CONSTANT),
-/* 02 */ ACPI_OP ("Alias", ARGP_ALIAS_OP, ARGI_ALIAS_OP, ACPI_TYPE_LOCAL_ALIAS, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_SIMPLE, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
-/* 03 */ ACPI_OP ("Name", ARGP_NAME_OP, ARGI_NAME_OP, ACPI_TYPE_ANY, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_COMPLEX, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
-/* 04 */ ACPI_OP ("ByteConst", ARGP_BYTE_OP, ARGI_BYTE_OP, ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT, AML_TYPE_LITERAL, AML_CONSTANT),
-/* 05 */ ACPI_OP ("WordConst", ARGP_WORD_OP, ARGI_WORD_OP, ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT, AML_TYPE_LITERAL, AML_CONSTANT),
-/* 06 */ ACPI_OP ("DwordConst", ARGP_DWORD_OP, ARGI_DWORD_OP, ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT, AML_TYPE_LITERAL, AML_CONSTANT),
-/* 07 */ ACPI_OP ("String", ARGP_STRING_OP, ARGI_STRING_OP, ACPI_TYPE_STRING, AML_CLASS_ARGUMENT, AML_TYPE_LITERAL, AML_CONSTANT),
-/* 08 */ ACPI_OP ("Scope", ARGP_SCOPE_OP, ARGI_SCOPE_OP, ACPI_TYPE_LOCAL_SCOPE, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_NO_OBJ, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
-/* 09 */ ACPI_OP ("Buffer", ARGP_BUFFER_OP, ARGI_BUFFER_OP, ACPI_TYPE_BUFFER, AML_CLASS_CREATE, AML_TYPE_CREATE_OBJECT, AML_HAS_ARGS | AML_DEFER | AML_CONSTANT),
-/* 0A */ ACPI_OP ("Package", ARGP_PACKAGE_OP, ARGI_PACKAGE_OP, ACPI_TYPE_PACKAGE, AML_CLASS_CREATE, AML_TYPE_CREATE_OBJECT, AML_HAS_ARGS | AML_DEFER | AML_CONSTANT),
-/* 0B */ ACPI_OP ("Method", ARGP_METHOD_OP, ARGI_METHOD_OP, ACPI_TYPE_METHOD, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_COMPLEX, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED | AML_DEFER),
-/* 0C */ ACPI_OP ("Local0", ARGP_LOCAL0, ARGI_LOCAL0, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LOCAL_VARIABLE, 0),
-/* 0D */ ACPI_OP ("Local1", ARGP_LOCAL1, ARGI_LOCAL1, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LOCAL_VARIABLE, 0),
-/* 0E */ ACPI_OP ("Local2", ARGP_LOCAL2, ARGI_LOCAL2, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LOCAL_VARIABLE, 0),
-/* 0F */ ACPI_OP ("Local3", ARGP_LOCAL3, ARGI_LOCAL3, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LOCAL_VARIABLE, 0),
-/* 10 */ ACPI_OP ("Local4", ARGP_LOCAL4, ARGI_LOCAL4, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LOCAL_VARIABLE, 0),
-/* 11 */ ACPI_OP ("Local5", ARGP_LOCAL5, ARGI_LOCAL5, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LOCAL_VARIABLE, 0),
-/* 12 */ ACPI_OP ("Local6", ARGP_LOCAL6, ARGI_LOCAL6, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LOCAL_VARIABLE, 0),
-/* 13 */ ACPI_OP ("Local7", ARGP_LOCAL7, ARGI_LOCAL7, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_LOCAL_VARIABLE, 0),
-/* 14 */ ACPI_OP ("Arg0", ARGP_ARG0, ARGI_ARG0, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_METHOD_ARGUMENT, 0),
-/* 15 */ ACPI_OP ("Arg1", ARGP_ARG1, ARGI_ARG1, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_METHOD_ARGUMENT, 0),
-/* 16 */ ACPI_OP ("Arg2", ARGP_ARG2, ARGI_ARG2, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_METHOD_ARGUMENT, 0),
-/* 17 */ ACPI_OP ("Arg3", ARGP_ARG3, ARGI_ARG3, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_METHOD_ARGUMENT, 0),
-/* 18 */ ACPI_OP ("Arg4", ARGP_ARG4, ARGI_ARG4, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_METHOD_ARGUMENT, 0),
-/* 19 */ ACPI_OP ("Arg5", ARGP_ARG5, ARGI_ARG5, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_METHOD_ARGUMENT, 0),
-/* 1A */ ACPI_OP ("Arg6", ARGP_ARG6, ARGI_ARG6, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_METHOD_ARGUMENT, 0),
-/* 1B */ ACPI_OP ("Store", ARGP_STORE_OP, ARGI_STORE_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R),
-/* 1C */ ACPI_OP ("RefOf", ARGP_REF_OF_OP, ARGI_REF_OF_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_1R, AML_FLAGS_EXEC_1A_0T_1R),
-/* 1D */ ACPI_OP ("Add", ARGP_ADD_OP, ARGI_ADD_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
-/* 1E */ ACPI_OP ("Concatenate", ARGP_CONCAT_OP, ARGI_CONCAT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
-/* 1F */ ACPI_OP ("Subtract", ARGP_SUBTRACT_OP, ARGI_SUBTRACT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
-/* 20 */ ACPI_OP ("Increment", ARGP_INCREMENT_OP, ARGI_INCREMENT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_1R, AML_FLAGS_EXEC_1A_0T_1R | AML_CONSTANT),
-/* 21 */ ACPI_OP ("Decrement", ARGP_DECREMENT_OP, ARGI_DECREMENT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_1R, AML_FLAGS_EXEC_1A_0T_1R | AML_CONSTANT),
-/* 22 */ ACPI_OP ("Multiply", ARGP_MULTIPLY_OP, ARGI_MULTIPLY_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
-/* 23 */ ACPI_OP ("Divide", ARGP_DIVIDE_OP, ARGI_DIVIDE_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_2T_1R, AML_FLAGS_EXEC_2A_2T_1R | AML_CONSTANT),
-/* 24 */ ACPI_OP ("ShiftLeft", ARGP_SHIFT_LEFT_OP, ARGI_SHIFT_LEFT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
-/* 25 */ ACPI_OP ("ShiftRight", ARGP_SHIFT_RIGHT_OP, ARGI_SHIFT_RIGHT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
-/* 26 */ ACPI_OP ("And", ARGP_BIT_AND_OP, ARGI_BIT_AND_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
-/* 27 */ ACPI_OP ("NAnd", ARGP_BIT_NAND_OP, ARGI_BIT_NAND_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
-/* 28 */ ACPI_OP ("Or", ARGP_BIT_OR_OP, ARGI_BIT_OR_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
-/* 29 */ ACPI_OP ("NOr", ARGP_BIT_NOR_OP, ARGI_BIT_NOR_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
-/* 2A */ ACPI_OP ("XOr", ARGP_BIT_XOR_OP, ARGI_BIT_XOR_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
-/* 2B */ ACPI_OP ("Not", ARGP_BIT_NOT_OP, ARGI_BIT_NOT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
-/* 2C */ ACPI_OP ("FindSetLeftBit", ARGP_FIND_SET_LEFT_BIT_OP, ARGI_FIND_SET_LEFT_BIT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
-/* 2D */ ACPI_OP ("FindSetRightBit", ARGP_FIND_SET_RIGHT_BIT_OP,ARGI_FIND_SET_RIGHT_BIT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
-/* 2E */ ACPI_OP ("DerefOf", ARGP_DEREF_OF_OP, ARGI_DEREF_OF_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_1R, AML_FLAGS_EXEC_1A_0T_1R),
-/* 2F */ ACPI_OP ("Notify", ARGP_NOTIFY_OP, ARGI_NOTIFY_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_0R, AML_FLAGS_EXEC_2A_0T_0R),
-/* 30 */ ACPI_OP ("SizeOf", ARGP_SIZE_OF_OP, ARGI_SIZE_OF_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_1R, AML_FLAGS_EXEC_1A_0T_1R | AML_NO_OPERAND_RESOLVE),
-/* 31 */ ACPI_OP ("Index", ARGP_INDEX_OP, ARGI_INDEX_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R),
-/* 32 */ ACPI_OP ("Match", ARGP_MATCH_OP, ARGI_MATCH_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_6A_0T_1R, AML_FLAGS_EXEC_6A_0T_1R | AML_CONSTANT),
-/* 33 */ ACPI_OP ("CreateDWordField", ARGP_CREATE_DWORD_FIELD_OP,ARGI_CREATE_DWORD_FIELD_OP, ACPI_TYPE_BUFFER_FIELD, AML_CLASS_CREATE, AML_TYPE_CREATE_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
-/* 34 */ ACPI_OP ("CreateWordField", ARGP_CREATE_WORD_FIELD_OP, ARGI_CREATE_WORD_FIELD_OP, ACPI_TYPE_BUFFER_FIELD, AML_CLASS_CREATE, AML_TYPE_CREATE_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
-/* 35 */ ACPI_OP ("CreateByteField", ARGP_CREATE_BYTE_FIELD_OP, ARGI_CREATE_BYTE_FIELD_OP, ACPI_TYPE_BUFFER_FIELD, AML_CLASS_CREATE, AML_TYPE_CREATE_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
-/* 36 */ ACPI_OP ("CreateBitField", ARGP_CREATE_BIT_FIELD_OP, ARGI_CREATE_BIT_FIELD_OP, ACPI_TYPE_BUFFER_FIELD, AML_CLASS_CREATE, AML_TYPE_CREATE_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
-/* 37 */ ACPI_OP ("ObjectType", ARGP_TYPE_OP, ARGI_TYPE_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_1R, AML_FLAGS_EXEC_1A_0T_1R | AML_NO_OPERAND_RESOLVE),
-/* 38 */ ACPI_OP ("LAnd", ARGP_LAND_OP, ARGI_LAND_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R, AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL_NUMERIC | AML_CONSTANT),
-/* 39 */ ACPI_OP ("LOr", ARGP_LOR_OP, ARGI_LOR_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R, AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL_NUMERIC | AML_CONSTANT),
-/* 3A */ ACPI_OP ("LNot", ARGP_LNOT_OP, ARGI_LNOT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_1R, AML_FLAGS_EXEC_1A_0T_1R | AML_CONSTANT),
-/* 3B */ ACPI_OP ("LEqual", ARGP_LEQUAL_OP, ARGI_LEQUAL_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R, AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL | AML_CONSTANT),
-/* 3C */ ACPI_OP ("LGreater", ARGP_LGREATER_OP, ARGI_LGREATER_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R, AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL | AML_CONSTANT),
-/* 3D */ ACPI_OP ("LLess", ARGP_LLESS_OP, ARGI_LLESS_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R, AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL | AML_CONSTANT),
-/* 3E */ ACPI_OP ("If", ARGP_IF_OP, ARGI_IF_OP, ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, AML_HAS_ARGS),
-/* 3F */ ACPI_OP ("Else", ARGP_ELSE_OP, ARGI_ELSE_OP, ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, AML_HAS_ARGS),
-/* 40 */ ACPI_OP ("While", ARGP_WHILE_OP, ARGI_WHILE_OP, ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, AML_HAS_ARGS),
-/* 41 */ ACPI_OP ("Noop", ARGP_NOOP_OP, ARGI_NOOP_OP, ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, 0),
-/* 42 */ ACPI_OP ("Return", ARGP_RETURN_OP, ARGI_RETURN_OP, ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, AML_HAS_ARGS),
-/* 43 */ ACPI_OP ("Break", ARGP_BREAK_OP, ARGI_BREAK_OP, ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, 0),
-/* 44 */ ACPI_OP ("BreakPoint", ARGP_BREAK_POINT_OP, ARGI_BREAK_POINT_OP, ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, 0),
-/* 45 */ ACPI_OP ("Ones", ARGP_ONES_OP, ARGI_ONES_OP, ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT, AML_TYPE_CONSTANT, AML_CONSTANT),
-
-/* Prefixed opcodes (Two-byte opcodes with a prefix op) */
-
-/* 46 */ ACPI_OP ("Mutex", ARGP_MUTEX_OP, ARGI_MUTEX_OP, ACPI_TYPE_MUTEX, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_SIMPLE, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
-/* 47 */ ACPI_OP ("Event", ARGP_EVENT_OP, ARGI_EVENT_OP, ACPI_TYPE_EVENT, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_SIMPLE, AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED ),
-/* 48 */ ACPI_OP ("CondRefOf", ARGP_COND_REF_OF_OP, ARGI_COND_REF_OF_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R),
-/* 49 */ ACPI_OP ("CreateField", ARGP_CREATE_FIELD_OP, ARGI_CREATE_FIELD_OP, ACPI_TYPE_BUFFER_FIELD, AML_CLASS_CREATE, AML_TYPE_CREATE_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_FIELD | AML_CREATE),
-/* 4A */ ACPI_OP ("Load", ARGP_LOAD_OP, ARGI_LOAD_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_0R, AML_FLAGS_EXEC_1A_1T_0R),
-/* 4B */ ACPI_OP ("Stall", ARGP_STALL_OP, ARGI_STALL_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_0R, AML_FLAGS_EXEC_1A_0T_0R),
-/* 4C */ ACPI_OP ("Sleep", ARGP_SLEEP_OP, ARGI_SLEEP_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_0R, AML_FLAGS_EXEC_1A_0T_0R),
-/* 4D */ ACPI_OP ("Acquire", ARGP_ACQUIRE_OP, ARGI_ACQUIRE_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R, AML_FLAGS_EXEC_2A_0T_1R),
-/* 4E */ ACPI_OP ("Signal", ARGP_SIGNAL_OP, ARGI_SIGNAL_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_0R, AML_FLAGS_EXEC_1A_0T_0R),
-/* 4F */ ACPI_OP ("Wait", ARGP_WAIT_OP, ARGI_WAIT_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_0T_1R, AML_FLAGS_EXEC_2A_0T_1R),
-/* 50 */ ACPI_OP ("Reset", ARGP_RESET_OP, ARGI_RESET_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_0R, AML_FLAGS_EXEC_1A_0T_0R),
-/* 51 */ ACPI_OP ("Release", ARGP_RELEASE_OP, ARGI_RELEASE_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_0R, AML_FLAGS_EXEC_1A_0T_0R),
-/* 52 */ ACPI_OP ("FromBCD", ARGP_FROM_BCD_OP, ARGI_FROM_BCD_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
-/* 53 */ ACPI_OP ("ToBCD", ARGP_TO_BCD_OP, ARGI_TO_BCD_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
-/* 54 */ ACPI_OP ("Unload", ARGP_UNLOAD_OP, ARGI_UNLOAD_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_0T_0R, AML_FLAGS_EXEC_1A_0T_0R),
-/* 55 */ ACPI_OP ("Revision", ARGP_REVISION_OP, ARGI_REVISION_OP, ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT, AML_TYPE_CONSTANT, 0),
-/* 56 */ ACPI_OP ("Debug", ARGP_DEBUG_OP, ARGI_DEBUG_OP, ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT, AML_TYPE_CONSTANT, 0),
-/* 57 */ ACPI_OP ("Fatal", ARGP_FATAL_OP, ARGI_FATAL_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_3A_0T_0R, AML_FLAGS_EXEC_3A_0T_0R),
-/* 58 */ ACPI_OP ("OperationRegion", ARGP_REGION_OP, ARGI_REGION_OP, ACPI_TYPE_REGION, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_COMPLEX, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED | AML_DEFER),
-/* 59 */ ACPI_OP ("Field", ARGP_FIELD_OP, ARGI_FIELD_OP, ACPI_TYPE_ANY, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_FIELD),
-/* 5A */ ACPI_OP ("Device", ARGP_DEVICE_OP, ARGI_DEVICE_OP, ACPI_TYPE_DEVICE, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_NO_OBJ, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
-/* 5B */ ACPI_OP ("Processor", ARGP_PROCESSOR_OP, ARGI_PROCESSOR_OP, ACPI_TYPE_PROCESSOR, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_SIMPLE, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
-/* 5C */ ACPI_OP ("PowerResource", ARGP_POWER_RES_OP, ARGI_POWER_RES_OP, ACPI_TYPE_POWER, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_SIMPLE, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
-/* 5D */ ACPI_OP ("ThermalZone", ARGP_THERMAL_ZONE_OP, ARGI_THERMAL_ZONE_OP, ACPI_TYPE_THERMAL, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_NO_OBJ, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
-/* 5E */ ACPI_OP ("IndexField", ARGP_INDEX_FIELD_OP, ARGI_INDEX_FIELD_OP, ACPI_TYPE_ANY, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_FIELD),
-/* 5F */ ACPI_OP ("BankField", ARGP_BANK_FIELD_OP, ARGI_BANK_FIELD_OP, ACPI_TYPE_ANY, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_FIELD),
-
-/* Internal opcodes that map to invalid AML 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, ACPI_TYPE_LOCAL_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, ACPI_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 */
-
-/* 6E */ ACPI_OP ("QwordConst", ARGP_QWORD_OP, ARGI_QWORD_OP, ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT, AML_TYPE_LITERAL, AML_CONSTANT),
-/* 6F */ ACPI_OP ("Package", /* Var */ ARGP_VAR_PACKAGE_OP, ARGI_VAR_PACKAGE_OP, ACPI_TYPE_PACKAGE, AML_CLASS_CREATE, AML_TYPE_CREATE_OBJECT, AML_HAS_ARGS | AML_DEFER),
-/* 70 */ ACPI_OP ("ConcatenateResTemplate", ARGP_CONCAT_RES_OP, ARGI_CONCAT_RES_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
-/* 71 */ ACPI_OP ("Mod", ARGP_MOD_OP, ARGI_MOD_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
-/* 72 */ ACPI_OP ("CreateQWordField", ARGP_CREATE_QWORD_FIELD_OP,ARGI_CREATE_QWORD_FIELD_OP, ACPI_TYPE_BUFFER_FIELD, AML_CLASS_CREATE, AML_TYPE_CREATE_FIELD, AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
-/* 73 */ ACPI_OP ("ToBuffer", ARGP_TO_BUFFER_OP, ARGI_TO_BUFFER_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
-/* 74 */ ACPI_OP ("ToDecimalString", ARGP_TO_DEC_STR_OP, ARGI_TO_DEC_STR_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
-/* 75 */ ACPI_OP ("ToHexString", ARGP_TO_HEX_STR_OP, ARGI_TO_HEX_STR_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
-/* 76 */ ACPI_OP ("ToInteger", ARGP_TO_INTEGER_OP, ARGI_TO_INTEGER_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
-/* 77 */ ACPI_OP ("ToString", ARGP_TO_STRING_OP, ARGI_TO_STRING_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_2A_1T_1R, AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
-/* 78 */ ACPI_OP ("CopyObject", ARGP_COPY_OP, ARGI_COPY_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_1A_1T_1R, AML_FLAGS_EXEC_1A_1T_1R),
-/* 79 */ ACPI_OP ("Mid", ARGP_MID_OP, ARGI_MID_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_3A_1T_1R, AML_FLAGS_EXEC_3A_1T_1R | AML_CONSTANT),
-/* 7A */ ACPI_OP ("Continue", ARGP_CONTINUE_OP, ARGI_CONTINUE_OP, ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, 0),
-/* 7B */ ACPI_OP ("LoadTable", ARGP_LOAD_TABLE_OP, ARGI_LOAD_TABLE_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_6A_0T_1R, AML_FLAGS_EXEC_6A_0T_1R),
-/* 7C */ ACPI_OP ("DataTableRegion", ARGP_DATA_REGION_OP, ARGI_DATA_REGION_OP, ACPI_TYPE_REGION, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_SIMPLE, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
-/* 7D */ ACPI_OP ("[EvalSubTree]", ARGP_SCOPE_OP, ARGI_SCOPE_OP, ACPI_TYPE_ANY, AML_CLASS_NAMED_OBJECT, AML_TYPE_NAMED_NO_OBJ, AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE),
-
-/* ACPI 3.0 opcodes */
-
-/* 7E */ ACPI_OP ("Timer", ARGP_TIMER_OP, ARGI_TIMER_OP, ACPI_TYPE_ANY, AML_CLASS_EXECUTE, AML_TYPE_EXEC_0A_0T_1R, AML_FLAGS_EXEC_0A_0T_1R)
-
-/*! [End] no source code translation !*/
-};
-
-/*
- * This table is directly indexed by the opcodes, and returns an
- * index into the table above
- */
-static const UINT8 AcpiGbl_ShortOpIndex[256] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
-/* 0x00 */ 0x00, 0x01, _UNK, _UNK, _UNK, _UNK, 0x02, _UNK,
-/* 0x08 */ 0x03, _UNK, 0x04, 0x05, 0x06, 0x07, 0x6E, _UNK,
-/* 0x10 */ 0x08, 0x09, 0x0a, 0x6F, 0x0b, _UNK, _UNK, _UNK,
-/* 0x18 */ _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x20 */ _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x28 */ _UNK, _UNK, _UNK, _UNK, _UNK, 0x63, _PFX, _PFX,
-/* 0x30 */ 0x67, 0x66, 0x68, 0x65, 0x69, 0x64, 0x6A, 0x7D,
-/* 0x38 */ _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x40 */ _UNK, _ASC, _ASC, _ASC, _ASC, _ASC, _ASC, _ASC,
-/* 0x48 */ _ASC, _ASC, _ASC, _ASC, _ASC, _ASC, _ASC, _ASC,
-/* 0x50 */ _ASC, _ASC, _ASC, _ASC, _ASC, _ASC, _ASC, _ASC,
-/* 0x58 */ _ASC, _ASC, _ASC, _UNK, _PFX, _UNK, _PFX, _ASC,
-/* 0x60 */ 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13,
-/* 0x68 */ 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, _UNK,
-/* 0x70 */ 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22,
-/* 0x78 */ 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a,
-/* 0x80 */ 0x2b, 0x2c, 0x2d, 0x2e, 0x70, 0x71, 0x2f, 0x30,
-/* 0x88 */ 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x72,
-/* 0x90 */ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x73, 0x74,
-/* 0x98 */ 0x75, 0x76, _UNK, _UNK, 0x77, 0x78, 0x79, 0x7A,
-/* 0xA0 */ 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x60, 0x61,
-/* 0xA8 */ 0x62, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0xB0 */ _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0xB8 */ _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0xC0 */ _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0xC8 */ _UNK, _UNK, _UNK, _UNK, 0x44, _UNK, _UNK, _UNK,
-/* 0xD0 */ _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0xD8 */ _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0xE0 */ _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0xE8 */ _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0xF0 */ _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0xF8 */ _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, 0x45,
-};
-
-/*
- * This table is indexed by the second opcode of the extended opcode
- * pair. It returns an index into the opcode table (AcpiGbl_AmlOpInfo)
- */
-static const UINT8 AcpiGbl_LongOpIndex[NUM_EXTENDED_OPCODE] =
-{
-/* 0 1 2 3 4 5 6 7 */
-/* 8 9 A B C D E F */
-/* 0x00 */ _UNK, 0x46, 0x47, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x08 */ _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x10 */ _UNK, _UNK, 0x48, 0x49, _UNK, _UNK, _UNK, _UNK,
-/* 0x18 */ _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, 0x7B,
-/* 0x20 */ 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51,
-/* 0x28 */ 0x52, 0x53, 0x54, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x30 */ 0x55, 0x56, 0x57, 0x7e, _UNK, _UNK, _UNK, _UNK,
-/* 0x38 */ _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x40 */ _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x48 */ _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x50 */ _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x58 */ _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x60 */ _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x68 */ _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x70 */ _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x78 */ _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
-/* 0x80 */ 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
-/* 0x88 */ 0x7C,
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsGetOpcodeInfo
- *
- * PARAMETERS: Opcode - The AML opcode
- *
- * RETURN: A pointer to the info about the opcode.
- *
- * DESCRIPTION: Find AML opcode description based on the opcode.
- * NOTE: This procedure must ALWAYS return a valid pointer!
- *
- ******************************************************************************/
-
-const ACPI_OPCODE_INFO *
-AcpiPsGetOpcodeInfo (
- UINT16 Opcode)
-{
- ACPI_FUNCTION_NAME (PsGetOpcodeInfo);
-
-
- /*
- * Detect normal 8-bit opcode or extended 16-bit opcode
- */
- if (!(Opcode & 0xFF00))
- {
- /* Simple (8-bit) opcode: 0-255, can't index beyond table */
-
- return (&AcpiGbl_AmlOpInfo [AcpiGbl_ShortOpIndex [(UINT8) Opcode]]);
- }
-
- if (((Opcode & 0xFF00) == AML_EXTENDED_OPCODE) &&
- (((UINT8) Opcode) <= MAX_EXTENDED_OPCODE))
- {
- /* Valid extended (16-bit) opcode */
-
- return (&AcpiGbl_AmlOpInfo [AcpiGbl_LongOpIndex [(UINT8) Opcode]]);
- }
-
- /* Unknown AML opcode */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "Unknown AML opcode [%4.4X]\n", Opcode));
-
- return (&AcpiGbl_AmlOpInfo [_UNK]);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsGetOpcodeName
- *
- * PARAMETERS: Opcode - The AML opcode
- *
- * RETURN: A pointer to the name of the opcode (ASCII String)
- * Note: Never returns NULL.
- *
- * DESCRIPTION: Translate an opcode into a human-readable string
- *
- ******************************************************************************/
-
-char *
-AcpiPsGetOpcodeName (
- UINT16 Opcode)
-{
-#if defined(ACPI_DISASSEMBLER) || defined (ACPI_DEBUG_OUTPUT)
-
- const ACPI_OPCODE_INFO *Op;
-
-
- Op = AcpiPsGetOpcodeInfo (Opcode);
-
- /* Always guaranteed to return a valid pointer */
-
- return (Op->Name);
-
-#else
- return ("OpcodeName unavailable");
-
-#endif
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsGetArgumentCount
- *
- * PARAMETERS: OpType - Type associated with the AML opcode
- *
- * RETURN: Argument count
- *
- * DESCRIPTION: Obtain the number of expected arguments for an AML opcode
- *
- ******************************************************************************/
-
-UINT8
-AcpiPsGetArgumentCount (
- UINT32 OpType)
-{
-
- if (OpType <= AML_TYPE_EXEC_6A_0T_1R)
- {
- return (AcpiGbl_ArgumentCount[OpType]);
- }
-
- return (0);
-}
diff --git a/sys/contrib/dev/acpica/psparse.c b/sys/contrib/dev/acpica/psparse.c
deleted file mode 100644
index e0afab8..0000000
--- a/sys/contrib/dev/acpica/psparse.c
+++ /dev/null
@@ -1,765 +0,0 @@
-/******************************************************************************
- *
- * Module Name: psparse - Parser top level AML parse routines
- * $Revision: 1.171 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-/*
- * Parse the AML and build an operation tree as most interpreters,
- * like Perl, do. Parsing is done by hand rather than with a YACC
- * generated parser to tightly constrain stack and dynamic memory
- * usage. At the same time, parsing is kept flexible and the code
- * fairly compact by parsing based on a list of AML opcode
- * templates in AmlOpInfo[]
- */
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acinterp.h>
-
-#define _COMPONENT ACPI_PARSER
- ACPI_MODULE_NAME ("psparse")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsGetOpcodeSize
- *
- * PARAMETERS: Opcode - An AML opcode
- *
- * RETURN: Size of the opcode, in bytes (1 or 2)
- *
- * DESCRIPTION: Get the size of the current opcode.
- *
- ******************************************************************************/
-
-UINT32
-AcpiPsGetOpcodeSize (
- UINT32 Opcode)
-{
-
- /* Extended (2-byte) opcode if > 255 */
-
- if (Opcode > 0x00FF)
- {
- return (2);
- }
-
- /* Otherwise, just a single byte opcode */
-
- return (1);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsPeekOpcode
- *
- * PARAMETERS: ParserState - A parser state object
- *
- * RETURN: Next AML opcode
- *
- * DESCRIPTION: Get next AML opcode (without incrementing AML pointer)
- *
- ******************************************************************************/
-
-UINT16
-AcpiPsPeekOpcode (
- ACPI_PARSE_STATE *ParserState)
-{
- UINT8 *Aml;
- UINT16 Opcode;
-
-
- Aml = ParserState->Aml;
- Opcode = (UINT16) ACPI_GET8 (Aml);
-
- if (Opcode == AML_EXTENDED_OP_PREFIX)
- {
- /* Extended opcode, get the second opcode byte */
-
- Aml++;
- Opcode = (UINT16) ((Opcode << 8) | ACPI_GET8 (Aml));
- }
-
- return (Opcode);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsCompleteThisOp
- *
- * PARAMETERS: WalkState - Current State
- * Op - Op to complete
- *
- * RETURN: Status
- *
- * DESCRIPTION: Perform any cleanup at the completion of an Op.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiPsCompleteThisOp (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *Prev;
- ACPI_PARSE_OBJECT *Next;
- const ACPI_OPCODE_INFO *ParentInfo;
- ACPI_PARSE_OBJECT *ReplacementOp = NULL;
-
-
- ACPI_FUNCTION_TRACE_PTR (PsCompleteThisOp, Op);
-
-
- /* Check for null Op, can happen if AML code is corrupt */
-
- if (!Op)
- {
- return_ACPI_STATUS (AE_OK); /* OK for now */
- }
-
- /* Delete this op and the subtree below it if asked to */
-
- if (((WalkState->ParseFlags & ACPI_PARSE_TREE_MASK) != ACPI_PARSE_DELETE_TREE) ||
- (WalkState->OpInfo->Class == AML_CLASS_ARGUMENT))
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Make sure that we only delete this subtree */
-
- if (Op->Common.Parent)
- {
- Prev = Op->Common.Parent->Common.Value.Arg;
- if (!Prev)
- {
- /* Nothing more to do */
-
- goto Cleanup;
- }
-
- /*
- * Check if we need to replace the operator and its subtree
- * with a return value op (placeholder op)
- */
- ParentInfo = AcpiPsGetOpcodeInfo (Op->Common.Parent->Common.AmlOpcode);
-
- switch (ParentInfo->Class)
- {
- case AML_CLASS_CONTROL:
- break;
-
- case AML_CLASS_CREATE:
-
- /*
- * These opcodes contain TermArg operands. The current
- * op must be replaced by a placeholder return op
- */
- ReplacementOp = AcpiPsAllocOp (AML_INT_RETURN_VALUE_OP);
- if (!ReplacementOp)
- {
- goto AllocateError;
- }
- break;
-
- case AML_CLASS_NAMED_OBJECT:
-
- /*
- * These opcodes contain TermArg operands. The current
- * op must be replaced by a placeholder return op
- */
- if ((Op->Common.Parent->Common.AmlOpcode == AML_REGION_OP) ||
- (Op->Common.Parent->Common.AmlOpcode == AML_DATA_REGION_OP) ||
- (Op->Common.Parent->Common.AmlOpcode == AML_BUFFER_OP) ||
- (Op->Common.Parent->Common.AmlOpcode == AML_PACKAGE_OP) ||
- (Op->Common.Parent->Common.AmlOpcode == AML_VAR_PACKAGE_OP))
- {
- ReplacementOp = AcpiPsAllocOp (AML_INT_RETURN_VALUE_OP);
- if (!ReplacementOp)
- {
- goto AllocateError;
- }
- }
- else if ((Op->Common.Parent->Common.AmlOpcode == AML_NAME_OP) &&
- (WalkState->PassNumber <= ACPI_IMODE_LOAD_PASS2))
- {
- if ((Op->Common.AmlOpcode == AML_BUFFER_OP) ||
- (Op->Common.AmlOpcode == AML_PACKAGE_OP) ||
- (Op->Common.AmlOpcode == AML_VAR_PACKAGE_OP))
- {
- ReplacementOp = AcpiPsAllocOp (Op->Common.AmlOpcode);
- if (!ReplacementOp)
- {
- goto AllocateError;
- }
-
- ReplacementOp->Named.Data = Op->Named.Data;
- ReplacementOp->Named.Length = Op->Named.Length;
- }
- }
- break;
-
- default:
-
- ReplacementOp = AcpiPsAllocOp (AML_INT_RETURN_VALUE_OP);
- if (!ReplacementOp)
- {
- goto AllocateError;
- }
- }
-
- /* We must unlink this op from the parent tree */
-
- if (Prev == Op)
- {
- /* This op is the first in the list */
-
- if (ReplacementOp)
- {
- ReplacementOp->Common.Parent = Op->Common.Parent;
- ReplacementOp->Common.Value.Arg = NULL;
- ReplacementOp->Common.Node = Op->Common.Node;
- Op->Common.Parent->Common.Value.Arg = ReplacementOp;
- ReplacementOp->Common.Next = Op->Common.Next;
- }
- else
- {
- Op->Common.Parent->Common.Value.Arg = Op->Common.Next;
- }
- }
-
- /* Search the parent list */
-
- else while (Prev)
- {
- /* Traverse all siblings in the parent's argument list */
-
- Next = Prev->Common.Next;
- if (Next == Op)
- {
- if (ReplacementOp)
- {
- ReplacementOp->Common.Parent = Op->Common.Parent;
- ReplacementOp->Common.Value.Arg = NULL;
- ReplacementOp->Common.Node = Op->Common.Node;
- Prev->Common.Next = ReplacementOp;
- ReplacementOp->Common.Next = Op->Common.Next;
- Next = NULL;
- }
- else
- {
- Prev->Common.Next = Op->Common.Next;
- Next = NULL;
- }
- }
- Prev = Next;
- }
- }
-
-
-Cleanup:
-
- /* Now we can actually delete the subtree rooted at Op */
-
- AcpiPsDeleteParseTree (Op);
- return_ACPI_STATUS (AE_OK);
-
-
-AllocateError:
-
- /* Always delete the subtree, even on error */
-
- AcpiPsDeleteParseTree (Op);
- return_ACPI_STATUS (AE_NO_MEMORY);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsNextParseState
- *
- * PARAMETERS: WalkState - Current state
- * Op - Current parse op
- * CallbackStatus - Status from previous operation
- *
- * RETURN: Status
- *
- * DESCRIPTION: Update the parser state based upon the return exception from
- * the parser callback.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiPsNextParseState (
- ACPI_WALK_STATE *WalkState,
- ACPI_PARSE_OBJECT *Op,
- ACPI_STATUS CallbackStatus)
-{
- ACPI_PARSE_STATE *ParserState = &WalkState->ParserState;
- ACPI_STATUS Status = AE_CTRL_PENDING;
-
-
- ACPI_FUNCTION_TRACE_PTR (PsNextParseState, Op);
-
-
- switch (CallbackStatus)
- {
- case AE_CTRL_TERMINATE:
- /*
- * A control method was terminated via a RETURN statement.
- * The walk of this method is complete.
- */
- ParserState->Aml = ParserState->AmlEnd;
- Status = AE_CTRL_TERMINATE;
- break;
-
-
- case AE_CTRL_BREAK:
-
- ParserState->Aml = WalkState->AmlLastWhile;
- WalkState->ControlState->Common.Value = FALSE;
- Status = AE_CTRL_BREAK;
- break;
-
-
- case AE_CTRL_CONTINUE:
-
- ParserState->Aml = WalkState->AmlLastWhile;
- Status = AE_CTRL_CONTINUE;
- break;
-
-
- case AE_CTRL_PENDING:
-
- 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:
- /*
- * Predicate of an IF was true, and we are at the matching ELSE.
- * Just close out this package
- */
- ParserState->Aml = AcpiPsGetNextPackageEnd (ParserState);
- Status = AE_CTRL_PENDING;
- break;
-
-
- case AE_CTRL_FALSE:
- /*
- * Either an IF/WHILE Predicate was false or we encountered a BREAK
- * opcode. In both cases, we do not execute the rest of the
- * package; We simply close out the parent (finishing the walk of
- * this branch of the tree) and continue execution at the parent
- * level.
- */
- ParserState->Aml = ParserState->Scope->ParseScope.PkgEnd;
-
- /* In the case of a BREAK, just force a predicate (if any) to FALSE */
-
- WalkState->ControlState->Common.Value = FALSE;
- Status = AE_CTRL_END;
- break;
-
-
- case AE_CTRL_TRANSFER:
-
- /* A method call (invocation) -- transfer control */
-
- Status = AE_CTRL_TRANSFER;
- WalkState->PrevOp = Op;
- WalkState->MethodCallOp = Op;
- WalkState->MethodCallNode = (Op->Common.Value.Arg)->Common.Node;
-
- /* Will return value (if any) be used by the caller? */
-
- WalkState->ReturnUsed = AcpiDsIsResultUsed (Op, WalkState);
- break;
-
-
- default:
-
- Status = CallbackStatus;
- if ((CallbackStatus & AE_CODE_MASK) == AE_CODE_CONTROL)
- {
- Status = AE_OK;
- }
- break;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsParseAml
- *
- * PARAMETERS: WalkState - Current state
- *
- *
- * RETURN: Status
- *
- * DESCRIPTION: Parse raw AML and return a tree of ops
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiPsParseAml (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status;
- ACPI_THREAD_STATE *Thread;
- ACPI_THREAD_STATE *PrevWalkList = AcpiGbl_CurrentWalkList;
- ACPI_WALK_STATE *PreviousWalkState;
-
-
- ACPI_FUNCTION_TRACE (PsParseAml);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
- "Entered with WalkState=%p Aml=%p size=%X\n",
- WalkState, WalkState->ParserState.Aml,
- WalkState->ParserState.AmlSize));
-
-
- /* Create and initialize a new thread state */
-
- Thread = AcpiUtCreateThreadState ();
- if (!Thread)
- {
- AcpiDsDeleteWalkState (WalkState);
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- WalkState->Thread = Thread;
-
- /*
- * If executing a method, the starting SyncLevel is this method's
- * SyncLevel
- */
- if (WalkState->MethodDesc)
- {
- WalkState->Thread->CurrentSyncLevel = WalkState->MethodDesc->Method.SyncLevel;
- }
-
- AcpiDsPushWalkState (WalkState, Thread);
-
- /*
- * This global allows the AML debugger to get a handle to the currently
- * executing control method.
- */
- AcpiGbl_CurrentWalkList = Thread;
-
- /*
- * Execute the walk loop as long as there is a valid Walk State. This
- * handles nested control method invocations without recursion.
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "State=%p\n", WalkState));
-
- Status = AE_OK;
- while (WalkState)
- {
- if (ACPI_SUCCESS (Status))
- {
- /*
- * The ParseLoop executes AML until the method terminates
- * or calls another method.
- */
- Status = AcpiPsParseLoop (WalkState);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
- "Completed one call to walk loop, %s State=%p\n",
- AcpiFormatException (Status), WalkState));
-
- if (Status == AE_CTRL_TRANSFER)
- {
- /*
- * A method call was detected.
- * Transfer control to the called control method
- */
- Status = AcpiDsCallControlMethod (Thread, WalkState, NULL);
- if (ACPI_FAILURE (Status))
- {
- Status = AcpiDsMethodError (Status, WalkState);
- }
-
- /*
- * If the transfer to the new method method call worked, a new walk
- * state was created -- get it
- */
- WalkState = AcpiDsGetCurrentWalkState (Thread);
- continue;
- }
- else if (Status == AE_CTRL_TERMINATE)
- {
- Status = AE_OK;
- }
- else if ((Status != AE_OK) && (WalkState->MethodDesc))
- {
- /* Either the method parse or actual execution failed */
-
- ACPI_ERROR_METHOD ("Method parse/execution failed",
- WalkState->MethodNode, NULL, Status);
-
- /* Check for possible multi-thread reentrancy problem */
-
- if ((Status == AE_ALREADY_EXISTS) &&
- (!WalkState->MethodDesc->Method.Mutex))
- {
- ACPI_INFO ((AE_INFO, "Marking method %4.4s as Serialized",
- WalkState->MethodNode->Name.Ascii));
-
- /*
- * Method tried to create an object twice. The probable cause is
- * that the method cannot handle reentrancy.
- *
- * The method is marked NotSerialized, but it tried to create
- * a named object, causing the second thread entrance to fail.
- * Workaround this problem by marking the method permanently
- * as Serialized.
- */
- WalkState->MethodDesc->Method.MethodFlags |= AML_METHOD_SERIALIZED;
- WalkState->MethodDesc->Method.SyncLevel = 0;
- }
- }
-
- /* We are done with this walk, move on to the parent if any */
-
- WalkState = AcpiDsPopWalkState (Thread);
-
- /* Reset the current scope to the beginning of scope stack */
-
- AcpiDsScopeStackClear (WalkState);
-
- /*
- * If we just returned from the execution of a control method or if we
- * encountered an error during the method parse phase, there's lots of
- * cleanup to do
- */
- if (((WalkState->ParseFlags & ACPI_PARSE_MODE_MASK) == ACPI_PARSE_EXECUTE) ||
- (ACPI_FAILURE (Status)))
- {
- AcpiDsTerminateControlMethod (WalkState->MethodDesc, WalkState);
- }
-
- /* Delete this walk state and all linked control states */
-
- AcpiPsCleanupScope (&WalkState->ParserState);
- PreviousWalkState = WalkState;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
- "ReturnValue=%p, ImplicitValue=%p State=%p\n",
- WalkState->ReturnDesc, WalkState->ImplicitReturnObj, WalkState));
-
- /* Check if we have restarted a preempted walk */
-
- WalkState = AcpiDsGetCurrentWalkState (Thread);
- if (WalkState)
- {
- if (ACPI_SUCCESS (Status))
- {
- /*
- * There is another walk state, restart it.
- * If the method return value is not used by the parent,
- * The object is deleted
- */
- if (!PreviousWalkState->ReturnDesc)
- {
- Status = AcpiDsRestartControlMethod (WalkState,
- PreviousWalkState->ImplicitReturnObj);
- }
- else
- {
- /*
- * We have a valid return value, delete any implicit
- * return value.
- */
- AcpiDsClearImplicitReturn (PreviousWalkState);
-
- Status = AcpiDsRestartControlMethod (WalkState,
- PreviousWalkState->ReturnDesc);
- }
- if (ACPI_SUCCESS (Status))
- {
- WalkState->WalkType |= ACPI_WALK_METHOD_RESTART;
- }
- }
- else
- {
- /* On error, delete any return object */
-
- AcpiUtRemoveReference (PreviousWalkState->ReturnDesc);
- }
- }
-
- /*
- * Just completed a 1st-level method, save the final internal return
- * value (if any)
- */
- else if (PreviousWalkState->CallerReturnDesc)
- {
- if (PreviousWalkState->ImplicitReturnObj)
- {
- *(PreviousWalkState->CallerReturnDesc) =
- PreviousWalkState->ImplicitReturnObj;
- }
- else
- {
- /* NULL if no return value */
-
- *(PreviousWalkState->CallerReturnDesc) =
- PreviousWalkState->ReturnDesc;
- }
- }
- else
- {
- if (PreviousWalkState->ReturnDesc)
- {
- /* Caller doesn't want it, must delete it */
-
- AcpiUtRemoveReference (PreviousWalkState->ReturnDesc);
- }
- if (PreviousWalkState->ImplicitReturnObj)
- {
- /* Caller doesn't want it, must delete it */
-
- AcpiUtRemoveReference (PreviousWalkState->ImplicitReturnObj);
- }
- }
-
- AcpiDsDeleteWalkState (PreviousWalkState);
- }
-
- /* Normal exit */
-
- AcpiExReleaseAllMutexes (Thread);
- AcpiUtDeleteGenericState (ACPI_CAST_PTR (ACPI_GENERIC_STATE, Thread));
- AcpiGbl_CurrentWalkList = PrevWalkList;
- return_ACPI_STATUS (Status);
-}
-
-
diff --git a/sys/contrib/dev/acpica/psscope.c b/sys/contrib/dev/acpica/psscope.c
deleted file mode 100644
index ea0a613..0000000
--- a/sys/contrib/dev/acpica/psscope.c
+++ /dev/null
@@ -1,374 +0,0 @@
-/******************************************************************************
- *
- * Module Name: psscope - Parser scope stack management routines
- * $Revision: 1.47 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-
-#define _COMPONENT ACPI_PARSER
- ACPI_MODULE_NAME ("psscope")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsGetParentScope
- *
- * PARAMETERS: ParserState - Current parser state object
- *
- * RETURN: Pointer to an Op object
- *
- * DESCRIPTION: Get parent of current op being parsed
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT *
-AcpiPsGetParentScope (
- ACPI_PARSE_STATE *ParserState)
-{
-
- return (ParserState->Scope->ParseScope.Op);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsHasCompletedScope
- *
- * PARAMETERS: ParserState - Current parser state object
- *
- * RETURN: Boolean, TRUE = scope completed.
- *
- * DESCRIPTION: Is parsing of current argument complete? Determined by
- * 1) AML pointer is at or beyond the end of the scope
- * 2) The scope argument count has reached zero.
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiPsHasCompletedScope (
- ACPI_PARSE_STATE *ParserState)
-{
-
- return ((BOOLEAN)
- ((ParserState->Aml >= ParserState->Scope->ParseScope.ArgEnd ||
- !ParserState->Scope->ParseScope.ArgCount)));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsInitScope
- *
- * PARAMETERS: ParserState - Current parser state object
- * Root - the Root Node of this new scope
- *
- * RETURN: Status
- *
- * DESCRIPTION: Allocate and init a new scope object
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiPsInitScope (
- ACPI_PARSE_STATE *ParserState,
- ACPI_PARSE_OBJECT *RootOp)
-{
- ACPI_GENERIC_STATE *Scope;
-
-
- ACPI_FUNCTION_TRACE_PTR (PsInitScope, RootOp);
-
-
- Scope = AcpiUtCreateGenericState ();
- if (!Scope)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- Scope->Common.DescriptorType = ACPI_DESC_TYPE_STATE_RPSCOPE;
- Scope->ParseScope.Op = RootOp;
- Scope->ParseScope.ArgCount = ACPI_VAR_ARGS;
- Scope->ParseScope.ArgEnd = ParserState->AmlEnd;
- Scope->ParseScope.PkgEnd = ParserState->AmlEnd;
-
- ParserState->Scope = Scope;
- ParserState->StartOp = RootOp;
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsPushScope
- *
- * PARAMETERS: ParserState - Current parser state object
- * Op - Current op to be pushed
- * RemainingArgs - List of args remaining
- * ArgCount - Fixed or variable number of args
- *
- * RETURN: Status
- *
- * DESCRIPTION: Push current op to begin parsing its argument
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiPsPushScope (
- ACPI_PARSE_STATE *ParserState,
- ACPI_PARSE_OBJECT *Op,
- UINT32 RemainingArgs,
- UINT32 ArgCount)
-{
- ACPI_GENERIC_STATE *Scope;
-
-
- ACPI_FUNCTION_TRACE_PTR (PsPushScope, Op);
-
-
- Scope = AcpiUtCreateGenericState ();
- if (!Scope)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- Scope->Common.DescriptorType = ACPI_DESC_TYPE_STATE_PSCOPE;
- Scope->ParseScope.Op = Op;
- Scope->ParseScope.ArgList = RemainingArgs;
- Scope->ParseScope.ArgCount = ArgCount;
- Scope->ParseScope.PkgEnd = ParserState->PkgEnd;
-
- /* Push onto scope stack */
-
- AcpiUtPushGenericState (&ParserState->Scope, Scope);
-
- if (ArgCount == ACPI_VAR_ARGS)
- {
- /* Multiple arguments */
-
- Scope->ParseScope.ArgEnd = ParserState->PkgEnd;
- }
- else
- {
- /* Single argument */
-
- Scope->ParseScope.ArgEnd = ACPI_TO_POINTER (ACPI_MAX_PTR);
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsPopScope
- *
- * PARAMETERS: ParserState - Current parser state object
- * Op - Where the popped op is returned
- * ArgList - Where the popped "next argument" is
- * returned
- * ArgCount - Count of objects in ArgList
- *
- * RETURN: Status
- *
- * DESCRIPTION: Return to parsing a previous op
- *
- ******************************************************************************/
-
-void
-AcpiPsPopScope (
- ACPI_PARSE_STATE *ParserState,
- ACPI_PARSE_OBJECT **Op,
- UINT32 *ArgList,
- UINT32 *ArgCount)
-{
- ACPI_GENERIC_STATE *Scope = ParserState->Scope;
-
-
- ACPI_FUNCTION_TRACE (PsPopScope);
-
-
- /* Only pop the scope if there is in fact a next scope */
-
- if (Scope->Common.Next)
- {
- Scope = AcpiUtPopGenericState (&ParserState->Scope);
-
- /* Return to parsing previous op */
-
- *Op = Scope->ParseScope.Op;
- *ArgList = Scope->ParseScope.ArgList;
- *ArgCount = Scope->ParseScope.ArgCount;
- ParserState->PkgEnd = Scope->ParseScope.PkgEnd;
-
- /* All done with this scope state structure */
-
- AcpiUtDeleteGenericState (Scope);
- }
- else
- {
- /* Empty parse stack, prepare to fetch next opcode */
-
- *Op = NULL;
- *ArgList = 0;
- *ArgCount = 0;
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
- "Popped Op %p Args %X\n", *Op, *ArgCount));
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsCleanupScope
- *
- * PARAMETERS: ParserState - Current parser state object
- *
- * RETURN: None
- *
- * DESCRIPTION: Destroy available list, remaining stack levels, and return
- * root scope
- *
- ******************************************************************************/
-
-void
-AcpiPsCleanupScope (
- ACPI_PARSE_STATE *ParserState)
-{
- ACPI_GENERIC_STATE *Scope;
-
-
- ACPI_FUNCTION_TRACE_PTR (PsCleanupScope, ParserState);
-
-
- if (!ParserState)
- {
- return_VOID;
- }
-
- /* Delete anything on the scope stack */
-
- while (ParserState->Scope)
- {
- Scope = AcpiUtPopGenericState (&ParserState->Scope);
- AcpiUtDeleteGenericState (Scope);
- }
-
- return_VOID;
-}
-
diff --git a/sys/contrib/dev/acpica/pstree.c b/sys/contrib/dev/acpica/pstree.c
deleted file mode 100644
index f6f0170..0000000
--- a/sys/contrib/dev/acpica/pstree.c
+++ /dev/null
@@ -1,427 +0,0 @@
-/******************************************************************************
- *
- * Module Name: pstree - Parser op tree manipulation/traversal/search
- * $Revision: 1.51 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __PSTREE_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/amlcode.h>
-
-#define _COMPONENT ACPI_PARSER
- ACPI_MODULE_NAME ("pstree")
-
-/* Local prototypes */
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-ACPI_PARSE_OBJECT *
-AcpiPsGetChild (
- ACPI_PARSE_OBJECT *op);
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsGetArg
- *
- * PARAMETERS: Op - Get an argument for this op
- * Argn - Nth argument to get
- *
- * RETURN: The argument (as an Op object). NULL if argument does not exist
- *
- * DESCRIPTION: Get the specified op's argument.
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT *
-AcpiPsGetArg (
- ACPI_PARSE_OBJECT *Op,
- UINT32 Argn)
-{
- ACPI_PARSE_OBJECT *Arg = NULL;
- const ACPI_OPCODE_INFO *OpInfo;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /* Get the info structure for this opcode */
-
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- if (OpInfo->Class == AML_CLASS_UNKNOWN)
- {
- /* Invalid opcode or ASCII character */
-
- return (NULL);
- }
-
- /* Check if this opcode requires argument sub-objects */
-
- if (!(OpInfo->Flags & AML_HAS_ARGS))
- {
- /* Has no linked argument objects */
-
- return (NULL);
- }
-
- /* Get the requested argument object */
-
- Arg = Op->Common.Value.Arg;
- while (Arg && Argn)
- {
- Argn--;
- Arg = Arg->Common.Next;
- }
-
- return (Arg);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsAppendArg
- *
- * PARAMETERS: Op - Append an argument to this Op.
- * Arg - Argument Op to append
- *
- * RETURN: None.
- *
- * DESCRIPTION: Append an argument to an op's argument list (a NULL arg is OK)
- *
- ******************************************************************************/
-
-void
-AcpiPsAppendArg (
- ACPI_PARSE_OBJECT *Op,
- ACPI_PARSE_OBJECT *Arg)
-{
- ACPI_PARSE_OBJECT *PrevArg;
- const ACPI_OPCODE_INFO *OpInfo;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- if (!Op)
- {
- return;
- }
-
- /* Get the info structure for this opcode */
-
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- if (OpInfo->Class == AML_CLASS_UNKNOWN)
- {
- /* Invalid opcode */
-
- ACPI_ERROR ((AE_INFO, "Invalid AML Opcode: 0x%2.2X",
- Op->Common.AmlOpcode));
- return;
- }
-
- /* Check if this opcode requires argument sub-objects */
-
- if (!(OpInfo->Flags & AML_HAS_ARGS))
- {
- /* Has no linked argument objects */
-
- return;
- }
-
- /* Append the argument to the linked argument list */
-
- if (Op->Common.Value.Arg)
- {
- /* Append to existing argument list */
-
- PrevArg = Op->Common.Value.Arg;
- while (PrevArg->Common.Next)
- {
- PrevArg = PrevArg->Common.Next;
- }
- PrevArg->Common.Next = Arg;
- }
- else
- {
- /* No argument list, this will be the first argument */
-
- Op->Common.Value.Arg = Arg;
- }
-
- /* Set the parent in this arg and any args linked after it */
-
- while (Arg)
- {
- Arg->Common.Parent = Op;
- Arg = Arg->Common.Next;
-
- Op->Common.ArgListLength++;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsGetDepthNext
- *
- * PARAMETERS: Origin - Root of subtree to search
- * Op - Last (previous) Op that was found
- *
- * RETURN: Next Op found in the search.
- *
- * DESCRIPTION: Get next op in tree (walking the tree in depth-first order)
- * Return NULL when reaching "origin" or when walking up from root
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT *
-AcpiPsGetDepthNext (
- ACPI_PARSE_OBJECT *Origin,
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *Next = NULL;
- ACPI_PARSE_OBJECT *Parent;
- ACPI_PARSE_OBJECT *Arg;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- if (!Op)
- {
- return (NULL);
- }
-
- /* Look for an argument or child */
-
- Next = AcpiPsGetArg (Op, 0);
- if (Next)
- {
- return (Next);
- }
-
- /* Look for a sibling */
-
- Next = Op->Common.Next;
- if (Next)
- {
- return (Next);
- }
-
- /* Look for a sibling of parent */
-
- Parent = Op->Common.Parent;
-
- while (Parent)
- {
- Arg = AcpiPsGetArg (Parent, 0);
- while (Arg && (Arg != Origin) && (Arg != Op))
- {
- Arg = Arg->Common.Next;
- }
-
- if (Arg == Origin)
- {
- /* Reached parent of origin, end search */
-
- return (NULL);
- }
-
- if (Parent->Common.Next)
- {
- /* Found sibling of parent */
-
- return (Parent->Common.Next);
- }
-
- Op = Parent;
- Parent = Parent->Common.Parent;
- }
-
- return (Next);
-}
-
-
-#ifdef ACPI_OBSOLETE_FUNCTIONS
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsGetChild
- *
- * PARAMETERS: Op - Get the child of this Op
- *
- * RETURN: Child Op, Null if none is found.
- *
- * DESCRIPTION: Get op's children or NULL if none
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT *
-AcpiPsGetChild (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_PARSE_OBJECT *Child = NULL;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- switch (Op->Common.AmlOpcode)
- {
- case AML_SCOPE_OP:
- case AML_ELSE_OP:
- case AML_DEVICE_OP:
- case AML_THERMAL_ZONE_OP:
- case AML_INT_METHODCALL_OP:
-
- Child = AcpiPsGetArg (Op, 0);
- break;
-
-
- case AML_BUFFER_OP:
- case AML_PACKAGE_OP:
- case AML_METHOD_OP:
- case AML_IF_OP:
- case AML_WHILE_OP:
- case AML_FIELD_OP:
-
- Child = AcpiPsGetArg (Op, 1);
- break;
-
-
- case AML_POWER_RES_OP:
- case AML_INDEX_FIELD_OP:
-
- Child = AcpiPsGetArg (Op, 2);
- break;
-
-
- case AML_PROCESSOR_OP:
- case AML_BANK_FIELD_OP:
-
- Child = AcpiPsGetArg (Op, 3);
- break;
-
-
- default:
- /* All others have no children */
- break;
- }
-
- return (Child);
-}
-#endif
-
-
diff --git a/sys/contrib/dev/acpica/psutils.c b/sys/contrib/dev/acpica/psutils.c
deleted file mode 100644
index e8c8cf0..0000000
--- a/sys/contrib/dev/acpica/psutils.c
+++ /dev/null
@@ -1,362 +0,0 @@
-/******************************************************************************
- *
- * Module Name: psutils - Parser miscellaneous utilities (Parser only)
- * $Revision: 1.70 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/amlcode.h>
-
-#define _COMPONENT ACPI_PARSER
- ACPI_MODULE_NAME ("psutils")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsCreateScopeOp
- *
- * PARAMETERS: None
- *
- * RETURN: A new Scope object, null on failure
- *
- * DESCRIPTION: Create a Scope and associated namepath op with the root name
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT *
-AcpiPsCreateScopeOp (
- void)
-{
- ACPI_PARSE_OBJECT *ScopeOp;
-
-
- ScopeOp = AcpiPsAllocOp (AML_SCOPE_OP);
- if (!ScopeOp)
- {
- return (NULL);
- }
-
- ScopeOp->Named.Name = ACPI_ROOT_NAME;
- return (ScopeOp);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsInitOp
- *
- * PARAMETERS: Op - A newly allocated Op object
- * Opcode - Opcode to store in the Op
- *
- * RETURN: None
- *
- * DESCRIPTION: Initialize a parse (Op) object
- *
- ******************************************************************************/
-
-void
-AcpiPsInitOp (
- ACPI_PARSE_OBJECT *Op,
- UINT16 Opcode)
-{
- ACPI_FUNCTION_ENTRY ();
-
-
- Op->Common.DescriptorType = ACPI_DESC_TYPE_PARSER;
- Op->Common.AmlOpcode = Opcode;
-
- ACPI_DISASM_ONLY_MEMBERS (ACPI_STRNCPY (Op->Common.AmlOpName,
- (AcpiPsGetOpcodeInfo (Opcode))->Name,
- sizeof (Op->Common.AmlOpName)));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsAllocOp
- *
- * PARAMETERS: Opcode - Opcode that will be stored in the new Op
- *
- * RETURN: Pointer to the new Op, null on failure
- *
- * DESCRIPTION: Allocate an acpi_op, choose op type (and thus size) based on
- * opcode. A cache of opcodes is available for the pure
- * GENERIC_OP, since this is by far the most commonly used.
- *
- ******************************************************************************/
-
-ACPI_PARSE_OBJECT*
-AcpiPsAllocOp (
- UINT16 Opcode)
-{
- ACPI_PARSE_OBJECT *Op;
- const ACPI_OPCODE_INFO *OpInfo;
- UINT8 Flags = ACPI_PARSEOP_GENERIC;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- OpInfo = AcpiPsGetOpcodeInfo (Opcode);
-
- /* Determine type of ParseOp required */
-
- if (OpInfo->Flags & AML_DEFER)
- {
- Flags = ACPI_PARSEOP_DEFERRED;
- }
- else if (OpInfo->Flags & AML_NAMED)
- {
- Flags = ACPI_PARSEOP_NAMED;
- }
- else if (Opcode == AML_INT_BYTELIST_OP)
- {
- Flags = ACPI_PARSEOP_BYTELIST;
- }
-
- /* Allocate the minimum required size object */
-
- if (Flags == ACPI_PARSEOP_GENERIC)
- {
- /* The generic op (default) is by far the most common (16 to 1) */
-
- Op = AcpiOsAcquireObject (AcpiGbl_PsNodeCache);
- }
- else
- {
- /* Extended parseop */
-
- Op = AcpiOsAcquireObject (AcpiGbl_PsNodeExtCache);
- }
-
- /* Initialize the Op */
-
- if (Op)
- {
- AcpiPsInitOp (Op, Opcode);
- Op->Common.Flags = Flags;
- }
-
- return (Op);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsFreeOp
- *
- * PARAMETERS: Op - Op to be freed
- *
- * RETURN: None.
- *
- * DESCRIPTION: Free an Op object. Either put it on the GENERIC_OP cache list
- * or actually free it.
- *
- ******************************************************************************/
-
-void
-AcpiPsFreeOp (
- ACPI_PARSE_OBJECT *Op)
-{
- ACPI_FUNCTION_NAME (PsFreeOp);
-
-
- if (Op->Common.AmlOpcode == AML_INT_RETURN_VALUE_OP)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "Free retval op: %p\n", Op));
- }
-
- if (Op->Common.Flags & ACPI_PARSEOP_GENERIC)
- {
- (void) AcpiOsReleaseObject (AcpiGbl_PsNodeCache, Op);
- }
- else
- {
- (void) AcpiOsReleaseObject (AcpiGbl_PsNodeExtCache, Op);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: Utility functions
- *
- * DESCRIPTION: Low level character and object functions
- *
- ******************************************************************************/
-
-
-/*
- * Is "c" a namestring lead character?
- */
-BOOLEAN
-AcpiPsIsLeadingChar (
- UINT32 c)
-{
- return ((BOOLEAN) (c == '_' || (c >= 'A' && c <= 'Z')));
-}
-
-
-/*
- * Is "c" a namestring prefix character?
- */
-BOOLEAN
-AcpiPsIsPrefixChar (
- UINT32 c)
-{
- return ((BOOLEAN) (c == '\\' || c == '^'));
-}
-
-
-/*
- * Get op's name (4-byte name segment) or 0 if unnamed
- */
-UINT32
-AcpiPsGetName (
- ACPI_PARSE_OBJECT *Op)
-{
-
- /* The "generic" object has no name associated with it */
-
- if (Op->Common.Flags & ACPI_PARSEOP_GENERIC)
- {
- return (0);
- }
-
- /* Only the "Extended" parse objects have a name */
-
- return (Op->Named.Name);
-}
-
-
-/*
- * Set op's name
- */
-void
-AcpiPsSetName (
- ACPI_PARSE_OBJECT *Op,
- UINT32 name)
-{
-
- /* The "generic" object has no name associated with it */
-
- if (Op->Common.Flags & ACPI_PARSEOP_GENERIC)
- {
- return;
- }
-
- Op->Named.Name = name;
-}
-
diff --git a/sys/contrib/dev/acpica/pswalk.c b/sys/contrib/dev/acpica/pswalk.c
deleted file mode 100644
index af4099f..0000000
--- a/sys/contrib/dev/acpica/pswalk.c
+++ /dev/null
@@ -1,193 +0,0 @@
-/******************************************************************************
- *
- * Module Name: pswalk - Parser routines to walk parsed op tree(s)
- * $Revision: 1.78 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-
-#define _COMPONENT ACPI_PARSER
- ACPI_MODULE_NAME ("pswalk")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsDeleteParseTree
- *
- * PARAMETERS: SubtreeRoot - Root of tree (or subtree) to delete
- *
- * RETURN: None
- *
- * DESCRIPTION: Delete a portion of or an entire parse tree.
- *
- ******************************************************************************/
-
-void
-AcpiPsDeleteParseTree (
- ACPI_PARSE_OBJECT *SubtreeRoot)
-{
- ACPI_PARSE_OBJECT *Op = SubtreeRoot;
- ACPI_PARSE_OBJECT *Next = NULL;
- ACPI_PARSE_OBJECT *Parent = NULL;
-
-
- ACPI_FUNCTION_TRACE_PTR (PsDeleteParseTree, SubtreeRoot);
-
-
- /* Visit all nodes in the subtree */
-
- while (Op)
- {
- /* Check if we are not ascending */
-
- if (Op != Parent)
- {
- /* Look for an argument or child of the current op */
-
- Next = AcpiPsGetArg (Op, 0);
- if (Next)
- {
- /* Still going downward in tree (Op is not completed yet) */
-
- Op = Next;
- continue;
- }
- }
-
- /* No more children, this Op is complete. */
-
- Next = Op->Common.Next;
- Parent = Op->Common.Parent;
-
- AcpiPsFreeOp (Op);
-
- /* If we are back to the starting point, the walk is complete. */
-
- if (Op == SubtreeRoot)
- {
- return_VOID;
- }
- if (Next)
- {
- Op = Next;
- }
- else
- {
- Op = Parent;
- }
- }
-
- return_VOID;
-}
diff --git a/sys/contrib/dev/acpica/psxface.c b/sys/contrib/dev/acpica/psxface.c
deleted file mode 100644
index b1ff8e8..0000000
--- a/sys/contrib/dev/acpica/psxface.c
+++ /dev/null
@@ -1,473 +0,0 @@
-/******************************************************************************
- *
- * Module Name: psxface - Parser external interfaces
- * $Revision: 1.93 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __PSXFACE_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acparser.h>
-#include <contrib/dev/acpica/acdispat.h>
-#include <contrib/dev/acpica/acinterp.h>
-
-
-#define _COMPONENT ACPI_PARSER
- ACPI_MODULE_NAME ("psxface")
-
-/* Local Prototypes */
-
-static void
-AcpiPsStartTrace (
- ACPI_EVALUATE_INFO *Info);
-
-static void
-AcpiPsStopTrace (
- ACPI_EVALUATE_INFO *Info);
-
-static void
-AcpiPsUpdateParameterList (
- ACPI_EVALUATE_INFO *Info,
- UINT16 Action);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiDebugTrace
- *
- * PARAMETERS: MethodName - Valid ACPI name string
- * DebugLevel - Optional level mask. 0 to use default
- * DebugLayer - Optional layer mask. 0 to use default
- * Flags - bit 1: one shot(1) or persistent(0)
- *
- * RETURN: Status
- *
- * DESCRIPTION: External interface to enable debug tracing during control
- * method execution
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiDebugTrace (
- char *Name,
- UINT32 DebugLevel,
- UINT32 DebugLayer,
- UINT32 Flags)
-{
- ACPI_STATUS Status;
-
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- /* TBDs: Validate name, allow full path or just nameseg */
-
- AcpiGbl_TraceMethodName = *ACPI_CAST_PTR (UINT32, Name);
- AcpiGbl_TraceFlags = Flags;
-
- if (DebugLevel)
- {
- AcpiGbl_TraceDbgLevel = DebugLevel;
- }
- if (DebugLayer)
- {
- AcpiGbl_TraceDbgLayer = DebugLayer;
- }
-
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsStartTrace
- *
- * PARAMETERS: Info - Method info struct
- *
- * RETURN: None
- *
- * DESCRIPTION: Start control method execution trace
- *
- ******************************************************************************/
-
-static void
-AcpiPsStartTrace (
- ACPI_EVALUATE_INFO *Info)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- if ((!AcpiGbl_TraceMethodName) ||
- (AcpiGbl_TraceMethodName != Info->ResolvedNode->Name.Integer))
- {
- goto Exit;
- }
-
- AcpiGbl_OriginalDbgLevel = AcpiDbgLevel;
- AcpiGbl_OriginalDbgLayer = AcpiDbgLayer;
-
- AcpiDbgLevel = 0x00FFFFFF;
- AcpiDbgLayer = ACPI_UINT32_MAX;
-
- if (AcpiGbl_TraceDbgLevel)
- {
- AcpiDbgLevel = AcpiGbl_TraceDbgLevel;
- }
- if (AcpiGbl_TraceDbgLayer)
- {
- AcpiDbgLayer = AcpiGbl_TraceDbgLayer;
- }
-
-
-Exit:
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsStopTrace
- *
- * PARAMETERS: Info - Method info struct
- *
- * RETURN: None
- *
- * DESCRIPTION: Stop control method execution trace
- *
- ******************************************************************************/
-
-static void
-AcpiPsStopTrace (
- ACPI_EVALUATE_INFO *Info)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- if ((!AcpiGbl_TraceMethodName) ||
- (AcpiGbl_TraceMethodName != Info->ResolvedNode->Name.Integer))
- {
- goto Exit;
- }
-
- /* Disable further tracing if type is one-shot */
-
- if (AcpiGbl_TraceFlags & 1)
- {
- AcpiGbl_TraceMethodName = 0;
- AcpiGbl_TraceDbgLevel = 0;
- AcpiGbl_TraceDbgLayer = 0;
- }
-
- AcpiDbgLevel = AcpiGbl_OriginalDbgLevel;
- AcpiDbgLayer = AcpiGbl_OriginalDbgLayer;
-
-Exit:
- (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsExecuteMethod
- *
- * PARAMETERS: Info - Method info block, contains:
- * Node - Method Node to execute
- * ObjDesc - Method object
- * Parameters - List of parameters to pass to the method,
- * terminated by NULL. Params itself may be
- * NULL if no parameters are being passed.
- * ReturnObject - Where to put method's return value (if
- * any). If NULL, no value is returned.
- * ParameterType - Type of Parameter list
- * ReturnObject - Where to put method's return value (if
- * any). If NULL, no value is returned.
- * PassNumber - Parse or execute pass
- *
- * RETURN: Status
- *
- * DESCRIPTION: Execute a control method
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiPsExecuteMethod (
- ACPI_EVALUATE_INFO *Info)
-{
- ACPI_STATUS Status;
- ACPI_PARSE_OBJECT *Op;
- ACPI_WALK_STATE *WalkState;
-
-
- ACPI_FUNCTION_TRACE (PsExecuteMethod);
-
-
- /* Validate the Info and method Node */
-
- if (!Info || !Info->ResolvedNode)
- {
- return_ACPI_STATUS (AE_NULL_ENTRY);
- }
-
- /* Init for new method, wait on concurrency semaphore */
-
- Status = AcpiDsBeginMethodExecution (Info->ResolvedNode, Info->ObjDesc, NULL);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * The caller "owns" the parameters, so give each one an extra reference
- */
- AcpiPsUpdateParameterList (Info, REF_INCREMENT);
-
- /* Begin tracing if requested */
-
- AcpiPsStartTrace (Info);
-
- /*
- * Execute the method. Performs parse simultaneously
- */
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
- "**** Begin Method Parse/Execute [%4.4s] **** Node=%p Obj=%p\n",
- Info->ResolvedNode->Name.Ascii, Info->ResolvedNode, Info->ObjDesc));
-
- /* Create and init a Root Node */
-
- Op = AcpiPsCreateScopeOp ();
- if (!Op)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- /* Create and initialize a new walk state */
-
- Info->PassNumber = ACPI_IMODE_EXECUTE;
- WalkState = AcpiDsCreateWalkState (
- Info->ObjDesc->Method.OwnerId, NULL, NULL, NULL);
- if (!WalkState)
- {
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- Status = AcpiDsInitAmlWalk (WalkState, Op, Info->ResolvedNode,
- Info->ObjDesc->Method.AmlStart,
- Info->ObjDesc->Method.AmlLength, Info, Info->PassNumber);
- if (ACPI_FAILURE (Status))
- {
- AcpiDsDeleteWalkState (WalkState);
- goto Cleanup;
- }
-
- /* Parse the AML */
-
- Status = AcpiPsParseAml (WalkState);
-
- /* WalkState was deleted by ParseAml */
-
-Cleanup:
- AcpiPsDeleteParseTree (Op);
-
- /* End optional tracing */
-
- AcpiPsStopTrace (Info);
-
- /* Take away the extra reference that we gave the parameters above */
-
- AcpiPsUpdateParameterList (Info, REF_DECREMENT);
-
- /* Exit now if error above */
-
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * If the method has returned an object, signal this to the caller with
- * a control exception code
- */
- if (Info->ReturnObject)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Method returned ObjDesc=%p\n",
- Info->ReturnObject));
- ACPI_DUMP_STACK_ENTRY (Info->ReturnObject);
-
- Status = AE_CTRL_RETURN_VALUE;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiPsUpdateParameterList
- *
- * PARAMETERS: Info - See ACPI_EVALUATE_INFO
- * (Used: ParameterType and Parameters)
- * Action - Add or Remove reference
- *
- * RETURN: Status
- *
- * DESCRIPTION: Update reference count on all method parameter objects
- *
- ******************************************************************************/
-
-static void
-AcpiPsUpdateParameterList (
- ACPI_EVALUATE_INFO *Info,
- UINT16 Action)
-{
- ACPI_NATIVE_UINT i;
-
-
- if ((Info->ParameterType == ACPI_PARAM_ARGS) &&
- (Info->Parameters))
- {
- /* Update reference count for each parameter */
-
- for (i = 0; Info->Parameters[i]; i++)
- {
- /* Ignore errors, just do them all */
-
- (void) AcpiUtUpdateObjectReference (Info->Parameters[i], Action);
- }
- }
-}
-
-
diff --git a/sys/contrib/dev/acpica/rsaddr.c b/sys/contrib/dev/acpica/rsaddr.c
deleted file mode 100644
index 6a11937..0000000
--- a/sys/contrib/dev/acpica/rsaddr.c
+++ /dev/null
@@ -1,479 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: rsaddr - Address resource descriptors (16/32/64)
- * $Revision: 1.50 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __RSADDR_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acresrc.h>
-
-#define _COMPONENT ACPI_RESOURCES
- ACPI_MODULE_NAME ("rsaddr")
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertAddress16 - All WORD (16-bit) address resources
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO AcpiRsConvertAddress16[5] =
-{
- {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_ADDRESS16,
- ACPI_RS_SIZE (ACPI_RESOURCE_ADDRESS16),
- ACPI_RSC_TABLE_SIZE (AcpiRsConvertAddress16)},
-
- {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_ADDRESS16,
- sizeof (AML_RESOURCE_ADDRESS16),
- 0},
-
- /* Resource Type, General Flags, and Type-Specific Flags */
-
- {ACPI_RSC_ADDRESS, 0, 0, 0},
-
- /*
- * These fields are contiguous in both the source and destination:
- * Address Granularity
- * Address Range Minimum
- * Address Range Maximum
- * Address Translation Offset
- * Address Length
- */
- {ACPI_RSC_MOVE16, ACPI_RS_OFFSET (Data.Address16.Granularity),
- AML_OFFSET (Address16.Granularity),
- 5},
-
- /* Optional ResourceSource (Index and String) */
-
- {ACPI_RSC_SOURCE, ACPI_RS_OFFSET (Data.Address16.ResourceSource),
- 0,
- sizeof (AML_RESOURCE_ADDRESS16)}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertAddress32 - All DWORD (32-bit) address resources
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO AcpiRsConvertAddress32[5] =
-{
- {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_ADDRESS32,
- ACPI_RS_SIZE (ACPI_RESOURCE_ADDRESS32),
- ACPI_RSC_TABLE_SIZE (AcpiRsConvertAddress32)},
-
- {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_ADDRESS32,
- sizeof (AML_RESOURCE_ADDRESS32),
- 0},
-
- /* Resource Type, General Flags, and Type-Specific Flags */
-
- {ACPI_RSC_ADDRESS, 0, 0, 0},
-
- /*
- * These fields are contiguous in both the source and destination:
- * Address Granularity
- * Address Range Minimum
- * Address Range Maximum
- * Address Translation Offset
- * Address Length
- */
- {ACPI_RSC_MOVE32, ACPI_RS_OFFSET (Data.Address32.Granularity),
- AML_OFFSET (Address32.Granularity),
- 5},
-
- /* Optional ResourceSource (Index and String) */
-
- {ACPI_RSC_SOURCE, ACPI_RS_OFFSET (Data.Address32.ResourceSource),
- 0,
- sizeof (AML_RESOURCE_ADDRESS32)}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertAddress64 - All QWORD (64-bit) address resources
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO AcpiRsConvertAddress64[5] =
-{
- {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_ADDRESS64,
- ACPI_RS_SIZE (ACPI_RESOURCE_ADDRESS64),
- ACPI_RSC_TABLE_SIZE (AcpiRsConvertAddress64)},
-
- {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_ADDRESS64,
- sizeof (AML_RESOURCE_ADDRESS64),
- 0},
-
- /* Resource Type, General Flags, and Type-Specific Flags */
-
- {ACPI_RSC_ADDRESS, 0, 0, 0},
-
- /*
- * These fields are contiguous in both the source and destination:
- * Address Granularity
- * Address Range Minimum
- * Address Range Maximum
- * Address Translation Offset
- * Address Length
- */
- {ACPI_RSC_MOVE64, ACPI_RS_OFFSET (Data.Address64.Granularity),
- AML_OFFSET (Address64.Granularity),
- 5},
-
- /* Optional ResourceSource (Index and String) */
-
- {ACPI_RSC_SOURCE, ACPI_RS_OFFSET (Data.Address64.ResourceSource),
- 0,
- sizeof (AML_RESOURCE_ADDRESS64)}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertExtAddress64 - All Extended (64-bit) address resources
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO AcpiRsConvertExtAddress64[5] =
-{
- {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64,
- ACPI_RS_SIZE (ACPI_RESOURCE_EXTENDED_ADDRESS64),
- ACPI_RSC_TABLE_SIZE (AcpiRsConvertExtAddress64)},
-
- {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64,
- sizeof (AML_RESOURCE_EXTENDED_ADDRESS64),
- 0},
-
- /* Resource Type, General Flags, and Type-Specific Flags */
-
- {ACPI_RSC_ADDRESS, 0, 0, 0},
-
- /* Revision ID */
-
- {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.ExtAddress64.RevisionID),
- AML_OFFSET (ExtAddress64.RevisionID),
- 1},
- /*
- * These fields are contiguous in both the source and destination:
- * Address Granularity
- * Address Range Minimum
- * Address Range Maximum
- * Address Translation Offset
- * Address Length
- * Type-Specific Attribute
- */
- {ACPI_RSC_MOVE64, ACPI_RS_OFFSET (Data.ExtAddress64.Granularity),
- AML_OFFSET (ExtAddress64.Granularity),
- 6}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertGeneralFlags - Flags common to all address descriptors
- *
- ******************************************************************************/
-
-static ACPI_RSCONVERT_INFO AcpiRsConvertGeneralFlags[6] =
-{
- {ACPI_RSC_FLAGINIT, 0, AML_OFFSET (Address.Flags),
- ACPI_RSC_TABLE_SIZE (AcpiRsConvertGeneralFlags)},
-
- /* Resource Type (Memory, Io, BusNumber, etc.) */
-
- {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.Address.ResourceType),
- AML_OFFSET (Address.ResourceType),
- 1},
-
- /* General Flags - Consume, Decode, MinFixed, MaxFixed */
-
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Address.ProducerConsumer),
- AML_OFFSET (Address.Flags),
- 0},
-
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Address.Decode),
- AML_OFFSET (Address.Flags),
- 1},
-
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Address.MinAddressFixed),
- AML_OFFSET (Address.Flags),
- 2},
-
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Address.MaxAddressFixed),
- AML_OFFSET (Address.Flags),
- 3}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertMemFlags - Flags common to Memory address descriptors
- *
- ******************************************************************************/
-
-static ACPI_RSCONVERT_INFO AcpiRsConvertMemFlags[5] =
-{
- {ACPI_RSC_FLAGINIT, 0, AML_OFFSET (Address.SpecificFlags),
- ACPI_RSC_TABLE_SIZE (AcpiRsConvertMemFlags)},
-
- /* Memory-specific flags */
-
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Address.Info.Mem.WriteProtect),
- AML_OFFSET (Address.SpecificFlags),
- 0},
-
- {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.Address.Info.Mem.Caching),
- AML_OFFSET (Address.SpecificFlags),
- 1},
-
- {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.Address.Info.Mem.RangeType),
- AML_OFFSET (Address.SpecificFlags),
- 3},
-
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Address.Info.Mem.Translation),
- AML_OFFSET (Address.SpecificFlags),
- 5}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertIoFlags - Flags common to I/O address descriptors
- *
- ******************************************************************************/
-
-static ACPI_RSCONVERT_INFO AcpiRsConvertIoFlags[4] =
-{
- {ACPI_RSC_FLAGINIT, 0, AML_OFFSET (Address.SpecificFlags),
- ACPI_RSC_TABLE_SIZE (AcpiRsConvertIoFlags)},
-
- /* I/O-specific flags */
-
- {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.Address.Info.Io.RangeType),
- AML_OFFSET (Address.SpecificFlags),
- 0},
-
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Address.Info.Io.Translation),
- AML_OFFSET (Address.SpecificFlags),
- 4},
-
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Address.Info.Io.TranslationType),
- AML_OFFSET (Address.SpecificFlags),
- 5}
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsGetAddressCommon
- *
- * PARAMETERS: Resource - Pointer to the internal resource struct
- * Aml - Pointer to the AML resource descriptor
- *
- * RETURN: TRUE if the ResourceType field is OK, FALSE otherwise
- *
- * DESCRIPTION: Convert common flag fields from a raw AML resource descriptor
- * to an internal resource descriptor
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiRsGetAddressCommon (
- ACPI_RESOURCE *Resource,
- AML_RESOURCE *Aml)
-{
- ACPI_FUNCTION_ENTRY ();
-
-
- /* Validate the Resource Type */
-
- if ((Aml->Address.ResourceType > 2) && (Aml->Address.ResourceType < 0xC0))
- {
- return (FALSE);
- }
-
- /* Get the Resource Type and General Flags */
-
- (void) AcpiRsConvertAmlToResource (Resource, Aml, AcpiRsConvertGeneralFlags);
-
- /* Get the Type-Specific Flags (Memory and I/O descriptors only) */
-
- if (Resource->Data.Address.ResourceType == ACPI_MEMORY_RANGE)
- {
- (void) AcpiRsConvertAmlToResource (Resource, Aml, AcpiRsConvertMemFlags);
- }
- else if (Resource->Data.Address.ResourceType == ACPI_IO_RANGE)
- {
- (void) AcpiRsConvertAmlToResource (Resource, Aml, AcpiRsConvertIoFlags);
- }
- else
- {
- /* Generic resource type, just grab the TypeSpecific byte */
-
- Resource->Data.Address.Info.TypeSpecific = Aml->Address.SpecificFlags;
- }
-
- return (TRUE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsSetAddressCommon
- *
- * PARAMETERS: Aml - Pointer to the AML resource descriptor
- * Resource - Pointer to the internal resource struct
- *
- * RETURN: None
- *
- * DESCRIPTION: Convert common flag fields from a resource descriptor to an
- * AML descriptor
- *
- ******************************************************************************/
-
-void
-AcpiRsSetAddressCommon (
- AML_RESOURCE *Aml,
- ACPI_RESOURCE *Resource)
-{
- ACPI_FUNCTION_ENTRY ();
-
-
- /* Set the Resource Type and General Flags */
-
- (void) AcpiRsConvertResourceToAml (Resource, Aml, AcpiRsConvertGeneralFlags);
-
- /* Set the Type-Specific Flags (Memory and I/O descriptors only) */
-
- if (Resource->Data.Address.ResourceType == ACPI_MEMORY_RANGE)
- {
- (void) AcpiRsConvertResourceToAml (Resource, Aml, AcpiRsConvertMemFlags);
- }
- else if (Resource->Data.Address.ResourceType == ACPI_IO_RANGE)
- {
- (void) AcpiRsConvertResourceToAml (Resource, Aml, AcpiRsConvertIoFlags);
- }
- else
- {
- /* Generic resource type, just copy the TypeSpecific byte */
-
- Aml->Address.SpecificFlags = Resource->Data.Address.Info.TypeSpecific;
- }
-}
-
-
diff --git a/sys/contrib/dev/acpica/rscalc.c b/sys/contrib/dev/acpica/rscalc.c
deleted file mode 100644
index d04568a..0000000
--- a/sys/contrib/dev/acpica/rscalc.c
+++ /dev/null
@@ -1,715 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: rscalc - Calculate stream and list lengths
- * $Revision: 1.80 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __RSCALC_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acresrc.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-#define _COMPONENT ACPI_RESOURCES
- ACPI_MODULE_NAME ("rscalc")
-
-
-/* Local prototypes */
-
-static UINT8
-AcpiRsCountSetBits (
- UINT16 BitField);
-
-static ACPI_RS_LENGTH
-AcpiRsStructOptionLength (
- ACPI_RESOURCE_SOURCE *ResourceSource);
-
-static UINT32
-AcpiRsStreamOptionLength (
- UINT32 ResourceLength,
- UINT32 MinimumTotalLength);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsCountSetBits
- *
- * PARAMETERS: BitField - Field in which to count bits
- *
- * RETURN: Number of bits set within the field
- *
- * DESCRIPTION: Count the number of bits set in a resource field. Used for
- * (Short descriptor) interrupt and DMA lists.
- *
- ******************************************************************************/
-
-static UINT8
-AcpiRsCountSetBits (
- UINT16 BitField)
-{
- UINT8 BitsSet;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- for (BitsSet = 0; BitField; BitsSet++)
- {
- /* Zero the least significant bit that is set */
-
- BitField &= (BitField - 1);
- }
-
- return (BitsSet);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsStructOptionLength
- *
- * PARAMETERS: ResourceSource - Pointer to optional descriptor field
- *
- * RETURN: Status
- *
- * DESCRIPTION: Common code to handle optional ResourceSourceIndex and
- * ResourceSource fields in some Large descriptors. Used during
- * list-to-stream conversion
- *
- ******************************************************************************/
-
-static ACPI_RS_LENGTH
-AcpiRsStructOptionLength (
- ACPI_RESOURCE_SOURCE *ResourceSource)
-{
- ACPI_FUNCTION_ENTRY ();
-
-
- /*
- * If the ResourceSource string is valid, return the size of the string
- * (StringLength includes the NULL terminator) plus the size of the
- * ResourceSourceIndex (1).
- */
- if (ResourceSource->StringPtr)
- {
- return ((ACPI_RS_LENGTH) (ResourceSource->StringLength + 1));
- }
-
- return (0);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsStreamOptionLength
- *
- * PARAMETERS: ResourceLength - Length from the resource header
- * MinimumTotalLength - Minimum length of this resource, before
- * any optional fields. Includes header size
- *
- * RETURN: Length of optional string (0 if no string present)
- *
- * DESCRIPTION: Common code to handle optional ResourceSourceIndex and
- * ResourceSource fields in some Large descriptors. Used during
- * stream-to-list conversion
- *
- ******************************************************************************/
-
-static UINT32
-AcpiRsStreamOptionLength (
- UINT32 ResourceLength,
- UINT32 MinimumAmlResourceLength)
-{
- UINT32 StringLength = 0;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /*
- * The ResourceSourceIndex and ResourceSource are optional elements of some
- * Large-type resource descriptors.
- */
-
- /*
- * If the length of the actual resource descriptor is greater than the ACPI
- * spec-defined minimum length, it means that a ResourceSourceIndex exists
- * and is followed by a (required) null terminated string. The string length
- * (including the null terminator) is the resource length minus the minimum
- * length, minus one byte for the ResourceSourceIndex itself.
- */
- if (ResourceLength > MinimumAmlResourceLength)
- {
- /* Compute the length of the optional string */
-
- StringLength = ResourceLength - MinimumAmlResourceLength - 1;
- }
-
- /*
- * Round the length up to a multiple of the native word in order to
- * guarantee that the entire resource descriptor is native word aligned
- */
- return ((UINT32) ACPI_ROUND_UP_TO_NATIVE_WORD (StringLength));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsGetAmlLength
- *
- * PARAMETERS: Resource - Pointer to the resource linked list
- * SizeNeeded - Where the required size is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Takes a linked list of internal resource descriptors and
- * calculates the size buffer needed to hold the corresponding
- * external resource byte stream.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsGetAmlLength (
- ACPI_RESOURCE *Resource,
- ACPI_SIZE *SizeNeeded)
-{
- ACPI_SIZE AmlSizeNeeded = 0;
- ACPI_RS_LENGTH TotalSize;
-
-
- ACPI_FUNCTION_TRACE (RsGetAmlLength);
-
-
- /* Traverse entire list of internal resource descriptors */
-
- while (Resource)
- {
- /* Validate the descriptor type */
-
- if (Resource->Type > ACPI_RESOURCE_TYPE_MAX)
- {
- return_ACPI_STATUS (AE_AML_INVALID_RESOURCE_TYPE);
- }
-
- /* Get the base size of the (external stream) resource descriptor */
-
- TotalSize = AcpiGbl_AmlResourceSizes [Resource->Type];
-
- /*
- * Augment the base size for descriptors with optional and/or
- * variable-length fields
- */
- switch (Resource->Type)
- {
- case ACPI_RESOURCE_TYPE_VENDOR:
- /*
- * Vendor Defined Resource:
- * For a Vendor Specific resource, if the Length is between 1 and 7
- * it will be created as a Small Resource data type, otherwise it
- * is a Large Resource data type.
- */
- if (Resource->Data.Vendor.ByteLength > 7)
- {
- /* Base size of a Large resource descriptor */
-
- TotalSize = sizeof (AML_RESOURCE_LARGE_HEADER);
- }
-
- /* Add the size of the vendor-specific data */
-
- TotalSize = (ACPI_RS_LENGTH)
- (TotalSize + Resource->Data.Vendor.ByteLength);
- break;
-
-
- case ACPI_RESOURCE_TYPE_END_TAG:
- /*
- * End Tag:
- * We are done -- return the accumulated total size.
- */
- *SizeNeeded = AmlSizeNeeded + TotalSize;
-
- /* Normal exit */
-
- return_ACPI_STATUS (AE_OK);
-
-
- case ACPI_RESOURCE_TYPE_ADDRESS16:
- /*
- * 16-Bit Address Resource:
- * Add the size of the optional ResourceSource info
- */
- TotalSize = (ACPI_RS_LENGTH)
- (TotalSize + AcpiRsStructOptionLength (
- &Resource->Data.Address16.ResourceSource));
- break;
-
-
- case ACPI_RESOURCE_TYPE_ADDRESS32:
- /*
- * 32-Bit Address Resource:
- * Add the size of the optional ResourceSource info
- */
- TotalSize = (ACPI_RS_LENGTH)
- (TotalSize + AcpiRsStructOptionLength (
- &Resource->Data.Address32.ResourceSource));
- break;
-
-
- case ACPI_RESOURCE_TYPE_ADDRESS64:
- /*
- * 64-Bit Address Resource:
- * Add the size of the optional ResourceSource info
- */
- TotalSize = (ACPI_RS_LENGTH)
- (TotalSize + AcpiRsStructOptionLength (
- &Resource->Data.Address64.ResourceSource));
- break;
-
-
- case ACPI_RESOURCE_TYPE_EXTENDED_IRQ:
- /*
- * Extended IRQ Resource:
- * Add the size of each additional optional interrupt beyond the
- * required 1 (4 bytes for each UINT32 interrupt number)
- */
- TotalSize = (ACPI_RS_LENGTH)
- (TotalSize +
- ((Resource->Data.ExtendedIrq.InterruptCount - 1) * 4) +
-
- /* Add the size of the optional ResourceSource info */
-
- AcpiRsStructOptionLength (
- &Resource->Data.ExtendedIrq.ResourceSource));
- break;
-
-
- default:
- break;
- }
-
- /* Update the total */
-
- AmlSizeNeeded += TotalSize;
-
- /* Point to the next object */
-
- Resource = ACPI_ADD_PTR (ACPI_RESOURCE, Resource, Resource->Length);
- }
-
- /* Did not find an EndTag resource descriptor */
-
- return_ACPI_STATUS (AE_AML_NO_RESOURCE_END_TAG);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsGetListLength
- *
- * PARAMETERS: AmlBuffer - Pointer to the resource byte stream
- * AmlBufferLength - Size of AmlBuffer
- * SizeNeeded - Where the size needed is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Takes an external resource byte stream and calculates the size
- * buffer needed to hold the corresponding internal resource
- * descriptor linked list.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsGetListLength (
- UINT8 *AmlBuffer,
- UINT32 AmlBufferLength,
- ACPI_SIZE *SizeNeeded)
-{
- ACPI_STATUS Status;
- UINT8 *EndAml;
- UINT8 *Buffer;
- UINT32 BufferSize;
- UINT16 Temp16;
- UINT16 ResourceLength;
- UINT32 ExtraStructBytes;
- UINT8 ResourceIndex;
- UINT8 MinimumAmlResourceLength;
-
-
- ACPI_FUNCTION_TRACE (RsGetListLength);
-
-
- *SizeNeeded = 0;
- EndAml = AmlBuffer + AmlBufferLength;
-
- /* Walk the list of AML resource descriptors */
-
- while (AmlBuffer < EndAml)
- {
- /* Validate the Resource Type and Resource Length */
-
- Status = AcpiUtValidateResource (AmlBuffer, &ResourceIndex);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Get the resource length and base (minimum) AML size */
-
- ResourceLength = AcpiUtGetResourceLength (AmlBuffer);
- MinimumAmlResourceLength = AcpiGbl_ResourceAmlSizes[ResourceIndex];
-
- /*
- * Augment the size for descriptors with optional
- * and/or variable length fields
- */
- ExtraStructBytes = 0;
- Buffer = AmlBuffer + AcpiUtGetResourceHeaderLength (AmlBuffer);
-
- switch (AcpiUtGetResourceType (AmlBuffer))
- {
- case ACPI_RESOURCE_NAME_IRQ:
- /*
- * IRQ Resource:
- * Get the number of bits set in the 16-bit IRQ mask
- */
- ACPI_MOVE_16_TO_16 (&Temp16, Buffer);
- ExtraStructBytes = AcpiRsCountSetBits (Temp16);
- break;
-
-
- case ACPI_RESOURCE_NAME_DMA:
- /*
- * DMA Resource:
- * Get the number of bits set in the 8-bit DMA mask
- */
- ExtraStructBytes = AcpiRsCountSetBits (*Buffer);
- break;
-
-
- case ACPI_RESOURCE_NAME_VENDOR_SMALL:
- case ACPI_RESOURCE_NAME_VENDOR_LARGE:
- /*
- * Vendor Resource:
- * Get the number of vendor data bytes
- */
- ExtraStructBytes = ResourceLength;
- break;
-
-
- case ACPI_RESOURCE_NAME_END_TAG:
- /*
- * End Tag:
- * This is the normal exit, add size of EndTag
- */
- *SizeNeeded += ACPI_RS_SIZE_MIN;
- return_ACPI_STATUS (AE_OK);
-
-
- case ACPI_RESOURCE_NAME_ADDRESS32:
- case ACPI_RESOURCE_NAME_ADDRESS16:
- case ACPI_RESOURCE_NAME_ADDRESS64:
- /*
- * Address Resource:
- * Add the size of the optional ResourceSource
- */
- ExtraStructBytes = AcpiRsStreamOptionLength (
- ResourceLength, MinimumAmlResourceLength);
- break;
-
-
- case ACPI_RESOURCE_NAME_EXTENDED_IRQ:
- /*
- * Extended IRQ Resource:
- * Using the InterruptTableLength, add 4 bytes for each additional
- * interrupt. Note: at least one interrupt is required and is
- * included in the minimum descriptor size (reason for the -1)
- */
- ExtraStructBytes = (Buffer[1] - 1) * sizeof (UINT32);
-
- /* Add the size of the optional ResourceSource */
-
- ExtraStructBytes += AcpiRsStreamOptionLength (
- ResourceLength - ExtraStructBytes, MinimumAmlResourceLength);
- break;
-
-
- default:
- break;
- }
-
- /*
- * Update the required buffer size for the internal descriptor structs
- *
- * Important: Round the size up for the appropriate alignment. This
- * is a requirement on IA64.
- */
- BufferSize = AcpiGbl_ResourceStructSizes[ResourceIndex] +
- ExtraStructBytes;
- BufferSize = (UINT32) ACPI_ROUND_UP_TO_NATIVE_WORD (BufferSize);
-
- *SizeNeeded += BufferSize;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_RESOURCES,
- "Type %.2X, AmlLength %.2X InternalLength %.2X\n",
- AcpiUtGetResourceType (AmlBuffer),
- AcpiUtGetDescriptorLength (AmlBuffer), BufferSize));
-
- /*
- * Point to the next resource within the AML stream using the length
- * contained in the resource descriptor header
- */
- AmlBuffer += AcpiUtGetDescriptorLength (AmlBuffer);
- }
-
- /* Did not find an EndTag resource descriptor */
-
- return_ACPI_STATUS (AE_AML_NO_RESOURCE_END_TAG);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsGetPciRoutingTableLength
- *
- * PARAMETERS: PackageObject - Pointer to the package object
- * BufferSizeNeeded - UINT32 pointer of the size buffer
- * needed to properly return the
- * parsed data
- *
- * RETURN: Status
- *
- * DESCRIPTION: Given a package representing a PCI routing table, this
- * calculates the size of the corresponding linked list of
- * descriptions.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsGetPciRoutingTableLength (
- ACPI_OPERAND_OBJECT *PackageObject,
- ACPI_SIZE *BufferSizeNeeded)
-{
- UINT32 NumberOfElements;
- ACPI_SIZE TempSizeNeeded = 0;
- ACPI_OPERAND_OBJECT **TopObjectList;
- UINT32 Index;
- ACPI_OPERAND_OBJECT *PackageElement;
- ACPI_OPERAND_OBJECT **SubObjectList;
- BOOLEAN NameFound;
- UINT32 TableIndex;
-
-
- ACPI_FUNCTION_TRACE (RsGetPciRoutingTableLength);
-
-
- NumberOfElements = PackageObject->Package.Count;
-
- /*
- * Calculate the size of the return buffer.
- * The base size is the number of elements * the sizes of the
- * structures. Additional space for the strings is added below.
- * The minus one is to subtract the size of the UINT8 Source[1]
- * member because it is added below.
- *
- * But each PRT_ENTRY structure has a pointer to a string and
- * the size of that string must be found.
- */
- TopObjectList = PackageObject->Package.Elements;
-
- for (Index = 0; Index < NumberOfElements; Index++)
- {
- /* Dereference the sub-package */
-
- PackageElement = *TopObjectList;
-
- /*
- * The SubObjectList will now point to an array of the
- * four IRQ elements: Address, Pin, Source and SourceIndex
- */
- SubObjectList = PackageElement->Package.Elements;
-
- /* Scan the IrqTableElements for the Source Name String */
-
- NameFound = FALSE;
-
- for (TableIndex = 0; TableIndex < 4 && !NameFound; TableIndex++)
- {
- if (*SubObjectList && /* Null object allowed */
-
- ((ACPI_TYPE_STRING ==
- ACPI_GET_OBJECT_TYPE (*SubObjectList)) ||
-
- ((ACPI_TYPE_LOCAL_REFERENCE ==
- ACPI_GET_OBJECT_TYPE (*SubObjectList)) &&
-
- ((*SubObjectList)->Reference.Opcode ==
- AML_INT_NAMEPATH_OP))))
- {
- NameFound = TRUE;
- }
- else
- {
- /* Look at the next element */
-
- SubObjectList++;
- }
- }
-
- TempSizeNeeded += (sizeof (ACPI_PCI_ROUTING_TABLE) - 4);
-
- /* Was a String type found? */
-
- if (NameFound)
- {
- if (ACPI_GET_OBJECT_TYPE (*SubObjectList) == ACPI_TYPE_STRING)
- {
- /*
- * The length String.Length field does not include the
- * terminating NULL, add 1
- */
- TempSizeNeeded += ((ACPI_SIZE)
- (*SubObjectList)->String.Length + 1);
- }
- else
- {
- TempSizeNeeded += AcpiNsGetPathnameLength (
- (*SubObjectList)->Reference.Node);
- }
- }
- else
- {
- /*
- * If no name was found, then this is a NULL, which is
- * translated as a UINT32 zero.
- */
- TempSizeNeeded += sizeof (UINT32);
- }
-
- /* Round up the size since each element must be aligned */
-
- TempSizeNeeded = ACPI_ROUND_UP_TO_64BIT (TempSizeNeeded);
-
- /* Point to the next ACPI_OPERAND_OBJECT */
-
- TopObjectList++;
- }
-
- /*
- * Add an extra element to the end of the list, essentially a
- * NULL terminator
- */
- *BufferSizeNeeded = TempSizeNeeded + sizeof (ACPI_PCI_ROUTING_TABLE);
- return_ACPI_STATUS (AE_OK);
-}
diff --git a/sys/contrib/dev/acpica/rscreate.c b/sys/contrib/dev/acpica/rscreate.c
deleted file mode 100644
index 6b986ea..0000000
--- a/sys/contrib/dev/acpica/rscreate.c
+++ /dev/null
@@ -1,526 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: rscreate - Create resource lists/tables
- * $Revision: 1.78 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __RSCREATE_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acresrc.h>
-#include <contrib/dev/acpica/amlcode.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-#define _COMPONENT ACPI_RESOURCES
- ACPI_MODULE_NAME ("rscreate")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsCreateResourceList
- *
- * PARAMETERS: AmlBuffer - Pointer to the resource byte stream
- * OutputBuffer - Pointer to the user's buffer
- *
- * RETURN: Status: AE_OK if okay, else a valid ACPI_STATUS code
- * If OutputBuffer is not large enough, OutputBufferLength
- * indicates how large OutputBuffer should be, else it
- * indicates how may UINT8 elements of OutputBuffer are valid.
- *
- * DESCRIPTION: Takes the byte stream returned from a _CRS, _PRS control method
- * execution and parses the stream to create a linked list
- * of device resources.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsCreateResourceList (
- ACPI_OPERAND_OBJECT *AmlBuffer,
- ACPI_BUFFER *OutputBuffer)
-{
-
- ACPI_STATUS Status;
- UINT8 *AmlStart;
- ACPI_SIZE ListSizeNeeded = 0;
- UINT32 AmlBufferLength;
- void *Resource;
-
-
- ACPI_FUNCTION_TRACE (RsCreateResourceList);
-
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "AmlBuffer = %p\n",
- AmlBuffer));
-
- /* Params already validated, so we don't re-validate here */
-
- AmlBufferLength = AmlBuffer->Buffer.Length;
- AmlStart = AmlBuffer->Buffer.Pointer;
-
- /*
- * Pass the AmlBuffer into a module that can calculate
- * the buffer size needed for the linked list
- */
- Status = AcpiRsGetListLength (AmlStart, AmlBufferLength,
- &ListSizeNeeded);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Status=%X ListSizeNeeded=%X\n",
- Status, (UINT32) ListSizeNeeded));
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Validate/Allocate/Clear caller buffer */
-
- Status = AcpiUtInitializeBuffer (OutputBuffer, ListSizeNeeded);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Do the conversion */
-
- Resource = OutputBuffer->Pointer;
- Status = AcpiUtWalkAmlResources (AmlStart, AmlBufferLength,
- AcpiRsConvertAmlToResources, &Resource);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "OutputBuffer %p Length %X\n",
- OutputBuffer->Pointer, (UINT32) OutputBuffer->Length));
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsCreatePciRoutingTable
- *
- * PARAMETERS: PackageObject - Pointer to an ACPI_OPERAND_OBJECT
- * package
- * OutputBuffer - Pointer to the user's buffer
- *
- * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code.
- * If the OutputBuffer is too small, the error will be
- * AE_BUFFER_OVERFLOW and OutputBuffer->Length will point
- * to the size buffer needed.
- *
- * DESCRIPTION: Takes the ACPI_OPERAND_OBJECT package and creates a
- * linked list of PCI interrupt descriptions
- *
- * NOTE: It is the caller's responsibility to ensure that the start of the
- * output buffer is aligned properly (if necessary).
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsCreatePciRoutingTable (
- ACPI_OPERAND_OBJECT *PackageObject,
- ACPI_BUFFER *OutputBuffer)
-{
- UINT8 *Buffer;
- ACPI_OPERAND_OBJECT **TopObjectList;
- ACPI_OPERAND_OBJECT **SubObjectList;
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_SIZE BufferSizeNeeded = 0;
- UINT32 NumberOfElements;
- UINT32 Index;
- ACPI_PCI_ROUTING_TABLE *UserPrt;
- ACPI_NAMESPACE_NODE *Node;
- ACPI_STATUS Status;
- ACPI_BUFFER PathBuffer;
-
-
- ACPI_FUNCTION_TRACE (RsCreatePciRoutingTable);
-
-
- /* Params already validated, so we don't re-validate here */
-
- /* Get the required buffer length */
-
- Status = AcpiRsGetPciRoutingTableLength (PackageObject,
- &BufferSizeNeeded);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "BufferSizeNeeded = %X\n",
- (UINT32) BufferSizeNeeded));
-
- /* Validate/Allocate/Clear caller buffer */
-
- Status = AcpiUtInitializeBuffer (OutputBuffer, BufferSizeNeeded);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * Loop through the ACPI_INTERNAL_OBJECTS - Each object
- * should be a package that in turn contains an
- * ACPI_INTEGER Address, a UINT8 Pin, a Name and a UINT8 SourceIndex.
- */
- TopObjectList = PackageObject->Package.Elements;
- NumberOfElements = PackageObject->Package.Count;
- Buffer = OutputBuffer->Pointer;
- UserPrt = ACPI_CAST_PTR (ACPI_PCI_ROUTING_TABLE, Buffer);
-
- for (Index = 0; Index < NumberOfElements; Index++)
- {
- /*
- * Point UserPrt past this current structure
- *
- * NOTE: On the first iteration, UserPrt->Length will
- * be zero because we cleared the return buffer earlier
- */
- Buffer += UserPrt->Length;
- UserPrt = ACPI_CAST_PTR (ACPI_PCI_ROUTING_TABLE, Buffer);
-
- /*
- * Fill in the Length field with the information we have at this point.
- * The minus four is to subtract the size of the UINT8 Source[4] member
- * because it is added below.
- */
- UserPrt->Length = (sizeof (ACPI_PCI_ROUTING_TABLE) - 4);
-
- /* Each element of the top-level package must also be a package */
-
- if (ACPI_GET_OBJECT_TYPE (*TopObjectList) != ACPI_TYPE_PACKAGE)
- {
- ACPI_ERROR ((AE_INFO,
- "(PRT[%X]) Need sub-package, found %s",
- Index, AcpiUtGetObjectTypeName (*TopObjectList)));
- return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
- }
-
- /* Each sub-package must be of length 4 */
-
- if ((*TopObjectList)->Package.Count != 4)
- {
- ACPI_ERROR ((AE_INFO,
- "(PRT[%X]) Need package of length 4, found length %d",
- Index, (*TopObjectList)->Package.Count));
- return_ACPI_STATUS (AE_AML_PACKAGE_LIMIT);
- }
-
- /*
- * Dereference the sub-package.
- * The SubObjectList will now point to an array of the four IRQ
- * elements: [Address, Pin, Source, SourceIndex]
- */
- SubObjectList = (*TopObjectList)->Package.Elements;
-
- /* 1) First subobject: Dereference the PRT.Address */
-
- ObjDesc = SubObjectList[0];
- if (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_INTEGER)
- {
- UserPrt->Address = ObjDesc->Integer.Value;
- }
- else
- {
- ACPI_ERROR ((AE_INFO,
- "(PRT[%X].Address) Need Integer, found %s",
- Index, AcpiUtGetObjectTypeName (ObjDesc)));
- return_ACPI_STATUS (AE_BAD_DATA);
- }
-
- /* 2) Second subobject: Dereference the PRT.Pin */
-
- ObjDesc = SubObjectList[1];
- if (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_INTEGER)
- {
- UserPrt->Pin = (UINT32) ObjDesc->Integer.Value;
- }
- else
- {
- ACPI_ERROR ((AE_INFO,
- "(PRT[%X].Pin) Need Integer, found %s",
- Index, AcpiUtGetObjectTypeName (ObjDesc)));
- return_ACPI_STATUS (AE_BAD_DATA);
- }
-
- /*
- * 3) Third subobject: Dereference the PRT.SourceName
- * The name may be unresolved (slack mode), so allow a null object
- */
- ObjDesc = SubObjectList[2];
- if (ObjDesc)
- {
- switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
- {
- case ACPI_TYPE_LOCAL_REFERENCE:
-
- if (ObjDesc->Reference.Opcode != AML_INT_NAMEPATH_OP)
- {
- ACPI_ERROR ((AE_INFO,
- "(PRT[%X].Source) Need name, found reference op %X",
- Index, ObjDesc->Reference.Opcode));
- return_ACPI_STATUS (AE_BAD_DATA);
- }
-
- Node = ObjDesc->Reference.Node;
-
- /* Use *remaining* length of the buffer as max for pathname */
-
- PathBuffer.Length = OutputBuffer->Length -
- (UINT32) ((UINT8 *) UserPrt->Source -
- (UINT8 *) OutputBuffer->Pointer);
- PathBuffer.Pointer = UserPrt->Source;
-
- Status = AcpiNsHandleToPathname ((ACPI_HANDLE) Node, &PathBuffer);
-
- /* +1 to include null terminator */
-
- UserPrt->Length += (UINT32) ACPI_STRLEN (UserPrt->Source) + 1;
- break;
-
-
- case ACPI_TYPE_STRING:
-
- ACPI_STRCPY (UserPrt->Source, ObjDesc->String.Pointer);
-
- /*
- * Add to the Length field the length of the string
- * (add 1 for terminator)
- */
- UserPrt->Length += ObjDesc->String.Length + 1;
- break;
-
-
- case ACPI_TYPE_INTEGER:
- /*
- * If this is a number, then the Source Name is NULL, since the
- * entire buffer was zeroed out, we can leave this alone.
- *
- * Add to the Length field the length of the UINT32 NULL
- */
- UserPrt->Length += sizeof (UINT32);
- break;
-
-
- default:
-
- ACPI_ERROR ((AE_INFO,
- "(PRT[%X].Source) Need Ref/String/Integer, found %s",
- Index, AcpiUtGetObjectTypeName (ObjDesc)));
- return_ACPI_STATUS (AE_BAD_DATA);
- }
- }
-
- /* Now align the current length */
-
- UserPrt->Length = (UINT32) ACPI_ROUND_UP_TO_64BIT (UserPrt->Length);
-
- /* 4) Fourth subobject: Dereference the PRT.SourceIndex */
-
- ObjDesc = SubObjectList[3];
- if (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_INTEGER)
- {
- UserPrt->SourceIndex = (UINT32) ObjDesc->Integer.Value;
- }
- else
- {
- ACPI_ERROR ((AE_INFO,
- "(PRT[%X].SourceIndex) Need Integer, found %s",
- Index, AcpiUtGetObjectTypeName (ObjDesc)));
- return_ACPI_STATUS (AE_BAD_DATA);
- }
-
- /* Point to the next ACPI_OPERAND_OBJECT in the top level package */
-
- TopObjectList++;
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "OutputBuffer %p Length %X\n",
- OutputBuffer->Pointer, (UINT32) OutputBuffer->Length));
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsCreateAmlResources
- *
- * PARAMETERS: LinkedListBuffer - Pointer to the resource linked list
- * OutputBuffer - Pointer to the user's buffer
- *
- * RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code.
- * If the OutputBuffer is too small, the error will be
- * AE_BUFFER_OVERFLOW and OutputBuffer->Length will point
- * to the size buffer needed.
- *
- * DESCRIPTION: Takes the linked list of device resources and
- * creates a bytestream to be used as input for the
- * _SRS control method.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsCreateAmlResources (
- ACPI_RESOURCE *LinkedListBuffer,
- ACPI_BUFFER *OutputBuffer)
-{
- ACPI_STATUS Status;
- ACPI_SIZE AmlSizeNeeded = 0;
-
-
- ACPI_FUNCTION_TRACE (RsCreateAmlResources);
-
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "LinkedListBuffer = %p\n",
- LinkedListBuffer));
-
- /*
- * Params already validated, so we don't re-validate here
- *
- * Pass the LinkedListBuffer into a module that calculates
- * the buffer size needed for the byte stream.
- */
- Status = AcpiRsGetAmlLength (LinkedListBuffer,
- &AmlSizeNeeded);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "AmlSizeNeeded=%X, %s\n",
- (UINT32) AmlSizeNeeded, AcpiFormatException (Status)));
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Validate/Allocate/Clear caller buffer */
-
- Status = AcpiUtInitializeBuffer (OutputBuffer, AmlSizeNeeded);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Do the conversion */
-
- Status = AcpiRsConvertResourcesToAml (LinkedListBuffer, AmlSizeNeeded,
- OutputBuffer->Pointer);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "OutputBuffer %p Length %X\n",
- OutputBuffer->Pointer, (UINT32) OutputBuffer->Length));
- return_ACPI_STATUS (AE_OK);
-}
-
diff --git a/sys/contrib/dev/acpica/rsdump.c b/sys/contrib/dev/acpica/rsdump.c
deleted file mode 100644
index eec3df9..0000000
--- a/sys/contrib/dev/acpica/rsdump.c
+++ /dev/null
@@ -1,870 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: rsdump - Functions to display the resource structures.
- * $Revision: 1.62 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __RSDUMP_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acresrc.h>
-
-#define _COMPONENT ACPI_RESOURCES
- ACPI_MODULE_NAME ("rsdump")
-
-
-#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
-
-/* Local prototypes */
-
-static void
-AcpiRsOutString (
- char *Title,
- char *Value);
-
-static void
-AcpiRsOutInteger8 (
- char *Title,
- UINT8 Value);
-
-static void
-AcpiRsOutInteger16 (
- char *Title,
- UINT16 Value);
-
-static void
-AcpiRsOutInteger32 (
- char *Title,
- UINT32 Value);
-
-static void
-AcpiRsOutInteger64 (
- char *Title,
- UINT64 Value);
-
-static void
-AcpiRsOutTitle (
- char *Title);
-
-static void
-AcpiRsDumpByteList (
- UINT16 Length,
- UINT8 *Data);
-
-static void
-AcpiRsDumpDwordList (
- UINT8 Length,
- UINT32 *Data);
-
-static void
-AcpiRsDumpShortByteList (
- UINT8 Length,
- UINT8 *Data);
-
-static void
-AcpiRsDumpResourceSource (
- ACPI_RESOURCE_SOURCE *ResourceSource);
-
-static void
-AcpiRsDumpAddressCommon (
- ACPI_RESOURCE_DATA *Resource);
-
-static void
-AcpiRsDumpDescriptor (
- void *Resource,
- ACPI_RSDUMP_INFO *Table);
-
-
-#define ACPI_RSD_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_RESOURCE_DATA,f)
-#define ACPI_PRT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_PCI_ROUTING_TABLE,f)
-#define ACPI_RSD_TABLE_SIZE(name) (sizeof(name) / sizeof (ACPI_RSDUMP_INFO))
-
-
-/*******************************************************************************
- *
- * Resource Descriptor info tables
- *
- * Note: The first table entry must be a Title or Literal and must contain
- * the table length (number of table entries)
- *
- ******************************************************************************/
-
-ACPI_RSDUMP_INFO AcpiRsDumpIrq[6] =
-{
- {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpIrq), "IRQ", NULL},
- {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Irq.Triggering), "Triggering", AcpiGbl_HeDecode},
- {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Irq.Polarity), "Polarity", AcpiGbl_LlDecode},
- {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Irq.Sharable), "Sharing", AcpiGbl_ShrDecode},
- {ACPI_RSD_UINT8 , ACPI_RSD_OFFSET (Irq.InterruptCount), "Interrupt Count", NULL},
- {ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Irq.Interrupts[0]), "Interrupt List", NULL}
-};
-
-ACPI_RSDUMP_INFO AcpiRsDumpDma[6] =
-{
- {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpDma), "DMA", NULL},
- {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Dma.Type), "Speed", AcpiGbl_TypDecode},
- {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Dma.BusMaster), "Mastering", AcpiGbl_BmDecode},
- {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Dma.Transfer), "Transfer Type", AcpiGbl_SizDecode},
- {ACPI_RSD_UINT8, ACPI_RSD_OFFSET (Dma.ChannelCount), "Channel Count", NULL},
- {ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Dma.Channels[0]), "Channel List", NULL}
-};
-
-ACPI_RSDUMP_INFO AcpiRsDumpStartDpf[3] =
-{
- {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpStartDpf), "Start-Dependent-Functions",NULL},
- {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (StartDpf.CompatibilityPriority), "Compatibility Priority", AcpiGbl_ConfigDecode},
- {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (StartDpf.PerformanceRobustness), "Performance/Robustness", AcpiGbl_ConfigDecode}
-};
-
-ACPI_RSDUMP_INFO AcpiRsDumpEndDpf[1] =
-{
- {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpEndDpf), "End-Dependent-Functions", NULL}
-};
-
-ACPI_RSDUMP_INFO AcpiRsDumpIo[6] =
-{
- {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpIo), "I/O", NULL},
- {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Io.IoDecode), "Address Decoding", AcpiGbl_IoDecode},
- {ACPI_RSD_UINT16, ACPI_RSD_OFFSET (Io.Minimum), "Address Minimum", NULL},
- {ACPI_RSD_UINT16, ACPI_RSD_OFFSET (Io.Maximum), "Address Maximum", NULL},
- {ACPI_RSD_UINT8, ACPI_RSD_OFFSET (Io.Alignment), "Alignment", NULL},
- {ACPI_RSD_UINT8, ACPI_RSD_OFFSET (Io.AddressLength), "Address Length", NULL}
-};
-
-ACPI_RSDUMP_INFO AcpiRsDumpFixedIo[3] =
-{
- {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpFixedIo), "Fixed I/O", NULL},
- {ACPI_RSD_UINT16, ACPI_RSD_OFFSET (FixedIo.Address), "Address", NULL},
- {ACPI_RSD_UINT8, ACPI_RSD_OFFSET (FixedIo.AddressLength), "Address Length", NULL}
-};
-
-ACPI_RSDUMP_INFO AcpiRsDumpVendor[3] =
-{
- {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpVendor), "Vendor Specific", NULL},
- {ACPI_RSD_UINT16, ACPI_RSD_OFFSET (Vendor.ByteLength), "Length", NULL},
- {ACPI_RSD_LONGLIST, ACPI_RSD_OFFSET (Vendor.ByteData[0]), "Vendor Data", NULL}
-};
-
-ACPI_RSDUMP_INFO AcpiRsDumpEndTag[1] =
-{
- {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpEndTag), "EndTag", NULL}
-};
-
-ACPI_RSDUMP_INFO AcpiRsDumpMemory24[6] =
-{
- {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpMemory24), "24-Bit Memory Range", NULL},
- {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Memory24.WriteProtect), "Write Protect", AcpiGbl_RwDecode},
- {ACPI_RSD_UINT16, ACPI_RSD_OFFSET (Memory24.Minimum), "Address Minimum", NULL},
- {ACPI_RSD_UINT16, ACPI_RSD_OFFSET (Memory24.Maximum), "Address Maximum", NULL},
- {ACPI_RSD_UINT16, ACPI_RSD_OFFSET (Memory24.Alignment), "Alignment", NULL},
- {ACPI_RSD_UINT16, ACPI_RSD_OFFSET (Memory24.AddressLength), "Address Length", NULL}
-};
-
-ACPI_RSDUMP_INFO AcpiRsDumpMemory32[6] =
-{
- {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpMemory32), "32-Bit Memory Range", NULL},
- {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Memory32.WriteProtect), "Write Protect", AcpiGbl_RwDecode},
- {ACPI_RSD_UINT32, ACPI_RSD_OFFSET (Memory32.Minimum), "Address Minimum", NULL},
- {ACPI_RSD_UINT32, ACPI_RSD_OFFSET (Memory32.Maximum), "Address Maximum", NULL},
- {ACPI_RSD_UINT32, ACPI_RSD_OFFSET (Memory32.Alignment), "Alignment", NULL},
- {ACPI_RSD_UINT32, ACPI_RSD_OFFSET (Memory32.AddressLength), "Address Length", NULL}
-};
-
-ACPI_RSDUMP_INFO AcpiRsDumpFixedMemory32[4] =
-{
- {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpFixedMemory32), "32-Bit Fixed Memory Range",NULL},
- {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (FixedMemory32.WriteProtect), "Write Protect", AcpiGbl_RwDecode},
- {ACPI_RSD_UINT32, ACPI_RSD_OFFSET (FixedMemory32.Address), "Address", NULL},
- {ACPI_RSD_UINT32, ACPI_RSD_OFFSET (FixedMemory32.AddressLength), "Address Length", NULL}
-};
-
-ACPI_RSDUMP_INFO AcpiRsDumpAddress16[8] =
-{
- {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpAddress16), "16-Bit WORD Address Space",NULL},
- {ACPI_RSD_ADDRESS, 0, NULL, NULL},
- {ACPI_RSD_UINT16, ACPI_RSD_OFFSET (Address16.Granularity), "Granularity", NULL},
- {ACPI_RSD_UINT16, ACPI_RSD_OFFSET (Address16.Minimum), "Address Minimum", NULL},
- {ACPI_RSD_UINT16, ACPI_RSD_OFFSET (Address16.Maximum), "Address Maximum", NULL},
- {ACPI_RSD_UINT16, ACPI_RSD_OFFSET (Address16.TranslationOffset), "Translation Offset", NULL},
- {ACPI_RSD_UINT16, ACPI_RSD_OFFSET (Address16.AddressLength), "Address Length", NULL},
- {ACPI_RSD_SOURCE, ACPI_RSD_OFFSET (Address16.ResourceSource), NULL, NULL}
-};
-
-ACPI_RSDUMP_INFO AcpiRsDumpAddress32[8] =
-{
- {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpAddress32), "32-Bit DWORD Address Space", NULL},
- {ACPI_RSD_ADDRESS, 0, NULL, NULL},
- {ACPI_RSD_UINT32, ACPI_RSD_OFFSET (Address32.Granularity), "Granularity", NULL},
- {ACPI_RSD_UINT32, ACPI_RSD_OFFSET (Address32.Minimum), "Address Minimum", NULL},
- {ACPI_RSD_UINT32, ACPI_RSD_OFFSET (Address32.Maximum), "Address Maximum", NULL},
- {ACPI_RSD_UINT32, ACPI_RSD_OFFSET (Address32.TranslationOffset), "Translation Offset", NULL},
- {ACPI_RSD_UINT32, ACPI_RSD_OFFSET (Address32.AddressLength), "Address Length", NULL},
- {ACPI_RSD_SOURCE, ACPI_RSD_OFFSET (Address32.ResourceSource), NULL, NULL}
-};
-
-ACPI_RSDUMP_INFO AcpiRsDumpAddress64[8] =
-{
- {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpAddress64), "64-Bit QWORD Address Space", NULL},
- {ACPI_RSD_ADDRESS, 0, NULL, NULL},
- {ACPI_RSD_UINT64, ACPI_RSD_OFFSET (Address64.Granularity), "Granularity", NULL},
- {ACPI_RSD_UINT64, ACPI_RSD_OFFSET (Address64.Minimum), "Address Minimum", NULL},
- {ACPI_RSD_UINT64, ACPI_RSD_OFFSET (Address64.Maximum), "Address Maximum", NULL},
- {ACPI_RSD_UINT64, ACPI_RSD_OFFSET (Address64.TranslationOffset), "Translation Offset", NULL},
- {ACPI_RSD_UINT64, ACPI_RSD_OFFSET (Address64.AddressLength), "Address Length", NULL},
- {ACPI_RSD_SOURCE, ACPI_RSD_OFFSET (Address64.ResourceSource), NULL, NULL}
-};
-
-ACPI_RSDUMP_INFO AcpiRsDumpExtAddress64[8] =
-{
- {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpExtAddress64), "64-Bit Extended Address Space", NULL},
- {ACPI_RSD_ADDRESS, 0, NULL, NULL},
- {ACPI_RSD_UINT64, ACPI_RSD_OFFSET (ExtAddress64.Granularity), "Granularity", NULL},
- {ACPI_RSD_UINT64, ACPI_RSD_OFFSET (ExtAddress64.Minimum), "Address Minimum", NULL},
- {ACPI_RSD_UINT64, ACPI_RSD_OFFSET (ExtAddress64.Maximum), "Address Maximum", NULL},
- {ACPI_RSD_UINT64, ACPI_RSD_OFFSET (ExtAddress64.TranslationOffset), "Translation Offset", NULL},
- {ACPI_RSD_UINT64, ACPI_RSD_OFFSET (ExtAddress64.AddressLength), "Address Length", NULL},
- {ACPI_RSD_UINT64, ACPI_RSD_OFFSET (ExtAddress64.TypeSpecific), "Type-Specific Attribute", NULL}
-};
-
-ACPI_RSDUMP_INFO AcpiRsDumpExtIrq[8] =
-{
- {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpExtIrq), "Extended IRQ", NULL},
- {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.ProducerConsumer), "Type", AcpiGbl_ConsumeDecode},
- {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Triggering), "Triggering", AcpiGbl_HeDecode},
- {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Polarity), "Polarity", AcpiGbl_LlDecode},
- {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Sharable), "Sharing", AcpiGbl_ShrDecode},
- {ACPI_RSD_SOURCE, ACPI_RSD_OFFSET (ExtendedIrq.ResourceSource), NULL, NULL},
- {ACPI_RSD_UINT8, ACPI_RSD_OFFSET (ExtendedIrq.InterruptCount), "Interrupt Count", NULL},
- {ACPI_RSD_DWORDLIST,ACPI_RSD_OFFSET (ExtendedIrq.Interrupts[0]), "Interrupt List", NULL}
-};
-
-ACPI_RSDUMP_INFO AcpiRsDumpGenericReg[6] =
-{
- {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpGenericReg), "Generic Register", NULL},
- {ACPI_RSD_UINT8, ACPI_RSD_OFFSET (GenericReg.SpaceId), "Space ID", NULL},
- {ACPI_RSD_UINT8, ACPI_RSD_OFFSET (GenericReg.BitWidth), "Bit Width", NULL},
- {ACPI_RSD_UINT8, ACPI_RSD_OFFSET (GenericReg.BitOffset), "Bit Offset", NULL},
- {ACPI_RSD_UINT8, ACPI_RSD_OFFSET (GenericReg.AccessSize), "Access Size", NULL},
- {ACPI_RSD_UINT64, ACPI_RSD_OFFSET (GenericReg.Address), "Address", NULL}
-};
-
-
-/*
- * Tables used for common address descriptor flag fields
- */
-static ACPI_RSDUMP_INFO AcpiRsDumpGeneralFlags[5] =
-{
- {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpGeneralFlags), NULL, NULL},
- {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.ProducerConsumer), "Consumer/Producer", AcpiGbl_ConsumeDecode},
- {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.Decode), "Address Decode", AcpiGbl_DecDecode},
- {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.MinAddressFixed), "Min Relocatability", AcpiGbl_MinDecode},
- {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.MaxAddressFixed), "Max Relocatability", AcpiGbl_MaxDecode}
-};
-
-static ACPI_RSDUMP_INFO AcpiRsDumpMemoryFlags[5] =
-{
- {ACPI_RSD_LITERAL, ACPI_RSD_TABLE_SIZE (AcpiRsDumpMemoryFlags), "Resource Type", (void *) "Memory Range"},
- {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.Info.Mem.WriteProtect), "Write Protect", AcpiGbl_RwDecode},
- {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Address.Info.Mem.Caching), "Caching", AcpiGbl_MemDecode},
- {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Address.Info.Mem.RangeType), "Range Type", AcpiGbl_MtpDecode},
- {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.Info.Mem.Translation), "Translation", AcpiGbl_TtpDecode}
-};
-
-static ACPI_RSDUMP_INFO AcpiRsDumpIoFlags[4] =
-{
- {ACPI_RSD_LITERAL, ACPI_RSD_TABLE_SIZE (AcpiRsDumpIoFlags), "Resource Type", (void *) "I/O Range"},
- {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Address.Info.Io.RangeType), "Range Type", AcpiGbl_RngDecode},
- {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.Info.Io.Translation), "Translation", AcpiGbl_TtpDecode},
- {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Address.Info.Io.TranslationType), "Translation Type", AcpiGbl_TrsDecode}
-};
-
-
-/*
- * Table used to dump _PRT contents
- */
-static ACPI_RSDUMP_INFO AcpiRsDumpPrt[5] =
-{
- {ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpPrt), NULL, NULL},
- {ACPI_RSD_UINT64, ACPI_PRT_OFFSET (Address), "Address", NULL},
- {ACPI_RSD_UINT32, ACPI_PRT_OFFSET (Pin), "Pin", NULL},
- {ACPI_RSD_STRING, ACPI_PRT_OFFSET (Source[0]), "Source", NULL},
- {ACPI_RSD_UINT32, ACPI_PRT_OFFSET (SourceIndex), "Source Index", NULL}
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsDumpDescriptor
- *
- * PARAMETERS: Resource
- *
- * RETURN: None
- *
- * DESCRIPTION:
- *
- ******************************************************************************/
-
-static void
-AcpiRsDumpDescriptor (
- void *Resource,
- ACPI_RSDUMP_INFO *Table)
-{
- UINT8 *Target = NULL;
- UINT8 *PreviousTarget;
- char *Name;
- UINT8 Count;
-
-
- /* First table entry must contain the table length (# of table entries) */
-
- Count = Table->Offset;
-
- while (Count)
- {
- PreviousTarget = Target;
- Target = ACPI_ADD_PTR (UINT8, Resource, Table->Offset);
- Name = Table->Name;
-
- switch (Table->Opcode)
- {
- case ACPI_RSD_TITLE:
- /*
- * Optional resource title
- */
- if (Table->Name)
- {
- AcpiOsPrintf ("%s Resource\n", Name);
- }
- break;
-
- /* Strings */
-
- case ACPI_RSD_LITERAL:
- AcpiRsOutString (Name, ACPI_CAST_PTR (char, Table->Pointer));
- break;
-
- case ACPI_RSD_STRING:
- AcpiRsOutString (Name, ACPI_CAST_PTR (char, Target));
- break;
-
- /* Data items, 8/16/32/64 bit */
-
- case ACPI_RSD_UINT8:
- AcpiRsOutInteger8 (Name, ACPI_GET8 (Target));
- break;
-
- case ACPI_RSD_UINT16:
- AcpiRsOutInteger16 (Name, ACPI_GET16 (Target));
- break;
-
- case ACPI_RSD_UINT32:
- AcpiRsOutInteger32 (Name, ACPI_GET32 (Target));
- break;
-
- case ACPI_RSD_UINT64:
- AcpiRsOutInteger64 (Name, ACPI_GET64 (Target));
- break;
-
- /* Flags: 1-bit and 2-bit flags supported */
-
- case ACPI_RSD_1BITFLAG:
- AcpiRsOutString (Name, ACPI_CAST_PTR (char,
- Table->Pointer [*Target & 0x01]));
- break;
-
- case ACPI_RSD_2BITFLAG:
- AcpiRsOutString (Name, ACPI_CAST_PTR (char,
- Table->Pointer [*Target & 0x03]));
- break;
-
- case ACPI_RSD_SHORTLIST:
- /*
- * Short byte list (single line output) for DMA and IRQ resources
- * Note: The list length is obtained from the previous table entry
- */
- if (PreviousTarget)
- {
- AcpiRsOutTitle (Name);
- AcpiRsDumpShortByteList (*PreviousTarget, Target);
- }
- break;
-
- case ACPI_RSD_LONGLIST:
- /*
- * Long byte list for Vendor resource data
- * Note: The list length is obtained from the previous table entry
- */
- if (PreviousTarget)
- {
- AcpiRsDumpByteList (ACPI_GET16 (PreviousTarget), Target);
- }
- break;
-
- case ACPI_RSD_DWORDLIST:
- /*
- * Dword list for Extended Interrupt resources
- * Note: The list length is obtained from the previous table entry
- */
- if (PreviousTarget)
- {
- AcpiRsDumpDwordList (*PreviousTarget,
- ACPI_CAST_PTR (UINT32, Target));
- }
- break;
-
- case ACPI_RSD_ADDRESS:
- /*
- * Common flags for all Address resources
- */
- AcpiRsDumpAddressCommon (ACPI_CAST_PTR (ACPI_RESOURCE_DATA, Target));
- break;
-
- case ACPI_RSD_SOURCE:
- /*
- * Optional ResourceSource for Address resources
- */
- AcpiRsDumpResourceSource (ACPI_CAST_PTR (ACPI_RESOURCE_SOURCE, Target));
- break;
-
- default:
- AcpiOsPrintf ("**** Invalid table opcode [%X] ****\n",
- Table->Opcode);
- return;
- }
-
- Table++;
- Count--;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsDumpResourceSource
- *
- * PARAMETERS: ResourceSource - Pointer to a Resource Source struct
- *
- * RETURN: None
- *
- * DESCRIPTION: Common routine for dumping the optional ResourceSource and the
- * corresponding ResourceSourceIndex.
- *
- ******************************************************************************/
-
-static void
-AcpiRsDumpResourceSource (
- ACPI_RESOURCE_SOURCE *ResourceSource)
-{
- ACPI_FUNCTION_ENTRY ();
-
-
- if (ResourceSource->Index == 0xFF)
- {
- return;
- }
-
- AcpiRsOutInteger8 ("Resource Source Index",
- ResourceSource->Index);
-
- AcpiRsOutString ("Resource Source",
- ResourceSource->StringPtr ?
- ResourceSource->StringPtr : "[Not Specified]");
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsDumpAddressCommon
- *
- * PARAMETERS: Resource - Pointer to an internal resource descriptor
- *
- * RETURN: None
- *
- * DESCRIPTION: Dump the fields that are common to all Address resource
- * descriptors
- *
- ******************************************************************************/
-
-static void
-AcpiRsDumpAddressCommon (
- ACPI_RESOURCE_DATA *Resource)
-{
- ACPI_FUNCTION_ENTRY ();
-
-
- /* Decode the type-specific flags */
-
- switch (Resource->Address.ResourceType)
- {
- case ACPI_MEMORY_RANGE:
-
- AcpiRsDumpDescriptor (Resource, AcpiRsDumpMemoryFlags);
- break;
-
- case ACPI_IO_RANGE:
-
- AcpiRsDumpDescriptor (Resource, AcpiRsDumpIoFlags);
- break;
-
- case ACPI_BUS_NUMBER_RANGE:
-
- AcpiRsOutString ("Resource Type", "Bus Number Range");
- break;
-
- default:
-
- AcpiRsOutInteger8 ("Resource Type",
- (UINT8) Resource->Address.ResourceType);
- break;
- }
-
- /* Decode the general flags */
-
- AcpiRsDumpDescriptor (Resource, AcpiRsDumpGeneralFlags);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsDumpResourceList
- *
- * PARAMETERS: ResourceList - Pointer to a resource descriptor list
- *
- * RETURN: None
- *
- * DESCRIPTION: Dispatches the structure to the correct dump routine.
- *
- ******************************************************************************/
-
-void
-AcpiRsDumpResourceList (
- ACPI_RESOURCE *ResourceList)
-{
- UINT32 Count = 0;
- UINT32 Type;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- if (!(AcpiDbgLevel & ACPI_LV_RESOURCES) || !( _COMPONENT & AcpiDbgLayer))
- {
- return;
- }
-
- /* Walk list and dump all resource descriptors (END_TAG terminates) */
-
- do
- {
- AcpiOsPrintf ("\n[%02X] ", Count);
- Count++;
-
- /* Validate Type before dispatch */
-
- Type = ResourceList->Type;
- if (Type > ACPI_RESOURCE_TYPE_MAX)
- {
- AcpiOsPrintf (
- "Invalid descriptor type (%X) in resource list\n",
- ResourceList->Type);
- return;
- }
-
- /* Dump the resource descriptor */
-
- AcpiRsDumpDescriptor (&ResourceList->Data,
- AcpiGbl_DumpResourceDispatch[Type]);
-
- /* Point to the next resource structure */
-
- ResourceList = ACPI_ADD_PTR (ACPI_RESOURCE, ResourceList,
- ResourceList->Length);
-
- /* Exit when END_TAG descriptor is reached */
-
- } while (Type != ACPI_RESOURCE_TYPE_END_TAG);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsDumpIrqList
- *
- * PARAMETERS: RouteTable - Pointer to the routing table to dump.
- *
- * RETURN: None
- *
- * DESCRIPTION: Print IRQ routing table
- *
- ******************************************************************************/
-
-void
-AcpiRsDumpIrqList (
- UINT8 *RouteTable)
-{
- ACPI_PCI_ROUTING_TABLE *PrtElement;
- UINT8 Count;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- if (!(AcpiDbgLevel & ACPI_LV_RESOURCES) || !( _COMPONENT & AcpiDbgLayer))
- {
- return;
- }
-
- PrtElement = ACPI_CAST_PTR (ACPI_PCI_ROUTING_TABLE, RouteTable);
-
- /* Dump all table elements, Exit on zero length element */
-
- for (Count = 0; PrtElement->Length; Count++)
- {
- AcpiOsPrintf ("\n[%02X] PCI IRQ Routing Table Package\n", Count);
- AcpiRsDumpDescriptor (PrtElement, AcpiRsDumpPrt);
-
- PrtElement = ACPI_ADD_PTR (ACPI_PCI_ROUTING_TABLE,
- PrtElement, PrtElement->Length);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsOut*
- *
- * PARAMETERS: Title - Name of the resource field
- * Value - Value of the resource field
- *
- * RETURN: None
- *
- * DESCRIPTION: Miscellaneous helper functions to consistently format the
- * output of the resource dump routines
- *
- ******************************************************************************/
-
-static void
-AcpiRsOutString (
- char *Title,
- char *Value)
-{
- AcpiOsPrintf ("%27s : %s", Title, Value);
- if (!*Value)
- {
- AcpiOsPrintf ("[NULL NAMESTRING]");
- }
- AcpiOsPrintf ("\n");
-}
-
-static void
-AcpiRsOutInteger8 (
- char *Title,
- UINT8 Value)
-{
- AcpiOsPrintf ("%27s : %2.2X\n", Title, Value);
-}
-
-static void
-AcpiRsOutInteger16 (
- char *Title,
- UINT16 Value)
-{
- AcpiOsPrintf ("%27s : %4.4X\n", Title, Value);
-}
-
-static void
-AcpiRsOutInteger32 (
- char *Title,
- UINT32 Value)
-{
- AcpiOsPrintf ("%27s : %8.8X\n", Title, Value);
-}
-
-static void
-AcpiRsOutInteger64 (
- char *Title,
- UINT64 Value)
-{
- AcpiOsPrintf ("%27s : %8.8X%8.8X\n", Title,
- ACPI_FORMAT_UINT64 (Value));
-}
-
-static void
-AcpiRsOutTitle (
- char *Title)
-{
- AcpiOsPrintf ("%27s : ", Title);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsDump*List
- *
- * PARAMETERS: Length - Number of elements in the list
- * Data - Start of the list
- *
- * RETURN: None
- *
- * DESCRIPTION: Miscellaneous functions to dump lists of raw data
- *
- ******************************************************************************/
-
-static void
-AcpiRsDumpByteList (
- UINT16 Length,
- UINT8 *Data)
-{
- UINT8 i;
-
-
- for (i = 0; i < Length; i++)
- {
- AcpiOsPrintf ("%25s%2.2X : %2.2X\n",
- "Byte", i, Data[i]);
- }
-}
-
-static void
-AcpiRsDumpShortByteList (
- UINT8 Length,
- UINT8 *Data)
-{
- UINT8 i;
-
-
- for (i = 0; i < Length; i++)
- {
- AcpiOsPrintf ("%X ", Data[i]);
- }
- AcpiOsPrintf ("\n");
-}
-
-static void
-AcpiRsDumpDwordList (
- UINT8 Length,
- UINT32 *Data)
-{
- UINT8 i;
-
-
- for (i = 0; i < Length; i++)
- {
- AcpiOsPrintf ("%25s%2.2X : %8.8X\n",
- "Dword", i, Data[i]);
- }
-}
-
-#endif
-
diff --git a/sys/contrib/dev/acpica/rsinfo.c b/sys/contrib/dev/acpica/rsinfo.c
deleted file mode 100644
index f5c1e0b..0000000
--- a/sys/contrib/dev/acpica/rsinfo.c
+++ /dev/null
@@ -1,290 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: rsinfo - Dispatch and Info tables
- * $Revision: 1.8 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __RSINFO_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acresrc.h>
-
-#define _COMPONENT ACPI_RESOURCES
- ACPI_MODULE_NAME ("rsinfo")
-
-/*
- * Resource dispatch and information tables. Any new resource types (either
- * Large or Small) must be reflected in each of these tables, so they are here
- * in one place.
- *
- * The tables for Large descriptors are indexed by bits 6:0 of the AML
- * descriptor type byte. The tables for Small descriptors are indexed by
- * bits 6:3 of the descriptor byte. The tables for internal resource
- * descriptors are indexed by the ACPI_RESOURCE_TYPE field.
- */
-
-
-/* Dispatch table for resource-to-AML (Set Resource) conversion functions */
-
-ACPI_RSCONVERT_INFO *AcpiGbl_SetResourceDispatch[] =
-{
- AcpiRsSetIrq, /* 0x00, ACPI_RESOURCE_TYPE_IRQ */
- AcpiRsConvertDma, /* 0x01, ACPI_RESOURCE_TYPE_DMA */
- AcpiRsSetStartDpf, /* 0x02, ACPI_RESOURCE_TYPE_START_DEPENDENT */
- AcpiRsConvertEndDpf, /* 0x03, ACPI_RESOURCE_TYPE_END_DEPENDENT */
- AcpiRsConvertIo, /* 0x04, ACPI_RESOURCE_TYPE_IO */
- AcpiRsConvertFixedIo, /* 0x05, ACPI_RESOURCE_TYPE_FIXED_IO */
- AcpiRsSetVendor, /* 0x06, ACPI_RESOURCE_TYPE_VENDOR */
- AcpiRsConvertEndTag, /* 0x07, ACPI_RESOURCE_TYPE_END_TAG */
- AcpiRsConvertMemory24, /* 0x08, ACPI_RESOURCE_TYPE_MEMORY24 */
- AcpiRsConvertMemory32, /* 0x09, ACPI_RESOURCE_TYPE_MEMORY32 */
- AcpiRsConvertFixedMemory32, /* 0x0A, ACPI_RESOURCE_TYPE_FIXED_MEMORY32 */
- AcpiRsConvertAddress16, /* 0x0B, ACPI_RESOURCE_TYPE_ADDRESS16 */
- AcpiRsConvertAddress32, /* 0x0C, ACPI_RESOURCE_TYPE_ADDRESS32 */
- AcpiRsConvertAddress64, /* 0x0D, ACPI_RESOURCE_TYPE_ADDRESS64 */
- AcpiRsConvertExtAddress64, /* 0x0E, ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64 */
- AcpiRsConvertExtIrq, /* 0x0F, ACPI_RESOURCE_TYPE_EXTENDED_IRQ */
- AcpiRsConvertGenericReg /* 0x10, ACPI_RESOURCE_TYPE_GENERIC_REGISTER */
-};
-
-/* Dispatch tables for AML-to-resource (Get Resource) conversion functions */
-
-ACPI_RSCONVERT_INFO *AcpiGbl_GetResourceDispatch[] =
-{
- /* Small descriptors */
-
- NULL, /* 0x00, Reserved */
- NULL, /* 0x01, Reserved */
- NULL, /* 0x02, Reserved */
- NULL, /* 0x03, Reserved */
- AcpiRsGetIrq, /* 0x04, ACPI_RESOURCE_NAME_IRQ */
- AcpiRsConvertDma, /* 0x05, ACPI_RESOURCE_NAME_DMA */
- AcpiRsGetStartDpf, /* 0x06, ACPI_RESOURCE_NAME_START_DEPENDENT */
- AcpiRsConvertEndDpf, /* 0x07, ACPI_RESOURCE_NAME_END_DEPENDENT */
- AcpiRsConvertIo, /* 0x08, ACPI_RESOURCE_NAME_IO */
- AcpiRsConvertFixedIo, /* 0x09, ACPI_RESOURCE_NAME_FIXED_IO */
- NULL, /* 0x0A, Reserved */
- NULL, /* 0x0B, Reserved */
- NULL, /* 0x0C, Reserved */
- NULL, /* 0x0D, Reserved */
- AcpiRsGetVendorSmall, /* 0x0E, ACPI_RESOURCE_NAME_VENDOR_SMALL */
- AcpiRsConvertEndTag, /* 0x0F, ACPI_RESOURCE_NAME_END_TAG */
-
- /* Large descriptors */
-
- NULL, /* 0x00, Reserved */
- AcpiRsConvertMemory24, /* 0x01, ACPI_RESOURCE_NAME_MEMORY24 */
- AcpiRsConvertGenericReg, /* 0x02, ACPI_RESOURCE_NAME_GENERIC_REGISTER */
- NULL, /* 0x03, Reserved */
- AcpiRsGetVendorLarge, /* 0x04, ACPI_RESOURCE_NAME_VENDOR_LARGE */
- AcpiRsConvertMemory32, /* 0x05, ACPI_RESOURCE_NAME_MEMORY32 */
- AcpiRsConvertFixedMemory32, /* 0x06, ACPI_RESOURCE_NAME_FIXED_MEMORY32 */
- AcpiRsConvertAddress32, /* 0x07, ACPI_RESOURCE_NAME_ADDRESS32 */
- AcpiRsConvertAddress16, /* 0x08, ACPI_RESOURCE_NAME_ADDRESS16 */
- AcpiRsConvertExtIrq, /* 0x09, ACPI_RESOURCE_NAME_EXTENDED_IRQ */
- AcpiRsConvertAddress64, /* 0x0A, ACPI_RESOURCE_NAME_ADDRESS64 */
- AcpiRsConvertExtAddress64 /* 0x0B, ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64 */
-};
-
-
-#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
-
-/* Dispatch table for resource dump functions */
-
-ACPI_RSDUMP_INFO *AcpiGbl_DumpResourceDispatch[] =
-{
- AcpiRsDumpIrq, /* ACPI_RESOURCE_TYPE_IRQ */
- AcpiRsDumpDma, /* ACPI_RESOURCE_TYPE_DMA */
- AcpiRsDumpStartDpf, /* ACPI_RESOURCE_TYPE_START_DEPENDENT */
- AcpiRsDumpEndDpf, /* ACPI_RESOURCE_TYPE_END_DEPENDENT */
- AcpiRsDumpIo, /* ACPI_RESOURCE_TYPE_IO */
- AcpiRsDumpFixedIo, /* ACPI_RESOURCE_TYPE_FIXED_IO */
- AcpiRsDumpVendor, /* ACPI_RESOURCE_TYPE_VENDOR */
- AcpiRsDumpEndTag, /* ACPI_RESOURCE_TYPE_END_TAG */
- AcpiRsDumpMemory24, /* ACPI_RESOURCE_TYPE_MEMORY24 */
- AcpiRsDumpMemory32, /* ACPI_RESOURCE_TYPE_MEMORY32 */
- AcpiRsDumpFixedMemory32, /* ACPI_RESOURCE_TYPE_FIXED_MEMORY32 */
- AcpiRsDumpAddress16, /* ACPI_RESOURCE_TYPE_ADDRESS16 */
- AcpiRsDumpAddress32, /* ACPI_RESOURCE_TYPE_ADDRESS32 */
- AcpiRsDumpAddress64, /* ACPI_RESOURCE_TYPE_ADDRESS64 */
- AcpiRsDumpExtAddress64, /* ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64 */
- AcpiRsDumpExtIrq, /* ACPI_RESOURCE_TYPE_EXTENDED_IRQ */
- AcpiRsDumpGenericReg, /* ACPI_RESOURCE_TYPE_GENERIC_REGISTER */
-};
-#endif
-
-
-/*
- * Base sizes for external AML resource descriptors, indexed by internal type.
- * Includes size of the descriptor header (1 byte for small descriptors,
- * 3 bytes for large descriptors)
- */
-const UINT8 AcpiGbl_AmlResourceSizes[] =
-{
- sizeof (AML_RESOURCE_IRQ), /* ACPI_RESOURCE_TYPE_IRQ (optional Byte 3 always created) */
- sizeof (AML_RESOURCE_DMA), /* ACPI_RESOURCE_TYPE_DMA */
- sizeof (AML_RESOURCE_START_DEPENDENT), /* ACPI_RESOURCE_TYPE_START_DEPENDENT (optional Byte 1 always created) */
- sizeof (AML_RESOURCE_END_DEPENDENT), /* ACPI_RESOURCE_TYPE_END_DEPENDENT */
- sizeof (AML_RESOURCE_IO), /* ACPI_RESOURCE_TYPE_IO */
- sizeof (AML_RESOURCE_FIXED_IO), /* ACPI_RESOURCE_TYPE_FIXED_IO */
- sizeof (AML_RESOURCE_VENDOR_SMALL), /* ACPI_RESOURCE_TYPE_VENDOR */
- sizeof (AML_RESOURCE_END_TAG), /* ACPI_RESOURCE_TYPE_END_TAG */
- sizeof (AML_RESOURCE_MEMORY24), /* ACPI_RESOURCE_TYPE_MEMORY24 */
- sizeof (AML_RESOURCE_MEMORY32), /* ACPI_RESOURCE_TYPE_MEMORY32 */
- sizeof (AML_RESOURCE_FIXED_MEMORY32), /* ACPI_RESOURCE_TYPE_FIXED_MEMORY32 */
- sizeof (AML_RESOURCE_ADDRESS16), /* ACPI_RESOURCE_TYPE_ADDRESS16 */
- sizeof (AML_RESOURCE_ADDRESS32), /* ACPI_RESOURCE_TYPE_ADDRESS32 */
- sizeof (AML_RESOURCE_ADDRESS64), /* ACPI_RESOURCE_TYPE_ADDRESS64 */
- sizeof (AML_RESOURCE_EXTENDED_ADDRESS64),/*ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64 */
- sizeof (AML_RESOURCE_EXTENDED_IRQ), /* ACPI_RESOURCE_TYPE_EXTENDED_IRQ */
- sizeof (AML_RESOURCE_GENERIC_REGISTER) /* ACPI_RESOURCE_TYPE_GENERIC_REGISTER */
-};
-
-
-const UINT8 AcpiGbl_ResourceStructSizes[] =
-{
- /* Small descriptors */
-
- 0,
- 0,
- 0,
- 0,
- ACPI_RS_SIZE (ACPI_RESOURCE_IRQ),
- ACPI_RS_SIZE (ACPI_RESOURCE_DMA),
- ACPI_RS_SIZE (ACPI_RESOURCE_START_DEPENDENT),
- ACPI_RS_SIZE_MIN,
- ACPI_RS_SIZE (ACPI_RESOURCE_IO),
- ACPI_RS_SIZE (ACPI_RESOURCE_FIXED_IO),
- 0,
- 0,
- 0,
- 0,
- ACPI_RS_SIZE (ACPI_RESOURCE_VENDOR),
- ACPI_RS_SIZE_MIN,
-
- /* Large descriptors */
-
- 0,
- ACPI_RS_SIZE (ACPI_RESOURCE_MEMORY24),
- ACPI_RS_SIZE (ACPI_RESOURCE_GENERIC_REGISTER),
- 0,
- ACPI_RS_SIZE (ACPI_RESOURCE_VENDOR),
- ACPI_RS_SIZE (ACPI_RESOURCE_MEMORY32),
- ACPI_RS_SIZE (ACPI_RESOURCE_FIXED_MEMORY32),
- ACPI_RS_SIZE (ACPI_RESOURCE_ADDRESS32),
- ACPI_RS_SIZE (ACPI_RESOURCE_ADDRESS16),
- ACPI_RS_SIZE (ACPI_RESOURCE_EXTENDED_IRQ),
- ACPI_RS_SIZE (ACPI_RESOURCE_ADDRESS64),
- ACPI_RS_SIZE (ACPI_RESOURCE_EXTENDED_ADDRESS64)
-};
-
diff --git a/sys/contrib/dev/acpica/rsio.c b/sys/contrib/dev/acpica/rsio.c
deleted file mode 100644
index 5222979..0000000
--- a/sys/contrib/dev/acpica/rsio.c
+++ /dev/null
@@ -1,341 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: rsio - IO and DMA resource descriptors
- * $Revision: 1.35 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __RSIO_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acresrc.h>
-
-#define _COMPONENT ACPI_RESOURCES
- ACPI_MODULE_NAME ("rsio")
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertIo
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO AcpiRsConvertIo[5] =
-{
- {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_IO,
- ACPI_RS_SIZE (ACPI_RESOURCE_IO),
- ACPI_RSC_TABLE_SIZE (AcpiRsConvertIo)},
-
- {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_IO,
- sizeof (AML_RESOURCE_IO),
- 0},
-
- /* Decode flag */
-
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Io.IoDecode),
- AML_OFFSET (Io.Flags),
- 0},
- /*
- * These fields are contiguous in both the source and destination:
- * Address Alignment
- * Length
- * Minimum Base Address
- * Maximum Base Address
- */
- {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.Io.Alignment),
- AML_OFFSET (Io.Alignment),
- 2},
-
- {ACPI_RSC_MOVE16, ACPI_RS_OFFSET (Data.Io.Minimum),
- AML_OFFSET (Io.Minimum),
- 2}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertFixedIo
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO AcpiRsConvertFixedIo[4] =
-{
- {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_FIXED_IO,
- ACPI_RS_SIZE (ACPI_RESOURCE_FIXED_IO),
- ACPI_RSC_TABLE_SIZE (AcpiRsConvertFixedIo)},
-
- {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_FIXED_IO,
- sizeof (AML_RESOURCE_FIXED_IO),
- 0},
- /*
- * These fields are contiguous in both the source and destination:
- * Base Address
- * Length
- */
- {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.FixedIo.AddressLength),
- AML_OFFSET (FixedIo.AddressLength),
- 1},
-
- {ACPI_RSC_MOVE16, ACPI_RS_OFFSET (Data.FixedIo.Address),
- AML_OFFSET (FixedIo.Address),
- 1}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertGenericReg
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO AcpiRsConvertGenericReg[4] =
-{
- {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_GENERIC_REGISTER,
- ACPI_RS_SIZE (ACPI_RESOURCE_GENERIC_REGISTER),
- ACPI_RSC_TABLE_SIZE (AcpiRsConvertGenericReg)},
-
- {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_GENERIC_REGISTER,
- sizeof (AML_RESOURCE_GENERIC_REGISTER),
- 0},
- /*
- * These fields are contiguous in both the source and destination:
- * Address Space ID
- * Register Bit Width
- * Register Bit Offset
- * Access Size
- */
- {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.GenericReg.SpaceId),
- AML_OFFSET (GenericReg.AddressSpaceId),
- 4},
-
- /* Get the Register Address */
-
- {ACPI_RSC_MOVE64, ACPI_RS_OFFSET (Data.GenericReg.Address),
- AML_OFFSET (GenericReg.Address),
- 1}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertEndDpf
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO AcpiRsConvertEndDpf[2] =
-{
- {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_END_DEPENDENT,
- ACPI_RS_SIZE_MIN,
- ACPI_RSC_TABLE_SIZE (AcpiRsConvertEndDpf)},
-
- {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_END_DEPENDENT,
- sizeof (AML_RESOURCE_END_DEPENDENT),
- 0}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertEndTag
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO AcpiRsConvertEndTag[2] =
-{
- {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_END_TAG,
- ACPI_RS_SIZE_MIN,
- ACPI_RSC_TABLE_SIZE (AcpiRsConvertEndTag)},
-
- /*
- * Note: The checksum field is set to zero, meaning that the resource
- * data is treated as if the checksum operation succeeded.
- * (ACPI Spec 1.0b Section 6.4.2.8)
- */
- {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_END_TAG,
- sizeof (AML_RESOURCE_END_TAG),
- 0}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsGetStartDpf
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO AcpiRsGetStartDpf[5] =
-{
- {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_START_DEPENDENT,
- ACPI_RS_SIZE (ACPI_RESOURCE_START_DEPENDENT),
- ACPI_RSC_TABLE_SIZE (AcpiRsGetStartDpf)},
-
- /* Defaults for Compatibility and Performance priorities */
-
- {ACPI_RSC_SET8, ACPI_RS_OFFSET (Data.StartDpf.CompatibilityPriority),
- ACPI_ACCEPTABLE_CONFIGURATION,
- 2},
-
- /* All done if there is no flag byte present in the descriptor */
-
- {ACPI_RSC_EXIT_NE, ACPI_RSC_COMPARE_AML_LENGTH, 0, 1},
-
- /* Flag byte is present, get the flags */
-
- {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.StartDpf.CompatibilityPriority),
- AML_OFFSET (StartDpf.Flags),
- 0},
-
- {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.StartDpf.PerformanceRobustness),
- AML_OFFSET (StartDpf.Flags),
- 2}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsSetStartDpf
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO AcpiRsSetStartDpf[6] =
-{
- {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_START_DEPENDENT,
- sizeof (AML_RESOURCE_START_DEPENDENT),
- ACPI_RSC_TABLE_SIZE (AcpiRsSetStartDpf)},
-
- /* Set the default flag values */
-
- {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.StartDpf.CompatibilityPriority),
- AML_OFFSET (StartDpf.Flags),
- 0},
-
- {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.StartDpf.PerformanceRobustness),
- AML_OFFSET (StartDpf.Flags),
- 2},
- /*
- * All done if flags byte is necessary -- if either priority value
- * is not ACPI_ACCEPTABLE_CONFIGURATION
- */
- {ACPI_RSC_EXIT_NE, ACPI_RSC_COMPARE_VALUE,
- ACPI_RS_OFFSET (Data.StartDpf.CompatibilityPriority),
- ACPI_ACCEPTABLE_CONFIGURATION},
-
- {ACPI_RSC_EXIT_NE, ACPI_RSC_COMPARE_VALUE,
- ACPI_RS_OFFSET (Data.StartDpf.PerformanceRobustness),
- ACPI_ACCEPTABLE_CONFIGURATION},
-
- /* Flag byte is not necessary */
-
- {ACPI_RSC_LENGTH, 0, 0, sizeof (AML_RESOURCE_START_DEPENDENT_NOPRIO)}
-};
-
-
diff --git a/sys/contrib/dev/acpica/rsirq.c b/sys/contrib/dev/acpica/rsirq.c
deleted file mode 100644
index abf72c6..0000000
--- a/sys/contrib/dev/acpica/rsirq.c
+++ /dev/null
@@ -1,313 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: rsirq - IRQ resource descriptors
- * $Revision: 1.50 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __RSIRQ_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acresrc.h>
-
-#define _COMPONENT ACPI_RESOURCES
- ACPI_MODULE_NAME ("rsirq")
-
-
-/*******************************************************************************
- *
- * AcpiRsGetIrq
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO AcpiRsGetIrq[7] =
-{
- {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_IRQ,
- ACPI_RS_SIZE (ACPI_RESOURCE_IRQ),
- ACPI_RSC_TABLE_SIZE (AcpiRsGetIrq)},
-
- /* Get the IRQ mask (bytes 1:2) */
-
- {ACPI_RSC_BITMASK16,ACPI_RS_OFFSET (Data.Irq.Interrupts[0]),
- AML_OFFSET (Irq.IrqMask),
- ACPI_RS_OFFSET (Data.Irq.InterruptCount)},
-
- /* Set default flags (others are zero) */
-
- {ACPI_RSC_SET8, ACPI_RS_OFFSET (Data.Irq.Triggering),
- ACPI_EDGE_SENSITIVE,
- 1},
-
- /* All done if no flag byte present in descriptor */
-
- {ACPI_RSC_EXIT_NE, ACPI_RSC_COMPARE_AML_LENGTH, 0, 3},
-
- /* Get flags: Triggering[0], Polarity[3], Sharing[4] */
-
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Triggering),
- AML_OFFSET (Irq.Flags),
- 0},
-
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Polarity),
- AML_OFFSET (Irq.Flags),
- 3},
-
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Sharable),
- AML_OFFSET (Irq.Flags),
- 4}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsSetIrq
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO AcpiRsSetIrq[9] =
-{
- {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_IRQ,
- sizeof (AML_RESOURCE_IRQ),
- ACPI_RSC_TABLE_SIZE (AcpiRsSetIrq)},
-
- /* Convert interrupt list to 16-bit IRQ bitmask */
-
- {ACPI_RSC_BITMASK16,ACPI_RS_OFFSET (Data.Irq.Interrupts[0]),
- AML_OFFSET (Irq.IrqMask),
- ACPI_RS_OFFSET (Data.Irq.InterruptCount)},
-
- /* Set the flags byte by default */
-
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Triggering),
- AML_OFFSET (Irq.Flags),
- 0},
-
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Polarity),
- AML_OFFSET (Irq.Flags),
- 3},
-
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Sharable),
- AML_OFFSET (Irq.Flags),
- 4},
- /*
- * Check if the flags byte is necessary. Not needed if the flags are:
- * ACPI_EDGE_SENSITIVE, ACPI_ACTIVE_HIGH, ACPI_EXCLUSIVE
- */
- {ACPI_RSC_EXIT_NE, ACPI_RSC_COMPARE_VALUE,
- ACPI_RS_OFFSET (Data.Irq.Triggering),
- ACPI_EDGE_SENSITIVE},
-
- {ACPI_RSC_EXIT_NE, ACPI_RSC_COMPARE_VALUE,
- ACPI_RS_OFFSET (Data.Irq.Polarity),
- ACPI_ACTIVE_HIGH},
-
- {ACPI_RSC_EXIT_NE, ACPI_RSC_COMPARE_VALUE,
- ACPI_RS_OFFSET (Data.Irq.Sharable),
- ACPI_EXCLUSIVE},
-
- /* IrqNoFlags() descriptor can be used */
-
- {ACPI_RSC_LENGTH, 0, 0, sizeof (AML_RESOURCE_IRQ_NOFLAGS)}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertExtIrq
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO AcpiRsConvertExtIrq[9] =
-{
- {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_EXTENDED_IRQ,
- ACPI_RS_SIZE (ACPI_RESOURCE_EXTENDED_IRQ),
- ACPI_RSC_TABLE_SIZE (AcpiRsConvertExtIrq)},
-
- {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_EXTENDED_IRQ,
- sizeof (AML_RESOURCE_EXTENDED_IRQ),
- 0},
-
- /* Flag bits */
-
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.ExtendedIrq.ProducerConsumer),
- AML_OFFSET (ExtendedIrq.Flags),
- 0},
-
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.ExtendedIrq.Triggering),
- AML_OFFSET (ExtendedIrq.Flags),
- 1},
-
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.ExtendedIrq.Polarity),
- AML_OFFSET (ExtendedIrq.Flags),
- 2},
-
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.ExtendedIrq.Sharable),
- AML_OFFSET (ExtendedIrq.Flags),
- 3},
-
- /* IRQ Table length (Byte4) */
-
- {ACPI_RSC_COUNT, ACPI_RS_OFFSET (Data.ExtendedIrq.InterruptCount),
- AML_OFFSET (ExtendedIrq.InterruptCount),
- sizeof (UINT32)},
-
- /* Copy every IRQ in the table, each is 32 bits */
-
- {ACPI_RSC_MOVE32, ACPI_RS_OFFSET (Data.ExtendedIrq.Interrupts[0]),
- AML_OFFSET (ExtendedIrq.Interrupts[0]),
- 0},
-
- /* Optional ResourceSource (Index and String) */
-
- {ACPI_RSC_SOURCEX, ACPI_RS_OFFSET (Data.ExtendedIrq.ResourceSource),
- ACPI_RS_OFFSET (Data.ExtendedIrq.Interrupts[0]),
- sizeof (AML_RESOURCE_EXTENDED_IRQ)}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertDma
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO AcpiRsConvertDma[6] =
-{
- {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_DMA,
- ACPI_RS_SIZE (ACPI_RESOURCE_DMA),
- ACPI_RSC_TABLE_SIZE (AcpiRsConvertDma)},
-
- {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_DMA,
- sizeof (AML_RESOURCE_DMA),
- 0},
-
- /* Flags: transfer preference, bus mastering, channel speed */
-
- {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.Dma.Transfer),
- AML_OFFSET (Dma.Flags),
- 0},
-
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Dma.BusMaster),
- AML_OFFSET (Dma.Flags),
- 2},
-
- {ACPI_RSC_2BITFLAG, ACPI_RS_OFFSET (Data.Dma.Type),
- AML_OFFSET (Dma.Flags),
- 5},
-
- /* DMA channel mask bits */
-
- {ACPI_RSC_BITMASK, ACPI_RS_OFFSET (Data.Dma.Channels[0]),
- AML_OFFSET (Dma.DmaChannelMask),
- ACPI_RS_OFFSET (Data.Dma.ChannelCount)}
-};
-
diff --git a/sys/contrib/dev/acpica/rslist.c b/sys/contrib/dev/acpica/rslist.c
deleted file mode 100644
index 37a0764..0000000
--- a/sys/contrib/dev/acpica/rslist.c
+++ /dev/null
@@ -1,286 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: rslist - Linked list utilities
- * $Revision: 1.62 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __RSLIST_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acresrc.h>
-
-#define _COMPONENT ACPI_RESOURCES
- ACPI_MODULE_NAME ("rslist")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsConvertAmlToResources
- *
- * PARAMETERS: ACPI_WALK_AML_CALLBACK
- * ResourcePtr - Pointer to the buffer that will
- * contain the output structures
- *
- * RETURN: Status
- *
- * DESCRIPTION: Convert an AML resource to an internal representation of the
- * resource that is aligned and easier to access.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsConvertAmlToResources (
- UINT8 *Aml,
- UINT32 Length,
- UINT32 Offset,
- UINT8 ResourceIndex,
- void *Context)
-{
- ACPI_RESOURCE **ResourcePtr = ACPI_CAST_INDIRECT_PTR (
- ACPI_RESOURCE, Context);
- ACPI_RESOURCE *Resource;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (RsConvertAmlToResources);
-
-
- /*
- * Check that the input buffer and all subsequent pointers into it
- * are aligned on a native word boundary. Most important on IA64
- */
- Resource = *ResourcePtr;
- if (ACPI_IS_MISALIGNED (Resource))
- {
- ACPI_WARNING ((AE_INFO,
- "Misaligned resource pointer %p", Resource));
- }
-
- /* Convert the AML byte stream resource to a local resource struct */
-
- Status = AcpiRsConvertAmlToResource (
- Resource, ACPI_CAST_PTR (AML_RESOURCE, Aml),
- AcpiGbl_GetResourceDispatch[ResourceIndex]);
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Could not convert AML resource (Type %X)", *Aml));
- return_ACPI_STATUS (Status);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_RESOURCES,
- "Type %.2X, AmlLength %.2X InternalLength %.2X\n",
- AcpiUtGetResourceType (Aml), Length,
- Resource->Length));
-
- /* Point to the next structure in the output buffer */
-
- *ResourcePtr = ACPI_ADD_PTR (void, Resource, Resource->Length);
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsConvertResourcesToAml
- *
- * PARAMETERS: Resource - Pointer to the resource linked list
- * AmlSizeNeeded - Calculated size of the byte stream
- * needed from calling AcpiRsGetAmlLength()
- * The size of the OutputBuffer is
- * guaranteed to be >= AmlSizeNeeded
- * OutputBuffer - Pointer to the buffer that will
- * contain the byte stream
- *
- * RETURN: Status
- *
- * DESCRIPTION: Takes the resource linked list and parses it, creating a
- * byte stream of resources in the caller's output buffer
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsConvertResourcesToAml (
- ACPI_RESOURCE *Resource,
- ACPI_SIZE AmlSizeNeeded,
- UINT8 *OutputBuffer)
-{
- UINT8 *Aml = OutputBuffer;
- UINT8 *EndAml = OutputBuffer + AmlSizeNeeded;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (RsConvertResourcesToAml);
-
-
- /* Walk the resource descriptor list, convert each descriptor */
-
- while (Aml < EndAml)
- {
- /* Validate the (internal) Resource Type */
-
- if (Resource->Type > ACPI_RESOURCE_TYPE_MAX)
- {
- ACPI_ERROR ((AE_INFO,
- "Invalid descriptor type (%X) in resource list",
- Resource->Type));
- return_ACPI_STATUS (AE_BAD_DATA);
- }
-
- /* Perform the conversion */
-
- Status = AcpiRsConvertResourceToAml (Resource,
- ACPI_CAST_PTR (AML_RESOURCE, Aml),
- AcpiGbl_SetResourceDispatch[Resource->Type]);
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Could not convert resource (type %X) to AML",
- Resource->Type));
- return_ACPI_STATUS (Status);
- }
-
- /* Perform final sanity check on the new AML resource descriptor */
-
- Status = AcpiUtValidateResource (
- ACPI_CAST_PTR (AML_RESOURCE, Aml), NULL);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Check for end-of-list, normal exit */
-
- if (Resource->Type == ACPI_RESOURCE_TYPE_END_TAG)
- {
- /* An End Tag indicates the end of the input Resource Template */
-
- return_ACPI_STATUS (AE_OK);
- }
-
- /*
- * Extract the total length of the new descriptor and set the
- * Aml to point to the next (output) resource descriptor
- */
- Aml += AcpiUtGetDescriptorLength (Aml);
-
- /* Point to the next input resource descriptor */
-
- Resource = ACPI_ADD_PTR (ACPI_RESOURCE, Resource, Resource->Length);
- }
-
- /* Completed buffer, but did not find an EndTag resource descriptor */
-
- return_ACPI_STATUS (AE_AML_NO_RESOURCE_END_TAG);
-}
-
diff --git a/sys/contrib/dev/acpica/rsmemory.c b/sys/contrib/dev/acpica/rsmemory.c
deleted file mode 100644
index e4ab62d..0000000
--- a/sys/contrib/dev/acpica/rsmemory.c
+++ /dev/null
@@ -1,323 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: rsmem24 - Memory resource descriptors
- * $Revision: 1.34 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __RSMEMORY_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acresrc.h>
-
-#define _COMPONENT ACPI_RESOURCES
- ACPI_MODULE_NAME ("rsmemory")
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertMemory24
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO AcpiRsConvertMemory24[4] =
-{
- {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_MEMORY24,
- ACPI_RS_SIZE (ACPI_RESOURCE_MEMORY24),
- ACPI_RSC_TABLE_SIZE (AcpiRsConvertMemory24)},
-
- {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_MEMORY24,
- sizeof (AML_RESOURCE_MEMORY24),
- 0},
-
- /* Read/Write bit */
-
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Memory24.WriteProtect),
- AML_OFFSET (Memory24.Flags),
- 0},
- /*
- * These fields are contiguous in both the source and destination:
- * Minimum Base Address
- * Maximum Base Address
- * Address Base Alignment
- * Range Length
- */
- {ACPI_RSC_MOVE16, ACPI_RS_OFFSET (Data.Memory24.Minimum),
- AML_OFFSET (Memory24.Minimum),
- 4}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertMemory32
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO AcpiRsConvertMemory32[4] =
-{
- {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_MEMORY32,
- ACPI_RS_SIZE (ACPI_RESOURCE_MEMORY32),
- ACPI_RSC_TABLE_SIZE (AcpiRsConvertMemory32)},
-
- {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_MEMORY32,
- sizeof (AML_RESOURCE_MEMORY32),
- 0},
-
- /* Read/Write bit */
-
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Memory32.WriteProtect),
- AML_OFFSET (Memory32.Flags),
- 0},
- /*
- * These fields are contiguous in both the source and destination:
- * Minimum Base Address
- * Maximum Base Address
- * Address Base Alignment
- * Range Length
- */
- {ACPI_RSC_MOVE32, ACPI_RS_OFFSET (Data.Memory32.Minimum),
- AML_OFFSET (Memory32.Minimum),
- 4}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsConvertFixedMemory32
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO AcpiRsConvertFixedMemory32[4] =
-{
- {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_FIXED_MEMORY32,
- ACPI_RS_SIZE (ACPI_RESOURCE_FIXED_MEMORY32),
- ACPI_RSC_TABLE_SIZE (AcpiRsConvertFixedMemory32)},
-
- {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_FIXED_MEMORY32,
- sizeof (AML_RESOURCE_FIXED_MEMORY32),
- 0},
-
- /* Read/Write bit */
-
- {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.FixedMemory32.WriteProtect),
- AML_OFFSET (FixedMemory32.Flags),
- 0},
- /*
- * These fields are contiguous in both the source and destination:
- * Base Address
- * Range Length
- */
- {ACPI_RSC_MOVE32, ACPI_RS_OFFSET (Data.FixedMemory32.Address),
- AML_OFFSET (FixedMemory32.Address),
- 2}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsGetVendorSmall
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO AcpiRsGetVendorSmall[3] =
-{
- {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_VENDOR,
- ACPI_RS_SIZE (ACPI_RESOURCE_VENDOR),
- ACPI_RSC_TABLE_SIZE (AcpiRsGetVendorSmall)},
-
- /* Length of the vendor data (byte count) */
-
- {ACPI_RSC_COUNT16, ACPI_RS_OFFSET (Data.Vendor.ByteLength),
- 0,
- sizeof (UINT8)},
-
- /* Vendor data */
-
- {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.Vendor.ByteData[0]),
- sizeof (AML_RESOURCE_SMALL_HEADER),
- 0}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsGetVendorLarge
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO AcpiRsGetVendorLarge[3] =
-{
- {ACPI_RSC_INITGET, ACPI_RESOURCE_TYPE_VENDOR,
- ACPI_RS_SIZE (ACPI_RESOURCE_VENDOR),
- ACPI_RSC_TABLE_SIZE (AcpiRsGetVendorLarge)},
-
- /* Length of the vendor data (byte count) */
-
- {ACPI_RSC_COUNT16, ACPI_RS_OFFSET (Data.Vendor.ByteLength),
- 0,
- sizeof (UINT8)},
-
- /* Vendor data */
-
- {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.Vendor.ByteData[0]),
- sizeof (AML_RESOURCE_LARGE_HEADER),
- 0}
-};
-
-
-/*******************************************************************************
- *
- * AcpiRsSetVendor
- *
- ******************************************************************************/
-
-ACPI_RSCONVERT_INFO AcpiRsSetVendor[7] =
-{
- /* Default is a small vendor descriptor */
-
- {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_VENDOR_SMALL,
- sizeof (AML_RESOURCE_SMALL_HEADER),
- ACPI_RSC_TABLE_SIZE (AcpiRsSetVendor)},
-
- /* Get the length and copy the data */
-
- {ACPI_RSC_COUNT16, ACPI_RS_OFFSET (Data.Vendor.ByteLength),
- 0,
- 0},
-
- {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.Vendor.ByteData[0]),
- sizeof (AML_RESOURCE_SMALL_HEADER),
- 0},
-
- /*
- * All done if the Vendor byte length is 7 or less, meaning that it will
- * fit within a small descriptor
- */
- {ACPI_RSC_EXIT_LE, 0, 0, 7},
-
- /* Must create a large vendor descriptor */
-
- {ACPI_RSC_INITSET, ACPI_RESOURCE_NAME_VENDOR_LARGE,
- sizeof (AML_RESOURCE_LARGE_HEADER),
- 0},
-
- {ACPI_RSC_COUNT16, ACPI_RS_OFFSET (Data.Vendor.ByteLength),
- 0,
- 0},
-
- {ACPI_RSC_MOVE8, ACPI_RS_OFFSET (Data.Vendor.ByteData[0]),
- sizeof (AML_RESOURCE_LARGE_HEADER),
- 0}
-};
-
-
diff --git a/sys/contrib/dev/acpica/rsmisc.c b/sys/contrib/dev/acpica/rsmisc.c
deleted file mode 100644
index 6150bde..0000000
--- a/sys/contrib/dev/acpica/rsmisc.c
+++ /dev/null
@@ -1,671 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: rsmisc - Miscellaneous resource descriptors
- * $Revision: 1.46 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __RSMISC_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acresrc.h>
-
-#define _COMPONENT ACPI_RESOURCES
- ACPI_MODULE_NAME ("rsmisc")
-
-
-#define INIT_RESOURCE_TYPE(i) i->ResourceOffset
-#define INIT_RESOURCE_LENGTH(i) i->AmlOffset
-#define INIT_TABLE_LENGTH(i) i->Value
-
-#define COMPARE_OPCODE(i) i->ResourceOffset
-#define COMPARE_TARGET(i) i->AmlOffset
-#define COMPARE_VALUE(i) i->Value
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsConvertAmlToResource
- *
- * PARAMETERS: Resource - Pointer to the resource descriptor
- * Aml - Where the AML descriptor is returned
- * Info - Pointer to appropriate conversion table
- *
- * RETURN: Status
- *
- * DESCRIPTION: Convert an external AML resource descriptor to the corresponding
- * internal resource descriptor
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsConvertAmlToResource (
- ACPI_RESOURCE *Resource,
- AML_RESOURCE *Aml,
- ACPI_RSCONVERT_INFO *Info)
-{
- ACPI_RS_LENGTH AmlResourceLength;
- void *Source;
- void *Destination;
- char *Target;
- UINT8 Count;
- UINT8 FlagsMode = FALSE;
- UINT16 ItemCount = 0;
- UINT16 Temp16 = 0;
-
-
- ACPI_FUNCTION_TRACE (RsConvertAmlToResource);
-
-
- if (((ACPI_NATIVE_UINT) Resource) & 0x3)
- {
- /* Each internal resource struct is expected to be 32-bit aligned */
-
- ACPI_WARNING ((AE_INFO,
- "Misaligned resource pointer (get): %p Type %2.2X Len %X",
- Resource, Resource->Type, Resource->Length));
- }
-
- /* Extract the resource Length field (does not include header length) */
-
- AmlResourceLength = AcpiUtGetResourceLength (Aml);
-
- /*
- * First table entry must be ACPI_RSC_INITxxx and must contain the
- * table length (# of table entries)
- */
- Count = INIT_TABLE_LENGTH (Info);
-
- while (Count)
- {
- /*
- * Source is the external AML byte stream buffer,
- * destination is the internal resource descriptor
- */
- Source = ACPI_ADD_PTR (void, Aml, Info->AmlOffset);
- Destination = ACPI_ADD_PTR (void, Resource, Info->ResourceOffset);
-
- switch (Info->Opcode)
- {
- case ACPI_RSC_INITGET:
- /*
- * Get the resource type and the initial (minimum) length
- */
- ACPI_MEMSET (Resource, 0, INIT_RESOURCE_LENGTH (Info));
- Resource->Type = INIT_RESOURCE_TYPE (Info);
- Resource->Length = INIT_RESOURCE_LENGTH (Info);
- break;
-
-
- case ACPI_RSC_INITSET:
- break;
-
-
- case ACPI_RSC_FLAGINIT:
-
- FlagsMode = TRUE;
- break;
-
-
- case ACPI_RSC_1BITFLAG:
- /*
- * Mask and shift the flag bit
- */
- ACPI_SET8 (Destination) = (UINT8)
- ((ACPI_GET8 (Source) >> Info->Value) & 0x01);
- break;
-
-
- case ACPI_RSC_2BITFLAG:
- /*
- * Mask and shift the flag bits
- */
- ACPI_SET8 (Destination) = (UINT8)
- ((ACPI_GET8 (Source) >> Info->Value) & 0x03);
- break;
-
-
- case ACPI_RSC_COUNT:
-
- ItemCount = ACPI_GET8 (Source);
- ACPI_SET8 (Destination) = (UINT8) ItemCount;
-
- Resource->Length = Resource->Length +
- (Info->Value * (ItemCount - 1));
- break;
-
-
- case ACPI_RSC_COUNT16:
-
- ItemCount = AmlResourceLength;
- ACPI_SET16 (Destination) = ItemCount;
-
- Resource->Length = Resource->Length +
- (Info->Value * (ItemCount - 1));
- break;
-
-
- case ACPI_RSC_LENGTH:
-
- Resource->Length = Resource->Length + Info->Value;
- break;
-
-
- case ACPI_RSC_MOVE8:
- case ACPI_RSC_MOVE16:
- case ACPI_RSC_MOVE32:
- case ACPI_RSC_MOVE64:
- /*
- * Raw data move. Use the Info value field unless ItemCount has
- * been previously initialized via a COUNT opcode
- */
- if (Info->Value)
- {
- ItemCount = Info->Value;
- }
- AcpiRsMoveData (Destination, Source, ItemCount, Info->Opcode);
- break;
-
-
- case ACPI_RSC_SET8:
-
- ACPI_MEMSET (Destination, Info->AmlOffset, Info->Value);
- break;
-
-
- case ACPI_RSC_DATA8:
-
- Target = ACPI_ADD_PTR (char, Resource, Info->Value);
- ACPI_MEMCPY (Destination, Source, ACPI_GET16 (Target));
- break;
-
-
- case ACPI_RSC_ADDRESS:
- /*
- * Common handler for address descriptor flags
- */
- if (!AcpiRsGetAddressCommon (Resource, Aml))
- {
- return_ACPI_STATUS (AE_AML_INVALID_RESOURCE_TYPE);
- }
- break;
-
-
- case ACPI_RSC_SOURCE:
- /*
- * Optional ResourceSource (Index and String)
- */
- Resource->Length +=
- AcpiRsGetResourceSource (AmlResourceLength, Info->Value,
- Destination, Aml, NULL);
- break;
-
-
- case ACPI_RSC_SOURCEX:
- /*
- * Optional ResourceSource (Index and String). This is the more
- * complicated case used by the Interrupt() macro
- */
- Target = ACPI_ADD_PTR (char, Resource, Info->AmlOffset + (ItemCount * 4));
-
- Resource->Length +=
- AcpiRsGetResourceSource (AmlResourceLength,
- (ACPI_RS_LENGTH) (((ItemCount - 1) * sizeof (UINT32)) + Info->Value),
- Destination, Aml, Target);
- break;
-
-
- case ACPI_RSC_BITMASK:
- /*
- * 8-bit encoded bitmask (DMA macro)
- */
- ItemCount = AcpiRsDecodeBitmask (ACPI_GET8 (Source), Destination);
- if (ItemCount)
- {
- Resource->Length += (ItemCount - 1);
- }
-
- Target = ACPI_ADD_PTR (char, Resource, Info->Value);
- ACPI_SET8 (Target) = (UINT8) ItemCount;
- break;
-
-
- case ACPI_RSC_BITMASK16:
- /*
- * 16-bit encoded bitmask (IRQ macro)
- */
- ACPI_MOVE_16_TO_16 (&Temp16, Source);
-
- ItemCount = AcpiRsDecodeBitmask (Temp16, Destination);
- if (ItemCount)
- {
- Resource->Length += (ItemCount - 1);
- }
-
- Target = ACPI_ADD_PTR (char, Resource, Info->Value);
- ACPI_SET8 (Target) = (UINT8) ItemCount;
- break;
-
-
- case ACPI_RSC_EXIT_NE:
- /*
- * Control - Exit conversion if not equal
- */
- switch (Info->ResourceOffset)
- {
- case ACPI_RSC_COMPARE_AML_LENGTH:
- if (AmlResourceLength != Info->Value)
- {
- goto Exit;
- }
- break;
-
- case ACPI_RSC_COMPARE_VALUE:
- if (ACPI_GET8 (Source) != Info->Value)
- {
- goto Exit;
- }
- break;
-
- default:
-
- ACPI_ERROR ((AE_INFO, "Invalid conversion sub-opcode"));
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
- break;
-
-
- default:
-
- ACPI_ERROR ((AE_INFO, "Invalid conversion opcode"));
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- Count--;
- Info++;
- }
-
-Exit:
- if (!FlagsMode)
- {
- /* Round the resource struct length up to the next boundary (32 or 64) */
-
- Resource->Length = (UINT32) ACPI_ROUND_UP_TO_NATIVE_WORD (Resource->Length);
- }
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsConvertResourceToAml
- *
- * PARAMETERS: Resource - Pointer to the resource descriptor
- * Aml - Where the AML descriptor is returned
- * Info - Pointer to appropriate conversion table
- *
- * RETURN: Status
- *
- * DESCRIPTION: Convert an internal resource descriptor to the corresponding
- * external AML resource descriptor.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsConvertResourceToAml (
- ACPI_RESOURCE *Resource,
- AML_RESOURCE *Aml,
- ACPI_RSCONVERT_INFO *Info)
-{
- void *Source = NULL;
- void *Destination;
- ACPI_RSDESC_SIZE AmlLength = 0;
- UINT8 Count;
- UINT16 Temp16 = 0;
- UINT16 ItemCount = 0;
-
-
- ACPI_FUNCTION_TRACE (RsConvertResourceToAml);
-
-
- /*
- * First table entry must be ACPI_RSC_INITxxx and must contain the
- * table length (# of table entries)
- */
- Count = INIT_TABLE_LENGTH (Info);
-
- while (Count)
- {
- /*
- * Source is the internal resource descriptor,
- * destination is the external AML byte stream buffer
- */
- Source = ACPI_ADD_PTR (void, Resource, Info->ResourceOffset);
- Destination = ACPI_ADD_PTR (void, Aml, Info->AmlOffset);
-
- switch (Info->Opcode)
- {
- case ACPI_RSC_INITSET:
-
- ACPI_MEMSET (Aml, 0, INIT_RESOURCE_LENGTH (Info));
- AmlLength = INIT_RESOURCE_LENGTH (Info);
- AcpiRsSetResourceHeader (INIT_RESOURCE_TYPE (Info), AmlLength, Aml);
- break;
-
-
- case ACPI_RSC_INITGET:
- break;
-
-
- case ACPI_RSC_FLAGINIT:
- /*
- * Clear the flag byte
- */
- ACPI_SET8 (Destination) = 0;
- break;
-
-
- case ACPI_RSC_1BITFLAG:
- /*
- * Mask and shift the flag bit
- */
- ACPI_SET8 (Destination) |= (UINT8)
- ((ACPI_GET8 (Source) & 0x01) << Info->Value);
- break;
-
-
- case ACPI_RSC_2BITFLAG:
- /*
- * Mask and shift the flag bits
- */
- ACPI_SET8 (Destination) |= (UINT8)
- ((ACPI_GET8 (Source) & 0x03) << Info->Value);
- break;
-
-
- case ACPI_RSC_COUNT:
-
- ItemCount = ACPI_GET8 (Source);
- ACPI_SET8 (Destination) = (UINT8) ItemCount;
-
- AmlLength = (UINT16) (AmlLength + (Info->Value * (ItemCount - 1)));
- break;
-
-
- case ACPI_RSC_COUNT16:
-
- ItemCount = ACPI_GET16 (Source);
- AmlLength = (UINT16) (AmlLength + ItemCount);
- AcpiRsSetResourceLength (AmlLength, Aml);
- break;
-
-
- case ACPI_RSC_LENGTH:
-
- AcpiRsSetResourceLength (Info->Value, Aml);
- break;
-
-
- case ACPI_RSC_MOVE8:
- case ACPI_RSC_MOVE16:
- case ACPI_RSC_MOVE32:
- case ACPI_RSC_MOVE64:
-
- if (Info->Value)
- {
- ItemCount = Info->Value;
- }
- AcpiRsMoveData (Destination, Source, ItemCount, Info->Opcode);
- break;
-
-
- case ACPI_RSC_ADDRESS:
-
- /* Set the Resource Type, General Flags, and Type-Specific Flags */
-
- AcpiRsSetAddressCommon (Aml, Resource);
- break;
-
-
- case ACPI_RSC_SOURCEX:
- /*
- * Optional ResourceSource (Index and String)
- */
- AmlLength = AcpiRsSetResourceSource (
- Aml, (ACPI_RS_LENGTH) AmlLength, Source);
- AcpiRsSetResourceLength (AmlLength, Aml);
- break;
-
-
- case ACPI_RSC_SOURCE:
- /*
- * Optional ResourceSource (Index and String). This is the more
- * complicated case used by the Interrupt() macro
- */
- AmlLength = AcpiRsSetResourceSource (Aml, Info->Value, Source);
- AcpiRsSetResourceLength (AmlLength, Aml);
- break;
-
-
- case ACPI_RSC_BITMASK:
- /*
- * 8-bit encoded bitmask (DMA macro)
- */
- ACPI_SET8 (Destination) = (UINT8)
- AcpiRsEncodeBitmask (Source,
- *ACPI_ADD_PTR (UINT8, Resource, Info->Value));
- break;
-
-
- case ACPI_RSC_BITMASK16:
- /*
- * 16-bit encoded bitmask (IRQ macro)
- */
- Temp16 = AcpiRsEncodeBitmask (Source,
- *ACPI_ADD_PTR (UINT8, Resource, Info->Value));
- ACPI_MOVE_16_TO_16 (Destination, &Temp16);
- break;
-
-
- case ACPI_RSC_EXIT_LE:
- /*
- * Control - Exit conversion if less than or equal
- */
- if (ItemCount <= Info->Value)
- {
- goto Exit;
- }
- break;
-
-
- case ACPI_RSC_EXIT_NE:
- /*
- * Control - Exit conversion if not equal
- */
- switch (COMPARE_OPCODE (Info))
- {
- case ACPI_RSC_COMPARE_VALUE:
-
- if (*ACPI_ADD_PTR (UINT8, Resource,
- COMPARE_TARGET (Info)) != COMPARE_VALUE (Info))
- {
- goto Exit;
- }
- break;
-
- default:
-
- ACPI_ERROR ((AE_INFO, "Invalid conversion sub-opcode"));
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
- break;
-
-
- default:
-
- ACPI_ERROR ((AE_INFO, "Invalid conversion opcode"));
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- Count--;
- Info++;
- }
-
-Exit:
- return_ACPI_STATUS (AE_OK);
-}
-
-
-#if 0
-/* Previous resource validations */
-
- if (Aml->ExtAddress64.RevisionID != AML_RESOURCE_EXTENDED_ADDRESS_REVISION)
- {
- return_ACPI_STATUS (AE_SUPPORT);
- }
-
- if (Resource->Data.StartDpf.PerformanceRobustness >= 3)
- {
- return_ACPI_STATUS (AE_AML_BAD_RESOURCE_VALUE);
- }
-
- if (((Aml->Irq.Flags & 0x09) == 0x00) ||
- ((Aml->Irq.Flags & 0x09) == 0x09))
- {
- /*
- * Only [ActiveHigh, EdgeSensitive] or [ActiveLow, LevelSensitive]
- * polarity/trigger interrupts are allowed (ACPI spec, section
- * "IRQ Format"), so 0x00 and 0x09 are illegal.
- */
- ACPI_ERROR ((AE_INFO,
- "Invalid interrupt polarity/trigger in resource list, %X",
- Aml->Irq.Flags));
- return_ACPI_STATUS (AE_BAD_DATA);
- }
-
- Resource->Data.ExtendedIrq.InterruptCount = Temp8;
- if (Temp8 < 1)
- {
- /* Must have at least one IRQ */
-
- return_ACPI_STATUS (AE_AML_BAD_RESOURCE_LENGTH);
- }
-
- if (Resource->Data.Dma.Transfer == 0x03)
- {
- ACPI_ERROR ((AE_INFO,
- "Invalid DMA.Transfer preference (3)"));
- return_ACPI_STATUS (AE_BAD_DATA);
- }
-#endif
-
-
diff --git a/sys/contrib/dev/acpica/rsutils.c b/sys/contrib/dev/acpica/rsutils.c
deleted file mode 100644
index 369eb86..0000000
--- a/sys/contrib/dev/acpica/rsutils.c
+++ /dev/null
@@ -1,875 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: rsutils - Utilities for the resource manager
- * $Revision: 1.67 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __RSUTILS_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acresrc.h>
-
-
-#define _COMPONENT ACPI_RESOURCES
- ACPI_MODULE_NAME ("rsutils")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsDecodeBitmask
- *
- * PARAMETERS: Mask - Bitmask to decode
- * List - Where the converted list is returned
- *
- * RETURN: Count of bits set (length of list)
- *
- * DESCRIPTION: Convert a bit mask into a list of values
- *
- ******************************************************************************/
-
-UINT8
-AcpiRsDecodeBitmask (
- UINT16 Mask,
- UINT8 *List)
-{
- ACPI_NATIVE_UINT i;
- UINT8 BitCount;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /* Decode the mask bits */
-
- for (i = 0, BitCount = 0; Mask; i++)
- {
- if (Mask & 0x0001)
- {
- List[BitCount] = (UINT8) i;
- BitCount++;
- }
-
- Mask >>= 1;
- }
-
- return (BitCount);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsEncodeBitmask
- *
- * PARAMETERS: List - List of values to encode
- * Count - Length of list
- *
- * RETURN: Encoded bitmask
- *
- * DESCRIPTION: Convert a list of values to an encoded bitmask
- *
- ******************************************************************************/
-
-UINT16
-AcpiRsEncodeBitmask (
- UINT8 *List,
- UINT8 Count)
-{
- ACPI_NATIVE_UINT i;
- UINT16 Mask;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /* Encode the list into a single bitmask */
-
- for (i = 0, Mask = 0; i < Count; i++)
- {
- Mask |= (0x0001 << List[i]);
- }
-
- return (Mask);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsMoveData
- *
- * PARAMETERS: Destination - Pointer to the destination descriptor
- * Source - Pointer to the source descriptor
- * ItemCount - How many items to move
- * MoveType - Byte width
- *
- * RETURN: None
- *
- * DESCRIPTION: Move multiple data items from one descriptor to another. Handles
- * alignment issues and endian issues if necessary, as configured
- * via the ACPI_MOVE_* macros. (This is why a memcpy is not used)
- *
- ******************************************************************************/
-
-void
-AcpiRsMoveData (
- void *Destination,
- void *Source,
- UINT16 ItemCount,
- UINT8 MoveType)
-{
- ACPI_NATIVE_UINT i;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /* One move per item */
-
- for (i = 0; i < ItemCount; i++)
- {
- switch (MoveType)
- {
- /*
- * For the 8-bit case, we can perform the move all at once
- * since there are no alignment or endian issues
- */
- case ACPI_RSC_MOVE8:
- ACPI_MEMCPY (Destination, Source, ItemCount);
- return;
-
- /*
- * 16-, 32-, and 64-bit cases must use the move macros that perform
- * endian conversion and/or accomodate hardware that cannot perform
- * misaligned memory transfers
- */
- case ACPI_RSC_MOVE16:
- ACPI_MOVE_16_TO_16 (&ACPI_CAST_PTR (UINT16, Destination)[i],
- &ACPI_CAST_PTR (UINT16, Source)[i]);
- break;
-
- case ACPI_RSC_MOVE32:
- ACPI_MOVE_32_TO_32 (&ACPI_CAST_PTR (UINT32, Destination)[i],
- &ACPI_CAST_PTR (UINT32, Source)[i]);
- break;
-
- case ACPI_RSC_MOVE64:
- ACPI_MOVE_64_TO_64 (&ACPI_CAST_PTR (UINT64, Destination)[i],
- &ACPI_CAST_PTR (UINT64, Source)[i]);
- break;
-
- default:
- return;
- }
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsSetResourceLength
- *
- * PARAMETERS: TotalLength - Length of the AML descriptor, including
- * the header and length fields.
- * Aml - Pointer to the raw AML descriptor
- *
- * RETURN: None
- *
- * DESCRIPTION: Set the ResourceLength field of an AML
- * resource descriptor, both Large and Small descriptors are
- * supported automatically. Note: Descriptor Type field must
- * be valid.
- *
- ******************************************************************************/
-
-void
-AcpiRsSetResourceLength (
- ACPI_RSDESC_SIZE TotalLength,
- AML_RESOURCE *Aml)
-{
- ACPI_RS_LENGTH ResourceLength;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /* Length is the total descriptor length minus the header length */
-
- ResourceLength = (ACPI_RS_LENGTH)
- (TotalLength - AcpiUtGetResourceHeaderLength (Aml));
-
- /* Length is stored differently for large and small descriptors */
-
- if (Aml->SmallHeader.DescriptorType & ACPI_RESOURCE_NAME_LARGE)
- {
- /* Large descriptor -- bytes 1-2 contain the 16-bit length */
-
- ACPI_MOVE_16_TO_16 (&Aml->LargeHeader.ResourceLength, &ResourceLength);
- }
- else
- {
- /* Small descriptor -- bits 2:0 of byte 0 contain the length */
-
- Aml->SmallHeader.DescriptorType = (UINT8)
-
- /* Clear any existing length, preserving descriptor type bits */
-
- ((Aml->SmallHeader.DescriptorType & ~ACPI_RESOURCE_NAME_SMALL_LENGTH_MASK)
-
- | ResourceLength);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsSetResourceHeader
- *
- * PARAMETERS: DescriptorType - Byte to be inserted as the type
- * TotalLength - Length of the AML descriptor, including
- * the header and length fields.
- * Aml - Pointer to the raw AML descriptor
- *
- * RETURN: None
- *
- * DESCRIPTION: Set the DescriptorType and ResourceLength fields of an AML
- * resource descriptor, both Large and Small descriptors are
- * supported automatically
- *
- ******************************************************************************/
-
-void
-AcpiRsSetResourceHeader (
- UINT8 DescriptorType,
- ACPI_RSDESC_SIZE TotalLength,
- AML_RESOURCE *Aml)
-{
- ACPI_FUNCTION_ENTRY ();
-
-
- /* Set the Resource Type */
-
- Aml->SmallHeader.DescriptorType = DescriptorType;
-
- /* Set the Resource Length */
-
- AcpiRsSetResourceLength (TotalLength, Aml);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsStrcpy
- *
- * PARAMETERS: Destination - Pointer to the destination string
- * Source - Pointer to the source string
- *
- * RETURN: String length, including NULL terminator
- *
- * DESCRIPTION: Local string copy that returns the string length, saving a
- * strcpy followed by a strlen.
- *
- ******************************************************************************/
-
-static UINT16
-AcpiRsStrcpy (
- char *Destination,
- char *Source)
-{
- UINT16 i;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- for (i = 0; Source[i]; i++)
- {
- Destination[i] = Source[i];
- }
-
- Destination[i] = 0;
-
- /* Return string length including the NULL terminator */
-
- return ((UINT16) (i + 1));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsGetResourceSource
- *
- * PARAMETERS: ResourceLength - Length field of the descriptor
- * MinimumLength - Minimum length of the descriptor (minus
- * any optional fields)
- * ResourceSource - Where the ResourceSource is returned
- * Aml - Pointer to the raw AML descriptor
- * StringPtr - (optional) where to store the actual
- * ResourceSource string
- *
- * RETURN: Length of the string plus NULL terminator, rounded up to native
- * word boundary
- *
- * DESCRIPTION: Copy the optional ResourceSource data from a raw AML descriptor
- * to an internal resource descriptor
- *
- ******************************************************************************/
-
-ACPI_RS_LENGTH
-AcpiRsGetResourceSource (
- ACPI_RS_LENGTH ResourceLength,
- ACPI_RS_LENGTH MinimumLength,
- ACPI_RESOURCE_SOURCE *ResourceSource,
- AML_RESOURCE *Aml,
- char *StringPtr)
-{
- ACPI_RSDESC_SIZE TotalLength;
- UINT8 *AmlResourceSource;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- TotalLength = ResourceLength + sizeof (AML_RESOURCE_LARGE_HEADER);
- AmlResourceSource = ACPI_ADD_PTR (UINT8, Aml, MinimumLength);
-
- /*
- * ResourceSource is present if the length of the descriptor is longer than
- * the minimum length.
- *
- * Note: Some resource descriptors will have an additional null, so
- * we add 1 to the minimum length.
- */
- if (TotalLength > (ACPI_RSDESC_SIZE) (MinimumLength + 1))
- {
- /* Get the ResourceSourceIndex */
-
- ResourceSource->Index = AmlResourceSource[0];
-
- ResourceSource->StringPtr = StringPtr;
- if (!StringPtr)
- {
- /*
- * String destination pointer is not specified; Set the String
- * pointer to the end of the current ResourceSource structure.
- */
- ResourceSource->StringPtr = ACPI_ADD_PTR (char, ResourceSource,
- sizeof (ACPI_RESOURCE_SOURCE));
- }
-
- /*
- * In order for the Resource length to be a multiple of the native
- * word, calculate the length of the string (+1 for NULL terminator)
- * and expand to the next word multiple.
- *
- * Zero the entire area of the buffer.
- */
- TotalLength = (UINT32) ACPI_STRLEN (
- ACPI_CAST_PTR (char, &AmlResourceSource[1])) + 1;
- TotalLength = (UINT32) ACPI_ROUND_UP_TO_NATIVE_WORD (TotalLength);
-
- ACPI_MEMSET (ResourceSource->StringPtr, 0, TotalLength);
-
- /* Copy the ResourceSource string to the destination */
-
- ResourceSource->StringLength = AcpiRsStrcpy (ResourceSource->StringPtr,
- ACPI_CAST_PTR (char, &AmlResourceSource[1]));
-
- return ((ACPI_RS_LENGTH) TotalLength);
- }
-
- /* ResourceSource is not present */
-
- ResourceSource->Index = 0;
- ResourceSource->StringLength = 0;
- ResourceSource->StringPtr = NULL;
- return (0);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsSetResourceSource
- *
- * PARAMETERS: Aml - Pointer to the raw AML descriptor
- * MinimumLength - Minimum length of the descriptor (minus
- * any optional fields)
- * ResourceSource - Internal ResourceSource
-
- *
- * RETURN: Total length of the AML descriptor
- *
- * DESCRIPTION: Convert an optional ResourceSource from internal format to a
- * raw AML resource descriptor
- *
- ******************************************************************************/
-
-ACPI_RSDESC_SIZE
-AcpiRsSetResourceSource (
- AML_RESOURCE *Aml,
- ACPI_RS_LENGTH MinimumLength,
- ACPI_RESOURCE_SOURCE *ResourceSource)
-{
- UINT8 *AmlResourceSource;
- ACPI_RSDESC_SIZE DescriptorLength;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- DescriptorLength = MinimumLength;
-
- /* Non-zero string length indicates presence of a ResourceSource */
-
- if (ResourceSource->StringLength)
- {
- /* Point to the end of the AML descriptor */
-
- AmlResourceSource = ACPI_ADD_PTR (UINT8, Aml, MinimumLength);
-
- /* Copy the ResourceSourceIndex */
-
- AmlResourceSource[0] = (UINT8) ResourceSource->Index;
-
- /* Copy the ResourceSource string */
-
- ACPI_STRCPY (ACPI_CAST_PTR (char, &AmlResourceSource[1]),
- ResourceSource->StringPtr);
-
- /*
- * Add the length of the string (+ 1 for null terminator) to the
- * final descriptor length
- */
- DescriptorLength += ((ACPI_RSDESC_SIZE) ResourceSource->StringLength + 1);
- }
-
- /* Return the new total length of the AML descriptor */
-
- return (DescriptorLength);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsGetPrtMethodData
- *
- * PARAMETERS: Node - Device node
- * RetBuffer - Pointer to a buffer structure for the
- * results
- *
- * RETURN: Status
- *
- * DESCRIPTION: This function is called to get the _PRT value of an object
- * contained in an object specified by the handle passed in
- *
- * If the function fails an appropriate status will be returned
- * and the contents of the callers buffer is undefined.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsGetPrtMethodData (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_BUFFER *RetBuffer)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (RsGetPrtMethodData);
-
-
- /* Parameters guaranteed valid by caller */
-
- /* Execute the method, no parameters */
-
- Status = AcpiUtEvaluateObject (Node, METHOD_NAME__PRT,
- ACPI_BTYPE_PACKAGE, &ObjDesc);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * Create a resource linked list from the byte stream buffer that comes
- * back from the _CRS method execution.
- */
- Status = AcpiRsCreatePciRoutingTable (ObjDesc, RetBuffer);
-
- /* On exit, we must delete the object returned by EvaluateObject */
-
- AcpiUtRemoveReference (ObjDesc);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsGetCrsMethodData
- *
- * PARAMETERS: Node - Device node
- * RetBuffer - Pointer to a buffer structure for the
- * results
- *
- * RETURN: Status
- *
- * DESCRIPTION: This function is called to get the _CRS value of an object
- * contained in an object specified by the handle passed in
- *
- * If the function fails an appropriate status will be returned
- * and the contents of the callers buffer is undefined.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsGetCrsMethodData (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_BUFFER *RetBuffer)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (RsGetCrsMethodData);
-
-
- /* Parameters guaranteed valid by caller */
-
- /* Execute the method, no parameters */
-
- Status = AcpiUtEvaluateObject (Node, METHOD_NAME__CRS,
- ACPI_BTYPE_BUFFER, &ObjDesc);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * Make the call to create a resource linked list from the
- * byte stream buffer that comes back from the _CRS method
- * execution.
- */
- Status = AcpiRsCreateResourceList (ObjDesc, RetBuffer);
-
- /* On exit, we must delete the object returned by evaluateObject */
-
- AcpiUtRemoveReference (ObjDesc);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsGetPrsMethodData
- *
- * PARAMETERS: Node - Device node
- * RetBuffer - Pointer to a buffer structure for the
- * results
- *
- * RETURN: Status
- *
- * DESCRIPTION: This function is called to get the _PRS value of an object
- * contained in an object specified by the handle passed in
- *
- * If the function fails an appropriate status will be returned
- * and the contents of the callers buffer is undefined.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsGetPrsMethodData (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_BUFFER *RetBuffer)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (RsGetPrsMethodData);
-
-
- /* Parameters guaranteed valid by caller */
-
- /* Execute the method, no parameters */
-
- Status = AcpiUtEvaluateObject (Node, METHOD_NAME__PRS,
- ACPI_BTYPE_BUFFER, &ObjDesc);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * Make the call to create a resource linked list from the
- * byte stream buffer that comes back from the _CRS method
- * execution.
- */
- Status = AcpiRsCreateResourceList (ObjDesc, RetBuffer);
-
- /* On exit, we must delete the object returned by evaluateObject */
-
- AcpiUtRemoveReference (ObjDesc);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsGetMethodData
- *
- * PARAMETERS: Handle - Handle to the containing object
- * Path - Path to method, relative to Handle
- * RetBuffer - Pointer to a buffer structure for the
- * results
- *
- * RETURN: Status
- *
- * DESCRIPTION: This function is called to get the _CRS or _PRS value of an
- * object contained in an object specified by the handle passed in
- *
- * If the function fails an appropriate status will be returned
- * and the contents of the callers buffer is undefined.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsGetMethodData (
- ACPI_HANDLE Handle,
- char *Path,
- ACPI_BUFFER *RetBuffer)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (RsGetMethodData);
-
-
- /* Parameters guaranteed valid by caller */
-
- /* Execute the method, no parameters */
-
- Status = AcpiUtEvaluateObject (Handle, Path, ACPI_BTYPE_BUFFER, &ObjDesc);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * Make the call to create a resource linked list from the
- * byte stream buffer that comes back from the method
- * execution.
- */
- Status = AcpiRsCreateResourceList (ObjDesc, RetBuffer);
-
- /* On exit, we must delete the object returned by EvaluateObject */
-
- AcpiUtRemoveReference (ObjDesc);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsSetSrsMethodData
- *
- * PARAMETERS: Node - Device node
- * InBuffer - Pointer to a buffer structure of the
- * parameter
- *
- * RETURN: Status
- *
- * DESCRIPTION: This function is called to set the _SRS of an object contained
- * in an object specified by the handle passed in
- *
- * If the function fails an appropriate status will be returned
- * and the contents of the callers buffer is undefined.
- *
- * Note: Parameters guaranteed valid by caller
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiRsSetSrsMethodData (
- ACPI_NAMESPACE_NODE *Node,
- ACPI_BUFFER *InBuffer)
-{
- ACPI_EVALUATE_INFO *Info;
- ACPI_OPERAND_OBJECT *Args[2];
- ACPI_STATUS Status;
- ACPI_BUFFER Buffer;
-
-
- ACPI_FUNCTION_TRACE (RsSetSrsMethodData);
-
-
- /* Allocate and initialize the evaluation information block */
-
- Info = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_EVALUATE_INFO));
- if (!Info)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- Info->PrefixNode = Node;
- Info->Pathname = METHOD_NAME__SRS;
- Info->Parameters = Args;
- Info->ParameterType = ACPI_PARAM_ARGS;
- Info->Flags = ACPI_IGNORE_RETURN_VALUE;
-
- /*
- * The InBuffer parameter will point to a linked list of
- * resource parameters. It needs to be formatted into a
- * byte stream to be sent in as an input parameter to _SRS
- *
- * Convert the linked list into a byte stream
- */
- Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
- Status = AcpiRsCreateAmlResources (InBuffer->Pointer, &Buffer);
- if (ACPI_FAILURE (Status))
- {
- goto Cleanup;
- }
-
- /* Create and initialize the method parameter object */
-
- Args[0] = AcpiUtCreateInternalObject (ACPI_TYPE_BUFFER);
- if (!Args[0])
- {
- /*
- * Must free the buffer allocated above (otherwise it is freed
- * later)
- */
- ACPI_FREE (Buffer.Pointer);
- Status = AE_NO_MEMORY;
- goto Cleanup;
- }
-
- Args[0]->Buffer.Length = (UINT32) Buffer.Length;
- Args[0]->Buffer.Pointer = Buffer.Pointer;
- Args[0]->Common.Flags = AOPOBJ_DATA_VALID;
- Args[1] = NULL;
-
- /* Execute the method, no return value is expected */
-
- Status = AcpiNsEvaluate (Info);
-
- /* Clean up and return the status from AcpiNsEvaluate */
-
- AcpiUtRemoveReference (Args[0]);
-
-Cleanup:
- ACPI_FREE (Info);
- return_ACPI_STATUS (Status);
-}
-
diff --git a/sys/contrib/dev/acpica/rsxface.c b/sys/contrib/dev/acpica/rsxface.c
deleted file mode 100644
index a27331e..0000000
--- a/sys/contrib/dev/acpica/rsxface.c
+++ /dev/null
@@ -1,713 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: rsxface - Public interfaces to the resource manager
- * $Revision: 1.48 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __RSXFACE_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acresrc.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-#define _COMPONENT ACPI_RESOURCES
- ACPI_MODULE_NAME ("rsxface")
-
-/* Local macros for 16,32-bit to 64-bit conversion */
-
-#define ACPI_COPY_FIELD(Out, In, Field) ((Out)->Field = (In)->Field)
-#define ACPI_COPY_ADDRESS(Out, In) \
- ACPI_COPY_FIELD(Out, In, ResourceType); \
- ACPI_COPY_FIELD(Out, In, ProducerConsumer); \
- ACPI_COPY_FIELD(Out, In, Decode); \
- ACPI_COPY_FIELD(Out, In, MinAddressFixed); \
- ACPI_COPY_FIELD(Out, In, MaxAddressFixed); \
- ACPI_COPY_FIELD(Out, In, Info); \
- ACPI_COPY_FIELD(Out, In, Granularity); \
- ACPI_COPY_FIELD(Out, In, Minimum); \
- ACPI_COPY_FIELD(Out, In, Maximum); \
- ACPI_COPY_FIELD(Out, In, TranslationOffset); \
- ACPI_COPY_FIELD(Out, In, AddressLength); \
- ACPI_COPY_FIELD(Out, In, ResourceSource);
-
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiRsMatchVendorResource (
- ACPI_RESOURCE *Resource,
- void *Context);
-
-static ACPI_STATUS
-AcpiRsValidateParameters (
- ACPI_HANDLE DeviceHandle,
- ACPI_BUFFER *Buffer,
- ACPI_NAMESPACE_NODE **ReturnNode);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsValidateParameters
- *
- * PARAMETERS: DeviceHandle - Handle to a device
- * Buffer - Pointer to a data buffer
- * ReturnNode - Pointer to where the device node is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Common parameter validation for resource interfaces
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiRsValidateParameters (
- ACPI_HANDLE DeviceHandle,
- ACPI_BUFFER *Buffer,
- ACPI_NAMESPACE_NODE **ReturnNode)
-{
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node;
-
-
- ACPI_FUNCTION_TRACE (RsValidateParameters);
-
-
- /*
- * Must have a valid handle to an ACPI device
- */
- if (!DeviceHandle)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- Node = AcpiNsMapHandleToNode (DeviceHandle);
- if (!Node)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- if (Node->Type != ACPI_TYPE_DEVICE)
- {
- return_ACPI_STATUS (AE_TYPE);
- }
-
- /*
- * Validate the user buffer object
- *
- * if there is a non-zero buffer length we also need a valid pointer in
- * the buffer. If it's a zero buffer length, we'll be returning the
- * needed buffer size (later), so keep going.
- */
- Status = AcpiUtValidateBuffer (Buffer);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- *ReturnNode = Node;
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiGetIrqRoutingTable
- *
- * PARAMETERS: DeviceHandle - Handle to the Bus device we are querying
- * RetBuffer - Pointer to a buffer to receive the
- * current resources for the device
- *
- * RETURN: Status
- *
- * DESCRIPTION: This function is called to get the IRQ routing table for a
- * specific bus. The caller must first acquire a handle for the
- * desired bus. The routine table is placed in the buffer pointed
- * to by the RetBuffer variable parameter.
- *
- * If the function fails an appropriate status will be returned
- * and the value of RetBuffer is undefined.
- *
- * This function attempts to execute the _PRT method contained in
- * the object indicated by the passed DeviceHandle.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetIrqRoutingTable (
- ACPI_HANDLE DeviceHandle,
- ACPI_BUFFER *RetBuffer)
-{
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node;
-
-
- ACPI_FUNCTION_TRACE (AcpiGetIrqRoutingTable);
-
-
- /* Validate parameters then dispatch to internal routine */
-
- Status = AcpiRsValidateParameters (DeviceHandle, RetBuffer, &Node);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- Status = AcpiRsGetPrtMethodData (Node, RetBuffer);
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetIrqRoutingTable)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiGetCurrentResources
- *
- * PARAMETERS: DeviceHandle - Handle to the device object for the
- * device we are querying
- * RetBuffer - Pointer to a buffer to receive the
- * current resources for the device
- *
- * RETURN: Status
- *
- * DESCRIPTION: This function is called to get the current resources for a
- * specific device. The caller must first acquire a handle for
- * the desired device. The resource data is placed in the buffer
- * pointed to by the RetBuffer variable parameter.
- *
- * If the function fails an appropriate status will be returned
- * and the value of RetBuffer is undefined.
- *
- * This function attempts to execute the _CRS method contained in
- * the object indicated by the passed DeviceHandle.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetCurrentResources (
- ACPI_HANDLE DeviceHandle,
- ACPI_BUFFER *RetBuffer)
-{
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node;
-
-
- ACPI_FUNCTION_TRACE (AcpiGetCurrentResources);
-
-
- /* Validate parameters then dispatch to internal routine */
-
- Status = AcpiRsValidateParameters (DeviceHandle, RetBuffer, &Node);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- Status = AcpiRsGetCrsMethodData (Node, RetBuffer);
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetCurrentResources)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiGetPossibleResources
- *
- * PARAMETERS: DeviceHandle - Handle to the device object for the
- * device we are querying
- * RetBuffer - Pointer to a buffer to receive the
- * resources for the device
- *
- * RETURN: Status
- *
- * DESCRIPTION: This function is called to get a list of the possible resources
- * for a specific device. The caller must first acquire a handle
- * for the desired device. The resource data is placed in the
- * buffer pointed to by the RetBuffer variable.
- *
- * If the function fails an appropriate status will be returned
- * and the value of RetBuffer is undefined.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetPossibleResources (
- ACPI_HANDLE DeviceHandle,
- ACPI_BUFFER *RetBuffer)
-{
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node;
-
-
- ACPI_FUNCTION_TRACE (AcpiGetPossibleResources);
-
-
- /* Validate parameters then dispatch to internal routine */
-
- Status = AcpiRsValidateParameters (DeviceHandle, RetBuffer, &Node);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- Status = AcpiRsGetPrsMethodData (Node, RetBuffer);
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetPossibleResources)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiSetCurrentResources
- *
- * PARAMETERS: DeviceHandle - Handle to the device object for the
- * device we are setting resources
- * InBuffer - Pointer to a buffer containing the
- * resources to be set for the device
- *
- * RETURN: Status
- *
- * DESCRIPTION: This function is called to set the current resources for a
- * specific device. The caller must first acquire a handle for
- * the desired device. The resource data is passed to the routine
- * the buffer pointed to by the InBuffer variable.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiSetCurrentResources (
- ACPI_HANDLE DeviceHandle,
- ACPI_BUFFER *InBuffer)
-{
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node;
-
-
- ACPI_FUNCTION_TRACE (AcpiSetCurrentResources);
-
-
- /* Validate the buffer, don't allow zero length */
-
- if ((!InBuffer) ||
- (!InBuffer->Pointer) ||
- (!InBuffer->Length))
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /* Validate parameters then dispatch to internal routine */
-
- Status = AcpiRsValidateParameters (DeviceHandle, InBuffer, &Node);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- Status = AcpiRsSetSrsMethodData (Node, InBuffer);
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiSetCurrentResources)
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiResourceToAddress64
- *
- * PARAMETERS: Resource - Pointer to a resource
- * Out - Pointer to the users's return buffer
- * (a struct acpi_resource_address64)
- *
- * RETURN: Status
- *
- * DESCRIPTION: If the resource is an address16, address32, or address64,
- * copy it to the address64 return buffer. This saves the
- * caller from having to duplicate code for different-sized
- * addresses.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiResourceToAddress64 (
- ACPI_RESOURCE *Resource,
- ACPI_RESOURCE_ADDRESS64 *Out)
-{
- ACPI_RESOURCE_ADDRESS16 *Address16;
- ACPI_RESOURCE_ADDRESS32 *Address32;
-
-
- if (!Resource || !Out)
- {
- return (AE_BAD_PARAMETER);
- }
-
- /* Convert 16 or 32 address descriptor to 64 */
-
- switch (Resource->Type)
- {
- case ACPI_RESOURCE_TYPE_ADDRESS16:
-
- Address16 = (ACPI_RESOURCE_ADDRESS16 *) &Resource->Data;
- ACPI_COPY_ADDRESS (Out, Address16);
- break;
-
- case ACPI_RESOURCE_TYPE_ADDRESS32:
-
- Address32 = (ACPI_RESOURCE_ADDRESS32 *) &Resource->Data;
- ACPI_COPY_ADDRESS (Out, Address32);
- break;
-
- case ACPI_RESOURCE_TYPE_ADDRESS64:
-
- /* Simple copy for 64 bit source */
-
- ACPI_MEMCPY (Out, &Resource->Data, sizeof (ACPI_RESOURCE_ADDRESS64));
- break;
-
- default:
- return (AE_BAD_PARAMETER);
- }
-
- return (AE_OK);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiResourceToAddress64)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiGetVendorResource
- *
- * PARAMETERS: DeviceHandle - Handle for the parent device object
- * Name - Method name for the parent resource
- * (METHOD_NAME__CRS or METHOD_NAME__PRS)
- * Uuid - Pointer to the UUID to be matched.
- * includes both subtype and 16-byte UUID
- * RetBuffer - Where the vendor resource is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Walk a resource template for the specified evice to find a
- * vendor-defined resource that matches the supplied UUID and
- * UUID subtype. Returns a ACPI_RESOURCE of type Vendor.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetVendorResource (
- ACPI_HANDLE DeviceHandle,
- char *Name,
- ACPI_VENDOR_UUID *Uuid,
- ACPI_BUFFER *RetBuffer)
-{
- ACPI_VENDOR_WALK_INFO Info;
- ACPI_STATUS Status;
-
-
- /* Other parameters are validated by AcpiWalkResources */
-
- if (!Uuid || !RetBuffer)
- {
- return (AE_BAD_PARAMETER);
- }
-
- Info.Uuid = Uuid;
- Info.Buffer = RetBuffer;
- Info.Status = AE_NOT_EXIST;
-
- /* Walk the _CRS or _PRS resource list for this device */
-
- Status = AcpiWalkResources (DeviceHandle, Name, AcpiRsMatchVendorResource,
- &Info);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- return (Info.Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetVendorResource)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiRsMatchVendorResource
- *
- * PARAMETERS: ACPI_WALK_RESOURCE_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Match a vendor resource via the ACPI 3.0 UUID
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiRsMatchVendorResource (
- ACPI_RESOURCE *Resource,
- void *Context)
-{
- ACPI_VENDOR_WALK_INFO *Info = Context;
- ACPI_RESOURCE_VENDOR_TYPED *Vendor;
- ACPI_BUFFER *Buffer;
- ACPI_STATUS Status;
-
-
- /* Ignore all descriptors except Vendor */
-
- if (Resource->Type != ACPI_RESOURCE_TYPE_VENDOR)
- {
- return (AE_OK);
- }
-
- Vendor = &Resource->Data.VendorTyped;
-
- /*
- * For a valid match, these conditions must hold:
- *
- * 1) Length of descriptor data must be at least as long as a UUID struct
- * 2) The UUID subtypes must match
- * 3) The UUID data must match
- */
- if ((Vendor->ByteLength < (ACPI_UUID_LENGTH + 1)) ||
- (Vendor->UuidSubtype != Info->Uuid->Subtype) ||
- (ACPI_MEMCMP (Vendor->Uuid, Info->Uuid->Data, ACPI_UUID_LENGTH)))
- {
- return (AE_OK);
- }
-
- /* Validate/Allocate/Clear caller buffer */
-
- Buffer = Info->Buffer;
- Status = AcpiUtInitializeBuffer (Buffer, Resource->Length);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- /* Found the correct resource, copy and return it */
-
- ACPI_MEMCPY (Buffer->Pointer, Resource, Resource->Length);
- Buffer->Length = Resource->Length;
-
- /* Found the desired descriptor, terminate resource walk */
-
- Info->Status = AE_OK;
- return (AE_CTRL_TERMINATE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiWalkResources
- *
- * PARAMETERS: DeviceHandle - Handle to the device object for the
- * device we are querying
- * Name - Method name of the resources we want
- * (METHOD_NAME__CRS or METHOD_NAME__PRS)
- * UserFunction - Called for each resource
- * Context - Passed to UserFunction
- *
- * RETURN: Status
- *
- * DESCRIPTION: Retrieves the current or possible resource list for the
- * specified device. The UserFunction is called once for
- * each resource in the list.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiWalkResources (
- ACPI_HANDLE DeviceHandle,
- char *Name,
- ACPI_WALK_RESOURCE_CALLBACK UserFunction,
- void *Context)
-{
- ACPI_STATUS Status;
- ACPI_BUFFER Buffer;
- ACPI_RESOURCE *Resource;
- ACPI_RESOURCE *ResourceEnd;
-
-
- ACPI_FUNCTION_TRACE (AcpiWalkResources);
-
-
- /* Parameter validation */
-
- if (!DeviceHandle || !UserFunction || !Name ||
- (!ACPI_COMPARE_NAME (Name, METHOD_NAME__CRS) &&
- !ACPI_COMPARE_NAME (Name, METHOD_NAME__PRS)))
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- /* Get the _CRS or _PRS resource list */
-
- Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
- Status = AcpiRsGetMethodData (DeviceHandle, Name, &Buffer);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Buffer now contains the resource list */
-
- Resource = ACPI_CAST_PTR (ACPI_RESOURCE, Buffer.Pointer);
- ResourceEnd = ACPI_ADD_PTR (ACPI_RESOURCE, Buffer.Pointer, Buffer.Length);
-
- /* Walk the resource list until the EndTag is found (or buffer end) */
-
- while (Resource < ResourceEnd)
- {
- /* Sanity check the resource */
-
- if (Resource->Type > ACPI_RESOURCE_TYPE_MAX)
- {
- Status = AE_AML_INVALID_RESOURCE_TYPE;
- break;
- }
-
- /* Invoke the user function, abort on any error returned */
-
- Status = UserFunction (Resource, Context);
- if (ACPI_FAILURE (Status))
- {
- if (Status == AE_CTRL_TERMINATE)
- {
- /* This is an OK termination by the user function */
-
- Status = AE_OK;
- }
- break;
- }
-
- /* EndTag indicates end-of-list */
-
- if (Resource->Type == ACPI_RESOURCE_TYPE_END_TAG)
- {
- break;
- }
-
- /* Get the next resource descriptor */
-
- Resource = ACPI_ADD_PTR (ACPI_RESOURCE, Resource, Resource->Length);
- }
-
- ACPI_FREE (Buffer.Pointer);
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiWalkResources)
diff --git a/sys/contrib/dev/acpica/tbfadt.c b/sys/contrib/dev/acpica/tbfadt.c
deleted file mode 100644
index 554e464..0000000
--- a/sys/contrib/dev/acpica/tbfadt.c
+++ /dev/null
@@ -1,520 +0,0 @@
-/******************************************************************************
- *
- * Module Name: tbfadt - FADT table utilities
- * $Revision: 1.5 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __TBFADT_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/actables.h>
-
-#define _COMPONENT ACPI_TABLES
- ACPI_MODULE_NAME ("tbfadt")
-
-/* Local prototypes */
-
-static void inline
-AcpiTbInitGenericAddress (
- ACPI_GENERIC_ADDRESS *GenericAddress,
- UINT8 BitWidth,
- UINT64 Address);
-
-static void
-AcpiTbConvertFadt (
- void);
-
-static void
-AcpiTbValidateFadt (
- void);
-
-
-/* Table for conversion of FADT to common internal format and FADT validation */
-
-typedef struct acpi_fadt_info
-{
- char *Name;
- UINT8 Target;
- UINT8 Source;
- UINT8 Length;
- UINT8 Type;
-
-} ACPI_FADT_INFO;
-
-#define ACPI_FADT_REQUIRED 1
-#define ACPI_FADT_SEPARATE_LENGTH 2
-
-static ACPI_FADT_INFO FadtInfoTable[] =
-{
- {"Pm1aEventBlock", ACPI_FADT_OFFSET (XPm1aEventBlock),
- ACPI_FADT_OFFSET (Pm1aEventBlock),
- ACPI_FADT_OFFSET (Pm1EventLength), ACPI_FADT_REQUIRED},
-
- {"Pm1bEventBlock", ACPI_FADT_OFFSET (XPm1bEventBlock),
- ACPI_FADT_OFFSET (Pm1bEventBlock),
- ACPI_FADT_OFFSET (Pm1EventLength), 0},
-
- {"Pm1aControlBlock", ACPI_FADT_OFFSET (XPm1aControlBlock),
- ACPI_FADT_OFFSET (Pm1aControlBlock),
- ACPI_FADT_OFFSET (Pm1ControlLength), ACPI_FADT_REQUIRED},
-
- {"Pm1bControlBlock", ACPI_FADT_OFFSET (XPm1bControlBlock),
- ACPI_FADT_OFFSET (Pm1bControlBlock),
- ACPI_FADT_OFFSET (Pm1ControlLength), 0},
-
- {"Pm2ControlBlock", ACPI_FADT_OFFSET (XPm2ControlBlock),
- ACPI_FADT_OFFSET (Pm2ControlBlock),
- ACPI_FADT_OFFSET (Pm2ControlLength), ACPI_FADT_SEPARATE_LENGTH},
-
- {"PmTimerBlock", ACPI_FADT_OFFSET (XPmTimerBlock),
- ACPI_FADT_OFFSET (PmTimerBlock),
- ACPI_FADT_OFFSET (PmTimerLength), ACPI_FADT_REQUIRED},
-
- {"Gpe0Block", ACPI_FADT_OFFSET (XGpe0Block),
- ACPI_FADT_OFFSET (Gpe0Block),
- ACPI_FADT_OFFSET (Gpe0BlockLength), ACPI_FADT_SEPARATE_LENGTH},
-
- {"Gpe1Block", ACPI_FADT_OFFSET (XGpe1Block),
- ACPI_FADT_OFFSET (Gpe1Block),
- ACPI_FADT_OFFSET (Gpe1BlockLength), ACPI_FADT_SEPARATE_LENGTH}
-};
-
-#define ACPI_FADT_INFO_ENTRIES (sizeof (FadtInfoTable) / sizeof (ACPI_FADT_INFO))
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbInitGenericAddress
- *
- * PARAMETERS: GenericAddress - GAS struct to be initialized
- * BitWidth - Width of this register
- * Address - Address of the register
- *
- * RETURN: None
- *
- * DESCRIPTION: Initialize a Generic Address Structure (GAS)
- * See the ACPI specification for a full description and
- * definition of this structure.
- *
- ******************************************************************************/
-
-static void inline
-AcpiTbInitGenericAddress (
- ACPI_GENERIC_ADDRESS *GenericAddress,
- UINT8 BitWidth,
- UINT64 Address)
-{
-
- /*
- * The 64-bit Address field is non-aligned in the byte packed
- * GAS struct.
- */
- ACPI_MOVE_64_TO_64 (&GenericAddress->Address, &Address);
-
- /* All other fields are byte-wide */
-
- GenericAddress->SpaceId = ACPI_ADR_SPACE_SYSTEM_IO;
- GenericAddress->BitWidth = BitWidth;
- GenericAddress->BitOffset = 0;
- GenericAddress->AccessWidth = 0;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbParseFadt
- *
- * PARAMETERS: TableIndex - Index for the FADT
- * Flags - Flags
- *
- * RETURN: None
- *
- * DESCRIPTION: Initialize the FADT, DSDT and FACS tables
- * (FADT contains the addresses of the DSDT and FACS)
- *
- ******************************************************************************/
-
-void
-AcpiTbParseFadt (
- ACPI_NATIVE_UINT TableIndex,
- UINT8 Flags)
-{
- UINT32 Length;
- ACPI_TABLE_HEADER *Table;
-
-
- /*
- * The FADT has multiple versions with different lengths,
- * and it contains pointers to both the DSDT and FACS tables.
- *
- * Get a local copy of the FADT and convert it to a common format
- * Map entire FADT, assumed to be smaller than one page.
- */
- Length = AcpiGbl_RootTableList.Tables[TableIndex].Length;
-
- Table = AcpiOsMapMemory (
- AcpiGbl_RootTableList.Tables[TableIndex].Address, Length);
- if (!Table)
- {
- return;
- }
-
- /*
- * Validate the FADT checksum before we copy the table. Ignore
- * checksum error as we want to try to get the DSDT and FACS.
- */
- (void) AcpiTbVerifyChecksum (Table, Length);
-
- /* Obtain a local copy of the FADT in common ACPI 2.0+ format */
-
- AcpiTbCreateLocalFadt (Table, Length);
-
- /* All done with the real FADT, unmap it */
-
- AcpiOsUnmapMemory (Table, Length);
-
- /* Obtain the DSDT and FACS tables via their addresses within the FADT */
-
- AcpiTbInstallTable ((ACPI_PHYSICAL_ADDRESS) AcpiGbl_FADT.XDsdt,
- Flags, ACPI_SIG_DSDT, ACPI_TABLE_INDEX_DSDT);
-
- AcpiTbInstallTable ((ACPI_PHYSICAL_ADDRESS) AcpiGbl_FADT.XFacs,
- Flags, ACPI_SIG_FACS, ACPI_TABLE_INDEX_FACS);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbCreateLocalFadt
- *
- * PARAMETERS: Table - Pointer to BIOS FADT
- * Length - Length of the table
- *
- * RETURN: None
- *
- * DESCRIPTION: Get a local copy of the FADT and convert it to a common format.
- * Performs validation on some important FADT fields.
- *
- ******************************************************************************/
-
-void
-AcpiTbCreateLocalFadt (
- ACPI_TABLE_HEADER *Table,
- UINT32 Length)
-{
-
- /*
- * Check if the FADT is larger than what we know about (ACPI 2.0 version).
- * Truncate the table, but make some noise.
- */
- if (Length > sizeof (ACPI_TABLE_FADT))
- {
- ACPI_WARNING ((AE_INFO,
- "FADT (revision %u) is longer than ACPI 2.0 version, truncating length 0x%X to 0x%zX",
- Table->Revision, Length, sizeof (ACPI_TABLE_FADT)));
- }
-
- /* Copy the entire FADT locally. Zero first for TbConvertFadt */
-
- ACPI_MEMSET (&AcpiGbl_FADT, 0, sizeof (ACPI_TABLE_FADT));
-
- ACPI_MEMCPY (&AcpiGbl_FADT, Table,
- ACPI_MIN (Length, sizeof (ACPI_TABLE_FADT)));
-
- /*
- * 1) Convert the local copy of the FADT to the common internal format
- * 2) Validate some of the important values within the FADT
- */
- AcpiTbConvertFadt ();
- AcpiTbValidateFadt ();
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbConvertFadt
- *
- * PARAMETERS: None, uses AcpiGbl_FADT
- *
- * RETURN: None
- *
- * DESCRIPTION: Converts all versions of the FADT to a common internal format.
- * -> Expand all 32-bit addresses to 64-bit.
- *
- * NOTE: AcpiGbl_FADT must be of size (ACPI_TABLE_FADT),
- * and must contain a copy of the actual FADT.
- *
- * ACPICA will use the "X" fields of the FADT for all addresses.
- *
- * "X" fields are optional extensions to the original V1.0 fields. Even if
- * they are present in the structure, they can be optionally not used by
- * setting them to zero. Therefore, we must selectively expand V1.0 fields
- * if the corresponding X field is zero.
- *
- * For ACPI 1.0 FADTs, all address fields are expanded to the corresponding
- * "X" fields.
- *
- * For ACPI 2.0 FADTs, any "X" fields that are NULL are filled in by
- * expanding the corresponding ACPI 1.0 field.
- *
- ******************************************************************************/
-
-static void
-AcpiTbConvertFadt (
- void)
-{
- UINT8 Pm1RegisterLength;
- ACPI_GENERIC_ADDRESS *Target;
- ACPI_NATIVE_UINT i;
-
-
- /* Update the local FADT table header length */
-
- AcpiGbl_FADT.Header.Length = sizeof (ACPI_TABLE_FADT);
-
- /* Expand the 32-bit FACS and DSDT addresses to 64-bit as necessary */
-
- if (!AcpiGbl_FADT.XFacs)
- {
- AcpiGbl_FADT.XFacs = (UINT64) AcpiGbl_FADT.Facs;
- }
-
- if (!AcpiGbl_FADT.XDsdt)
- {
- AcpiGbl_FADT.XDsdt = (UINT64) AcpiGbl_FADT.Dsdt;
- }
-
- /*
- * Expand the 32-bit V1.0 addresses to the 64-bit "X" generic address
- * structures as necessary.
- */
- for (i = 0; i < ACPI_FADT_INFO_ENTRIES; i++)
- {
- Target = ACPI_ADD_PTR (
- ACPI_GENERIC_ADDRESS, &AcpiGbl_FADT, FadtInfoTable[i].Target);
-
- /* Expand only if the X target is null */
-
- if (!Target->Address)
- {
- AcpiTbInitGenericAddress (Target,
- *ACPI_ADD_PTR (UINT8, &AcpiGbl_FADT, FadtInfoTable[i].Length),
- (UINT64) *ACPI_ADD_PTR (UINT32, &AcpiGbl_FADT, FadtInfoTable[i].Source));
- }
- }
-
- /*
- * Calculate separate GAS structs for the PM1 Enable registers.
- * These addresses do not appear (directly) in the FADT, so it is
- * useful to calculate them once, here.
- *
- * The PM event blocks are split into two register blocks, first is the
- * PM Status Register block, followed immediately by the PM Enable Register
- * block. Each is of length (Pm1EventLength/2)
- */
- Pm1RegisterLength = (UINT8) ACPI_DIV_2 (AcpiGbl_FADT.Pm1EventLength);
-
- /* The PM1A register block is required */
-
- AcpiTbInitGenericAddress (&AcpiGbl_XPm1aEnable, Pm1RegisterLength,
- (AcpiGbl_FADT.XPm1aEventBlock.Address + Pm1RegisterLength));
-
- /* The PM1B register block is optional, ignore if not present */
-
- if (AcpiGbl_FADT.XPm1bEventBlock.Address)
- {
- AcpiTbInitGenericAddress (&AcpiGbl_XPm1bEnable, Pm1RegisterLength,
- (AcpiGbl_FADT.XPm1bEventBlock.Address + Pm1RegisterLength));
- }
-}
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiTbValidateFadt
- *
- * PARAMETERS: Table - Pointer to the FADT to be validated
- *
- * RETURN: None
- *
- * DESCRIPTION: Validate various important fields within the FADT. If a problem
- * is found, issue a message, but no status is returned.
- * Used by both the table manager and the disassembler.
- *
- * Possible additional checks:
- * (AcpiGbl_FADT.Pm1EventLength >= 4)
- * (AcpiGbl_FADT.Pm1ControlLength >= 2)
- * (AcpiGbl_FADT.PmTimerLength >= 4)
- * Gpe block lengths must be multiple of 2
- *
- ******************************************************************************/
-
-static void
-AcpiTbValidateFadt (
- void)
-{
- UINT32 *Address32;
- ACPI_GENERIC_ADDRESS *Address64;
- UINT8 Length;
- ACPI_NATIVE_UINT i;
-
-
- /* Examine all of the 64-bit extended address fields (X fields) */
-
- for (i = 0; i < ACPI_FADT_INFO_ENTRIES; i++)
- {
- /* Generate pointers to the 32-bit and 64-bit addresses and get the length */
-
- Address64 = ACPI_ADD_PTR (ACPI_GENERIC_ADDRESS, &AcpiGbl_FADT, FadtInfoTable[i].Target);
- Address32 = ACPI_ADD_PTR (UINT32, &AcpiGbl_FADT, FadtInfoTable[i].Source);
- Length = *ACPI_ADD_PTR (UINT8, &AcpiGbl_FADT, FadtInfoTable[i].Length);
-
- if (FadtInfoTable[i].Type & ACPI_FADT_REQUIRED)
- {
- /*
- * Field is required (PM1aEvent, PM1aControl, PmTimer).
- * Both the address and length must be non-zero.
- */
- if (!Address64->Address || !Length)
- {
- ACPI_ERROR ((AE_INFO,
- "Required field \"%s\" has zero address and/or length: %8.8X%8.8X/%X",
- FadtInfoTable[i].Name, ACPI_FORMAT_UINT64 (Address64->Address), Length));
- }
- }
- else if (FadtInfoTable[i].Type & ACPI_FADT_SEPARATE_LENGTH)
- {
- /*
- * Field is optional (PM2Control, GPE0, GPE1) AND has its own
- * length field. If present, both the address and length must be valid.
- */
- if ((Address64->Address && !Length) || (!Address64->Address && Length))
- {
- ACPI_WARNING ((AE_INFO,
- "Optional field \"%s\" has zero address or length: %8.8X%8.8X/%X",
- FadtInfoTable[i].Name, ACPI_FORMAT_UINT64 (Address64->Address), Length));
- }
- }
-
- /* If both 32- and 64-bit addresses are valid (non-zero), they must match */
-
- if (Address64->Address && *Address32 &&
- (Address64->Address != (UINT64) *Address32))
- {
- ACPI_ERROR ((AE_INFO,
- "32/64X address mismatch in \"%s\": [%8.8X] [%8.8X%8.8X], using 64X",
- FadtInfoTable[i].Name, *Address32, ACPI_FORMAT_UINT64 (Address64->Address)));
- }
- }
-}
-
diff --git a/sys/contrib/dev/acpica/tbfind.c b/sys/contrib/dev/acpica/tbfind.c
deleted file mode 100644
index be09293..0000000
--- a/sys/contrib/dev/acpica/tbfind.c
+++ /dev/null
@@ -1,205 +0,0 @@
-/******************************************************************************
- *
- * Module Name: tbfind - find table
- * $Revision: 1.3 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __TBFIND_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/actables.h>
-
-#define _COMPONENT ACPI_TABLES
- ACPI_MODULE_NAME ("tbfind")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbFindTable
- *
- * PARAMETERS: Signature - String with ACPI table signature
- * OemId - String with the table OEM ID
- * OemTableId - String with the OEM Table ID
- * TableIndex - Where the table index is returned
- *
- * RETURN: Status and table index
- *
- * DESCRIPTION: Find an ACPI table (in the RSDT/XSDT) that matches the
- * Signature, OEM ID and OEM Table ID. Returns an index that can
- * be used to get the table header or entire table.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiTbFindTable (
- char *Signature,
- char *OemId,
- char *OemTableId,
- ACPI_NATIVE_UINT *TableIndex)
-{
- ACPI_NATIVE_UINT i;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (TbFindTable);
-
-
- for (i = 0; i < AcpiGbl_RootTableList.Count; ++i)
- {
- if (ACPI_MEMCMP (&(AcpiGbl_RootTableList.Tables[i].Signature),
- Signature, ACPI_NAME_SIZE))
- {
- /* Not the requested table */
-
- continue;
- }
-
- /* Table with matching signature has been found */
-
- if (!AcpiGbl_RootTableList.Tables[i].Pointer)
- {
- /* Table is not currently mapped, map it */
-
- Status = AcpiTbVerifyTable (&AcpiGbl_RootTableList.Tables[i]);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- if (!AcpiGbl_RootTableList.Tables[i].Pointer)
- {
- continue;
- }
- }
-
- /* Check for table match on all IDs */
-
- if (!ACPI_MEMCMP (AcpiGbl_RootTableList.Tables[i].Pointer->Signature,
- Signature, ACPI_NAME_SIZE) &&
- (!OemId[0] ||
- !ACPI_MEMCMP (AcpiGbl_RootTableList.Tables[i].Pointer->OemId,
- OemId, ACPI_OEM_ID_SIZE)) &&
- (!OemTableId[0] ||
- !ACPI_MEMCMP (AcpiGbl_RootTableList.Tables[i].Pointer->OemTableId,
- OemTableId, ACPI_OEM_TABLE_ID_SIZE)))
- {
- *TableIndex = i;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, "Found table [%4.4s]\n",
- Signature));
- return_ACPI_STATUS (AE_OK);
- }
- }
-
- return_ACPI_STATUS (AE_NOT_FOUND);
-}
diff --git a/sys/contrib/dev/acpica/tbinstal.c b/sys/contrib/dev/acpica/tbinstal.c
deleted file mode 100644
index fa71702..0000000
--- a/sys/contrib/dev/acpica/tbinstal.c
+++ /dev/null
@@ -1,684 +0,0 @@
-/******************************************************************************
- *
- * Module Name: tbinstal - ACPI table installation and removal
- * $Revision: 1.91 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __TBINSTAL_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/actables.h>
-
-
-#define _COMPONENT ACPI_TABLES
- ACPI_MODULE_NAME ("tbinstal")
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiTbVerifyTable
- *
- * PARAMETERS: TableDesc - table
- *
- * RETURN: Status
- *
- * DESCRIPTION: this function is called to verify and map table
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiTbVerifyTable (
- ACPI_TABLE_DESC *TableDesc)
-{
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (TbVerifyTable);
-
-
- /* Map the table if necessary */
-
- if (!TableDesc->Pointer)
- {
- if ((TableDesc->Flags & ACPI_TABLE_ORIGIN_MASK) ==
- ACPI_TABLE_ORIGIN_MAPPED)
- {
- TableDesc->Pointer = AcpiOsMapMemory (TableDesc->Address, TableDesc->Length);
- }
-
- if (!TableDesc->Pointer)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
- }
-
- /* FACS is the odd table, has no standard ACPI header and no checksum */
-
- if (!ACPI_COMPARE_NAME (&TableDesc->Signature, ACPI_SIG_FACS))
- {
- /* Always calculate checksum, ignore bad checksum if requested */
-
- Status = AcpiTbVerifyChecksum (TableDesc->Pointer, TableDesc->Length);
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbAddTable
- *
- * PARAMETERS: TableDesc - Table descriptor
- * TableIndex - Where the table index is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: This function is called to add the ACPI table
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiTbAddTable (
- ACPI_TABLE_DESC *TableDesc,
- ACPI_NATIVE_UINT *TableIndex)
-{
- ACPI_NATIVE_UINT i;
- ACPI_NATIVE_UINT Length;
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (TbAddTable);
-
-
- if (!TableDesc->Pointer)
- {
- Status = AcpiTbVerifyTable (TableDesc);
- if (ACPI_FAILURE (Status) || !TableDesc->Pointer)
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- /* The table must be either an SSDT or a PSDT */
-
- if ((!ACPI_COMPARE_NAME (TableDesc->Pointer->Signature, ACPI_SIG_PSDT)) &&
- (!ACPI_COMPARE_NAME (TableDesc->Pointer->Signature, ACPI_SIG_SSDT)))
- {
- ACPI_ERROR ((AE_INFO,
- "Table has invalid signature [%4.4s], must be SSDT or PSDT",
- TableDesc->Pointer->Signature));
- return_ACPI_STATUS (AE_BAD_SIGNATURE);
- }
-
- (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
-
- /* Check if table is already registered */
-
- for (i = 0; i < AcpiGbl_RootTableList.Count; ++i)
- {
- if (!AcpiGbl_RootTableList.Tables[i].Pointer)
- {
- Status = AcpiTbVerifyTable (&AcpiGbl_RootTableList.Tables[i]);
- if (ACPI_FAILURE (Status) || !AcpiGbl_RootTableList.Tables[i].Pointer)
- {
- continue;
- }
- }
-
- Length = ACPI_MIN (TableDesc->Length,
- AcpiGbl_RootTableList.Tables[i].Length);
- if (ACPI_MEMCMP (TableDesc->Pointer,
- AcpiGbl_RootTableList.Tables[i].Pointer, Length))
- {
- continue;
- }
-
- /* Table is already registered */
-
- AcpiTbDeleteTable (TableDesc);
- *TableIndex = i;
- goto Release;
- }
-
- /*
- * Add the table to the global table list
- */
- Status = AcpiTbStoreTable (TableDesc->Address, TableDesc->Pointer,
- TableDesc->Length, TableDesc->Flags, TableIndex);
- if (ACPI_FAILURE (Status))
- {
- goto Release;
- }
-
- AcpiTbPrintTableHeader (TableDesc->Address, TableDesc->Pointer);
-
-Release:
- (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbResizeRootTableList
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Expand the size of global table array
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiTbResizeRootTableList (
- void)
-{
- ACPI_TABLE_DESC *Tables;
-
-
- ACPI_FUNCTION_TRACE (TbResizeRootTableList);
-
-
- /* AllowResize flag is a parameter to AcpiInitializeTables */
-
- if (!(AcpiGbl_RootTableList.Flags & ACPI_ROOT_ALLOW_RESIZE))
- {
- ACPI_ERROR ((AE_INFO, "Resize of Root Table Array is not allowed"));
- return_ACPI_STATUS (AE_SUPPORT);
- }
-
- /* Increase the Table Array size */
-
- Tables = ACPI_ALLOCATE_ZEROED (
- (AcpiGbl_RootTableList.Size + ACPI_ROOT_TABLE_SIZE_INCREMENT)
- * sizeof (ACPI_TABLE_DESC));
- if (!Tables)
- {
- ACPI_ERROR ((AE_INFO, "Could not allocate new root table array"));
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* Copy and free the previous table array */
-
- if (AcpiGbl_RootTableList.Tables)
- {
- ACPI_MEMCPY (Tables, AcpiGbl_RootTableList.Tables,
- AcpiGbl_RootTableList.Size * sizeof (ACPI_TABLE_DESC));
-
- if (AcpiGbl_RootTableList.Flags & ACPI_ROOT_ORIGIN_ALLOCATED)
- {
- ACPI_FREE (AcpiGbl_RootTableList.Tables);
- }
- }
-
- AcpiGbl_RootTableList.Tables = Tables;
- AcpiGbl_RootTableList.Size += ACPI_ROOT_TABLE_SIZE_INCREMENT;
- AcpiGbl_RootTableList.Flags |= (UINT8) ACPI_ROOT_ORIGIN_ALLOCATED;
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbStoreTable
- *
- * PARAMETERS: Address - Table address
- * Table - Table header
- * Length - Table length
- * Flags - flags
- *
- * RETURN: Status and table index.
- *
- * DESCRIPTION: Add an ACPI table to the global table list
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiTbStoreTable (
- ACPI_PHYSICAL_ADDRESS Address,
- ACPI_TABLE_HEADER *Table,
- UINT32 Length,
- UINT8 Flags,
- ACPI_NATIVE_UINT *TableIndex)
-{
- ACPI_STATUS Status = AE_OK;
-
-
- /* Ensure that there is room for the table in the Root Table List */
-
- if (AcpiGbl_RootTableList.Count >= AcpiGbl_RootTableList.Size)
- {
- Status = AcpiTbResizeRootTableList();
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
- }
-
- /* Initialize added table */
-
- AcpiGbl_RootTableList.Tables[AcpiGbl_RootTableList.Count].Address = Address;
- AcpiGbl_RootTableList.Tables[AcpiGbl_RootTableList.Count].Pointer = Table;
- AcpiGbl_RootTableList.Tables[AcpiGbl_RootTableList.Count].Length = Length;
- AcpiGbl_RootTableList.Tables[AcpiGbl_RootTableList.Count].OwnerId = 0;
- AcpiGbl_RootTableList.Tables[AcpiGbl_RootTableList.Count].Flags = Flags;
-
- ACPI_MOVE_32_TO_32 (
- &(AcpiGbl_RootTableList.Tables[AcpiGbl_RootTableList.Count].Signature),
- Table->Signature);
-
- *TableIndex = AcpiGbl_RootTableList.Count;
- AcpiGbl_RootTableList.Count++;
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbDeleteTable
- *
- * PARAMETERS: TableIndex - Table index
- *
- * RETURN: None
- *
- * DESCRIPTION: Delete one internal ACPI table
- *
- ******************************************************************************/
-
-void
-AcpiTbDeleteTable (
- ACPI_TABLE_DESC *TableDesc)
-{
-
- /* Table must be mapped or allocated */
-
- if (!TableDesc->Pointer)
- {
- return;
- }
-
- switch (TableDesc->Flags & ACPI_TABLE_ORIGIN_MASK)
- {
- case ACPI_TABLE_ORIGIN_MAPPED:
- AcpiOsUnmapMemory (TableDesc->Pointer, TableDesc->Length);
- break;
-
- case ACPI_TABLE_ORIGIN_ALLOCATED:
- ACPI_FREE (TableDesc->Pointer);
- break;
-
- default:
- break;
- }
-
- TableDesc->Pointer = NULL;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbTerminate
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Delete all internal ACPI tables
- *
- ******************************************************************************/
-
-void
-AcpiTbTerminate (
- void)
-{
- ACPI_NATIVE_UINT i;
-
-
- ACPI_FUNCTION_TRACE (TbTerminate);
-
-
- (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
-
- /* Delete the individual tables */
-
- for (i = 0; i < AcpiGbl_RootTableList.Count; i++)
- {
- AcpiTbDeleteTable (&AcpiGbl_RootTableList.Tables[i]);
- }
-
- /*
- * Delete the root table array if allocated locally. Array cannot be
- * mapped, so we don't need to check for that flag.
- */
- if (AcpiGbl_RootTableList.Flags & ACPI_ROOT_ORIGIN_ALLOCATED)
- {
- ACPI_FREE (AcpiGbl_RootTableList.Tables);
- }
-
- AcpiGbl_RootTableList.Tables = NULL;
- AcpiGbl_RootTableList.Flags = 0;
- AcpiGbl_RootTableList.Count = 0;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "ACPI Tables freed\n"));
- (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbDeleteNamespaceByOwner
- *
- * PARAMETERS: TableIndex - Table index
- *
- * RETURN: None
- *
- * DESCRIPTION: Delete all namespace objects created when this table was loaded.
- *
- ******************************************************************************/
-
-void
-AcpiTbDeleteNamespaceByOwner (
- ACPI_NATIVE_UINT TableIndex)
-{
- ACPI_OWNER_ID OwnerId;
-
-
- (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
- if (TableIndex < AcpiGbl_RootTableList.Count)
- {
- OwnerId = AcpiGbl_RootTableList.Tables[TableIndex].OwnerId;
- }
- else
- {
- (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
- return;
- }
-
- (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
- AcpiNsDeleteNamespaceByOwner (OwnerId);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbAllocateOwnerId
- *
- * PARAMETERS: TableIndex - Table index
- *
- * RETURN: Status
- *
- * DESCRIPTION: Allocates OwnerId in TableDesc
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiTbAllocateOwnerId (
- ACPI_NATIVE_UINT TableIndex)
-{
- ACPI_STATUS Status = AE_BAD_PARAMETER;
-
-
- ACPI_FUNCTION_TRACE (TbAllocateOwnerId);
-
-
- (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
- if (TableIndex < AcpiGbl_RootTableList.Count)
- {
- Status = AcpiUtAllocateOwnerId
- (&(AcpiGbl_RootTableList.Tables[TableIndex].OwnerId));
- }
-
- (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbReleaseOwnerId
- *
- * PARAMETERS: TableIndex - Table index
- *
- * RETURN: Status
- *
- * DESCRIPTION: Releases OwnerId in TableDesc
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiTbReleaseOwnerId (
- ACPI_NATIVE_UINT TableIndex)
-{
- ACPI_STATUS Status = AE_BAD_PARAMETER;
-
-
- ACPI_FUNCTION_TRACE (TbReleaseOwnerId);
-
-
- (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
- if (TableIndex < AcpiGbl_RootTableList.Count)
- {
- AcpiUtReleaseOwnerId (&(AcpiGbl_RootTableList.Tables[TableIndex].OwnerId));
- Status = AE_OK;
- }
-
- (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbGetOwnerId
- *
- * PARAMETERS: TableIndex - Table index
- * OwnerId - Where the table OwnerId is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: returns OwnerId for the ACPI table
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiTbGetOwnerId (
- ACPI_NATIVE_UINT TableIndex,
- ACPI_OWNER_ID *OwnerId)
-{
- ACPI_STATUS Status = AE_BAD_PARAMETER;
-
-
- ACPI_FUNCTION_TRACE (TbGetOwnerId);
-
-
- (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
- if (TableIndex < AcpiGbl_RootTableList.Count)
- {
- *OwnerId = AcpiGbl_RootTableList.Tables[TableIndex].OwnerId;
- Status = AE_OK;
- }
-
- (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbIsTableLoaded
- *
- * PARAMETERS: TableIndex - Table index
- *
- * RETURN: Table Loaded Flag
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiTbIsTableLoaded (
- ACPI_NATIVE_UINT TableIndex)
-{
- BOOLEAN IsLoaded = FALSE;
-
-
- (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
- if (TableIndex < AcpiGbl_RootTableList.Count)
- {
- IsLoaded = (BOOLEAN)
- (AcpiGbl_RootTableList.Tables[TableIndex].Flags & ACPI_TABLE_IS_LOADED);
- }
-
- (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
- return (IsLoaded);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbSetTableLoadedFlag
- *
- * PARAMETERS: TableIndex - Table index
- * IsLoaded - TRUE if table is loaded, FALSE otherwise
- *
- * RETURN: None
- *
- * DESCRIPTION: Sets the table loaded flag to either TRUE or FALSE.
- *
- ******************************************************************************/
-
-void
-AcpiTbSetTableLoadedFlag (
- ACPI_NATIVE_UINT TableIndex,
- BOOLEAN IsLoaded)
-{
-
- (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
- if (TableIndex < AcpiGbl_RootTableList.Count)
- {
- if (IsLoaded)
- {
- AcpiGbl_RootTableList.Tables[TableIndex].Flags |= ACPI_TABLE_IS_LOADED;
- }
- else
- {
- AcpiGbl_RootTableList.Tables[TableIndex].Flags &= ~ACPI_TABLE_IS_LOADED;
- }
- }
-
- (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
-}
-
diff --git a/sys/contrib/dev/acpica/tbutils.c b/sys/contrib/dev/acpica/tbutils.c
deleted file mode 100644
index 5b64e20..0000000
--- a/sys/contrib/dev/acpica/tbutils.c
+++ /dev/null
@@ -1,594 +0,0 @@
-/******************************************************************************
- *
- * Module Name: tbutils - table utilities
- * $Revision: 1.88 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __TBUTILS_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/actables.h>
-
-#define _COMPONENT ACPI_TABLES
- ACPI_MODULE_NAME ("tbutils")
-
-/* Local prototypes */
-
-static ACPI_PHYSICAL_ADDRESS
-AcpiTbGetRootTableEntry (
- UINT8 *TableEntry,
- ACPI_NATIVE_UINT TableEntrySize);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbTablesLoaded
- *
- * PARAMETERS: None
- *
- * RETURN: TRUE if required ACPI tables are loaded
- *
- * DESCRIPTION: Determine if the minimum required ACPI tables are present
- * (FADT, FACS, DSDT)
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiTbTablesLoaded (
- void)
-{
-
- if (AcpiGbl_RootTableList.Count >= 3)
- {
- return (TRUE);
- }
-
- return (FALSE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbPrintTableHeader
- *
- * PARAMETERS: Address - Table physical address
- * Header - Table header
- *
- * RETURN: None
- *
- * DESCRIPTION: Print an ACPI table header. Special cases for FACS and RSDP.
- *
- ******************************************************************************/
-
-void
-AcpiTbPrintTableHeader (
- ACPI_PHYSICAL_ADDRESS Address,
- ACPI_TABLE_HEADER *Header)
-{
-
- if (ACPI_COMPARE_NAME (Header->Signature, ACPI_SIG_FACS))
- {
- /* FACS only has signature and length fields of common table header */
-
- ACPI_INFO ((AE_INFO, "%4.4s @ 0x%p/0x%04X",
- Header->Signature, ACPI_CAST_PTR (void, Address), Header->Length));
- }
- else if (ACPI_COMPARE_NAME (Header->Signature, ACPI_SIG_RSDP))
- {
- /* RSDP has no common fields */
-
- ACPI_INFO ((AE_INFO, "RSDP @ 0x%p/0x%04X (v%3.3d %6.6s)",
- ACPI_CAST_PTR (void, Address),
- (ACPI_CAST_PTR (ACPI_TABLE_RSDP, Header)->Revision > 0) ?
- ACPI_CAST_PTR (ACPI_TABLE_RSDP, Header)->Length : 20,
- ACPI_CAST_PTR (ACPI_TABLE_RSDP, Header)->Revision,
- ACPI_CAST_PTR (ACPI_TABLE_RSDP, Header)->OemId));
- }
- else
- {
- /* Standard ACPI table with full common header */
-
- ACPI_INFO ((AE_INFO,
- "%4.4s @ 0x%p/0x%04X (v%3.3d %6.6s %8.8s 0x%08X %4.4s 0x%08X)",
- Header->Signature, ACPI_CAST_PTR (void, Address),
- Header->Length, Header->Revision, Header->OemId,
- Header->OemTableId, Header->OemRevision, Header->AslCompilerId,
- Header->AslCompilerRevision));
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbValidateChecksum
- *
- * PARAMETERS: Table - ACPI table to verify
- * Length - Length of entire table
- *
- * RETURN: Status
- *
- * DESCRIPTION: Verifies that the table checksums to zero. Optionally returns
- * exception on bad checksum.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiTbVerifyChecksum (
- ACPI_TABLE_HEADER *Table,
- UINT32 Length)
-{
- UINT8 Checksum;
-
-
- /* Compute the checksum on the table */
-
- Checksum = AcpiTbChecksum (ACPI_CAST_PTR (UINT8, Table), Length);
-
- /* Checksum ok? (should be zero) */
-
- if (Checksum)
- {
- ACPI_WARNING ((AE_INFO,
- "Incorrect checksum in table [%4.4s] - %2.2X, should be %2.2X",
- Table->Signature, Table->Checksum, (UINT8) (Table->Checksum - Checksum)));
-
-#if (ACPI_CHECKSUM_ABORT)
- return (AE_BAD_CHECKSUM);
-#endif
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbChecksum
- *
- * PARAMETERS: Buffer - Pointer to memory region to be checked
- * Length - Length of this memory region
- *
- * RETURN: Checksum (UINT8)
- *
- * DESCRIPTION: Calculates circular checksum of memory region.
- *
- ******************************************************************************/
-
-UINT8
-AcpiTbChecksum (
- UINT8 *Buffer,
- ACPI_NATIVE_UINT Length)
-{
- UINT8 Sum = 0;
- UINT8 *End = Buffer + Length;
-
-
- while (Buffer < End)
- {
- Sum = (UINT8) (Sum + *(Buffer++));
- }
-
- return Sum;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbInstallTable
- *
- * PARAMETERS: Address - Physical address of DSDT or FACS
- * Flags - Flags
- * Signature - Table signature, NULL if no need to
- * match
- * TableIndex - Index into root table array
- *
- * RETURN: None
- *
- * DESCRIPTION: Install an ACPI table into the global data structure.
- *
- ******************************************************************************/
-
-void
-AcpiTbInstallTable (
- ACPI_PHYSICAL_ADDRESS Address,
- UINT8 Flags,
- char *Signature,
- ACPI_NATIVE_UINT TableIndex)
-{
- ACPI_TABLE_HEADER *Table;
-
-
- if (!Address)
- {
- ACPI_ERROR ((AE_INFO, "Null physical address for ACPI table [%s]",
- Signature));
- return;
- }
-
- /* Map just the table header */
-
- Table = AcpiOsMapMemory (Address, sizeof (ACPI_TABLE_HEADER));
- if (!Table)
- {
- return;
- }
-
- /* If a particular signature is expected, signature must match */
-
- if (Signature &&
- !ACPI_COMPARE_NAME (Table->Signature, Signature))
- {
- ACPI_ERROR ((AE_INFO, "Invalid signature 0x%X for ACPI table [%s]",
- *ACPI_CAST_PTR (UINT32, Table->Signature), Signature));
- goto UnmapAndExit;
- }
-
- /* Initialize the table entry */
-
- AcpiGbl_RootTableList.Tables[TableIndex].Address = Address;
- AcpiGbl_RootTableList.Tables[TableIndex].Length = Table->Length;
- AcpiGbl_RootTableList.Tables[TableIndex].Flags = Flags;
-
- ACPI_MOVE_32_TO_32 (
- &(AcpiGbl_RootTableList.Tables[TableIndex].Signature),
- Table->Signature);
-
- AcpiTbPrintTableHeader (Address, Table);
-
- if (TableIndex == ACPI_TABLE_INDEX_DSDT)
- {
- /* Global integer width is based upon revision of the DSDT */
-
- AcpiUtSetIntegerWidth (Table->Revision);
- }
-
-UnmapAndExit:
- AcpiOsUnmapMemory (Table, sizeof (ACPI_TABLE_HEADER));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbGetRootTableEntry
- *
- * PARAMETERS: TableEntry - Pointer to the RSDT/XSDT table entry
- * TableEntrySize - sizeof 32 or 64 (RSDT or XSDT)
- *
- * RETURN: Physical address extracted from the root table
- *
- * DESCRIPTION: Get one root table entry. Handles 32-bit and 64-bit cases on
- * both 32-bit and 64-bit platforms
- *
- * NOTE: ACPI_PHYSICAL_ADDRESS is 32-bit on 32-bit platforms, 64-bit on
- * 64-bit platforms.
- *
- ******************************************************************************/
-
-static ACPI_PHYSICAL_ADDRESS
-AcpiTbGetRootTableEntry (
- UINT8 *TableEntry,
- ACPI_NATIVE_UINT TableEntrySize)
-{
- UINT64 Address64;
-
-
- /*
- * Get the table physical address (32-bit for RSDT, 64-bit for XSDT):
- * Note: Addresses are 32-bit aligned (not 64) in both RSDT and XSDT
- */
- if (TableEntrySize == sizeof (UINT32))
- {
- /*
- * 32-bit platform, RSDT: Return 32-bit table entry
- * 64-bit platform, RSDT: Expand 32-bit to 64-bit and return
- */
- return ((ACPI_PHYSICAL_ADDRESS) (*ACPI_CAST_PTR (UINT32, TableEntry)));
- }
- else
- {
- /*
- * 32-bit platform, XSDT: Truncate 64-bit to 32-bit and return
- * 64-bit platform, XSDT: Move (unaligned) 64-bit to local, return 64-bit
- */
- ACPI_MOVE_64_TO_64 (&Address64, TableEntry);
-
-#if ACPI_MACHINE_WIDTH == 32
- if (Address64 > ACPI_UINT32_MAX)
- {
- /* Will truncate 64-bit address to 32 bits, issue warning */
-
- ACPI_WARNING ((AE_INFO,
- "64-bit Physical Address in XSDT is too large (%8.8X%8.8X), truncating",
- ACPI_FORMAT_UINT64 (Address64)));
- }
-#endif
- return ((ACPI_PHYSICAL_ADDRESS) (Address64));
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbParseRootTable
- *
- * PARAMETERS: Rsdp - Pointer to the RSDP
- * Flags - Flags
- *
- * RETURN: Status
- *
- * DESCRIPTION: This function is called to parse the Root System Description
- * Table (RSDT or XSDT)
- *
- * NOTE: Tables are mapped (not copied) for efficiency. The FACS must
- * be mapped and cannot be copied because it contains the actual
- * memory location of the ACPI Global Lock.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiTbParseRootTable (
- ACPI_PHYSICAL_ADDRESS RsdpAddress,
- UINT8 Flags)
-{
- ACPI_TABLE_RSDP *Rsdp;
- ACPI_NATIVE_UINT TableEntrySize;
- ACPI_NATIVE_UINT i;
- UINT32 TableCount;
- ACPI_TABLE_HEADER *Table;
- ACPI_PHYSICAL_ADDRESS Address;
- UINT32 Length;
- UINT8 *TableEntry;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (TbParseRootTable);
-
-
- /*
- * Map the entire RSDP and extract the address of the RSDT or XSDT
- */
- Rsdp = AcpiOsMapMemory (RsdpAddress, sizeof (ACPI_TABLE_RSDP));
- if (!Rsdp)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- AcpiTbPrintTableHeader (RsdpAddress, ACPI_CAST_PTR (ACPI_TABLE_HEADER, Rsdp));
-
- /* Differentiate between RSDT and XSDT root tables */
-
- if (Rsdp->Revision > 1 && Rsdp->XsdtPhysicalAddress)
- {
- /*
- * Root table is an XSDT (64-bit physical addresses). We must use the
- * XSDT if the revision is > 1 and the XSDT pointer is present, as per
- * the ACPI specification.
- */
- Address = (ACPI_PHYSICAL_ADDRESS) Rsdp->XsdtPhysicalAddress;
- TableEntrySize = sizeof (UINT64);
- }
- else
- {
- /* Root table is an RSDT (32-bit physical addresses) */
-
- Address = (ACPI_PHYSICAL_ADDRESS) Rsdp->RsdtPhysicalAddress;
- TableEntrySize = sizeof (UINT32);
- }
-
- /*
- * It is not possible to map more than one entry in some environments,
- * so unmap the RSDP here before mapping other tables
- */
- AcpiOsUnmapMemory (Rsdp, sizeof (ACPI_TABLE_RSDP));
-
-
- /* Map the RSDT/XSDT table header to get the full table length */
-
- Table = AcpiOsMapMemory (Address, sizeof (ACPI_TABLE_HEADER));
- if (!Table)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- AcpiTbPrintTableHeader (Address, Table);
-
- /* Get the length of the full table, verify length and map entire table */
-
- Length = Table->Length;
- AcpiOsUnmapMemory (Table, sizeof (ACPI_TABLE_HEADER));
-
- if (Length < sizeof (ACPI_TABLE_HEADER))
- {
- ACPI_ERROR ((AE_INFO, "Invalid length 0x%X in RSDT/XSDT", Length));
- return_ACPI_STATUS (AE_INVALID_TABLE_LENGTH);
- }
-
- Table = AcpiOsMapMemory (Address, Length);
- if (!Table)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* Validate the root table checksum */
-
- Status = AcpiTbVerifyChecksum (Table, Length);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsUnmapMemory (Table, Length);
- return_ACPI_STATUS (Status);
- }
-
- /* Calculate the number of tables described in the root table */
-
- TableCount = (UINT32) ((Table->Length - sizeof (ACPI_TABLE_HEADER)) / TableEntrySize);
-
- /*
- * First two entries in the table array are reserved for the DSDT and FACS,
- * which are not actually present in the RSDT/XSDT - they come from the FADT
- */
- TableEntry = ACPI_CAST_PTR (UINT8, Table) + sizeof (ACPI_TABLE_HEADER);
- AcpiGbl_RootTableList.Count = 2;
-
- /*
- * Initialize the root table array from the RSDT/XSDT
- */
- for (i = 0; i < TableCount; i++)
- {
- if (AcpiGbl_RootTableList.Count >= AcpiGbl_RootTableList.Size)
- {
- /* There is no more room in the root table array, attempt resize */
-
- Status = AcpiTbResizeRootTableList ();
- if (ACPI_FAILURE (Status))
- {
- ACPI_WARNING ((AE_INFO, "Truncating %u table entries!",
- (unsigned) (AcpiGbl_RootTableList.Size - AcpiGbl_RootTableList.Count)));
- break;
- }
- }
-
- /* Get the table physical address (32-bit for RSDT, 64-bit for XSDT) */
-
- AcpiGbl_RootTableList.Tables[AcpiGbl_RootTableList.Count].Address =
- AcpiTbGetRootTableEntry (TableEntry, TableEntrySize);
-
- TableEntry += TableEntrySize;
- AcpiGbl_RootTableList.Count++;
- }
-
- /*
- * It is not possible to map more than one entry in some environments,
- * so unmap the root table here before mapping other tables
- */
- AcpiOsUnmapMemory (Table, Length);
-
- /*
- * Complete the initialization of the root table array by examining
- * the header of each table
- */
- for (i = 2; i < AcpiGbl_RootTableList.Count; i++)
- {
- AcpiTbInstallTable (AcpiGbl_RootTableList.Tables[i].Address,
- Flags, NULL, i);
-
- /* Special case for FADT - get the DSDT and FACS */
-
- if (ACPI_COMPARE_NAME (
- &AcpiGbl_RootTableList.Tables[i].Signature, ACPI_SIG_FADT))
- {
- AcpiTbParseFadt (i, Flags);
- }
- }
-
- return_ACPI_STATUS (AE_OK);
-}
diff --git a/sys/contrib/dev/acpica/tbxface.c b/sys/contrib/dev/acpica/tbxface.c
deleted file mode 100644
index a7a27c6..0000000
--- a/sys/contrib/dev/acpica/tbxface.c
+++ /dev/null
@@ -1,674 +0,0 @@
-/******************************************************************************
- *
- * Module Name: tbxface - Public interfaces to the ACPI subsystem
- * ACPI table oriented interfaces
- * $Revision: 1.86 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __TBXFACE_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/actables.h>
-
-#define _COMPONENT ACPI_TABLES
- ACPI_MODULE_NAME ("tbxface")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiTbLoadNamespace (
- void);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiAllocateRootTable
- *
- * PARAMETERS: InitialTableCount - Size of InitialTableArray, in number of
- * ACPI_TABLE_DESC structures
- *
- * RETURN: Status
- *
- * DESCRIPTION: Allocate a root table array. Used by iASL compiler and
- * AcpiInitializeTables.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiAllocateRootTable (
- UINT32 InitialTableCount)
-{
-
- AcpiGbl_RootTableList.Size = InitialTableCount;
- AcpiGbl_RootTableList.Flags = ACPI_ROOT_ALLOW_RESIZE;
-
- return (AcpiTbResizeRootTableList ());
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiInitializeTables
- *
- * PARAMETERS: InitialTableArray - Pointer to an array of pre-allocated
- * ACPI_TABLE_DESC structures. If NULL, the
- * array is dynamically allocated.
- * InitialTableCount - Size of InitialTableArray, in number of
- * ACPI_TABLE_DESC structures
- * AllowRealloc - Flag to tell Table Manager if resize of
- * pre-allocated array is allowed. Ignored
- * if InitialTableArray is NULL.
- *
- * RETURN: Status
- *
- * DESCRIPTION: Initialize the table manager, get the RSDP and RSDT/XSDT.
- *
- * NOTE: Allows static allocation of the initial table array in order
- * to avoid the use of dynamic memory in confined environments
- * such as the kernel boot sequence where it may not be available.
- *
- * If the host OS memory managers are initialized, use NULL for
- * InitialTableArray, and the table will be dynamically allocated.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiInitializeTables (
- ACPI_TABLE_DESC *InitialTableArray,
- UINT32 InitialTableCount,
- BOOLEAN AllowResize)
-{
- ACPI_PHYSICAL_ADDRESS RsdpAddress;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (AcpiInitializeTables);
-
-
- /*
- * Set up the Root Table Array
- * Allocate the table array if requested
- */
- if (!InitialTableArray)
- {
- Status = AcpiAllocateRootTable (InitialTableCount);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
- else
- {
- /* Root Table Array has been statically allocated by the host */
-
- ACPI_MEMSET (InitialTableArray, 0,
- InitialTableCount * sizeof (ACPI_TABLE_DESC));
-
- AcpiGbl_RootTableList.Tables = InitialTableArray;
- AcpiGbl_RootTableList.Size = InitialTableCount;
- AcpiGbl_RootTableList.Flags = ACPI_ROOT_ORIGIN_UNKNOWN;
- if (AllowResize)
- {
- AcpiGbl_RootTableList.Flags |= ACPI_ROOT_ALLOW_RESIZE;
- }
- }
-
- /* Get the address of the RSDP */
-
- RsdpAddress = AcpiOsGetRootPointer ();
- if (!RsdpAddress)
- {
- return_ACPI_STATUS (AE_NOT_FOUND);
- }
-
- /*
- * Get the root table (RSDT or XSDT) and extract all entries to the local
- * Root Table Array. This array contains the information of the RSDT/XSDT
- * in a common, more useable format.
- */
- Status = AcpiTbParseRootTable (RsdpAddress, ACPI_TABLE_ORIGIN_MAPPED);
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiInitializeTables)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiReallocateRootTable
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Reallocate Root Table List into dynamic memory. Copies the
- * root list from the previously provided scratch area. Should
- * be called once dynamic memory allocation is available in the
- * kernel
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiReallocateRootTable (
- void)
-{
- ACPI_TABLE_DESC *Tables;
- ACPI_SIZE NewSize;
-
-
- ACPI_FUNCTION_TRACE (AcpiReallocateRootTable);
-
-
- /*
- * Only reallocate the root table if the host provided a static buffer
- * for the table array in the call to AcpiInitializeTables.
- */
- if (AcpiGbl_RootTableList.Flags & ACPI_ROOT_ORIGIN_ALLOCATED)
- {
- return_ACPI_STATUS (AE_SUPPORT);
- }
-
- NewSize = (AcpiGbl_RootTableList.Count + ACPI_ROOT_TABLE_SIZE_INCREMENT) *
- sizeof (ACPI_TABLE_DESC);
-
- /* Create new array and copy the old array */
-
- Tables = ACPI_ALLOCATE_ZEROED (NewSize);
- if (!Tables)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- ACPI_MEMCPY (Tables, AcpiGbl_RootTableList.Tables, NewSize);
-
- AcpiGbl_RootTableList.Size = AcpiGbl_RootTableList.Count;
- AcpiGbl_RootTableList.Tables = Tables;
- AcpiGbl_RootTableList.Flags =
- ACPI_ROOT_ORIGIN_ALLOCATED | ACPI_ROOT_ALLOW_RESIZE;
-
- return_ACPI_STATUS (AE_OK);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiReallocateRootTable)
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiGetTableHeader
- *
- * PARAMETERS: Signature - ACPI signature of needed table
- * Instance - Which instance (for SSDTs)
- * OutTableHeader - The pointer to the table header to fill
- *
- * RETURN: Status and pointer to mapped table header
- *
- * DESCRIPTION: Finds an ACPI table header.
- *
- * NOTE: Caller is responsible in unmapping the header with
- * AcpiOsUnmapMemory
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiGetTableHeader (
- char *Signature,
- ACPI_NATIVE_UINT Instance,
- ACPI_TABLE_HEADER *OutTableHeader)
-{
- ACPI_NATIVE_UINT i;
- ACPI_NATIVE_UINT j;
- ACPI_TABLE_HEADER *Header;
-
-
- /* Parameter validation */
-
- if (!Signature || !OutTableHeader)
- {
- return (AE_BAD_PARAMETER);
- }
-
- /*
- * Walk the root table list
- */
- for (i = 0, j = 0; i < AcpiGbl_RootTableList.Count; i++)
- {
- if (!ACPI_COMPARE_NAME (&(AcpiGbl_RootTableList.Tables[i].Signature),
- Signature))
- {
- continue;
- }
-
- if (++j < Instance)
- {
- continue;
- }
-
- if (!AcpiGbl_RootTableList.Tables[i].Pointer)
- {
- if ((AcpiGbl_RootTableList.Tables[i].Flags & ACPI_TABLE_ORIGIN_MASK) ==
- ACPI_TABLE_ORIGIN_MAPPED)
- {
- Header = AcpiOsMapMemory (AcpiGbl_RootTableList.Tables[i].Address,
- sizeof (ACPI_TABLE_HEADER));
- if (!Header)
- {
- return AE_NO_MEMORY;
- }
-
- ACPI_MEMCPY (OutTableHeader, Header, sizeof(ACPI_TABLE_HEADER));
- AcpiOsUnmapMemory (Header, sizeof(ACPI_TABLE_HEADER));
- }
-
- else
- {
- return AE_NOT_FOUND;
- }
- }
-
- else
- {
- ACPI_MEMCPY (OutTableHeader, AcpiGbl_RootTableList.Tables[i].Pointer,
- sizeof(ACPI_TABLE_HEADER));
- }
-
- return (AE_OK);
- }
-
- return (AE_NOT_FOUND);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetTableHeader)
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiGetTable
- *
- * PARAMETERS: Signature - ACPI signature of needed table
- * Instance - Which instance (for SSDTs)
- * OutTable - Where the pointer to the table is returned
- *
- * RETURN: Status and pointer to table
- *
- * DESCRIPTION: Finds and verifies an ACPI table.
- *
- *****************************************************************************/
-
-ACPI_STATUS
-AcpiGetTable (
- char *Signature,
- ACPI_NATIVE_UINT Instance,
- ACPI_TABLE_HEADER **OutTable)
-{
- ACPI_NATIVE_UINT i;
- ACPI_NATIVE_UINT j;
- ACPI_STATUS Status;
-
-
- /* Parameter validation */
-
- if (!Signature || !OutTable)
- {
- return (AE_BAD_PARAMETER);
- }
-
- /*
- * Walk the root table list
- */
- for (i = 0, j = 0; i < AcpiGbl_RootTableList.Count; i++)
- {
- if (!ACPI_COMPARE_NAME (&(AcpiGbl_RootTableList.Tables[i].Signature),
- Signature))
- {
- continue;
- }
-
- if (++j < Instance)
- {
- continue;
- }
-
- Status = AcpiTbVerifyTable (&AcpiGbl_RootTableList.Tables[i]);
- if (ACPI_SUCCESS (Status))
- {
- *OutTable = AcpiGbl_RootTableList.Tables[i].Pointer;
- }
-
- return (Status);
- }
-
- return (AE_NOT_FOUND);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetTable)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiGetTableByIndex
- *
- * PARAMETERS: TableIndex - Table index
- * Table - Where the pointer to the table is returned
- *
- * RETURN: Status and pointer to the table
- *
- * DESCRIPTION: Obtain a table by an index into the global table list.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetTableByIndex (
- ACPI_NATIVE_UINT TableIndex,
- ACPI_TABLE_HEADER **Table)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (AcpiGetTableByIndex);
-
-
- /* Parameter validation */
-
- if (!Table)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
-
- /* Validate index */
-
- if (TableIndex >= AcpiGbl_RootTableList.Count)
- {
- (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- if (!AcpiGbl_RootTableList.Tables[TableIndex].Pointer)
- {
- /* Table is not mapped, map it */
-
- Status = AcpiTbVerifyTable (&AcpiGbl_RootTableList.Tables[TableIndex]);
- if (ACPI_FAILURE (Status))
- {
- (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
- return_ACPI_STATUS (Status);
- }
- }
-
- *Table = AcpiGbl_RootTableList.Tables[TableIndex].Pointer;
- (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
- return_ACPI_STATUS (AE_OK);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetTableByIndex)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbLoadNamespace
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Load the namespace from the DSDT and all SSDTs/PSDTs found in
- * the RSDT/XSDT.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiTbLoadNamespace (
- void)
-{
- ACPI_STATUS Status;
- ACPI_TABLE_HEADER *Table;
- ACPI_NATIVE_UINT i;
- BOOLEAN DsdtOverriden;
-
-
- ACPI_FUNCTION_TRACE (TbLoadNamespace);
-
-
- (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
-
- /*
- * Load the namespace. The DSDT is required, but any SSDT and PSDT tables
- * are optional.
- */
- if (!AcpiGbl_RootTableList.Count ||
- !ACPI_COMPARE_NAME (&(AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT].Signature),
- ACPI_SIG_DSDT) ||
- ACPI_FAILURE (AcpiTbVerifyTable(&AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT])))
- {
- Status = AE_NO_ACPI_TABLES;
- goto UnlockAndExit;
- }
-
- /*
- * Find DSDT table
- */
- DsdtOverriden = FALSE;
- Status = AcpiOsTableOverride (
- AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT].Pointer, &Table);
- if (ACPI_SUCCESS (Status) && Table)
- {
- /*
- * DSDT table has been found
- */
- AcpiTbDeleteTable (&AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT]);
- AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT].Pointer = Table;
- AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT].Length = Table->Length;
- AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT].Flags = ACPI_TABLE_ORIGIN_UNKNOWN;
- DsdtOverriden = TRUE;
-
- ACPI_INFO ((AE_INFO, "Table DSDT replaced by host OS"));
- AcpiTbPrintTableHeader (0, Table);
- }
-
- Status = AcpiTbVerifyTable (&AcpiGbl_RootTableList.Tables[ACPI_TABLE_INDEX_DSDT]);
- if (ACPI_FAILURE (Status))
- {
- /* A valid DSDT is required */
-
- Status = AE_NO_ACPI_TABLES;
- goto UnlockAndExit;
- }
-
- (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
-
- /*
- * Load and parse tables.
- */
- Status = AcpiNsLoadTable (ACPI_TABLE_INDEX_DSDT, AcpiGbl_RootNode);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * Load any SSDT or PSDT tables. Note: Loop leaves tables locked
- */
- (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
- for (i = 2; i < AcpiGbl_RootTableList.Count; ++i)
- {
- if ((!ACPI_COMPARE_NAME (&(AcpiGbl_RootTableList.Tables[i].Signature),
- ACPI_SIG_SSDT) &&
- !ACPI_COMPARE_NAME (&(AcpiGbl_RootTableList.Tables[i].Signature),
- ACPI_SIG_PSDT)) ||
- ACPI_FAILURE (AcpiTbVerifyTable (&AcpiGbl_RootTableList.Tables[i])))
- {
- continue;
- }
-
- /* Delete SSDT when DSDT is overriden */
-
- if (ACPI_COMPARE_NAME (&(AcpiGbl_RootTableList.Tables[i].Signature),
- ACPI_SIG_SSDT) && DsdtOverriden)
- {
- AcpiTbDeleteTable (&AcpiGbl_RootTableList.Tables[i]);
- continue;
- }
-
- /* Ignore errors while loading tables, get as many as possible */
-
- (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
- (void) AcpiNsLoadTable (i, AcpiGbl_RootNode);
- (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INIT, "ACPI Tables successfully acquired\n"));
-
-UnlockAndExit:
- (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiLoadTables
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Load the ACPI tables from the RSDT/XSDT
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiLoadTables (
- void)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (AcpiLoadTables);
-
-
- /*
- * Load the namespace from the tables
- */
- Status = AcpiTbLoadNamespace ();
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status, "While loading namespace from ACPI tables"));
- }
-
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiLoadTables)
-
diff --git a/sys/contrib/dev/acpica/tbxfroot.c b/sys/contrib/dev/acpica/tbxfroot.c
deleted file mode 100644
index afc30ad..0000000
--- a/sys/contrib/dev/acpica/tbxfroot.c
+++ /dev/null
@@ -1,370 +0,0 @@
-/******************************************************************************
- *
- * Module Name: tbxfroot - Find the root ACPI table (RSDT)
- * $Revision: 1.105 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __TBXFROOT_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/actables.h>
-
-
-#define _COMPONENT ACPI_TABLES
- ACPI_MODULE_NAME ("tbxfroot")
-
-/* Local prototypes */
-
-static UINT8 *
-AcpiTbScanMemoryForRsdp (
- UINT8 *StartAddress,
- UINT32 Length);
-
-static ACPI_STATUS
-AcpiTbValidateRsdp (
- ACPI_TABLE_RSDP *Rsdp);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbValidateRsdp
- *
- * PARAMETERS: Rsdp - Pointer to unvalidated RSDP
- *
- * RETURN: Status
- *
- * DESCRIPTION: Validate the RSDP (ptr)
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiTbValidateRsdp (
- ACPI_TABLE_RSDP *Rsdp)
-{
- ACPI_FUNCTION_ENTRY ();
-
-
- /*
- * The signature and checksum must both be correct
- *
- * Note: Sometimes there exists more than one RSDP in memory; the valid
- * RSDP has a valid checksum, all others have an invalid checksum.
- */
- if (ACPI_STRNCMP ((char *) Rsdp, ACPI_SIG_RSDP, sizeof (ACPI_SIG_RSDP)-1) != 0)
- {
- /* Nope, BAD Signature */
-
- return (AE_BAD_SIGNATURE);
- }
-
- /* Check the standard checksum */
-
- if (AcpiTbChecksum ((UINT8 *) Rsdp, ACPI_RSDP_CHECKSUM_LENGTH) != 0)
- {
- return (AE_BAD_CHECKSUM);
- }
-
- /* Check extended checksum if table version >= 2 */
-
- if ((Rsdp->Revision >= 2) &&
- (AcpiTbChecksum ((UINT8 *) Rsdp, ACPI_RSDP_XCHECKSUM_LENGTH) != 0))
- {
- return (AE_BAD_CHECKSUM);
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbFindRsdp
- *
- * PARAMETERS: TableAddress - Where the table pointer is returned
- *
- * RETURN: Status, RSDP physical address
- *
- * DESCRIPTION: Search lower 1Mbyte of memory for the root system descriptor
- * pointer structure. If it is found, set *RSDP to point to it.
- *
- * NOTE1: The RSDP must be either in the first 1K of the Extended
- * BIOS Data Area or between E0000 and FFFFF (From ACPI Spec.)
- * Only a 32-bit physical address is necessary.
- *
- * NOTE2: This function is always available, regardless of the
- * initialization state of the rest of ACPI.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiFindRootPointer (
- ACPI_NATIVE_UINT *TableAddress)
-{
- UINT8 *TablePtr;
- UINT8 *MemRover;
- UINT32 PhysicalAddress;
-
-
- ACPI_FUNCTION_TRACE (AcpiFindRootPointer);
-
-
- /* 1a) Get the location of the Extended BIOS Data Area (EBDA) */
-
- TablePtr = AcpiOsMapMemory (
- (ACPI_PHYSICAL_ADDRESS) ACPI_EBDA_PTR_LOCATION,
- ACPI_EBDA_PTR_LENGTH);
- if (!TablePtr)
- {
- ACPI_ERROR ((AE_INFO,
- "Could not map memory at %8.8X for length %X",
- ACPI_EBDA_PTR_LOCATION, ACPI_EBDA_PTR_LENGTH));
-
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- ACPI_MOVE_16_TO_32 (&PhysicalAddress, TablePtr);
-
- /* Convert segment part to physical address */
-
- PhysicalAddress <<= 4;
- AcpiOsUnmapMemory (TablePtr, ACPI_EBDA_PTR_LENGTH);
-
- /* EBDA present? */
-
- if (PhysicalAddress > 0x400)
- {
- /*
- * 1b) Search EBDA paragraphs (EBDA is required to be a
- * minimum of 1K length)
- */
- TablePtr = AcpiOsMapMemory (
- (ACPI_NATIVE_UINT) PhysicalAddress,
- ACPI_EBDA_WINDOW_SIZE);
- if (!TablePtr)
- {
- ACPI_ERROR ((AE_INFO,
- "Could not map memory at %8.8X for length %X",
- PhysicalAddress, ACPI_EBDA_WINDOW_SIZE));
-
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- MemRover = AcpiTbScanMemoryForRsdp (TablePtr, ACPI_EBDA_WINDOW_SIZE);
- AcpiOsUnmapMemory (TablePtr, ACPI_EBDA_WINDOW_SIZE);
-
- if (MemRover)
- {
- /* Return the physical address */
-
- PhysicalAddress += (UINT32) ACPI_PTR_DIFF (MemRover, TablePtr);
-
- *TableAddress = PhysicalAddress;
- return_ACPI_STATUS (AE_OK);
- }
- }
-
- /*
- * 2) Search upper memory: 16-byte boundaries in E0000h-FFFFFh
- */
- TablePtr = AcpiOsMapMemory (
- (ACPI_PHYSICAL_ADDRESS) ACPI_HI_RSDP_WINDOW_BASE,
- ACPI_HI_RSDP_WINDOW_SIZE);
-
- if (!TablePtr)
- {
- ACPI_ERROR ((AE_INFO,
- "Could not map memory at %8.8X for length %X",
- ACPI_HI_RSDP_WINDOW_BASE, ACPI_HI_RSDP_WINDOW_SIZE));
-
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- MemRover = AcpiTbScanMemoryForRsdp (TablePtr, ACPI_HI_RSDP_WINDOW_SIZE);
- AcpiOsUnmapMemory (TablePtr, ACPI_HI_RSDP_WINDOW_SIZE);
-
- if (MemRover)
- {
- /* Return the physical address */
-
- PhysicalAddress = (UINT32)
- (ACPI_HI_RSDP_WINDOW_BASE + ACPI_PTR_DIFF (MemRover, TablePtr));
-
- *TableAddress = PhysicalAddress;
- return_ACPI_STATUS (AE_OK);
- }
-
- /* A valid RSDP was not found */
-
- ACPI_ERROR ((AE_INFO, "A valid RSDP was not found"));
- return_ACPI_STATUS (AE_NOT_FOUND);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiFindRootPointer)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTbScanMemoryForRsdp
- *
- * PARAMETERS: StartAddress - Starting pointer for search
- * Length - Maximum length to search
- *
- * RETURN: Pointer to the RSDP if found, otherwise NULL.
- *
- * DESCRIPTION: Search a block of memory for the RSDP signature
- *
- ******************************************************************************/
-
-static UINT8 *
-AcpiTbScanMemoryForRsdp (
- UINT8 *StartAddress,
- UINT32 Length)
-{
- ACPI_STATUS Status;
- UINT8 *MemRover;
- UINT8 *EndAddress;
-
-
- ACPI_FUNCTION_TRACE (TbScanMemoryForRsdp);
-
-
- EndAddress = StartAddress + Length;
-
- /* Search from given start address for the requested length */
-
- for (MemRover = StartAddress; MemRover < EndAddress;
- MemRover += ACPI_RSDP_SCAN_STEP)
- {
- /* The RSDP signature and checksum must both be correct */
-
- Status = AcpiTbValidateRsdp (ACPI_CAST_PTR (ACPI_TABLE_RSDP, MemRover));
- if (ACPI_SUCCESS (Status))
- {
- /* Sig and checksum valid, we have found a real RSDP */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "RSDP located at physical address %p\n", MemRover));
- return_PTR (MemRover);
- }
-
- /* No sig match or bad checksum, keep searching */
- }
-
- /* Searched entire block, no RSDP was found */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "Searched entire block from %p, valid RSDP was not found\n",
- StartAddress));
- return_PTR (NULL);
-}
-
diff --git a/sys/contrib/dev/acpica/utalloc.c b/sys/contrib/dev/acpica/utalloc.c
deleted file mode 100644
index d1528e3..0000000
--- a/sys/contrib/dev/acpica/utalloc.c
+++ /dev/null
@@ -1,482 +0,0 @@
-/******************************************************************************
- *
- * Module Name: utalloc - local memory allocation routines
- * $Revision: 1.164 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __UTALLOC_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acdebug.h>
-
-#define _COMPONENT ACPI_UTILITIES
- ACPI_MODULE_NAME ("utalloc")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCreateCaches
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create all local caches
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtCreateCaches (
- void)
-{
- ACPI_STATUS Status;
-
-
- /* Object Caches, for frequently used objects */
-
- Status = AcpiOsCreateCache ("Acpi-Namespace", sizeof (ACPI_NAMESPACE_NODE),
- ACPI_MAX_NAMESPACE_CACHE_DEPTH, &AcpiGbl_NamespaceCache);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- Status = AcpiOsCreateCache ("Acpi-State", sizeof (ACPI_GENERIC_STATE),
- ACPI_MAX_STATE_CACHE_DEPTH, &AcpiGbl_StateCache);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- Status = AcpiOsCreateCache ("Acpi-Parse", sizeof (ACPI_PARSE_OBJ_COMMON),
- ACPI_MAX_PARSE_CACHE_DEPTH, &AcpiGbl_PsNodeCache);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- Status = AcpiOsCreateCache ("Acpi-ParseExt", sizeof (ACPI_PARSE_OBJ_NAMED),
- ACPI_MAX_EXTPARSE_CACHE_DEPTH, &AcpiGbl_PsNodeExtCache);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- Status = AcpiOsCreateCache ("Acpi-Operand", sizeof (ACPI_OPERAND_OBJECT),
- ACPI_MAX_OBJECT_CACHE_DEPTH, &AcpiGbl_OperandCache);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-
- /* Memory allocation lists */
-
- Status = AcpiUtCreateList ("Acpi-Global", 0,
- &AcpiGbl_GlobalList);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- Status = AcpiUtCreateList ("Acpi-Namespace", sizeof (ACPI_NAMESPACE_NODE),
- &AcpiGbl_NsNodeList);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-#endif
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtDeleteCaches
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Purge and delete all local caches
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtDeleteCaches (
- void)
-{
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
- char Buffer[7];
-
- if (AcpiGbl_DisplayFinalMemStats)
- {
- ACPI_STRCPY (Buffer, "MEMORY");
- AcpiDbDisplayStatistics (Buffer);
- }
-#endif
-
- (void) AcpiOsDeleteCache (AcpiGbl_NamespaceCache);
- AcpiGbl_NamespaceCache = NULL;
-
- (void) AcpiOsDeleteCache (AcpiGbl_StateCache);
- AcpiGbl_StateCache = NULL;
-
- (void) AcpiOsDeleteCache (AcpiGbl_OperandCache);
- AcpiGbl_OperandCache = NULL;
-
- (void) AcpiOsDeleteCache (AcpiGbl_PsNodeCache);
- AcpiGbl_PsNodeCache = NULL;
-
- (void) AcpiOsDeleteCache (AcpiGbl_PsNodeExtCache);
- AcpiGbl_PsNodeExtCache = NULL;
-
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-
- /* Debug only - display leftover memory allocation, if any */
-
- AcpiUtDumpAllocations (ACPI_UINT32_MAX, NULL);
-
- /* Free memory lists */
-
- AcpiOsFree (AcpiGbl_GlobalList);
- AcpiGbl_GlobalList = NULL;
-
- AcpiOsFree (AcpiGbl_NsNodeList);
- AcpiGbl_NsNodeList = NULL;
-#endif
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtValidateBuffer
- *
- * PARAMETERS: Buffer - Buffer descriptor to be validated
- *
- * RETURN: Status
- *
- * DESCRIPTION: Perform parameter validation checks on an ACPI_BUFFER
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtValidateBuffer (
- ACPI_BUFFER *Buffer)
-{
-
- /* Obviously, the structure pointer must be valid */
-
- if (!Buffer)
- {
- return (AE_BAD_PARAMETER);
- }
-
- /* Special semantics for the length */
-
- if ((Buffer->Length == ACPI_NO_BUFFER) ||
- (Buffer->Length == ACPI_ALLOCATE_BUFFER) ||
- (Buffer->Length == ACPI_ALLOCATE_LOCAL_BUFFER))
- {
- return (AE_OK);
- }
-
- /* Length is valid, the buffer pointer must be also */
-
- if (!Buffer->Pointer)
- {
- return (AE_BAD_PARAMETER);
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtInitializeBuffer
- *
- * PARAMETERS: Buffer - Buffer to be validated
- * RequiredLength - Length needed
- *
- * RETURN: Status
- *
- * DESCRIPTION: Validate that the buffer is of the required length or
- * allocate a new buffer. Returned buffer is always zeroed.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtInitializeBuffer (
- ACPI_BUFFER *Buffer,
- ACPI_SIZE RequiredLength)
-{
- ACPI_STATUS Status = AE_OK;
-
-
- switch (Buffer->Length)
- {
- case ACPI_NO_BUFFER:
-
- /* Set the exception and returned the required length */
-
- Status = AE_BUFFER_OVERFLOW;
- break;
-
-
- case ACPI_ALLOCATE_BUFFER:
-
- /* Allocate a new buffer */
-
- Buffer->Pointer = AcpiOsAllocate (RequiredLength);
- if (!Buffer->Pointer)
- {
- return (AE_NO_MEMORY);
- }
-
- /* Clear the buffer */
-
- ACPI_MEMSET (Buffer->Pointer, 0, RequiredLength);
- break;
-
-
- case ACPI_ALLOCATE_LOCAL_BUFFER:
-
- /* Allocate a new buffer with local interface to allow tracking */
-
- Buffer->Pointer = ACPI_ALLOCATE_ZEROED (RequiredLength);
- if (!Buffer->Pointer)
- {
- return (AE_NO_MEMORY);
- }
- break;
-
-
- default:
-
- /* Existing buffer: Validate the size of the buffer */
-
- if (Buffer->Length < RequiredLength)
- {
- Status = AE_BUFFER_OVERFLOW;
- break;
- }
-
- /* Clear the buffer */
-
- ACPI_MEMSET (Buffer->Pointer, 0, RequiredLength);
- break;
- }
-
- Buffer->Length = RequiredLength;
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtAllocate
- *
- * PARAMETERS: Size - Size of the allocation
- * Component - Component type of caller
- * Module - Source file name of caller
- * Line - Line number of caller
- *
- * RETURN: Address of the allocated memory on success, NULL on failure.
- *
- * DESCRIPTION: Subsystem equivalent of malloc.
- *
- ******************************************************************************/
-
-void *
-AcpiUtAllocate (
- ACPI_SIZE Size,
- UINT32 Component,
- char *Module,
- UINT32 Line)
-{
- void *Allocation;
-
-
- ACPI_FUNCTION_TRACE_U32 (UtAllocate, Size);
-
-
- /* Check for an inadvertent size of zero bytes */
-
- if (!Size)
- {
- ACPI_WARNING ((Module, Line,
- "Attempt to allocate zero bytes, allocating 1 byte"));
- Size = 1;
- }
-
- Allocation = AcpiOsAllocate (Size);
- if (!Allocation)
- {
- /* Report allocation error */
-
- ACPI_WARNING ((Module, Line,
- "Could not allocate size %X", (UINT32) Size));
-
- return_PTR (NULL);
- }
-
- return_PTR (Allocation);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtAllocateZeroed
- *
- * PARAMETERS: Size - Size of the allocation
- * Component - Component type of caller
- * Module - Source file name of caller
- * Line - Line number of caller
- *
- * RETURN: Address of the allocated memory on success, NULL on failure.
- *
- * DESCRIPTION: Subsystem equivalent of calloc. Allocate and zero memory.
- *
- ******************************************************************************/
-
-void *
-AcpiUtAllocateZeroed (
- ACPI_SIZE Size,
- UINT32 Component,
- char *Module,
- UINT32 Line)
-{
- void *Allocation;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- Allocation = AcpiUtAllocate (Size, Component, Module, Line);
- if (Allocation)
- {
- /* Clear the memory block */
-
- ACPI_MEMSET (Allocation, 0, Size);
- }
-
- return (Allocation);
-}
-
diff --git a/sys/contrib/dev/acpica/utcache.c b/sys/contrib/dev/acpica/utcache.c
deleted file mode 100644
index 56e88b3..0000000
--- a/sys/contrib/dev/acpica/utcache.c
+++ /dev/null
@@ -1,425 +0,0 @@
-/******************************************************************************
- *
- * Module Name: utcache - local cache allocation routines
- * $Revision: 1.8 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __UTCACHE_C__
-
-#include <contrib/dev/acpica/acpi.h>
-
-#define _COMPONENT ACPI_UTILITIES
- ACPI_MODULE_NAME ("utcache")
-
-
-#ifdef ACPI_USE_LOCAL_CACHE
-/*******************************************************************************
- *
- * FUNCTION: AcpiOsCreateCache
- *
- * PARAMETERS: CacheName - Ascii name for the cache
- * ObjectSize - Size of each cached object
- * MaxDepth - Maximum depth of the cache (in objects)
- * ReturnCache - Where the new cache object is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create a cache object
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiOsCreateCache (
- char *CacheName,
- UINT16 ObjectSize,
- UINT16 MaxDepth,
- ACPI_MEMORY_LIST **ReturnCache)
-{
- ACPI_MEMORY_LIST *Cache;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- if (!CacheName || !ReturnCache || (ObjectSize < 16))
- {
- return (AE_BAD_PARAMETER);
- }
-
- /* Create the cache object */
-
- Cache = AcpiOsAllocate (sizeof (ACPI_MEMORY_LIST));
- if (!Cache)
- {
- return (AE_NO_MEMORY);
- }
-
- /* Populate the cache object and return it */
-
- ACPI_MEMSET (Cache, 0, sizeof (ACPI_MEMORY_LIST));
- Cache->LinkOffset = 8;
- Cache->ListName = CacheName;
- Cache->ObjectSize = ObjectSize;
- Cache->MaxDepth = MaxDepth;
-
- *ReturnCache = Cache;
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiOsPurgeCache
- *
- * PARAMETERS: Cache - Handle to cache object
- *
- * RETURN: Status
- *
- * DESCRIPTION: Free all objects within the requested cache.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiOsPurgeCache (
- ACPI_MEMORY_LIST *Cache)
-{
- char *Next;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- if (!Cache)
- {
- return (AE_BAD_PARAMETER);
- }
-
- /* Walk the list of objects in this cache */
-
- while (Cache->ListHead)
- {
- /* Delete and unlink one cached state object */
-
- Next = *(ACPI_CAST_INDIRECT_PTR (char,
- &(((char *) Cache->ListHead)[Cache->LinkOffset])));
- ACPI_FREE (Cache->ListHead);
-
- Cache->ListHead = Next;
- Cache->CurrentDepth--;
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiOsDeleteCache
- *
- * PARAMETERS: Cache - Handle to cache object
- *
- * RETURN: Status
- *
- * DESCRIPTION: Free all objects within the requested cache and delete the
- * cache object.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiOsDeleteCache (
- ACPI_MEMORY_LIST *Cache)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /* Purge all objects in the cache */
-
- Status = AcpiOsPurgeCache (Cache);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- /* Now we can delete the cache object */
-
- AcpiOsFree (Cache);
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiOsReleaseObject
- *
- * PARAMETERS: Cache - Handle to cache object
- * Object - The object to be released
- *
- * RETURN: None
- *
- * DESCRIPTION: Release an object to the specified cache. If cache is full,
- * the object is deleted.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiOsReleaseObject (
- ACPI_MEMORY_LIST *Cache,
- void *Object)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- if (!Cache || !Object)
- {
- return (AE_BAD_PARAMETER);
- }
-
- /* If cache is full, just free this object */
-
- if (Cache->CurrentDepth >= Cache->MaxDepth)
- {
- ACPI_FREE (Object);
- ACPI_MEM_TRACKING (Cache->TotalFreed++);
- }
-
- /* Otherwise put this object back into the cache */
-
- else
- {
- Status = AcpiUtAcquireMutex (ACPI_MTX_CACHES);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- /* Mark the object as cached */
-
- ACPI_MEMSET (Object, 0xCA, Cache->ObjectSize);
- ACPI_SET_DESCRIPTOR_TYPE (Object, ACPI_DESC_TYPE_CACHED);
-
- /* Put the object at the head of the cache list */
-
- * (ACPI_CAST_INDIRECT_PTR (char,
- &(((char *) Object)[Cache->LinkOffset]))) = Cache->ListHead;
- Cache->ListHead = Object;
- Cache->CurrentDepth++;
-
- (void) AcpiUtReleaseMutex (ACPI_MTX_CACHES);
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiOsAcquireObject
- *
- * PARAMETERS: Cache - Handle to cache object
- *
- * RETURN: the acquired object. NULL on error
- *
- * DESCRIPTION: Get an object from the specified cache. If cache is empty,
- * the object is allocated.
- *
- ******************************************************************************/
-
-void *
-AcpiOsAcquireObject (
- ACPI_MEMORY_LIST *Cache)
-{
- ACPI_STATUS Status;
- void *Object;
-
-
- ACPI_FUNCTION_NAME (OsAcquireObject);
-
-
- if (!Cache)
- {
- return (NULL);
- }
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_CACHES);
- if (ACPI_FAILURE (Status))
- {
- return (NULL);
- }
-
- ACPI_MEM_TRACKING (Cache->Requests++);
-
- /* Check the cache first */
-
- if (Cache->ListHead)
- {
- /* There is an object available, use it */
-
- Object = Cache->ListHead;
- Cache->ListHead = *(ACPI_CAST_INDIRECT_PTR (char,
- &(((char *) Object)[Cache->LinkOffset])));
-
- Cache->CurrentDepth--;
-
- ACPI_MEM_TRACKING (Cache->Hits++);
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "Object %p from %s cache\n", Object, Cache->ListName));
-
- Status = AcpiUtReleaseMutex (ACPI_MTX_CACHES);
- if (ACPI_FAILURE (Status))
- {
- return (NULL);
- }
-
- /* Clear (zero) the previously used Object */
-
- ACPI_MEMSET (Object, 0, Cache->ObjectSize);
- }
- else
- {
- /* The cache is empty, create a new object */
-
- ACPI_MEM_TRACKING (Cache->TotalAllocated++);
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
- if ((Cache->TotalAllocated - Cache->TotalFreed) > Cache->MaxOccupied)
- {
- Cache->MaxOccupied = Cache->TotalAllocated - Cache->TotalFreed;
- }
-#endif
-
- /* Avoid deadlock with ACPI_ALLOCATE_ZEROED */
-
- Status = AcpiUtReleaseMutex (ACPI_MTX_CACHES);
- if (ACPI_FAILURE (Status))
- {
- return (NULL);
- }
-
- Object = ACPI_ALLOCATE_ZEROED (Cache->ObjectSize);
- if (!Object)
- {
- return (NULL);
- }
- }
-
- return (Object);
-}
-#endif /* ACPI_USE_LOCAL_CACHE */
-
-
diff --git a/sys/contrib/dev/acpica/utclib.c b/sys/contrib/dev/acpica/utclib.c
deleted file mode 100644
index 77e0d0e..0000000
--- a/sys/contrib/dev/acpica/utclib.c
+++ /dev/null
@@ -1,961 +0,0 @@
-/******************************************************************************
- *
- * Module Name: cmclib - Local implementation of C library functions
- * $Revision: 1.60 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __CMCLIB_C__
-
-#include <contrib/dev/acpica/acpi.h>
-
-/*
- * These implementations of standard C Library routines can optionally be
- * used if a C library is not available. In general, they are less efficient
- * than an inline or assembly implementation
- */
-
-#define _COMPONENT ACPI_UTILITIES
- ACPI_MODULE_NAME ("cmclib")
-
-
-#ifndef ACPI_USE_SYSTEM_CLIBRARY
-
-#define NEGATIVE 1
-#define POSITIVE 0
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtMemcmp (memcmp)
- *
- * PARAMETERS: Buffer1 - First Buffer
- * Buffer2 - Second Buffer
- * Count - Maximum # of bytes to compare
- *
- * RETURN: Index where Buffers mismatched, or 0 if Buffers matched
- *
- * DESCRIPTION: Compare two Buffers, with a maximum length
- *
- ******************************************************************************/
-
-int
-AcpiUtMemcmp (
- const char *Buffer1,
- const char *Buffer2,
- ACPI_SIZE Count)
-{
-
- for ( ; Count-- && (*Buffer1 == *Buffer2); Buffer1++, Buffer2++)
- {
- }
-
- return ((Count == ACPI_SIZE_MAX) ? 0 : ((unsigned char) *Buffer1 -
- (unsigned char) *Buffer2));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtMemcpy (memcpy)
- *
- * PARAMETERS: Dest - Target of the copy
- * Src - Source buffer to copy
- * Count - Number of bytes to copy
- *
- * RETURN: Dest
- *
- * DESCRIPTION: Copy arbitrary bytes of memory
- *
- ******************************************************************************/
-
-void *
-AcpiUtMemcpy (
- void *Dest,
- const void *Src,
- ACPI_SIZE Count)
-{
- char *New = (char *) Dest;
- char *Old = (char *) Src;
-
-
- while (Count)
- {
- *New = *Old;
- New++;
- Old++;
- Count--;
- }
-
- return (Dest);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtMemset (memset)
- *
- * PARAMETERS: Dest - Buffer to set
- * Value - Value to set each byte of memory
- * Count - Number of bytes to set
- *
- * RETURN: Dest
- *
- * DESCRIPTION: Initialize a buffer to a known value.
- *
- ******************************************************************************/
-
-void *
-AcpiUtMemset (
- void *Dest,
- ACPI_NATIVE_UINT Value,
- ACPI_SIZE Count)
-{
- char *New = (char *) Dest;
-
-
- while (Count)
- {
- *New = (char) Value;
- New++;
- Count--;
- }
-
- return (Dest);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtStrlen (strlen)
- *
- * PARAMETERS: String - Null terminated string
- *
- * RETURN: Length
- *
- * DESCRIPTION: Returns the length of the input string
- *
- ******************************************************************************/
-
-
-ACPI_SIZE
-AcpiUtStrlen (
- const char *String)
-{
- UINT32 Length = 0;
-
-
- /* Count the string until a null is encountered */
-
- while (*String)
- {
- Length++;
- String++;
- }
-
- return (Length);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtStrcpy (strcpy)
- *
- * PARAMETERS: DstString - Target of the copy
- * SrcString - The source string to copy
- *
- * RETURN: DstString
- *
- * DESCRIPTION: Copy a null terminated string
- *
- ******************************************************************************/
-
-char *
-AcpiUtStrcpy (
- char *DstString,
- const char *SrcString)
-{
- char *String = DstString;
-
-
- /* Move bytes brute force */
-
- while (*SrcString)
- {
- *String = *SrcString;
-
- String++;
- SrcString++;
- }
-
- /* Null terminate */
-
- *String = 0;
- return (DstString);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtStrncpy (strncpy)
- *
- * PARAMETERS: DstString - Target of the copy
- * SrcString - The source string to copy
- * Count - Maximum # of bytes to copy
- *
- * RETURN: DstString
- *
- * DESCRIPTION: Copy a null terminated string, with a maximum length
- *
- ******************************************************************************/
-
-char *
-AcpiUtStrncpy (
- char *DstString,
- const char *SrcString,
- ACPI_SIZE Count)
-{
- char *String = DstString;
-
-
- /* Copy the string */
-
- for (String = DstString;
- Count && (Count--, (*String++ = *SrcString++)); )
- {;}
-
- /* Pad with nulls if necessary */
-
- while (Count--)
- {
- *String = 0;
- String++;
- }
-
- /* Return original pointer */
-
- return (DstString);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtStrcmp (strcmp)
- *
- * PARAMETERS: String1 - First string
- * String2 - Second string
- *
- * RETURN: Index where strings mismatched, or 0 if strings matched
- *
- * DESCRIPTION: Compare two null terminated strings
- *
- ******************************************************************************/
-
-int
-AcpiUtStrcmp (
- const char *String1,
- const char *String2)
-{
-
-
- for ( ; (*String1 == *String2); String2++)
- {
- if (!*String1++)
- {
- return (0);
- }
- }
-
- return ((unsigned char) *String1 - (unsigned char) *String2);
-}
-
-
-#ifdef ACPI_FUTURE_IMPLEMENTATION
-/* Not used at this time */
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtStrchr (strchr)
- *
- * PARAMETERS: String - Search string
- * ch - character to search for
- *
- * RETURN: Ptr to char or NULL if not found
- *
- * DESCRIPTION: Search a string for a character
- *
- ******************************************************************************/
-
-char *
-AcpiUtStrchr (
- const char *String,
- int ch)
-{
-
-
- for ( ; (*String); String++)
- {
- if ((*String) == (char) ch)
- {
- return ((char *) String);
- }
- }
-
- return (NULL);
-}
-#endif
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtStrncmp (strncmp)
- *
- * PARAMETERS: String1 - First string
- * String2 - Second string
- * Count - Maximum # of bytes to compare
- *
- * RETURN: Index where strings mismatched, or 0 if strings matched
- *
- * DESCRIPTION: Compare two null terminated strings, with a maximum length
- *
- ******************************************************************************/
-
-int
-AcpiUtStrncmp (
- const char *String1,
- const char *String2,
- ACPI_SIZE Count)
-{
-
-
- for ( ; Count-- && (*String1 == *String2); String2++)
- {
- if (!*String1++)
- {
- return (0);
- }
- }
-
- return ((Count == ACPI_SIZE_MAX) ? 0 : ((unsigned char) *String1 -
- (unsigned char) *String2));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtStrcat (Strcat)
- *
- * PARAMETERS: DstString - Target of the copy
- * SrcString - The source string to copy
- *
- * RETURN: DstString
- *
- * DESCRIPTION: Append a null terminated string to a null terminated string
- *
- ******************************************************************************/
-
-char *
-AcpiUtStrcat (
- char *DstString,
- const char *SrcString)
-{
- char *String;
-
-
- /* Find end of the destination string */
-
- for (String = DstString; *String++; )
- { ; }
-
- /* Concatenate the string */
-
- for (--String; (*String++ = *SrcString++); )
- { ; }
-
- return (DstString);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtStrncat (strncat)
- *
- * PARAMETERS: DstString - Target of the copy
- * SrcString - The source string to copy
- * Count - Maximum # of bytes to copy
- *
- * RETURN: DstString
- *
- * DESCRIPTION: Append a null terminated string to a null terminated string,
- * with a maximum count.
- *
- ******************************************************************************/
-
-char *
-AcpiUtStrncat (
- char *DstString,
- const char *SrcString,
- ACPI_SIZE Count)
-{
- char *String;
-
-
- if (Count)
- {
- /* Find end of the destination string */
-
- for (String = DstString; *String++; )
- { ; }
-
- /* Concatenate the string */
-
- for (--String; (*String++ = *SrcString++) && --Count; )
- { ; }
-
- /* Null terminate if necessary */
-
- if (!Count)
- {
- *String = 0;
- }
- }
-
- return (DstString);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtStrstr (strstr)
- *
- * PARAMETERS: String1 - Target string
- * String2 - Substring to search for
- *
- * RETURN: Where substring match starts, Null if no match found
- *
- * DESCRIPTION: Checks if String2 occurs in String1. This is not really a
- * full implementation of strstr, only sufficient for command
- * matching
- *
- ******************************************************************************/
-
-char *
-AcpiUtStrstr (
- char *String1,
- char *String2)
-{
- char *String;
-
-
- if (AcpiUtStrlen (String2) > AcpiUtStrlen (String1))
- {
- return (NULL);
- }
-
- /* Walk entire string, comparing the letters */
-
- for (String = String1; *String2; )
- {
- if (*String2 != *String)
- {
- return (NULL);
- }
-
- String2++;
- String++;
- }
-
- return (String1);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtStrtoul (strtoul)
- *
- * PARAMETERS: String - Null terminated string
- * Terminater - Where a pointer to the terminating byte is
- * returned
- * Base - Radix of the string
- *
- * RETURN: Converted value
- *
- * DESCRIPTION: Convert a string into a 32-bit unsigned value.
- * Note: use AcpiUtStrtoul64 for 64-bit integers.
- *
- ******************************************************************************/
-
-UINT32
-AcpiUtStrtoul (
- const char *String,
- char **Terminator,
- UINT32 Base)
-{
- UINT32 converted = 0;
- UINT32 index;
- UINT32 sign;
- const char *StringStart;
- UINT32 ReturnValue = 0;
- ACPI_STATUS Status = AE_OK;
-
-
- /*
- * Save the value of the pointer to the buffer's first
- * character, save the current errno value, and then
- * skip over any white space in the buffer:
- */
- StringStart = String;
- while (ACPI_IS_SPACE (*String) || *String == '\t')
- {
- ++String;
- }
-
- /*
- * The buffer may contain an optional plus or minus sign.
- * If it does, then skip over it but remember what is was:
- */
- if (*String == '-')
- {
- sign = NEGATIVE;
- ++String;
- }
- else if (*String == '+')
- {
- ++String;
- sign = POSITIVE;
- }
- else
- {
- sign = POSITIVE;
- }
-
- /*
- * If the input parameter Base is zero, then we need to
- * determine if it is octal, decimal, or hexadecimal:
- */
- if (Base == 0)
- {
- if (*String == '0')
- {
- if (AcpiUtToLower (*(++String)) == 'x')
- {
- Base = 16;
- ++String;
- }
- else
- {
- Base = 8;
- }
- }
- else
- {
- Base = 10;
- }
- }
- else if (Base < 2 || Base > 36)
- {
- /*
- * The specified Base parameter is not in the domain of
- * this function:
- */
- goto done;
- }
-
- /*
- * For octal and hexadecimal bases, skip over the leading
- * 0 or 0x, if they are present.
- */
- if (Base == 8 && *String == '0')
- {
- String++;
- }
-
- if (Base == 16 &&
- *String == '0' &&
- AcpiUtToLower (*(++String)) == 'x')
- {
- String++;
- }
-
- /*
- * Main loop: convert the string to an unsigned long:
- */
- while (*String)
- {
- if (ACPI_IS_DIGIT (*String))
- {
- index = (UINT32) ((UINT8) *String - '0');
- }
- else
- {
- index = (UINT32) AcpiUtToUpper (*String);
- if (ACPI_IS_UPPER (index))
- {
- index = index - 'A' + 10;
- }
- else
- {
- goto done;
- }
- }
-
- if (index >= Base)
- {
- goto done;
- }
-
- /*
- * Check to see if value is out of range:
- */
-
- if (ReturnValue > ((ACPI_UINT32_MAX - (UINT32) index) /
- (UINT32) Base))
- {
- Status = AE_ERROR;
- ReturnValue = 0; /* reset */
- }
- else
- {
- ReturnValue *= Base;
- ReturnValue += index;
- converted = 1;
- }
-
- ++String;
- }
-
-done:
- /*
- * If appropriate, update the caller's pointer to the next
- * unconverted character in the buffer.
- */
- if (Terminator)
- {
- if (converted == 0 && ReturnValue == 0 && String != NULL)
- {
- *Terminator = (char *) StringStart;
- }
- else
- {
- *Terminator = (char *) String;
- }
- }
-
- if (Status == AE_ERROR)
- {
- ReturnValue = ACPI_UINT32_MAX;
- }
-
- /*
- * If a minus sign was present, then "the conversion is negated":
- */
- if (sign == NEGATIVE)
- {
- ReturnValue = (ACPI_UINT32_MAX - ReturnValue) + 1;
- }
-
- return (ReturnValue);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtToUpper (TOUPPER)
- *
- * PARAMETERS: c - Character to convert
- *
- * RETURN: Converted character as an int
- *
- * DESCRIPTION: Convert character to uppercase
- *
- ******************************************************************************/
-
-int
-AcpiUtToUpper (
- int c)
-{
-
- return (ACPI_IS_LOWER(c) ? ((c)-0x20) : (c));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtToLower (TOLOWER)
- *
- * PARAMETERS: c - Character to convert
- *
- * RETURN: Converted character as an int
- *
- * DESCRIPTION: Convert character to lowercase
- *
- ******************************************************************************/
-
-int
-AcpiUtToLower (
- int c)
-{
-
- return (ACPI_IS_UPPER(c) ? ((c)+0x20) : (c));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: is* functions
- *
- * DESCRIPTION: is* functions use the ctype table below
- *
- ******************************************************************************/
-
-const UINT8 _acpi_ctype[257] = {
- _ACPI_CN, /* 0x0 0. */
- _ACPI_CN, /* 0x1 1. */
- _ACPI_CN, /* 0x2 2. */
- _ACPI_CN, /* 0x3 3. */
- _ACPI_CN, /* 0x4 4. */
- _ACPI_CN, /* 0x5 5. */
- _ACPI_CN, /* 0x6 6. */
- _ACPI_CN, /* 0x7 7. */
- _ACPI_CN, /* 0x8 8. */
- _ACPI_CN|_ACPI_SP, /* 0x9 9. */
- _ACPI_CN|_ACPI_SP, /* 0xA 10. */
- _ACPI_CN|_ACPI_SP, /* 0xB 11. */
- _ACPI_CN|_ACPI_SP, /* 0xC 12. */
- _ACPI_CN|_ACPI_SP, /* 0xD 13. */
- _ACPI_CN, /* 0xE 14. */
- _ACPI_CN, /* 0xF 15. */
- _ACPI_CN, /* 0x10 16. */
- _ACPI_CN, /* 0x11 17. */
- _ACPI_CN, /* 0x12 18. */
- _ACPI_CN, /* 0x13 19. */
- _ACPI_CN, /* 0x14 20. */
- _ACPI_CN, /* 0x15 21. */
- _ACPI_CN, /* 0x16 22. */
- _ACPI_CN, /* 0x17 23. */
- _ACPI_CN, /* 0x18 24. */
- _ACPI_CN, /* 0x19 25. */
- _ACPI_CN, /* 0x1A 26. */
- _ACPI_CN, /* 0x1B 27. */
- _ACPI_CN, /* 0x1C 28. */
- _ACPI_CN, /* 0x1D 29. */
- _ACPI_CN, /* 0x1E 30. */
- _ACPI_CN, /* 0x1F 31. */
- _ACPI_XS|_ACPI_SP, /* 0x20 32. ' ' */
- _ACPI_PU, /* 0x21 33. '!' */
- _ACPI_PU, /* 0x22 34. '"' */
- _ACPI_PU, /* 0x23 35. '#' */
- _ACPI_PU, /* 0x24 36. '$' */
- _ACPI_PU, /* 0x25 37. '%' */
- _ACPI_PU, /* 0x26 38. '&' */
- _ACPI_PU, /* 0x27 39. ''' */
- _ACPI_PU, /* 0x28 40. '(' */
- _ACPI_PU, /* 0x29 41. ')' */
- _ACPI_PU, /* 0x2A 42. '*' */
- _ACPI_PU, /* 0x2B 43. '+' */
- _ACPI_PU, /* 0x2C 44. ',' */
- _ACPI_PU, /* 0x2D 45. '-' */
- _ACPI_PU, /* 0x2E 46. '.' */
- _ACPI_PU, /* 0x2F 47. '/' */
- _ACPI_XD|_ACPI_DI, /* 0x30 48. '0' */
- _ACPI_XD|_ACPI_DI, /* 0x31 49. '1' */
- _ACPI_XD|_ACPI_DI, /* 0x32 50. '2' */
- _ACPI_XD|_ACPI_DI, /* 0x33 51. '3' */
- _ACPI_XD|_ACPI_DI, /* 0x34 52. '4' */
- _ACPI_XD|_ACPI_DI, /* 0x35 53. '5' */
- _ACPI_XD|_ACPI_DI, /* 0x36 54. '6' */
- _ACPI_XD|_ACPI_DI, /* 0x37 55. '7' */
- _ACPI_XD|_ACPI_DI, /* 0x38 56. '8' */
- _ACPI_XD|_ACPI_DI, /* 0x39 57. '9' */
- _ACPI_PU, /* 0x3A 58. ':' */
- _ACPI_PU, /* 0x3B 59. ';' */
- _ACPI_PU, /* 0x3C 60. '<' */
- _ACPI_PU, /* 0x3D 61. '=' */
- _ACPI_PU, /* 0x3E 62. '>' */
- _ACPI_PU, /* 0x3F 63. '?' */
- _ACPI_PU, /* 0x40 64. '@' */
- _ACPI_XD|_ACPI_UP, /* 0x41 65. 'A' */
- _ACPI_XD|_ACPI_UP, /* 0x42 66. 'B' */
- _ACPI_XD|_ACPI_UP, /* 0x43 67. 'C' */
- _ACPI_XD|_ACPI_UP, /* 0x44 68. 'D' */
- _ACPI_XD|_ACPI_UP, /* 0x45 69. 'E' */
- _ACPI_XD|_ACPI_UP, /* 0x46 70. 'F' */
- _ACPI_UP, /* 0x47 71. 'G' */
- _ACPI_UP, /* 0x48 72. 'H' */
- _ACPI_UP, /* 0x49 73. 'I' */
- _ACPI_UP, /* 0x4A 74. 'J' */
- _ACPI_UP, /* 0x4B 75. 'K' */
- _ACPI_UP, /* 0x4C 76. 'L' */
- _ACPI_UP, /* 0x4D 77. 'M' */
- _ACPI_UP, /* 0x4E 78. 'N' */
- _ACPI_UP, /* 0x4F 79. 'O' */
- _ACPI_UP, /* 0x50 80. 'P' */
- _ACPI_UP, /* 0x51 81. 'Q' */
- _ACPI_UP, /* 0x52 82. 'R' */
- _ACPI_UP, /* 0x53 83. 'S' */
- _ACPI_UP, /* 0x54 84. 'T' */
- _ACPI_UP, /* 0x55 85. 'U' */
- _ACPI_UP, /* 0x56 86. 'V' */
- _ACPI_UP, /* 0x57 87. 'W' */
- _ACPI_UP, /* 0x58 88. 'X' */
- _ACPI_UP, /* 0x59 89. 'Y' */
- _ACPI_UP, /* 0x5A 90. 'Z' */
- _ACPI_PU, /* 0x5B 91. '[' */
- _ACPI_PU, /* 0x5C 92. '\' */
- _ACPI_PU, /* 0x5D 93. ']' */
- _ACPI_PU, /* 0x5E 94. '^' */
- _ACPI_PU, /* 0x5F 95. '_' */
- _ACPI_PU, /* 0x60 96. '`' */
- _ACPI_XD|_ACPI_LO, /* 0x61 97. 'a' */
- _ACPI_XD|_ACPI_LO, /* 0x62 98. 'b' */
- _ACPI_XD|_ACPI_LO, /* 0x63 99. 'c' */
- _ACPI_XD|_ACPI_LO, /* 0x64 100. 'd' */
- _ACPI_XD|_ACPI_LO, /* 0x65 101. 'e' */
- _ACPI_XD|_ACPI_LO, /* 0x66 102. 'f' */
- _ACPI_LO, /* 0x67 103. 'g' */
- _ACPI_LO, /* 0x68 104. 'h' */
- _ACPI_LO, /* 0x69 105. 'i' */
- _ACPI_LO, /* 0x6A 106. 'j' */
- _ACPI_LO, /* 0x6B 107. 'k' */
- _ACPI_LO, /* 0x6C 108. 'l' */
- _ACPI_LO, /* 0x6D 109. 'm' */
- _ACPI_LO, /* 0x6E 110. 'n' */
- _ACPI_LO, /* 0x6F 111. 'o' */
- _ACPI_LO, /* 0x70 112. 'p' */
- _ACPI_LO, /* 0x71 113. 'q' */
- _ACPI_LO, /* 0x72 114. 'r' */
- _ACPI_LO, /* 0x73 115. 's' */
- _ACPI_LO, /* 0x74 116. 't' */
- _ACPI_LO, /* 0x75 117. 'u' */
- _ACPI_LO, /* 0x76 118. 'v' */
- _ACPI_LO, /* 0x77 119. 'w' */
- _ACPI_LO, /* 0x78 120. 'x' */
- _ACPI_LO, /* 0x79 121. 'y' */
- _ACPI_LO, /* 0x7A 122. 'z' */
- _ACPI_PU, /* 0x7B 123. '{' */
- _ACPI_PU, /* 0x7C 124. '|' */
- _ACPI_PU, /* 0x7D 125. '}' */
- _ACPI_PU, /* 0x7E 126. '~' */
- _ACPI_CN, /* 0x7F 127. */
-
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0x80 to 0x8F */
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0x90 to 0x9F */
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0xA0 to 0xAF */
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0xB0 to 0xBF */
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0xC0 to 0xCF */
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0xD0 to 0xDF */
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0xE0 to 0xEF */
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* 0xF0 to 0x100 */
-};
-
-
-#endif /* ACPI_USE_SYSTEM_CLIBRARY */
-
diff --git a/sys/contrib/dev/acpica/utcopy.c b/sys/contrib/dev/acpica/utcopy.c
deleted file mode 100644
index 2d4072c..0000000
--- a/sys/contrib/dev/acpica/utcopy.c
+++ /dev/null
@@ -1,1091 +0,0 @@
-/******************************************************************************
- *
- * Module Name: utcopy - Internal to external object translation utilities
- * $Revision: 1.130 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __UTCOPY_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/amlcode.h>
-
-
-#define _COMPONENT ACPI_UTILITIES
- ACPI_MODULE_NAME ("utcopy")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiUtCopyIsimpleToEsimple (
- ACPI_OPERAND_OBJECT *InternalObject,
- ACPI_OBJECT *ExternalObject,
- UINT8 *DataSpace,
- ACPI_SIZE *BufferSpaceUsed);
-
-static ACPI_STATUS
-AcpiUtCopyIelementToIelement (
- UINT8 ObjectType,
- ACPI_OPERAND_OBJECT *SourceObject,
- ACPI_GENERIC_STATE *State,
- void *Context);
-
-static ACPI_STATUS
-AcpiUtCopyIpackageToEpackage (
- ACPI_OPERAND_OBJECT *InternalObject,
- UINT8 *Buffer,
- ACPI_SIZE *SpaceUsed);
-
-static ACPI_STATUS
-AcpiUtCopyEsimpleToIsimple(
- ACPI_OBJECT *UserObj,
- ACPI_OPERAND_OBJECT **ReturnObj);
-
-static ACPI_STATUS
-AcpiUtCopySimpleObject (
- ACPI_OPERAND_OBJECT *SourceDesc,
- ACPI_OPERAND_OBJECT *DestDesc);
-
-static ACPI_STATUS
-AcpiUtCopyIelementToEelement (
- UINT8 ObjectType,
- ACPI_OPERAND_OBJECT *SourceObject,
- ACPI_GENERIC_STATE *State,
- void *Context);
-
-static ACPI_STATUS
-AcpiUtCopyIpackageToIpackage (
- ACPI_OPERAND_OBJECT *SourceObj,
- ACPI_OPERAND_OBJECT *DestObj,
- ACPI_WALK_STATE *WalkState);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCopyIsimpleToEsimple
- *
- * PARAMETERS: InternalObject - Source object to be copied
- * ExternalObject - Where to return the copied object
- * DataSpace - Where object data is returned (such as
- * buffer and string data)
- * BufferSpaceUsed - Length of DataSpace that was used
- *
- * RETURN: Status
- *
- * DESCRIPTION: This function is called to copy a simple internal object to
- * an external object.
- *
- * The DataSpace buffer is assumed to have sufficient space for
- * the object.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtCopyIsimpleToEsimple (
- ACPI_OPERAND_OBJECT *InternalObject,
- ACPI_OBJECT *ExternalObject,
- UINT8 *DataSpace,
- ACPI_SIZE *BufferSpaceUsed)
-{
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (UtCopyIsimpleToEsimple);
-
-
- *BufferSpaceUsed = 0;
-
- /*
- * Check for NULL object case (could be an uninitialized
- * package element)
- */
- if (!InternalObject)
- {
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Always clear the external object */
-
- ACPI_MEMSET (ExternalObject, 0, sizeof (ACPI_OBJECT));
-
- /*
- * In general, the external object will be the same type as
- * the internal object
- */
- ExternalObject->Type = ACPI_GET_OBJECT_TYPE (InternalObject);
-
- /* However, only a limited number of external types are supported */
-
- switch (ACPI_GET_OBJECT_TYPE (InternalObject))
- {
- case ACPI_TYPE_STRING:
-
- ExternalObject->String.Pointer = (char *) DataSpace;
- ExternalObject->String.Length = InternalObject->String.Length;
- *BufferSpaceUsed = ACPI_ROUND_UP_TO_NATIVE_WORD (
- (ACPI_SIZE) InternalObject->String.Length + 1);
-
- ACPI_MEMCPY ((void *) DataSpace,
- (void *) InternalObject->String.Pointer,
- (ACPI_SIZE) InternalObject->String.Length + 1);
- break;
-
-
- case ACPI_TYPE_BUFFER:
-
- ExternalObject->Buffer.Pointer = DataSpace;
- ExternalObject->Buffer.Length = InternalObject->Buffer.Length;
- *BufferSpaceUsed = ACPI_ROUND_UP_TO_NATIVE_WORD (
- InternalObject->String.Length);
-
- ACPI_MEMCPY ((void *) DataSpace,
- (void *) InternalObject->Buffer.Pointer,
- InternalObject->Buffer.Length);
- break;
-
-
- case ACPI_TYPE_INTEGER:
-
- ExternalObject->Integer.Value = InternalObject->Integer.Value;
- break;
-
-
- case ACPI_TYPE_LOCAL_REFERENCE:
-
- /*
- * This is an object reference. Attempt to dereference it.
- */
- switch (InternalObject->Reference.Opcode)
- {
- case AML_INT_NAMEPATH_OP:
-
- /* For namepath, return the object handle ("reference") */
-
- default:
- /*
- * Use the object type of "Any" to indicate a reference
- * to object containing a handle to an ACPI named object.
- */
- ExternalObject->Type = ACPI_TYPE_ANY;
- ExternalObject->Reference.Handle = InternalObject->Reference.Node;
- break;
- }
- break;
-
-
- case ACPI_TYPE_PROCESSOR:
-
- ExternalObject->Processor.ProcId = InternalObject->Processor.ProcId;
- ExternalObject->Processor.PblkAddress = InternalObject->Processor.Address;
- ExternalObject->Processor.PblkLength = InternalObject->Processor.Length;
- break;
-
-
- case ACPI_TYPE_POWER:
-
- ExternalObject->PowerResource.SystemLevel =
- InternalObject->PowerResource.SystemLevel;
-
- ExternalObject->PowerResource.ResourceOrder =
- InternalObject->PowerResource.ResourceOrder;
- break;
-
-
- default:
- /*
- * There is no corresponding external object type
- */
- return_ACPI_STATUS (AE_SUPPORT);
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCopyIelementToEelement
- *
- * PARAMETERS: ACPI_PKG_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Copy one package element to another package element
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtCopyIelementToEelement (
- UINT8 ObjectType,
- ACPI_OPERAND_OBJECT *SourceObject,
- ACPI_GENERIC_STATE *State,
- void *Context)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_PKG_INFO *Info = (ACPI_PKG_INFO *) Context;
- ACPI_SIZE ObjectSpace;
- UINT32 ThisIndex;
- ACPI_OBJECT *TargetObject;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- ThisIndex = State->Pkg.Index;
- TargetObject = (ACPI_OBJECT *)
- &((ACPI_OBJECT *)(State->Pkg.DestObject))->Package.Elements[ThisIndex];
-
- switch (ObjectType)
- {
- case ACPI_COPY_TYPE_SIMPLE:
-
- /*
- * This is a simple or null object
- */
- Status = AcpiUtCopyIsimpleToEsimple (SourceObject,
- TargetObject, Info->FreeSpace, &ObjectSpace);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
- break;
-
-
- case ACPI_COPY_TYPE_PACKAGE:
-
- /*
- * Build the package object
- */
- TargetObject->Type = ACPI_TYPE_PACKAGE;
- TargetObject->Package.Count = SourceObject->Package.Count;
- TargetObject->Package.Elements =
- ACPI_CAST_PTR (ACPI_OBJECT, Info->FreeSpace);
-
- /*
- * Pass the new package object back to the package walk routine
- */
- State->Pkg.ThisTargetObj = TargetObject;
-
- /*
- * Save space for the array of objects (Package elements)
- * update the buffer length counter
- */
- ObjectSpace = ACPI_ROUND_UP_TO_NATIVE_WORD (
- (ACPI_SIZE) TargetObject->Package.Count *
- sizeof (ACPI_OBJECT));
- break;
-
-
- default:
- return (AE_BAD_PARAMETER);
- }
-
- Info->FreeSpace += ObjectSpace;
- Info->Length += ObjectSpace;
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCopyIpackageToEpackage
- *
- * PARAMETERS: InternalObject - Pointer to the object we are returning
- * Buffer - Where the object is returned
- * SpaceUsed - Where the object length is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: This function is called to place a package object in a user
- * buffer. A package object by definition contains other objects.
- *
- * The buffer is assumed to have sufficient space for the object.
- * The caller must have verified the buffer length needed using the
- * AcpiUtGetObjectSize function before calling this function.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtCopyIpackageToEpackage (
- ACPI_OPERAND_OBJECT *InternalObject,
- UINT8 *Buffer,
- ACPI_SIZE *SpaceUsed)
-{
- ACPI_OBJECT *ExternalObject;
- ACPI_STATUS Status;
- ACPI_PKG_INFO Info;
-
-
- ACPI_FUNCTION_TRACE (UtCopyIpackageToEpackage);
-
-
- /*
- * First package at head of the buffer
- */
- ExternalObject = ACPI_CAST_PTR (ACPI_OBJECT, Buffer);
-
- /*
- * Free space begins right after the first package
- */
- Info.Length = ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT));
- Info.FreeSpace = Buffer + ACPI_ROUND_UP_TO_NATIVE_WORD (
- sizeof (ACPI_OBJECT));
- Info.ObjectSpace = 0;
- Info.NumPackages = 1;
-
- ExternalObject->Type = ACPI_GET_OBJECT_TYPE (InternalObject);
- ExternalObject->Package.Count = InternalObject->Package.Count;
- ExternalObject->Package.Elements = ACPI_CAST_PTR (ACPI_OBJECT,
- Info.FreeSpace);
-
- /*
- * Leave room for an array of ACPI_OBJECTS in the buffer
- * and move the free space past it
- */
- Info.Length += (ACPI_SIZE) ExternalObject->Package.Count *
- ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT));
- Info.FreeSpace += ExternalObject->Package.Count *
- ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT));
-
- Status = AcpiUtWalkPackageTree (InternalObject, ExternalObject,
- AcpiUtCopyIelementToEelement, &Info);
-
- *SpaceUsed = Info.Length;
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCopyIobjectToEobject
- *
- * PARAMETERS: InternalObject - The internal object to be converted
- * BufferPtr - Where the object is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: This function is called to build an API object to be returned to
- * the caller.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtCopyIobjectToEobject (
- ACPI_OPERAND_OBJECT *InternalObject,
- ACPI_BUFFER *RetBuffer)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (UtCopyIobjectToEobject);
-
-
- if (ACPI_GET_OBJECT_TYPE (InternalObject) == ACPI_TYPE_PACKAGE)
- {
- /*
- * Package object: Copy all subobjects (including
- * nested packages)
- */
- Status = AcpiUtCopyIpackageToEpackage (InternalObject,
- RetBuffer->Pointer, &RetBuffer->Length);
- }
- else
- {
- /*
- * Build a simple object (no nested objects)
- */
- Status = AcpiUtCopyIsimpleToEsimple (InternalObject,
- ACPI_CAST_PTR (ACPI_OBJECT, RetBuffer->Pointer),
- ACPI_ADD_PTR (UINT8, RetBuffer->Pointer,
- ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT))),
- &RetBuffer->Length);
- /*
- * build simple does not include the object size in the length
- * so we add it in here
- */
- RetBuffer->Length += sizeof (ACPI_OBJECT);
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCopyEsimpleToIsimple
- *
- * PARAMETERS: ExternalObject - The external object to be converted
- * RetInternalObject - Where the internal object is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: This function copies an external object to an internal one.
- * NOTE: Pointers can be copied, we don't need to copy data.
- * (The pointers have to be valid in our address space no matter
- * what we do with them!)
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtCopyEsimpleToIsimple (
- ACPI_OBJECT *ExternalObject,
- ACPI_OPERAND_OBJECT **RetInternalObject)
-{
- ACPI_OPERAND_OBJECT *InternalObject;
-
-
- ACPI_FUNCTION_TRACE (UtCopyEsimpleToIsimple);
-
-
- /*
- * Simple types supported are: String, Buffer, Integer
- */
- switch (ExternalObject->Type)
- {
- case ACPI_TYPE_STRING:
- case ACPI_TYPE_BUFFER:
- case ACPI_TYPE_INTEGER:
-
- InternalObject = AcpiUtCreateInternalObject (
- (UINT8) ExternalObject->Type);
- if (!InternalObject)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
- break;
-
- default:
- /* All other types are not supported */
-
- return_ACPI_STATUS (AE_SUPPORT);
- }
-
-
- /* Must COPY string and buffer contents */
-
- switch (ExternalObject->Type)
- {
- case ACPI_TYPE_STRING:
-
- InternalObject->String.Pointer =
- ACPI_ALLOCATE_ZEROED ((ACPI_SIZE) ExternalObject->String.Length + 1);
- if (!InternalObject->String.Pointer)
- {
- goto ErrorExit;
- }
-
- ACPI_MEMCPY (InternalObject->String.Pointer,
- ExternalObject->String.Pointer,
- ExternalObject->String.Length);
-
- InternalObject->String.Length = ExternalObject->String.Length;
- break;
-
-
- case ACPI_TYPE_BUFFER:
-
- InternalObject->Buffer.Pointer =
- ACPI_ALLOCATE_ZEROED (ExternalObject->Buffer.Length);
- if (!InternalObject->Buffer.Pointer)
- {
- goto ErrorExit;
- }
-
- ACPI_MEMCPY (InternalObject->Buffer.Pointer,
- ExternalObject->Buffer.Pointer,
- ExternalObject->Buffer.Length);
-
- InternalObject->Buffer.Length = ExternalObject->Buffer.Length;
- break;
-
-
- case ACPI_TYPE_INTEGER:
-
- InternalObject->Integer.Value = ExternalObject->Integer.Value;
- break;
-
- default:
- /* Other types can't get here */
- break;
- }
-
- *RetInternalObject = InternalObject;
- return_ACPI_STATUS (AE_OK);
-
-
-ErrorExit:
- AcpiUtRemoveReference (InternalObject);
- return_ACPI_STATUS (AE_NO_MEMORY);
-}
-
-
-#ifdef ACPI_FUTURE_IMPLEMENTATION
-/* Code to convert packages that are parameters to control methods */
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCopyEpackageToIpackage
- *
- * PARAMETERS: *InternalObject - Pointer to the object we are returning
- * *Buffer - Where the object is returned
- * *SpaceUsed - Where the length of the object is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: This function is called to place a package object in a user
- * buffer. A package object by definition contains other objects.
- *
- * The buffer is assumed to have sufficient space for the object.
- * The caller must have verified the buffer length needed using the
- * AcpiUtGetObjectSize function before calling this function.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtCopyEpackageToIpackage (
- ACPI_OPERAND_OBJECT *InternalObject,
- UINT8 *Buffer,
- UINT32 *SpaceUsed)
-{
- UINT8 *FreeSpace;
- ACPI_OBJECT *ExternalObject;
- UINT32 Length = 0;
- UINT32 ThisIndex;
- UINT32 ObjectSpace = 0;
- ACPI_OPERAND_OBJECT *ThisInternalObj;
- ACPI_OBJECT *ThisExternalObj;
-
-
- ACPI_FUNCTION_TRACE (UtCopyEpackageToIpackage);
-
-
- /*
- * First package at head of the buffer
- */
- ExternalObject = (ACPI_OBJECT *)Buffer;
-
- /*
- * Free space begins right after the first package
- */
- FreeSpace = Buffer + sizeof(ACPI_OBJECT);
-
-
- ExternalObject->Type = ACPI_GET_OBJECT_TYPE (InternalObject);
- ExternalObject->Package.Count = InternalObject->Package.Count;
- ExternalObject->Package.Elements = (ACPI_OBJECT *)FreeSpace;
-
- /*
- * Build an array of ACPI_OBJECTS in the buffer
- * and move the free space past it
- */
- FreeSpace += ExternalObject->Package.Count * sizeof(ACPI_OBJECT);
-
-
- /* Call WalkPackage */
-
-}
-
-#endif /* Future implementation */
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCopyEobjectToIobject
- *
- * PARAMETERS: *InternalObject - The external object to be converted
- * *BufferPtr - Where the internal object is returned
- *
- * RETURN: Status - the status of the call
- *
- * DESCRIPTION: Converts an external object to an internal object.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtCopyEobjectToIobject (
- ACPI_OBJECT *ExternalObject,
- ACPI_OPERAND_OBJECT **InternalObject)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (UtCopyEobjectToIobject);
-
-
- if (ExternalObject->Type == ACPI_TYPE_PACKAGE)
- {
- /*
- * Packages as external input to control methods are not supported,
- */
- ACPI_ERROR ((AE_INFO,
- "Packages as parameters not implemented!"));
-
- return_ACPI_STATUS (AE_NOT_IMPLEMENTED);
- }
-
- else
- {
- /*
- * Build a simple object (no nested objects)
- */
- Status = AcpiUtCopyEsimpleToIsimple (ExternalObject, InternalObject);
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCopySimpleObject
- *
- * PARAMETERS: SourceDesc - The internal object to be copied
- * DestDesc - New target object
- *
- * RETURN: Status
- *
- * DESCRIPTION: Simple copy of one internal object to another. Reference count
- * of the destination object is preserved.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtCopySimpleObject (
- ACPI_OPERAND_OBJECT *SourceDesc,
- ACPI_OPERAND_OBJECT *DestDesc)
-{
- UINT16 ReferenceCount;
- ACPI_OPERAND_OBJECT *NextObject;
-
-
- /* Save fields from destination that we don't want to overwrite */
-
- ReferenceCount = DestDesc->Common.ReferenceCount;
- NextObject = DestDesc->Common.NextObject;
-
- /* Copy the entire source object over the destination object*/
-
- ACPI_MEMCPY ((char *) DestDesc, (char *) SourceDesc,
- sizeof (ACPI_OPERAND_OBJECT));
-
- /* Restore the saved fields */
-
- DestDesc->Common.ReferenceCount = ReferenceCount;
- DestDesc->Common.NextObject = NextObject;
-
- /* New object is not static, regardless of source */
-
- DestDesc->Common.Flags &= ~AOPOBJ_STATIC_POINTER;
-
- /* Handle the objects with extra data */
-
- switch (ACPI_GET_OBJECT_TYPE (DestDesc))
- {
- case ACPI_TYPE_BUFFER:
- /*
- * Allocate and copy the actual buffer if and only if:
- * 1) There is a valid buffer pointer
- * 2) The buffer has a length > 0
- */
- if ((SourceDesc->Buffer.Pointer) &&
- (SourceDesc->Buffer.Length))
- {
- DestDesc->Buffer.Pointer =
- ACPI_ALLOCATE (SourceDesc->Buffer.Length);
- if (!DestDesc->Buffer.Pointer)
- {
- return (AE_NO_MEMORY);
- }
-
- /* Copy the actual buffer data */
-
- ACPI_MEMCPY (DestDesc->Buffer.Pointer,
- SourceDesc->Buffer.Pointer,
- SourceDesc->Buffer.Length);
- }
- break;
-
- case ACPI_TYPE_STRING:
- /*
- * Allocate and copy the actual string if and only if:
- * 1) There is a valid string pointer
- * (Pointer to a NULL string is allowed)
- */
- if (SourceDesc->String.Pointer)
- {
- DestDesc->String.Pointer =
- ACPI_ALLOCATE ((ACPI_SIZE) SourceDesc->String.Length + 1);
- if (!DestDesc->String.Pointer)
- {
- return (AE_NO_MEMORY);
- }
-
- /* Copy the actual string data */
-
- ACPI_MEMCPY (DestDesc->String.Pointer, SourceDesc->String.Pointer,
- (ACPI_SIZE) SourceDesc->String.Length + 1);
- }
- break;
-
- case ACPI_TYPE_LOCAL_REFERENCE:
- /*
- * We copied the reference object, so we now must add a reference
- * to the object pointed to by the reference
- */
- AcpiUtAddReference (SourceDesc->Reference.Object);
- break;
-
- case ACPI_TYPE_REGION:
- /*
- * We copied the Region Handler, so we now must add a reference
- */
- if (DestDesc->Region.Handler)
- {
- AcpiUtAddReference (DestDesc->Region.Handler);
- }
- break;
-
- default:
- /* Nothing to do for other simple objects */
- break;
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCopyIelementToIelement
- *
- * PARAMETERS: ACPI_PKG_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Copy one package element to another package element
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtCopyIelementToIelement (
- UINT8 ObjectType,
- ACPI_OPERAND_OBJECT *SourceObject,
- ACPI_GENERIC_STATE *State,
- void *Context)
-{
- ACPI_STATUS Status = AE_OK;
- UINT32 ThisIndex;
- ACPI_OPERAND_OBJECT **ThisTargetPtr;
- ACPI_OPERAND_OBJECT *TargetObject;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- ThisIndex = State->Pkg.Index;
- ThisTargetPtr = (ACPI_OPERAND_OBJECT **)
- &State->Pkg.DestObject->Package.Elements[ThisIndex];
-
- switch (ObjectType)
- {
- case ACPI_COPY_TYPE_SIMPLE:
-
- /* A null source object indicates a (legal) null package element */
-
- if (SourceObject)
- {
- /*
- * This is a simple object, just copy it
- */
- TargetObject = AcpiUtCreateInternalObject (
- ACPI_GET_OBJECT_TYPE (SourceObject));
- if (!TargetObject)
- {
- return (AE_NO_MEMORY);
- }
-
- Status = AcpiUtCopySimpleObject (SourceObject, TargetObject);
- if (ACPI_FAILURE (Status))
- {
- goto ErrorExit;
- }
-
- *ThisTargetPtr = TargetObject;
- }
- else
- {
- /* Pass through a null element */
-
- *ThisTargetPtr = NULL;
- }
- break;
-
-
- case ACPI_COPY_TYPE_PACKAGE:
-
- /*
- * This object is a package - go down another nesting level
- * Create and build the package object
- */
- TargetObject = AcpiUtCreateInternalObject (ACPI_TYPE_PACKAGE);
- if (!TargetObject)
- {
- return (AE_NO_MEMORY);
- }
-
- TargetObject->Package.Count = SourceObject->Package.Count;
- TargetObject->Common.Flags = SourceObject->Common.Flags;
-
- /*
- * Create the object array
- */
- TargetObject->Package.Elements = ACPI_ALLOCATE_ZEROED (
- ((ACPI_SIZE) SourceObject->Package.Count + 1) * sizeof (void *));
- if (!TargetObject->Package.Elements)
- {
- Status = AE_NO_MEMORY;
- goto ErrorExit;
- }
-
- /*
- * Pass the new package object back to the package walk routine
- */
- State->Pkg.ThisTargetObj = TargetObject;
-
- /*
- * Store the object pointer in the parent package object
- */
- *ThisTargetPtr = TargetObject;
- break;
-
-
- default:
- return (AE_BAD_PARAMETER);
- }
-
- return (Status);
-
-ErrorExit:
- AcpiUtRemoveReference (TargetObject);
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCopyIpackageToIpackage
- *
- * PARAMETERS: *SourceObj - Pointer to the source package object
- * *DestObj - Where the internal object is returned
- *
- * RETURN: Status - the status of the call
- *
- * DESCRIPTION: This function is called to copy an internal package object
- * into another internal package object.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtCopyIpackageToIpackage (
- ACPI_OPERAND_OBJECT *SourceObj,
- ACPI_OPERAND_OBJECT *DestObj,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (UtCopyIpackageToIpackage);
-
-
- DestObj->Common.Type = ACPI_GET_OBJECT_TYPE (SourceObj);
- DestObj->Common.Flags = SourceObj->Common.Flags;
- DestObj->Package.Count = SourceObj->Package.Count;
-
- /*
- * Create the object array and walk the source package tree
- */
- DestObj->Package.Elements = ACPI_ALLOCATE_ZEROED (
- ((ACPI_SIZE) SourceObj->Package.Count + 1) *
- sizeof (void *));
- if (!DestObj->Package.Elements)
- {
- ACPI_ERROR ((AE_INFO, "Package allocation failure"));
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /*
- * Copy the package element-by-element by walking the package "tree".
- * This handles nested packages of arbitrary depth.
- */
- Status = AcpiUtWalkPackageTree (SourceObj, DestObj,
- AcpiUtCopyIelementToIelement, WalkState);
- if (ACPI_FAILURE (Status))
- {
- /* On failure, delete the destination package object */
-
- AcpiUtRemoveReference (DestObj);
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCopyIobjectToIobject
- *
- * PARAMETERS: WalkState - Current walk state
- * SourceDesc - The internal object to be copied
- * DestDesc - Where the copied object is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Copy an internal object to a new internal object
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtCopyIobjectToIobject (
- ACPI_OPERAND_OBJECT *SourceDesc,
- ACPI_OPERAND_OBJECT **DestDesc,
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (UtCopyIobjectToIobject);
-
-
- /* Create the top level object */
-
- *DestDesc = AcpiUtCreateInternalObject (ACPI_GET_OBJECT_TYPE (SourceDesc));
- if (!*DestDesc)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* Copy the object and possible subobjects */
-
- if (ACPI_GET_OBJECT_TYPE (SourceDesc) == ACPI_TYPE_PACKAGE)
- {
- Status = AcpiUtCopyIpackageToIpackage (SourceDesc, *DestDesc,
- WalkState);
- }
- else
- {
- Status = AcpiUtCopySimpleObject (SourceDesc, *DestDesc);
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
diff --git a/sys/contrib/dev/acpica/utdebug.c b/sys/contrib/dev/acpica/utdebug.c
deleted file mode 100644
index 59b91d7..0000000
--- a/sys/contrib/dev/acpica/utdebug.c
+++ /dev/null
@@ -1,807 +0,0 @@
-/******************************************************************************
- *
- * Module Name: utdebug - Debug print routines
- * $Revision: 1.133 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __UTDEBUG_C__
-
-#include <contrib/dev/acpica/acpi.h>
-
-#define _COMPONENT ACPI_UTILITIES
- ACPI_MODULE_NAME ("utdebug")
-
-
-#ifdef ACPI_DEBUG_OUTPUT
-
-static UINT32 AcpiGbl_PrevThreadId = 0xFFFFFFFF;
-static char *AcpiGbl_FnEntryStr = "----Entry";
-static char *AcpiGbl_FnExitStr = "----Exit-";
-
-/* Local prototypes */
-
-static const char *
-AcpiUtTrimFunctionName (
- const char *FunctionName);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtInitStackPtrTrace
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Save the current CPU stack pointer at subsystem startup
- *
- ******************************************************************************/
-
-void
-AcpiUtInitStackPtrTrace (
- void)
-{
- UINT32 CurrentSp;
-
-
- AcpiGbl_EntryStackPointer = ACPI_PTR_DIFF (&CurrentSp, NULL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtTrackStackPtr
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Save the current CPU stack pointer
- *
- ******************************************************************************/
-
-void
-AcpiUtTrackStackPtr (
- void)
-{
- ACPI_SIZE CurrentSp;
-
-
- CurrentSp = ACPI_PTR_DIFF (&CurrentSp, NULL);
-
- if (CurrentSp < AcpiGbl_LowestStackPointer)
- {
- AcpiGbl_LowestStackPointer = CurrentSp;
- }
-
- if (AcpiGbl_NestingLevel > AcpiGbl_DeepestNesting)
- {
- AcpiGbl_DeepestNesting = AcpiGbl_NestingLevel;
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtTrimFunctionName
- *
- * PARAMETERS: FunctionName - Ascii string containing a procedure name
- *
- * RETURN: Updated pointer to the function name
- *
- * DESCRIPTION: Remove the "Acpi" prefix from the function name, if present.
- * This allows compiler macros such as __FUNCTION__ to be used
- * with no change to the debug output.
- *
- ******************************************************************************/
-
-static const char *
-AcpiUtTrimFunctionName (
- const char *FunctionName)
-{
-
- /* All Function names are longer than 4 chars, check is safe */
-
- if (*(ACPI_CAST_PTR (UINT32, FunctionName)) == ACPI_PREFIX_MIXED)
- {
- /* This is the case where the original source has not been modified */
-
- return (FunctionName + 4);
- }
-
- if (*(ACPI_CAST_PTR (UINT32, FunctionName)) == ACPI_PREFIX_LOWER)
- {
- /* This is the case where the source has been 'linuxized' */
-
- return (FunctionName + 5);
- }
-
- return (FunctionName);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtDebugPrint
- *
- * PARAMETERS: RequestedDebugLevel - Requested debug print level
- * LineNumber - Caller's line number (for error output)
- * FunctionName - Caller's procedure name
- * ModuleName - Caller's module name
- * ComponentId - Caller's component ID
- * Format - Printf format field
- * ... - Optional printf arguments
- *
- * RETURN: None
- *
- * DESCRIPTION: Print error message with prefix consisting of the module name,
- * line number, and component ID.
- *
- ******************************************************************************/
-
-void ACPI_INTERNAL_VAR_XFACE
-AcpiUtDebugPrint (
- UINT32 RequestedDebugLevel,
- UINT32 LineNumber,
- const char *FunctionName,
- char *ModuleName,
- UINT32 ComponentId,
- char *Format,
- ...)
-{
- ACPI_THREAD_ID ThreadId;
- va_list args;
-
-
- /*
- * Stay silent if the debug level or component ID is disabled
- */
- if (!(RequestedDebugLevel & AcpiDbgLevel) ||
- !(ComponentId & AcpiDbgLayer))
- {
- return;
- }
-
- /*
- * Thread tracking and context switch notification
- */
- ThreadId = AcpiOsGetThreadId ();
- if (ThreadId != AcpiGbl_PrevThreadId)
- {
- if (ACPI_LV_THREADS & AcpiDbgLevel)
- {
- AcpiOsPrintf (
- "\n**** Context Switch from TID %X to TID %X ****\n\n",
- AcpiGbl_PrevThreadId, ThreadId);
- }
-
- AcpiGbl_PrevThreadId = ThreadId;
- }
-
- /*
- * Display the module name, current line number, thread ID (if requested),
- * current procedure nesting level, and the current procedure name
- */
- AcpiOsPrintf ("%8s-%04ld ", ModuleName, LineNumber);
-
- if (ACPI_LV_THREADS & AcpiDbgLevel)
- {
- AcpiOsPrintf ("[%04lX] ", ThreadId);
- }
-
- AcpiOsPrintf ("[%02ld] %-22.22s: ",
- AcpiGbl_NestingLevel, AcpiUtTrimFunctionName (FunctionName));
-
- va_start (args, Format);
- AcpiOsVprintf (Format, args);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiUtDebugPrint)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtDebugPrintRaw
- *
- * PARAMETERS: RequestedDebugLevel - Requested debug print level
- * LineNumber - Caller's line number
- * FunctionName - Caller's procedure name
- * ModuleName - Caller's module name
- * ComponentId - Caller's component ID
- * Format - Printf format field
- * ... - Optional printf arguments
- *
- * RETURN: None
- *
- * DESCRIPTION: Print message with no headers. Has same interface as
- * DebugPrint so that the same macros can be used.
- *
- ******************************************************************************/
-
-void ACPI_INTERNAL_VAR_XFACE
-AcpiUtDebugPrintRaw (
- UINT32 RequestedDebugLevel,
- UINT32 LineNumber,
- const char *FunctionName,
- char *ModuleName,
- UINT32 ComponentId,
- char *Format,
- ...)
-{
- va_list args;
-
-
- if (!(RequestedDebugLevel & AcpiDbgLevel) ||
- !(ComponentId & AcpiDbgLayer))
- {
- return;
- }
-
- va_start (args, Format);
- AcpiOsVprintf (Format, args);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiUtDebugPrintRaw)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtTrace
- *
- * PARAMETERS: LineNumber - Caller's line number
- * FunctionName - Caller's procedure name
- * ModuleName - Caller's module name
- * ComponentId - Caller's component ID
- *
- * RETURN: None
- *
- * DESCRIPTION: Function entry trace. Prints only if TRACE_FUNCTIONS bit is
- * set in DebugLevel
- *
- ******************************************************************************/
-
-void
-AcpiUtTrace (
- UINT32 LineNumber,
- const char *FunctionName,
- char *ModuleName,
- UINT32 ComponentId)
-{
-
- AcpiGbl_NestingLevel++;
- AcpiUtTrackStackPtr ();
-
- AcpiUtDebugPrint (ACPI_LV_FUNCTIONS,
- LineNumber, FunctionName, ModuleName, ComponentId,
- "%s\n", AcpiGbl_FnEntryStr);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiUtTrace)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtTracePtr
- *
- * PARAMETERS: LineNumber - Caller's line number
- * FunctionName - Caller's procedure name
- * ModuleName - Caller's module name
- * ComponentId - Caller's component ID
- * Pointer - Pointer to display
- *
- * RETURN: None
- *
- * DESCRIPTION: Function entry trace. Prints only if TRACE_FUNCTIONS bit is
- * set in DebugLevel
- *
- ******************************************************************************/
-
-void
-AcpiUtTracePtr (
- UINT32 LineNumber,
- const char *FunctionName,
- char *ModuleName,
- UINT32 ComponentId,
- void *Pointer)
-{
- AcpiGbl_NestingLevel++;
- AcpiUtTrackStackPtr ();
-
- AcpiUtDebugPrint (ACPI_LV_FUNCTIONS,
- LineNumber, FunctionName, ModuleName, ComponentId,
- "%s %p\n", AcpiGbl_FnEntryStr, Pointer);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtTraceStr
- *
- * PARAMETERS: LineNumber - Caller's line number
- * FunctionName - Caller's procedure name
- * ModuleName - Caller's module name
- * ComponentId - Caller's component ID
- * String - Additional string to display
- *
- * RETURN: None
- *
- * DESCRIPTION: Function entry trace. Prints only if TRACE_FUNCTIONS bit is
- * set in DebugLevel
- *
- ******************************************************************************/
-
-void
-AcpiUtTraceStr (
- UINT32 LineNumber,
- const char *FunctionName,
- char *ModuleName,
- UINT32 ComponentId,
- char *String)
-{
-
- AcpiGbl_NestingLevel++;
- AcpiUtTrackStackPtr ();
-
- AcpiUtDebugPrint (ACPI_LV_FUNCTIONS,
- LineNumber, FunctionName, ModuleName, ComponentId,
- "%s %s\n", AcpiGbl_FnEntryStr, String);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtTraceU32
- *
- * PARAMETERS: LineNumber - Caller's line number
- * FunctionName - Caller's procedure name
- * ModuleName - Caller's module name
- * ComponentId - Caller's component ID
- * Integer - Integer to display
- *
- * RETURN: None
- *
- * DESCRIPTION: Function entry trace. Prints only if TRACE_FUNCTIONS bit is
- * set in DebugLevel
- *
- ******************************************************************************/
-
-void
-AcpiUtTraceU32 (
- UINT32 LineNumber,
- const char *FunctionName,
- char *ModuleName,
- UINT32 ComponentId,
- UINT32 Integer)
-{
-
- AcpiGbl_NestingLevel++;
- AcpiUtTrackStackPtr ();
-
- AcpiUtDebugPrint (ACPI_LV_FUNCTIONS,
- LineNumber, FunctionName, ModuleName, ComponentId,
- "%s %08X\n", AcpiGbl_FnEntryStr, Integer);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtExit
- *
- * PARAMETERS: LineNumber - Caller's line number
- * FunctionName - Caller's procedure name
- * ModuleName - Caller's module name
- * ComponentId - Caller's component ID
- *
- * RETURN: None
- *
- * DESCRIPTION: Function exit trace. Prints only if TRACE_FUNCTIONS bit is
- * set in DebugLevel
- *
- ******************************************************************************/
-
-void
-AcpiUtExit (
- UINT32 LineNumber,
- const char *FunctionName,
- char *ModuleName,
- UINT32 ComponentId)
-{
-
- AcpiUtDebugPrint (ACPI_LV_FUNCTIONS,
- LineNumber, FunctionName, ModuleName, ComponentId,
- "%s\n", AcpiGbl_FnExitStr);
-
- AcpiGbl_NestingLevel--;
-}
-
-ACPI_EXPORT_SYMBOL (AcpiUtExit)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtStatusExit
- *
- * PARAMETERS: LineNumber - Caller's line number
- * FunctionName - Caller's procedure name
- * ModuleName - Caller's module name
- * ComponentId - Caller's component ID
- * Status - Exit status code
- *
- * RETURN: None
- *
- * DESCRIPTION: Function exit trace. Prints only if TRACE_FUNCTIONS bit is
- * set in DebugLevel. Prints exit status also.
- *
- ******************************************************************************/
-
-void
-AcpiUtStatusExit (
- UINT32 LineNumber,
- const char *FunctionName,
- char *ModuleName,
- UINT32 ComponentId,
- ACPI_STATUS Status)
-{
-
- if (ACPI_SUCCESS (Status))
- {
- AcpiUtDebugPrint (ACPI_LV_FUNCTIONS,
- LineNumber, FunctionName, ModuleName, ComponentId,
- "%s %s\n", AcpiGbl_FnExitStr,
- AcpiFormatException (Status));
- }
- else
- {
- AcpiUtDebugPrint (ACPI_LV_FUNCTIONS,
- LineNumber, FunctionName, ModuleName, ComponentId,
- "%s ****Exception****: %s\n", AcpiGbl_FnExitStr,
- AcpiFormatException (Status));
- }
-
- AcpiGbl_NestingLevel--;
-}
-
-ACPI_EXPORT_SYMBOL (AcpiUtStatusExit)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtValueExit
- *
- * PARAMETERS: LineNumber - Caller's line number
- * FunctionName - Caller's procedure name
- * ModuleName - Caller's module name
- * ComponentId - Caller's component ID
- * Value - Value to be printed with exit msg
- *
- * RETURN: None
- *
- * DESCRIPTION: Function exit trace. Prints only if TRACE_FUNCTIONS bit is
- * set in DebugLevel. Prints exit value also.
- *
- ******************************************************************************/
-
-void
-AcpiUtValueExit (
- UINT32 LineNumber,
- const char *FunctionName,
- char *ModuleName,
- UINT32 ComponentId,
- ACPI_INTEGER Value)
-{
-
- AcpiUtDebugPrint (ACPI_LV_FUNCTIONS,
- LineNumber, FunctionName, ModuleName, ComponentId,
- "%s %8.8X%8.8X\n", AcpiGbl_FnExitStr,
- ACPI_FORMAT_UINT64 (Value));
-
- AcpiGbl_NestingLevel--;
-}
-
-ACPI_EXPORT_SYMBOL (AcpiUtValueExit)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtPtrExit
- *
- * PARAMETERS: LineNumber - Caller's line number
- * FunctionName - Caller's procedure name
- * ModuleName - Caller's module name
- * ComponentId - Caller's component ID
- * Ptr - Pointer to display
- *
- * RETURN: None
- *
- * DESCRIPTION: Function exit trace. Prints only if TRACE_FUNCTIONS bit is
- * set in DebugLevel. Prints exit value also.
- *
- ******************************************************************************/
-
-void
-AcpiUtPtrExit (
- UINT32 LineNumber,
- const char *FunctionName,
- char *ModuleName,
- UINT32 ComponentId,
- UINT8 *Ptr)
-{
-
- AcpiUtDebugPrint (ACPI_LV_FUNCTIONS,
- LineNumber, FunctionName, ModuleName, ComponentId,
- "%s %p\n", AcpiGbl_FnExitStr, Ptr);
-
- AcpiGbl_NestingLevel--;
-}
-
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtDumpBuffer
- *
- * PARAMETERS: Buffer - Buffer to dump
- * Count - Amount to dump, in bytes
- * Display - BYTE, WORD, DWORD, or QWORD display
- * ComponentID - Caller's component ID
- *
- * RETURN: None
- *
- * DESCRIPTION: Generic dump buffer in both hex and ascii.
- *
- ******************************************************************************/
-
-void
-AcpiUtDumpBuffer2 (
- UINT8 *Buffer,
- UINT32 Count,
- UINT32 Display)
-{
- ACPI_NATIVE_UINT i = 0;
- ACPI_NATIVE_UINT j;
- UINT32 Temp32;
- UINT8 BufChar;
-
-
- if ((Count < 4) || (Count & 0x01))
- {
- Display = DB_BYTE_DISPLAY;
- }
-
- /* Nasty little dump buffer routine! */
-
- while (i < Count)
- {
- /* Print current offset */
-
- AcpiOsPrintf ("%6.4X: ", (UINT32) i);
-
- /* Print 16 hex chars */
-
- for (j = 0; j < 16;)
- {
- if (i + j >= Count)
- {
- /* Dump fill spaces */
-
- AcpiOsPrintf ("%*s", ((Display * 2) + 1), " ");
- j += (ACPI_NATIVE_UINT) Display;
- continue;
- }
-
- switch (Display)
- {
- case DB_BYTE_DISPLAY:
- default: /* Default is BYTE display */
-
- AcpiOsPrintf ("%02X ", Buffer[i + j]);
- break;
-
-
- case DB_WORD_DISPLAY:
-
- ACPI_MOVE_16_TO_32 (&Temp32, &Buffer[i + j]);
- AcpiOsPrintf ("%04X ", Temp32);
- break;
-
-
- case DB_DWORD_DISPLAY:
-
- ACPI_MOVE_32_TO_32 (&Temp32, &Buffer[i + j]);
- AcpiOsPrintf ("%08X ", Temp32);
- break;
-
-
- case DB_QWORD_DISPLAY:
-
- ACPI_MOVE_32_TO_32 (&Temp32, &Buffer[i + j]);
- AcpiOsPrintf ("%08X", Temp32);
-
- ACPI_MOVE_32_TO_32 (&Temp32, &Buffer[i + j + 4]);
- AcpiOsPrintf ("%08X ", Temp32);
- break;
- }
-
- j += (ACPI_NATIVE_UINT) Display;
- }
-
- /*
- * Print the ASCII equivalent characters but watch out for the bad
- * unprintable ones (printable chars are 0x20 through 0x7E)
- */
- AcpiOsPrintf (" ");
- for (j = 0; j < 16; j++)
- {
- if (i + j >= Count)
- {
- AcpiOsPrintf ("\n");
- return;
- }
-
- BufChar = Buffer[i + j];
- if (ACPI_IS_PRINT (BufChar))
- {
- AcpiOsPrintf ("%c", BufChar);
- }
- else
- {
- AcpiOsPrintf (".");
- }
- }
-
- /* Done with that line. */
-
- AcpiOsPrintf ("\n");
- i += 16;
- }
-
- return;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtDumpBuffer
- *
- * PARAMETERS: Buffer - Buffer to dump
- * Count - Amount to dump, in bytes
- * Display - BYTE, WORD, DWORD, or QWORD display
- * ComponentID - Caller's component ID
- *
- * RETURN: None
- *
- * DESCRIPTION: Generic dump buffer in both hex and ascii.
- *
- ******************************************************************************/
-
-void
-AcpiUtDumpBuffer (
- UINT8 *Buffer,
- UINT32 Count,
- UINT32 Display,
- UINT32 ComponentId)
-{
-
- /* Only dump the buffer if tracing is enabled */
-
- if (!((ACPI_LV_TABLES & AcpiDbgLevel) &&
- (ComponentId & AcpiDbgLayer)))
- {
- return;
- }
-
- AcpiUtDumpBuffer2 (Buffer, Count, Display);
-}
-
-
diff --git a/sys/contrib/dev/acpica/utdelete.c b/sys/contrib/dev/acpica/utdelete.c
deleted file mode 100644
index e78796e..0000000
--- a/sys/contrib/dev/acpica/utdelete.c
+++ /dev/null
@@ -1,775 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: utdelete - object deletion and reference count utilities
- * $Revision: 1.123 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __UTDELETE_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acinterp.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acevents.h>
-#include <contrib/dev/acpica/amlcode.h>
-
-#define _COMPONENT ACPI_UTILITIES
- ACPI_MODULE_NAME ("utdelete")
-
-/* Local prototypes */
-
-static void
-AcpiUtDeleteInternalObj (
- ACPI_OPERAND_OBJECT *Object);
-
-static void
-AcpiUtUpdateRefCount (
- ACPI_OPERAND_OBJECT *Object,
- UINT32 Action);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtDeleteInternalObj
- *
- * PARAMETERS: Object - Object to be deleted
- *
- * RETURN: None
- *
- * DESCRIPTION: Low level object deletion, after reference counts have been
- * updated (All reference counts, including sub-objects!)
- *
- ******************************************************************************/
-
-static void
-AcpiUtDeleteInternalObj (
- ACPI_OPERAND_OBJECT *Object)
-{
- void *ObjPointer = NULL;
- ACPI_OPERAND_OBJECT *HandlerDesc;
- ACPI_OPERAND_OBJECT *SecondDesc;
- ACPI_OPERAND_OBJECT *NextDesc;
-
-
- ACPI_FUNCTION_TRACE_PTR (UtDeleteInternalObj, Object);
-
-
- if (!Object)
- {
- return_VOID;
- }
-
- /*
- * Must delete or free any pointers within the object that are not
- * actual ACPI objects (for example, a raw buffer pointer).
- */
- switch (ACPI_GET_OBJECT_TYPE (Object))
- {
- case ACPI_TYPE_STRING:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "**** String %p, ptr %p\n",
- Object, Object->String.Pointer));
-
- /* Free the actual string buffer */
-
- if (!(Object->Common.Flags & AOPOBJ_STATIC_POINTER))
- {
- /* But only if it is NOT a pointer into an ACPI table */
-
- ObjPointer = Object->String.Pointer;
- }
- break;
-
-
- case ACPI_TYPE_BUFFER:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "**** Buffer %p, ptr %p\n",
- Object, Object->Buffer.Pointer));
-
- /* Free the actual buffer */
-
- if (!(Object->Common.Flags & AOPOBJ_STATIC_POINTER))
- {
- /* But only if it is NOT a pointer into an ACPI table */
-
- ObjPointer = Object->Buffer.Pointer;
- }
- break;
-
-
- case ACPI_TYPE_PACKAGE:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, " **** Package of count %X\n",
- Object->Package.Count));
-
- /*
- * Elements of the package are not handled here, they are deleted
- * separately
- */
-
- /* Free the (variable length) element pointer array */
-
- ObjPointer = Object->Package.Elements;
- break;
-
-
- case ACPI_TYPE_DEVICE:
-
- if (Object->Device.GpeBlock)
- {
- (void) AcpiEvDeleteGpeBlock (Object->Device.GpeBlock);
- }
-
- /* Walk the handler list for this device */
-
- HandlerDesc = Object->Device.Handler;
- while (HandlerDesc)
- {
- NextDesc = HandlerDesc->AddressSpace.Next;
- AcpiUtRemoveReference (HandlerDesc);
- HandlerDesc = NextDesc;
- }
- break;
-
-
- case ACPI_TYPE_MUTEX:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
- "***** Mutex %p, OS Mutex %p\n",
- Object, Object->Mutex.OsMutex));
-
- if (Object == AcpiGbl_GlobalLockMutex)
- {
- /* Global Lock has extra semaphore */
-
- (void) AcpiOsDeleteSemaphore (AcpiGbl_GlobalLockSemaphore);
- AcpiGbl_GlobalLockSemaphore = NULL;
-
- AcpiOsDeleteMutex (Object->Mutex.OsMutex);
- AcpiGbl_GlobalLockMutex = NULL;
- }
- else
- {
- AcpiExUnlinkMutex (Object);
- AcpiOsDeleteMutex (Object->Mutex.OsMutex);
- }
- break;
-
-
- case ACPI_TYPE_EVENT:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
- "***** Event %p, OS Semaphore %p\n",
- Object, Object->Event.OsSemaphore));
-
- (void) AcpiOsDeleteSemaphore (Object->Event.OsSemaphore);
- Object->Event.OsSemaphore = NULL;
- break;
-
-
- case ACPI_TYPE_METHOD:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
- "***** Method %p\n", Object));
-
- /* Delete the method mutex if it exists */
-
- if (Object->Method.Mutex)
- {
- AcpiOsDeleteMutex (Object->Method.Mutex->Mutex.OsMutex);
- AcpiUtDeleteObjectDesc (Object->Method.Mutex);
- Object->Method.Mutex = NULL;
- }
- break;
-
-
- case ACPI_TYPE_REGION:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
- "***** Region %p\n", Object));
-
- SecondDesc = AcpiNsGetSecondaryObject (Object);
- if (SecondDesc)
- {
- /*
- * Free the RegionContext if and only if the handler is one of the
- * default handlers -- and therefore, we created the context object
- * locally, it was not created by an external caller.
- */
- HandlerDesc = Object->Region.Handler;
- if (HandlerDesc)
- {
- if (HandlerDesc->AddressSpace.HandlerFlags &
- ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)
- {
- /* Deactivate region and free region context */
-
- if (HandlerDesc->AddressSpace.Setup)
- {
- (void) HandlerDesc->AddressSpace.Setup (Object,
- ACPI_REGION_DEACTIVATE,
- HandlerDesc->AddressSpace.Context,
- &SecondDesc->Extra.RegionContext);
- }
- }
-
- AcpiUtRemoveReference (HandlerDesc);
- }
-
- /* Now we can free the Extra object */
-
- AcpiUtDeleteObjectDesc (SecondDesc);
- }
- break;
-
-
- case ACPI_TYPE_BUFFER_FIELD:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
- "***** Buffer Field %p\n", Object));
-
- SecondDesc = AcpiNsGetSecondaryObject (Object);
- if (SecondDesc)
- {
- AcpiUtDeleteObjectDesc (SecondDesc);
- }
- break;
-
-
- default:
- break;
- }
-
- /* Free any allocated memory (pointer within the object) found above */
-
- if (ObjPointer)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "Deleting Object Subptr %p\n",
- ObjPointer));
- ACPI_FREE (ObjPointer);
- }
-
- /* Now the object can be safely deleted */
-
- ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "Deleting Object %p [%s]\n",
- Object, AcpiUtGetObjectTypeName (Object)));
-
- AcpiUtDeleteObjectDesc (Object);
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtDeleteInternalObjectList
- *
- * PARAMETERS: ObjList - Pointer to the list to be deleted
- *
- * RETURN: None
- *
- * DESCRIPTION: This function deletes an internal object list, including both
- * simple objects and package objects
- *
- ******************************************************************************/
-
-void
-AcpiUtDeleteInternalObjectList (
- ACPI_OPERAND_OBJECT **ObjList)
-{
- ACPI_OPERAND_OBJECT **InternalObj;
-
-
- ACPI_FUNCTION_TRACE (UtDeleteInternalObjectList);
-
-
- /* Walk the null-terminated internal list */
-
- for (InternalObj = ObjList; *InternalObj; InternalObj++)
- {
- AcpiUtRemoveReference (*InternalObj);
- }
-
- /* Free the combined parameter pointer list and object array */
-
- ACPI_FREE (ObjList);
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtUpdateRefCount
- *
- * PARAMETERS: Object - Object whose ref count is to be updated
- * Action - What to do
- *
- * RETURN: New ref count
- *
- * DESCRIPTION: Modify the ref count and return it.
- *
- ******************************************************************************/
-
-static void
-AcpiUtUpdateRefCount (
- ACPI_OPERAND_OBJECT *Object,
- UINT32 Action)
-{
- UINT16 Count;
- UINT16 NewCount;
-
-
- ACPI_FUNCTION_NAME (UtUpdateRefCount);
-
-
- if (!Object)
- {
- return;
- }
-
- Count = Object->Common.ReferenceCount;
- NewCount = Count;
-
- /*
- * Perform the reference count action (increment, decrement, force delete)
- */
- switch (Action)
- {
- case REF_INCREMENT:
-
- NewCount++;
- Object->Common.ReferenceCount = NewCount;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
- "Obj %p Refs=%X, [Incremented]\n",
- Object, NewCount));
- break;
-
- case REF_DECREMENT:
-
- if (Count < 1)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
- "Obj %p Refs=%X, can't decrement! (Set to 0)\n",
- Object, NewCount));
-
- NewCount = 0;
- }
- else
- {
- NewCount--;
-
- ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
- "Obj %p Refs=%X, [Decremented]\n",
- Object, NewCount));
- }
-
- if (ACPI_GET_OBJECT_TYPE (Object) == ACPI_TYPE_METHOD)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
- "Method Obj %p Refs=%X, [Decremented]\n", Object, NewCount));
- }
-
- Object->Common.ReferenceCount = NewCount;
- if (NewCount == 0)
- {
- AcpiUtDeleteInternalObj (Object);
- }
- break;
-
- case REF_FORCE_DELETE:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
- "Obj %p Refs=%X, Force delete! (Set to 0)\n", Object, Count));
-
- NewCount = 0;
- Object->Common.ReferenceCount = NewCount;
- AcpiUtDeleteInternalObj (Object);
- break;
-
- default:
-
- ACPI_ERROR ((AE_INFO, "Unknown action (%X)", Action));
- break;
- }
-
- /*
- * Sanity check the reference count, for debug purposes only.
- * (A deleted object will have a huge reference count)
- */
- if (Count > ACPI_MAX_REFERENCE_COUNT)
- {
- ACPI_WARNING ((AE_INFO,
- "Large Reference Count (%X) in object %p", Count, Object));
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtUpdateObjectReference
- *
- * PARAMETERS: Object - Increment ref count for this object
- * and all sub-objects
- * Action - Either REF_INCREMENT or REF_DECREMENT or
- * REF_FORCE_DELETE
- *
- * RETURN: Status
- *
- * DESCRIPTION: Increment the object reference count
- *
- * Object references are incremented when:
- * 1) An object is attached to a Node (namespace object)
- * 2) An object is copied (all subobjects must be incremented)
- *
- * Object references are decremented when:
- * 1) An object is detached from an Node
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtUpdateObjectReference (
- ACPI_OPERAND_OBJECT *Object,
- UINT16 Action)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_GENERIC_STATE *StateList = NULL;
- ACPI_OPERAND_OBJECT *NextObject = NULL;
- ACPI_GENERIC_STATE *State;
- ACPI_NATIVE_UINT i;
-
-
- ACPI_FUNCTION_TRACE_PTR (UtUpdateObjectReference, Object);
-
-
- while (Object)
- {
- /* Make sure that this isn't a namespace handle */
-
- if (ACPI_GET_DESCRIPTOR_TYPE (Object) == ACPI_DESC_TYPE_NAMED)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
- "Object %p is NS handle\n", Object));
- return_ACPI_STATUS (AE_OK);
- }
-
- /*
- * All sub-objects must have their reference count incremented also.
- * Different object types have different subobjects.
- */
- switch (ACPI_GET_OBJECT_TYPE (Object))
- {
- case ACPI_TYPE_DEVICE:
- case ACPI_TYPE_PROCESSOR:
- case ACPI_TYPE_POWER:
- case ACPI_TYPE_THERMAL:
-
- /* Update the notify objects for these types (if present) */
-
- AcpiUtUpdateRefCount (Object->CommonNotify.SystemNotify, Action);
- AcpiUtUpdateRefCount (Object->CommonNotify.DeviceNotify, Action);
- break;
-
- case ACPI_TYPE_PACKAGE:
- /*
- * We must update all the sub-objects of the package,
- * each of whom may have their own sub-objects.
- */
- for (i = 0; i < Object->Package.Count; i++)
- {
- /*
- * Push each element onto the stack for later processing.
- * Note: There can be null elements within the package,
- * these are simply ignored
- */
- Status = AcpiUtCreateUpdateStateAndPush (
- Object->Package.Elements[i], Action, &StateList);
- if (ACPI_FAILURE (Status))
- {
- goto ErrorExit;
- }
- }
- break;
-
- case ACPI_TYPE_BUFFER_FIELD:
-
- NextObject = Object->BufferField.BufferObj;
- break;
-
- case ACPI_TYPE_LOCAL_REGION_FIELD:
-
- NextObject = Object->Field.RegionObj;
- break;
-
- case ACPI_TYPE_LOCAL_BANK_FIELD:
-
- NextObject = Object->BankField.BankObj;
- Status = AcpiUtCreateUpdateStateAndPush (
- Object->BankField.RegionObj, Action, &StateList);
- if (ACPI_FAILURE (Status))
- {
- goto ErrorExit;
- }
- break;
-
- case ACPI_TYPE_LOCAL_INDEX_FIELD:
-
- NextObject = Object->IndexField.IndexObj;
- Status = AcpiUtCreateUpdateStateAndPush (
- Object->IndexField.DataObj, Action, &StateList);
- if (ACPI_FAILURE (Status))
- {
- goto ErrorExit;
- }
- break;
-
- case ACPI_TYPE_LOCAL_REFERENCE:
- /*
- * The target of an Index (a package, string, or buffer) must track
- * changes to the ref count of the index.
- */
- if (Object->Reference.Opcode == AML_INDEX_OP)
- {
- NextObject = Object->Reference.Object;
- }
- break;
-
- case ACPI_TYPE_REGION:
- default:
- break; /* No subobjects for all other types */
- }
-
- /*
- * Now we can update the count in the main object. This can only
- * happen after we update the sub-objects in case this causes the
- * main object to be deleted.
- */
- AcpiUtUpdateRefCount (Object, Action);
- Object = NULL;
-
- /* Move on to the next object to be updated */
-
- if (NextObject)
- {
- Object = NextObject;
- NextObject = NULL;
- }
- else if (StateList)
- {
- State = AcpiUtPopGenericState (&StateList);
- Object = State->Update.Object;
- AcpiUtDeleteGenericState (State);
- }
- }
-
- return_ACPI_STATUS (AE_OK);
-
-ErrorExit:
-
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Could not update object reference count"));
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtAddReference
- *
- * PARAMETERS: Object - Object whose reference count is to be
- * incremented
- *
- * RETURN: None
- *
- * DESCRIPTION: Add one reference to an ACPI object
- *
- ******************************************************************************/
-
-void
-AcpiUtAddReference (
- ACPI_OPERAND_OBJECT *Object)
-{
-
- ACPI_FUNCTION_TRACE_PTR (UtAddReference, Object);
-
-
- /* Ensure that we have a valid object */
-
- if (!AcpiUtValidInternalObject (Object))
- {
- return_VOID;
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
- "Obj %p Current Refs=%X [To Be Incremented]\n",
- Object, Object->Common.ReferenceCount));
-
- /* Increment the reference count */
-
- (void) AcpiUtUpdateObjectReference (Object, REF_INCREMENT);
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtRemoveReference
- *
- * PARAMETERS: Object - Object whose ref count will be decremented
- *
- * RETURN: None
- *
- * DESCRIPTION: Decrement the reference count of an ACPI internal object
- *
- ******************************************************************************/
-
-void
-AcpiUtRemoveReference (
- ACPI_OPERAND_OBJECT *Object)
-{
-
- ACPI_FUNCTION_TRACE_PTR (UtRemoveReference, Object);
-
-
- /*
- * Allow a NULL pointer to be passed in, just ignore it. This saves
- * each caller from having to check. Also, ignore NS nodes.
- *
- */
- if (!Object ||
- (ACPI_GET_DESCRIPTOR_TYPE (Object) == ACPI_DESC_TYPE_NAMED))
-
- {
- return_VOID;
- }
-
- /* Ensure that we have a valid object */
-
- if (!AcpiUtValidInternalObject (Object))
- {
- return_VOID;
- }
-
- ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
- "Obj %p Current Refs=%X [To Be Decremented]\n",
- Object, Object->Common.ReferenceCount));
-
- /*
- * Decrement the reference count, and only actually delete the object
- * if the reference count becomes 0. (Must also decrement the ref count
- * of all subobjects!)
- */
- (void) AcpiUtUpdateObjectReference (Object, REF_DECREMENT);
- return_VOID;
-}
-
-
diff --git a/sys/contrib/dev/acpica/uteval.c b/sys/contrib/dev/acpica/uteval.c
deleted file mode 100644
index 5e16abb..0000000
--- a/sys/contrib/dev/acpica/uteval.c
+++ /dev/null
@@ -1,880 +0,0 @@
-/******************************************************************************
- *
- * Module Name: uteval - Object evaluation
- * $Revision: 1.71 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __UTEVAL_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acinterp.h>
-
-
-#define _COMPONENT ACPI_UTILITIES
- ACPI_MODULE_NAME ("uteval")
-
-/* Local prototypes */
-
-static void
-AcpiUtCopyIdString (
- char *Destination,
- char *Source,
- ACPI_SIZE MaxLength);
-
-static ACPI_STATUS
-AcpiUtTranslateOneCid (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_COMPATIBLE_ID *OneCid);
-
-
-/*
- * Strings supported by the _OSI predefined (internal) method.
- */
-static const char *AcpiInterfacesSupported[] =
-{
- /* Operating System Vendor Strings */
-
- "Linux",
- "Windows 2000",
- "Windows 2001",
- "Windows 2001 SP0",
- "Windows 2001 SP1",
- "Windows 2001 SP2",
- "Windows 2001 SP3",
- "Windows 2001 SP4",
- "Windows 2001.1",
- "Windows 2001.1 SP1", /* Added 03/2006 */
- "Windows 2006", /* Added 03/2006 */
-
- /* Feature Group Strings */
-
- "Extended Address Space Descriptor"
-
- /*
- * All "optional" feature group strings (features that are implemented
- * by the host) should be implemented in the host version of
- * AcpiOsValidateInterface and should not be added here.
- */
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtOsiImplementation
- *
- * PARAMETERS: WalkState - Current walk state
- *
- * RETURN: Status
- *
- * DESCRIPTION: Implementation of the _OSI predefined control method
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtOsiImplementation (
- ACPI_WALK_STATE *WalkState)
-{
- ACPI_STATUS Status;
- ACPI_OPERAND_OBJECT *StringDesc;
- ACPI_OPERAND_OBJECT *ReturnDesc;
- ACPI_NATIVE_UINT i;
-
-
- ACPI_FUNCTION_TRACE (UtOsiImplementation);
-
-
- /* Validate the string input argument */
-
- StringDesc = WalkState->Arguments[0].Object;
- if (!StringDesc || (StringDesc->Common.Type != ACPI_TYPE_STRING))
- {
- return_ACPI_STATUS (AE_TYPE);
- }
-
- /* Create a return object */
-
- ReturnDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
- if (!ReturnDesc)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* Default return value is SUPPORTED */
-
- ReturnDesc->Integer.Value = ACPI_UINT32_MAX;
- WalkState->ReturnDesc = ReturnDesc;
-
- /* Compare input string to static table of supported interfaces */
-
- for (i = 0; i < ACPI_ARRAY_LENGTH (AcpiInterfacesSupported); i++)
- {
- if (!ACPI_STRCMP (StringDesc->String.Pointer, AcpiInterfacesSupported[i]))
- {
- /* The interface is supported */
-
- return_ACPI_STATUS (AE_CTRL_TERMINATE);
- }
- }
-
- /*
- * Did not match the string in the static table, call the host OSL to
- * check for a match with one of the optional strings (such as
- * "Module Device", "3.0 Thermal Model", etc.)
- */
- Status = AcpiOsValidateInterface (StringDesc->String.Pointer);
- if (ACPI_SUCCESS (Status))
- {
- /* The interface is supported */
-
- return_ACPI_STATUS (AE_CTRL_TERMINATE);
- }
-
- /* The interface is not supported */
-
- ReturnDesc->Integer.Value = 0;
- return_ACPI_STATUS (AE_CTRL_TERMINATE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtEvaluateObject
- *
- * PARAMETERS: PrefixNode - Starting node
- * Path - Path to object from starting node
- * ExpectedReturnTypes - Bitmap of allowed return types
- * ReturnDesc - Where a return value is stored
- *
- * RETURN: Status
- *
- * DESCRIPTION: Evaluates a namespace object and verifies the type of the
- * return object. Common code that simplifies accessing objects
- * that have required return objects of fixed types.
- *
- * NOTE: Internal function, no parameter validation
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtEvaluateObject (
- ACPI_NAMESPACE_NODE *PrefixNode,
- char *Path,
- UINT32 ExpectedReturnBtypes,
- ACPI_OPERAND_OBJECT **ReturnDesc)
-{
- ACPI_EVALUATE_INFO *Info;
- ACPI_STATUS Status;
- UINT32 ReturnBtype;
-
-
- ACPI_FUNCTION_TRACE (UtEvaluateObject);
-
-
- /* Allocate the evaluation information block */
-
- Info = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_EVALUATE_INFO));
- if (!Info)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- Info->PrefixNode = PrefixNode;
- Info->Pathname = Path;
- Info->ParameterType = ACPI_PARAM_ARGS;
-
- /* Evaluate the object/method */
-
- Status = AcpiNsEvaluate (Info);
- if (ACPI_FAILURE (Status))
- {
- if (Status == AE_NOT_FOUND)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[%4.4s.%s] was not found\n",
- AcpiUtGetNodeName (PrefixNode), Path));
- }
- else
- {
- ACPI_ERROR_METHOD ("Method execution failed",
- PrefixNode, Path, Status);
- }
-
- goto Cleanup;
- }
-
- /* Did we get a return object? */
-
- if (!Info->ReturnObject)
- {
- if (ExpectedReturnBtypes)
- {
- ACPI_ERROR_METHOD ("No object was returned from",
- PrefixNode, Path, AE_NOT_EXIST);
-
- Status = AE_NOT_EXIST;
- }
-
- goto Cleanup;
- }
-
- /* Map the return object type to the bitmapped type */
-
- switch (ACPI_GET_OBJECT_TYPE (Info->ReturnObject))
- {
- case ACPI_TYPE_INTEGER:
- ReturnBtype = ACPI_BTYPE_INTEGER;
- break;
-
- case ACPI_TYPE_BUFFER:
- ReturnBtype = ACPI_BTYPE_BUFFER;
- break;
-
- case ACPI_TYPE_STRING:
- ReturnBtype = ACPI_BTYPE_STRING;
- break;
-
- case ACPI_TYPE_PACKAGE:
- ReturnBtype = ACPI_BTYPE_PACKAGE;
- break;
-
- default:
- ReturnBtype = 0;
- break;
- }
-
- if ((AcpiGbl_EnableInterpreterSlack) &&
- (!ExpectedReturnBtypes))
- {
- /*
- * We received a return object, but one was not expected. This can
- * happen frequently if the "implicit return" feature is enabled.
- * Just delete the return object and return AE_OK.
- */
- AcpiUtRemoveReference (Info->ReturnObject);
- goto Cleanup;
- }
-
- /* Is the return object one of the expected types? */
-
- if (!(ExpectedReturnBtypes & ReturnBtype))
- {
- ACPI_ERROR_METHOD ("Return object type is incorrect",
- PrefixNode, Path, AE_TYPE);
-
- ACPI_ERROR ((AE_INFO,
- "Type returned from %s was incorrect: %s, expected Btypes: %X",
- Path, AcpiUtGetObjectTypeName (Info->ReturnObject),
- ExpectedReturnBtypes));
-
- /* On error exit, we must delete the return object */
-
- AcpiUtRemoveReference (Info->ReturnObject);
- Status = AE_TYPE;
- goto Cleanup;
- }
-
- /* Object type is OK, return it */
-
- *ReturnDesc = Info->ReturnObject;
-
-Cleanup:
- ACPI_FREE (Info);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtEvaluateNumericObject
- *
- * PARAMETERS: ObjectName - Object name to be evaluated
- * DeviceNode - Node for the device
- * Address - Where the value is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Evaluates a numeric namespace object for a selected device
- * and stores result in *Address.
- *
- * NOTE: Internal function, no parameter validation
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtEvaluateNumericObject (
- char *ObjectName,
- ACPI_NAMESPACE_NODE *DeviceNode,
- ACPI_INTEGER *Address)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (UtEvaluateNumericObject);
-
-
- Status = AcpiUtEvaluateObject (DeviceNode, ObjectName,
- ACPI_BTYPE_INTEGER, &ObjDesc);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Get the returned Integer */
-
- *Address = ObjDesc->Integer.Value;
-
- /* On exit, we must delete the return object */
-
- AcpiUtRemoveReference (ObjDesc);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCopyIdString
- *
- * PARAMETERS: Destination - Where to copy the string
- * Source - Source string
- * MaxLength - Length of the destination buffer
- *
- * RETURN: None
- *
- * DESCRIPTION: Copies an ID string for the _HID, _CID, and _UID methods.
- * Performs removal of a leading asterisk if present -- workaround
- * for a known issue on a bunch of machines.
- *
- ******************************************************************************/
-
-static void
-AcpiUtCopyIdString (
- char *Destination,
- char *Source,
- ACPI_SIZE MaxLength)
-{
-
- /*
- * Workaround for ID strings that have a leading asterisk. This construct
- * is not allowed by the ACPI specification (ID strings must be
- * alphanumeric), but enough existing machines have this embedded in their
- * ID strings that the following code is useful.
- */
- if (*Source == '*')
- {
- Source++;
- }
-
- /* Do the actual copy */
-
- ACPI_STRNCPY (Destination, Source, MaxLength);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtExecute_HID
- *
- * PARAMETERS: DeviceNode - Node for the device
- * Hid - Where the HID is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Executes the _HID control method that returns the hardware
- * ID of the device.
- *
- * NOTE: Internal function, no parameter validation
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtExecute_HID (
- ACPI_NAMESPACE_NODE *DeviceNode,
- ACPI_DEVICE_ID *Hid)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (UtExecute_HID);
-
-
- Status = AcpiUtEvaluateObject (DeviceNode, METHOD_NAME__HID,
- ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING, &ObjDesc);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- if (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_INTEGER)
- {
- /* Convert the Numeric HID to string */
-
- AcpiExEisaIdToString ((UINT32) ObjDesc->Integer.Value, Hid->Value);
- }
- else
- {
- /* Copy the String HID from the returned object */
-
- AcpiUtCopyIdString (Hid->Value, ObjDesc->String.Pointer,
- sizeof (Hid->Value));
- }
-
- /* On exit, we must delete the return object */
-
- AcpiUtRemoveReference (ObjDesc);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtTranslateOneCid
- *
- * PARAMETERS: ObjDesc - _CID object, must be integer or string
- * OneCid - Where the CID string is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Return a numeric or string _CID value as a string.
- * (Compatible ID)
- *
- * NOTE: Assumes a maximum _CID string length of
- * ACPI_MAX_CID_LENGTH.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtTranslateOneCid (
- ACPI_OPERAND_OBJECT *ObjDesc,
- ACPI_COMPATIBLE_ID *OneCid)
-{
-
-
- switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
- {
- case ACPI_TYPE_INTEGER:
-
- /* Convert the Numeric CID to string */
-
- AcpiExEisaIdToString ((UINT32) ObjDesc->Integer.Value, OneCid->Value);
- return (AE_OK);
-
- case ACPI_TYPE_STRING:
-
- if (ObjDesc->String.Length > ACPI_MAX_CID_LENGTH)
- {
- return (AE_AML_STRING_LIMIT);
- }
-
- /* Copy the String CID from the returned object */
-
- AcpiUtCopyIdString (OneCid->Value, ObjDesc->String.Pointer,
- ACPI_MAX_CID_LENGTH);
- return (AE_OK);
-
- default:
-
- return (AE_TYPE);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtExecute_CID
- *
- * PARAMETERS: DeviceNode - Node for the device
- * ReturnCidList - Where the CID list is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Executes the _CID control method that returns one or more
- * compatible hardware IDs for the device.
- *
- * NOTE: Internal function, no parameter validation
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtExecute_CID (
- ACPI_NAMESPACE_NODE *DeviceNode,
- ACPI_COMPATIBLE_ID_LIST **ReturnCidList)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_STATUS Status;
- UINT32 Count;
- UINT32 Size;
- ACPI_COMPATIBLE_ID_LIST *CidList;
- ACPI_NATIVE_UINT i;
-
-
- ACPI_FUNCTION_TRACE (UtExecute_CID);
-
-
- /* Evaluate the _CID method for this device */
-
- Status = AcpiUtEvaluateObject (DeviceNode, METHOD_NAME__CID,
- ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING | ACPI_BTYPE_PACKAGE,
- &ObjDesc);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Get the number of _CIDs returned */
-
- Count = 1;
- if (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_PACKAGE)
- {
- Count = ObjDesc->Package.Count;
- }
-
- /* Allocate a worst-case buffer for the _CIDs */
-
- Size = (((Count - 1) * sizeof (ACPI_COMPATIBLE_ID)) +
- sizeof (ACPI_COMPATIBLE_ID_LIST));
-
- CidList = ACPI_ALLOCATE_ZEROED ((ACPI_SIZE) Size);
- if (!CidList)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- /* Init CID list */
-
- CidList->Count = Count;
- CidList->Size = Size;
-
- /*
- * A _CID can return either a single compatible ID or a package of
- * compatible IDs. Each compatible ID can be one of the following:
- * 1) Integer (32 bit compressed EISA ID) or
- * 2) String (PCI ID format, e.g. "PCI\VEN_vvvv&DEV_dddd&SUBSYS_ssssssss")
- */
-
- /* The _CID object can be either a single CID or a package (list) of CIDs */
-
- if (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_PACKAGE)
- {
- /* Translate each package element */
-
- for (i = 0; i < Count; i++)
- {
- Status = AcpiUtTranslateOneCid (ObjDesc->Package.Elements[i],
- &CidList->Id[i]);
- if (ACPI_FAILURE (Status))
- {
- break;
- }
- }
- }
- else
- {
- /* Only one CID, translate to a string */
-
- Status = AcpiUtTranslateOneCid (ObjDesc, CidList->Id);
- }
-
- /* Cleanup on error */
-
- if (ACPI_FAILURE (Status))
- {
- ACPI_FREE (CidList);
- }
- else
- {
- *ReturnCidList = CidList;
- }
-
- /* On exit, we must delete the _CID return object */
-
- AcpiUtRemoveReference (ObjDesc);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtExecute_UID
- *
- * PARAMETERS: DeviceNode - Node for the device
- * Uid - Where the UID is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Executes the _UID control method that returns the hardware
- * ID of the device.
- *
- * NOTE: Internal function, no parameter validation
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtExecute_UID (
- ACPI_NAMESPACE_NODE *DeviceNode,
- ACPI_DEVICE_ID *Uid)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (UtExecute_UID);
-
-
- Status = AcpiUtEvaluateObject (DeviceNode, METHOD_NAME__UID,
- ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING, &ObjDesc);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- if (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_INTEGER)
- {
- /* Convert the Numeric UID to string */
-
- AcpiExUnsignedIntegerToString (ObjDesc->Integer.Value, Uid->Value);
- }
- else
- {
- /* Copy the String UID from the returned object */
-
- AcpiUtCopyIdString (Uid->Value, ObjDesc->String.Pointer,
- sizeof (Uid->Value));
- }
-
- /* On exit, we must delete the return object */
-
- AcpiUtRemoveReference (ObjDesc);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtExecute_STA
- *
- * PARAMETERS: DeviceNode - Node for the device
- * Flags - Where the status flags are returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Executes _STA for selected device and stores results in
- * *Flags.
- *
- * NOTE: Internal function, no parameter validation
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtExecute_STA (
- ACPI_NAMESPACE_NODE *DeviceNode,
- UINT32 *Flags)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (UtExecute_STA);
-
-
- Status = AcpiUtEvaluateObject (DeviceNode, METHOD_NAME__STA,
- ACPI_BTYPE_INTEGER, &ObjDesc);
- if (ACPI_FAILURE (Status))
- {
- if (AE_NOT_FOUND == Status)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "_STA on %4.4s was not found, assuming device is present\n",
- AcpiUtGetNodeName (DeviceNode)));
-
- *Flags = ACPI_UINT32_MAX;
- Status = AE_OK;
- }
-
- return_ACPI_STATUS (Status);
- }
-
- /* Extract the status flags */
-
- *Flags = (UINT32) ObjDesc->Integer.Value;
-
- /* On exit, we must delete the return object */
-
- AcpiUtRemoveReference (ObjDesc);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtExecute_Sxds
- *
- * PARAMETERS: DeviceNode - Node for the device
- * Flags - Where the status flags are returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Executes _STA for selected device and stores results in
- * *Flags.
- *
- * NOTE: Internal function, no parameter validation
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtExecute_Sxds (
- ACPI_NAMESPACE_NODE *DeviceNode,
- UINT8 *Highest)
-{
- ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_STATUS Status;
- UINT32 i;
-
-
- ACPI_FUNCTION_TRACE (UtExecute_Sxds);
-
-
- for (i = 0; i < 4; i++)
- {
- Highest[i] = 0xFF;
- Status = AcpiUtEvaluateObject (DeviceNode,
- ACPI_CAST_PTR (char, AcpiGbl_HighestDstateNames[i]),
- ACPI_BTYPE_INTEGER, &ObjDesc);
- if (ACPI_FAILURE (Status))
- {
- if (Status != AE_NOT_FOUND)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "%s on Device %4.4s, %s\n",
- ACPI_CAST_PTR (char, AcpiGbl_HighestDstateNames[i]),
- AcpiUtGetNodeName (DeviceNode),
- AcpiFormatException (Status)));
-
- return_ACPI_STATUS (Status);
- }
- }
- else
- {
- /* Extract the Dstate value */
-
- Highest[i] = (UINT8) ObjDesc->Integer.Value;
-
- /* Delete the return object */
-
- AcpiUtRemoveReference (ObjDesc);
- }
- }
-
- return_ACPI_STATUS (AE_OK);
-}
diff --git a/sys/contrib/dev/acpica/utglobal.c b/sys/contrib/dev/acpica/utglobal.c
deleted file mode 100644
index b83d288..0000000
--- a/sys/contrib/dev/acpica/utglobal.c
+++ /dev/null
@@ -1,842 +0,0 @@
-/******************************************************************************
- *
- * Module Name: utglobal - Global variables for the ACPI subsystem
- * $Revision: 1.249 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __UTGLOBAL_C__
-#define DEFINE_ACPI_GLOBALS
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-ACPI_EXPORT_SYMBOL (AcpiGbl_FADT)
-
-#define _COMPONENT ACPI_UTILITIES
- ACPI_MODULE_NAME ("utglobal")
-
-
-/*******************************************************************************
- *
- * Static global variable initialization.
- *
- ******************************************************************************/
-
-/*
- * We want the debug switches statically initialized so they
- * are already set when the debugger is entered.
- */
-
-/* Debug switch - level and trace mask */
-
-#ifdef ACPI_DEBUG_OUTPUT
-UINT32 AcpiDbgLevel = ACPI_DEBUG_DEFAULT;
-#else
-UINT32 AcpiDbgLevel = ACPI_NORMAL_DEFAULT;
-#endif
-
-/* Debug switch - layer (component) mask */
-
-UINT32 AcpiDbgLayer = ACPI_COMPONENT_DEFAULT;
-UINT32 AcpiGbl_NestingLevel = 0;
-
-/* Debugger globals */
-
-BOOLEAN AcpiGbl_DbTerminateThreads = FALSE;
-BOOLEAN AcpiGbl_AbortMethod = FALSE;
-BOOLEAN AcpiGbl_MethodExecuting = FALSE;
-
-/* System flags */
-
-UINT32 AcpiGbl_StartupFlags = 0;
-
-/* System starts uninitialized */
-
-BOOLEAN AcpiGbl_Shutdown = TRUE;
-
-const char *AcpiGbl_SleepStateNames[ACPI_S_STATE_COUNT] =
-{
- "\\_S0_",
- "\\_S1_",
- "\\_S2_",
- "\\_S3_",
- "\\_S4_",
- "\\_S5_"
-};
-
-const char *AcpiGbl_HighestDstateNames[4] =
-{
- "_S1D",
- "_S2D",
- "_S3D",
- "_S4D"
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiFormatException
- *
- * PARAMETERS: Status - The ACPI_STATUS code to be formatted
- *
- * RETURN: A string containing the exception text. A valid pointer is
- * always returned.
- *
- * DESCRIPTION: This function translates an ACPI exception into an ASCII string
- * It is here instead of utxface.c so it is always present.
- *
- ******************************************************************************/
-
-const char *
-AcpiFormatException (
- ACPI_STATUS Status)
-{
- const char *Exception = NULL;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- Exception = AcpiUtValidateException (Status);
- if (!Exception)
- {
- /* Exception code was not recognized */
-
- ACPI_ERROR ((AE_INFO,
- "Unknown exception code: 0x%8.8X", Status));
-
- Exception = "UNKNOWN_STATUS_CODE";
- }
-
- return (ACPI_CAST_PTR (const char, Exception));
-}
-
-ACPI_EXPORT_SYMBOL (AcpiFormatException)
-
-
-/*******************************************************************************
- *
- * Namespace globals
- *
- ******************************************************************************/
-
-/*
- * Predefined ACPI Names (Built-in to the Interpreter)
- *
- * NOTES:
- * 1) _SB_ is defined to be a device to allow \_SB_._INI to be run
- * during the initialization sequence.
- * 2) _TZ_ is defined to be a thermal zone in order to allow ASL code to
- * perform a Notify() operation on it.
- */
-const ACPI_PREDEFINED_NAMES AcpiGbl_PreDefinedNames[] =
-{
- {"_GPE", ACPI_TYPE_LOCAL_SCOPE, NULL},
- {"_PR_", ACPI_TYPE_LOCAL_SCOPE, NULL},
- {"_SB_", ACPI_TYPE_DEVICE, NULL},
- {"_SI_", ACPI_TYPE_LOCAL_SCOPE, NULL},
- {"_TZ_", ACPI_TYPE_THERMAL, NULL},
- {"_REV", ACPI_TYPE_INTEGER, (char *) ACPI_CA_SUPPORT_LEVEL},
- {"_OS_", ACPI_TYPE_STRING, ACPI_OS_NAME},
- {"_GL_", ACPI_TYPE_MUTEX, (char *) 1},
-
-#if !defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY)
- {"_OSI", ACPI_TYPE_METHOD, (char *) 1},
-#endif
-
- /* Table terminator */
-
- {NULL, ACPI_TYPE_ANY, NULL}
-};
-
-/*
- * Properties of the ACPI Object Types, both internal and external.
- * The table is indexed by values of ACPI_OBJECT_TYPE
- */
-const UINT8 AcpiGbl_NsProperties[] =
-{
- ACPI_NS_NORMAL, /* 00 Any */
- ACPI_NS_NORMAL, /* 01 Number */
- ACPI_NS_NORMAL, /* 02 String */
- ACPI_NS_NORMAL, /* 03 Buffer */
- ACPI_NS_NORMAL, /* 04 Package */
- ACPI_NS_NORMAL, /* 05 FieldUnit */
- ACPI_NS_NEWSCOPE, /* 06 Device */
- ACPI_NS_NORMAL, /* 07 Event */
- ACPI_NS_NEWSCOPE, /* 08 Method */
- ACPI_NS_NORMAL, /* 09 Mutex */
- ACPI_NS_NORMAL, /* 10 Region */
- ACPI_NS_NEWSCOPE, /* 11 Power */
- ACPI_NS_NEWSCOPE, /* 12 Processor */
- ACPI_NS_NEWSCOPE, /* 13 Thermal */
- ACPI_NS_NORMAL, /* 14 BufferField */
- ACPI_NS_NORMAL, /* 15 DdbHandle */
- ACPI_NS_NORMAL, /* 16 Debug Object */
- ACPI_NS_NORMAL, /* 17 DefField */
- ACPI_NS_NORMAL, /* 18 BankField */
- ACPI_NS_NORMAL, /* 19 IndexField */
- ACPI_NS_NORMAL, /* 20 Reference */
- ACPI_NS_NORMAL, /* 21 Alias */
- ACPI_NS_NORMAL, /* 22 MethodAlias */
- ACPI_NS_NORMAL, /* 23 Notify */
- ACPI_NS_NORMAL, /* 24 Address Handler */
- ACPI_NS_NEWSCOPE | ACPI_NS_LOCAL, /* 25 Resource Desc */
- ACPI_NS_NEWSCOPE | ACPI_NS_LOCAL, /* 26 Resource Field */
- ACPI_NS_NEWSCOPE, /* 27 Scope */
- ACPI_NS_NORMAL, /* 28 Extra */
- ACPI_NS_NORMAL, /* 29 Data */
- ACPI_NS_NORMAL /* 30 Invalid */
-};
-
-
-/* Hex to ASCII conversion table */
-
-static const char AcpiGbl_HexToAscii[] =
-{
- '0','1','2','3','4','5','6','7',
- '8','9','A','B','C','D','E','F'
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtHexToAsciiChar
- *
- * PARAMETERS: Integer - Contains the hex digit
- * Position - bit position of the digit within the
- * integer (multiple of 4)
- *
- * RETURN: The converted Ascii character
- *
- * DESCRIPTION: Convert a hex digit to an Ascii character
- *
- ******************************************************************************/
-
-char
-AcpiUtHexToAsciiChar (
- ACPI_INTEGER Integer,
- UINT32 Position)
-{
-
- return (AcpiGbl_HexToAscii[(Integer >> Position) & 0xF]);
-}
-
-
-/******************************************************************************
- *
- * Event and Hardware globals
- *
- ******************************************************************************/
-
-ACPI_BIT_REGISTER_INFO AcpiGbl_BitRegisterInfo[ACPI_NUM_BITREG] =
-{
- /* Name Parent Register Register Bit Position Register Bit Mask */
-
- /* ACPI_BITREG_TIMER_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_TIMER_STATUS, ACPI_BITMASK_TIMER_STATUS},
- /* ACPI_BITREG_BUS_MASTER_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_BUS_MASTER_STATUS, ACPI_BITMASK_BUS_MASTER_STATUS},
- /* ACPI_BITREG_GLOBAL_LOCK_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_GLOBAL_LOCK_STATUS, ACPI_BITMASK_GLOBAL_LOCK_STATUS},
- /* ACPI_BITREG_POWER_BUTTON_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_POWER_BUTTON_STATUS, ACPI_BITMASK_POWER_BUTTON_STATUS},
- /* ACPI_BITREG_SLEEP_BUTTON_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_SLEEP_BUTTON_STATUS, ACPI_BITMASK_SLEEP_BUTTON_STATUS},
- /* ACPI_BITREG_RT_CLOCK_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_RT_CLOCK_STATUS, ACPI_BITMASK_RT_CLOCK_STATUS},
- /* ACPI_BITREG_WAKE_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_WAKE_STATUS, ACPI_BITMASK_WAKE_STATUS},
- /* ACPI_BITREG_PCIEXP_WAKE_STATUS */ {ACPI_REGISTER_PM1_STATUS, ACPI_BITPOSITION_PCIEXP_WAKE_STATUS, ACPI_BITMASK_PCIEXP_WAKE_STATUS},
-
- /* ACPI_BITREG_TIMER_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_TIMER_ENABLE, ACPI_BITMASK_TIMER_ENABLE},
- /* ACPI_BITREG_GLOBAL_LOCK_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_GLOBAL_LOCK_ENABLE, ACPI_BITMASK_GLOBAL_LOCK_ENABLE},
- /* ACPI_BITREG_POWER_BUTTON_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_POWER_BUTTON_ENABLE, ACPI_BITMASK_POWER_BUTTON_ENABLE},
- /* ACPI_BITREG_SLEEP_BUTTON_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_SLEEP_BUTTON_ENABLE, ACPI_BITMASK_SLEEP_BUTTON_ENABLE},
- /* ACPI_BITREG_RT_CLOCK_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_RT_CLOCK_ENABLE, ACPI_BITMASK_RT_CLOCK_ENABLE},
- /* ACPI_BITREG_WAKE_ENABLE */ {ACPI_REGISTER_PM1_ENABLE, 0, 0},
- /* ACPI_BITREG_PCIEXP_WAKE_DISABLE */ {ACPI_REGISTER_PM1_ENABLE, ACPI_BITPOSITION_PCIEXP_WAKE_DISABLE, ACPI_BITMASK_PCIEXP_WAKE_DISABLE},
-
- /* ACPI_BITREG_SCI_ENABLE */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_SCI_ENABLE, ACPI_BITMASK_SCI_ENABLE},
- /* ACPI_BITREG_BUS_MASTER_RLD */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_BUS_MASTER_RLD, ACPI_BITMASK_BUS_MASTER_RLD},
- /* ACPI_BITREG_GLOBAL_LOCK_RELEASE */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_GLOBAL_LOCK_RELEASE, ACPI_BITMASK_GLOBAL_LOCK_RELEASE},
- /* ACPI_BITREG_SLEEP_TYPE_A */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_SLEEP_TYPE_X, ACPI_BITMASK_SLEEP_TYPE_X},
- /* ACPI_BITREG_SLEEP_TYPE_B */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_SLEEP_TYPE_X, ACPI_BITMASK_SLEEP_TYPE_X},
- /* ACPI_BITREG_SLEEP_ENABLE */ {ACPI_REGISTER_PM1_CONTROL, ACPI_BITPOSITION_SLEEP_ENABLE, ACPI_BITMASK_SLEEP_ENABLE},
-
- /* ACPI_BITREG_ARB_DIS */ {ACPI_REGISTER_PM2_CONTROL, ACPI_BITPOSITION_ARB_DISABLE, ACPI_BITMASK_ARB_DISABLE}
-};
-
-
-ACPI_FIXED_EVENT_INFO AcpiGbl_FixedEventInfo[ACPI_NUM_FIXED_EVENTS] =
-{
- /* ACPI_EVENT_PMTIMER */ {ACPI_BITREG_TIMER_STATUS, ACPI_BITREG_TIMER_ENABLE, ACPI_BITMASK_TIMER_STATUS, ACPI_BITMASK_TIMER_ENABLE},
- /* ACPI_EVENT_GLOBAL */ {ACPI_BITREG_GLOBAL_LOCK_STATUS, ACPI_BITREG_GLOBAL_LOCK_ENABLE, ACPI_BITMASK_GLOBAL_LOCK_STATUS, ACPI_BITMASK_GLOBAL_LOCK_ENABLE},
- /* ACPI_EVENT_POWER_BUTTON */ {ACPI_BITREG_POWER_BUTTON_STATUS, ACPI_BITREG_POWER_BUTTON_ENABLE, ACPI_BITMASK_POWER_BUTTON_STATUS, ACPI_BITMASK_POWER_BUTTON_ENABLE},
- /* ACPI_EVENT_SLEEP_BUTTON */ {ACPI_BITREG_SLEEP_BUTTON_STATUS, ACPI_BITREG_SLEEP_BUTTON_ENABLE, ACPI_BITMASK_SLEEP_BUTTON_STATUS, ACPI_BITMASK_SLEEP_BUTTON_ENABLE},
- /* ACPI_EVENT_RTC */ {ACPI_BITREG_RT_CLOCK_STATUS, ACPI_BITREG_RT_CLOCK_ENABLE, ACPI_BITMASK_RT_CLOCK_STATUS, ACPI_BITMASK_RT_CLOCK_ENABLE},
-};
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtGetRegionName
- *
- * PARAMETERS: None.
- *
- * RETURN: Status
- *
- * DESCRIPTION: Translate a Space ID into a name string (Debug only)
- *
- ******************************************************************************/
-
-/* Region type decoding */
-
-const char *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS] =
-{
- "SystemMemory",
- "SystemIO",
- "PCI_Config",
- "EmbeddedControl",
- "SMBus",
- "CMOS",
- "PCIBARTarget",
- "DataTable"
-};
-
-
-char *
-AcpiUtGetRegionName (
- UINT8 SpaceId)
-{
-
- if (SpaceId >= ACPI_USER_REGION_BEGIN)
- {
- return ("UserDefinedRegion");
- }
- else if (SpaceId >= ACPI_NUM_PREDEFINED_REGIONS)
- {
- return ("InvalidSpaceId");
- }
-
- return (ACPI_CAST_PTR (char, AcpiGbl_RegionTypes[SpaceId]));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtGetEventName
- *
- * PARAMETERS: None.
- *
- * RETURN: Status
- *
- * DESCRIPTION: Translate a Event ID into a name string (Debug only)
- *
- ******************************************************************************/
-
-/* Event type decoding */
-
-static const char *AcpiGbl_EventTypes[ACPI_NUM_FIXED_EVENTS] =
-{
- "PM_Timer",
- "GlobalLock",
- "PowerButton",
- "SleepButton",
- "RealTimeClock",
-};
-
-
-char *
-AcpiUtGetEventName (
- UINT32 EventId)
-{
-
- if (EventId > ACPI_EVENT_MAX)
- {
- return ("InvalidEventID");
- }
-
- return (ACPI_CAST_PTR (char, AcpiGbl_EventTypes[EventId]));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtGetTypeName
- *
- * PARAMETERS: None.
- *
- * RETURN: Status
- *
- * DESCRIPTION: Translate a Type ID into a name string (Debug only)
- *
- ******************************************************************************/
-
-/*
- * Elements of AcpiGbl_NsTypeNames below must match
- * one-to-one with values of ACPI_OBJECT_TYPE
- *
- * The type ACPI_TYPE_ANY (Untyped) is used as a "don't care" when searching;
- * when stored in a table it really means that we have thus far seen no
- * evidence to indicate what type is actually going to be stored for this entry.
- */
-static const char AcpiGbl_BadType[] = "UNDEFINED";
-
-/* Printable names of the ACPI object types */
-
-static const char *AcpiGbl_NsTypeNames[] =
-{
- /* 00 */ "Untyped",
- /* 01 */ "Integer",
- /* 02 */ "String",
- /* 03 */ "Buffer",
- /* 04 */ "Package",
- /* 05 */ "FieldUnit",
- /* 06 */ "Device",
- /* 07 */ "Event",
- /* 08 */ "Method",
- /* 09 */ "Mutex",
- /* 10 */ "Region",
- /* 11 */ "Power",
- /* 12 */ "Processor",
- /* 13 */ "Thermal",
- /* 14 */ "BufferField",
- /* 15 */ "DdbHandle",
- /* 16 */ "DebugObject",
- /* 17 */ "RegionField",
- /* 18 */ "BankField",
- /* 19 */ "IndexField",
- /* 20 */ "Reference",
- /* 21 */ "Alias",
- /* 22 */ "MethodAlias",
- /* 23 */ "Notify",
- /* 24 */ "AddrHandler",
- /* 25 */ "ResourceDesc",
- /* 26 */ "ResourceFld",
- /* 27 */ "Scope",
- /* 28 */ "Extra",
- /* 29 */ "Data",
- /* 30 */ "Invalid"
-};
-
-
-char *
-AcpiUtGetTypeName (
- ACPI_OBJECT_TYPE Type)
-{
-
- if (Type > ACPI_TYPE_INVALID)
- {
- return (ACPI_CAST_PTR (char, AcpiGbl_BadType));
- }
-
- return (ACPI_CAST_PTR (char, AcpiGbl_NsTypeNames[Type]));
-}
-
-
-char *
-AcpiUtGetObjectTypeName (
- ACPI_OPERAND_OBJECT *ObjDesc)
-{
-
- if (!ObjDesc)
- {
- return ("[NULL Object Descriptor]");
- }
-
- return (AcpiUtGetTypeName (ACPI_GET_OBJECT_TYPE (ObjDesc)));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtGetNodeName
- *
- * PARAMETERS: Object - A namespace node
- *
- * RETURN: Pointer to a string
- *
- * DESCRIPTION: Validate the node and return the node's ACPI name.
- *
- ******************************************************************************/
-
-char *
-AcpiUtGetNodeName (
- void *Object)
-{
- ACPI_NAMESPACE_NODE *Node = (ACPI_NAMESPACE_NODE *) Object;
-
-
- /* Must return a string of exactly 4 characters == ACPI_NAME_SIZE */
-
- if (!Object)
- {
- return ("NULL");
- }
-
- /* Check for Root node */
-
- if ((Object == ACPI_ROOT_OBJECT) ||
- (Object == AcpiGbl_RootNode))
- {
- return ("\"\\\" ");
- }
-
- /* Descriptor must be a namespace node */
-
- if (ACPI_GET_DESCRIPTOR_TYPE (Node) != ACPI_DESC_TYPE_NAMED)
- {
- return ("####");
- }
-
- /* Name must be a valid ACPI name */
-
- if (!AcpiUtValidAcpiName (Node->Name.Integer))
- {
- Node->Name.Integer = AcpiUtRepairName (Node->Name.Ascii);
- }
-
- /* Return the name */
-
- return (Node->Name.Ascii);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtGetDescriptorName
- *
- * PARAMETERS: Object - An ACPI object
- *
- * RETURN: Pointer to a string
- *
- * DESCRIPTION: Validate object and return the descriptor type
- *
- ******************************************************************************/
-
-/* Printable names of object descriptor types */
-
-static const char *AcpiGbl_DescTypeNames[] =
-{
- /* 00 */ "Invalid",
- /* 01 */ "Cached",
- /* 02 */ "State-Generic",
- /* 03 */ "State-Update",
- /* 04 */ "State-Package",
- /* 05 */ "State-Control",
- /* 06 */ "State-RootParseScope",
- /* 07 */ "State-ParseScope",
- /* 08 */ "State-WalkScope",
- /* 09 */ "State-Result",
- /* 10 */ "State-Notify",
- /* 11 */ "State-Thread",
- /* 12 */ "Walk",
- /* 13 */ "Parser",
- /* 14 */ "Operand",
- /* 15 */ "Node"
-};
-
-
-char *
-AcpiUtGetDescriptorName (
- void *Object)
-{
-
- if (!Object)
- {
- return ("NULL OBJECT");
- }
-
- if (ACPI_GET_DESCRIPTOR_TYPE (Object) > ACPI_DESC_TYPE_MAX)
- {
- return (ACPI_CAST_PTR (char, AcpiGbl_BadType));
- }
-
- return (ACPI_CAST_PTR (char,
- AcpiGbl_DescTypeNames[ACPI_GET_DESCRIPTOR_TYPE (Object)]));
-
-}
-
-
-#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
-/*
- * Strings and procedures used for debug only
- */
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtGetMutexName
- *
- * PARAMETERS: MutexId - The predefined ID for this mutex.
- *
- * RETURN: String containing the name of the mutex. Always returns a valid
- * pointer.
- *
- * DESCRIPTION: Translate a mutex ID into a name string (Debug only)
- *
- ******************************************************************************/
-
-char *
-AcpiUtGetMutexName (
- UINT32 MutexId)
-{
-
- if (MutexId > ACPI_MAX_MUTEX)
- {
- return ("Invalid Mutex ID");
- }
-
- return (AcpiGbl_MutexNames[MutexId]);
-}
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtValidObjectType
- *
- * PARAMETERS: Type - Object type to be validated
- *
- * RETURN: TRUE if valid object type, FALSE otherwise
- *
- * DESCRIPTION: Validate an object type
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiUtValidObjectType (
- ACPI_OBJECT_TYPE Type)
-{
-
- if (Type > ACPI_TYPE_LOCAL_MAX)
- {
- /* Note: Assumes all TYPEs are contiguous (external/local) */
-
- return (FALSE);
- }
-
- return (TRUE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtInitGlobals
- *
- * PARAMETERS: None
- *
- * RETURN: None
- *
- * DESCRIPTION: Init library globals. All globals that require specific
- * initialization should be initialized here!
- *
- ******************************************************************************/
-
-void
-AcpiUtInitGlobals (
- void)
-{
- ACPI_STATUS Status;
- UINT32 i;
-
-
- ACPI_FUNCTION_TRACE (UtInitGlobals);
-
-
- /* Create all memory caches */
-
- Status = AcpiUtCreateCaches ();
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- /* Mutex locked flags */
-
- for (i = 0; i < ACPI_NUM_MUTEX; i++)
- {
- AcpiGbl_MutexInfo[i].Mutex = NULL;
- AcpiGbl_MutexInfo[i].ThreadId = ACPI_MUTEX_NOT_ACQUIRED;
- AcpiGbl_MutexInfo[i].UseCount = 0;
- }
-
- for (i = 0; i < ACPI_NUM_OWNERID_MASKS; i++)
- {
- AcpiGbl_OwnerIdMask[i] = 0;
- }
- AcpiGbl_OwnerIdMask[ACPI_NUM_OWNERID_MASKS - 1] = 0x80000000; /* Last ID is never valid */
-
- /* GPE support */
-
- AcpiGpeCount = 0;
- AcpiGbl_GpeXruptListHead = NULL;
- AcpiGbl_GpeFadtBlocks[0] = NULL;
- AcpiGbl_GpeFadtBlocks[1] = NULL;
-
- /* Global notify handlers */
-
- AcpiGbl_SystemNotify.Handler = NULL;
- AcpiGbl_DeviceNotify.Handler = NULL;
- AcpiGbl_ExceptionHandler = NULL;
- AcpiGbl_InitHandler = NULL;
-
- /* Global Lock support */
-
- AcpiGbl_GlobalLockSemaphore = NULL;
- AcpiGbl_GlobalLockMutex = NULL;
- AcpiGbl_GlobalLockAcquired = FALSE;
- AcpiGbl_GlobalLockHandle = 0;
-
- /* Miscellaneous variables */
-
- AcpiGbl_CmSingleStep = FALSE;
- AcpiGbl_DbTerminateThreads = FALSE;
- AcpiGbl_Shutdown = FALSE;
- AcpiGbl_NsLookupCount = 0;
- AcpiGbl_PsFindCount = 0;
- AcpiGbl_AcpiHardwarePresent = TRUE;
- AcpiGbl_LastOwnerIdIndex = 0;
- AcpiGbl_NextOwnerIdOffset = 0;
- AcpiGbl_TraceMethodName = 0;
- AcpiGbl_TraceDbgLevel = 0;
- AcpiGbl_TraceDbgLayer = 0;
- AcpiGbl_DebuggerConfiguration = DEBUGGER_THREADING;
- AcpiGbl_DbOutputFlags = ACPI_DB_CONSOLE_OUTPUT;
-
- /* Hardware oriented */
-
- AcpiGbl_EventsInitialized = FALSE;
- AcpiGbl_SystemAwakeAndRunning = TRUE;
-
- /* Namespace */
-
- AcpiGbl_RootNode = NULL;
- AcpiGbl_RootNodeStruct.Name.Integer = ACPI_ROOT_NAME;
- AcpiGbl_RootNodeStruct.DescriptorType = ACPI_DESC_TYPE_NAMED;
- AcpiGbl_RootNodeStruct.Type = ACPI_TYPE_DEVICE;
- AcpiGbl_RootNodeStruct.Child = NULL;
- AcpiGbl_RootNodeStruct.Peer = NULL;
- AcpiGbl_RootNodeStruct.Object = NULL;
- AcpiGbl_RootNodeStruct.Flags = ANOBJ_END_OF_PEER_LIST;
-
-
-#ifdef ACPI_DEBUG_OUTPUT
- AcpiGbl_LowestStackPointer = ACPI_SIZE_MAX;
-#endif
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
- AcpiGbl_DisplayFinalMemStats = FALSE;
-#endif
-
- return_VOID;
-}
-
-/* Public globals */
-
-ACPI_EXPORT_SYMBOL (AcpiDbgLevel)
-ACPI_EXPORT_SYMBOL (AcpiDbgLayer)
-ACPI_EXPORT_SYMBOL (AcpiGpeCount)
-
-
diff --git a/sys/contrib/dev/acpica/utinit.c b/sys/contrib/dev/acpica/utinit.c
deleted file mode 100644
index b16d542..0000000
--- a/sys/contrib/dev/acpica/utinit.c
+++ /dev/null
@@ -1,241 +0,0 @@
-/******************************************************************************
- *
- * Module Name: utinit - Common ACPI subsystem initialization
- * $Revision: 1.135 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __UTINIT_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acevents.h>
-#include <contrib/dev/acpica/actables.h>
-
-#define _COMPONENT ACPI_UTILITIES
- ACPI_MODULE_NAME ("utinit")
-
-/* Local prototypes */
-
-static void AcpiUtTerminate (
- void);
-
-
-/******************************************************************************
- *
- * FUNCTION: AcpiUtTerminate
- *
- * PARAMETERS: none
- *
- * RETURN: none
- *
- * DESCRIPTION: Free global memory
- *
- ******************************************************************************/
-
-static void
-AcpiUtTerminate (
- void)
-{
- ACPI_GPE_BLOCK_INFO *GpeBlock;
- ACPI_GPE_BLOCK_INFO *NextGpeBlock;
- ACPI_GPE_XRUPT_INFO *GpeXruptInfo;
- ACPI_GPE_XRUPT_INFO *NextGpeXruptInfo;
-
-
- ACPI_FUNCTION_TRACE (UtTerminate);
-
-
- /* Free global GPE blocks and related info structures */
-
- GpeXruptInfo = AcpiGbl_GpeXruptListHead;
- while (GpeXruptInfo)
- {
- GpeBlock = GpeXruptInfo->GpeBlockListHead;
- while (GpeBlock)
- {
- NextGpeBlock = GpeBlock->Next;
- ACPI_FREE (GpeBlock->EventInfo);
- ACPI_FREE (GpeBlock->RegisterInfo);
- ACPI_FREE (GpeBlock);
-
- GpeBlock = NextGpeBlock;
- }
- NextGpeXruptInfo = GpeXruptInfo->Next;
- ACPI_FREE (GpeXruptInfo);
- GpeXruptInfo = NextGpeXruptInfo;
- }
-
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtSubsystemShutdown
- *
- * PARAMETERS: none
- *
- * RETURN: none
- *
- * DESCRIPTION: Shutdown the various subsystems. Don't delete the mutex
- * objects here -- because the AML debugger may be still running.
- *
- ******************************************************************************/
-
-void
-AcpiUtSubsystemShutdown (
- void)
-{
-
- ACPI_FUNCTION_TRACE (UtSubsystemShutdown);
-
- /* Just exit if subsystem is already shutdown */
-
- if (AcpiGbl_Shutdown)
- {
- ACPI_ERROR ((AE_INFO,
- "ACPI Subsystem is already terminated"));
- return_VOID;
- }
-
- /* Subsystem appears active, go ahead and shut it down */
-
- AcpiGbl_Shutdown = TRUE;
- AcpiGbl_StartupFlags = 0;
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "Shutting down ACPI Subsystem\n"));
-
- /* Close the AcpiEvent Handling */
-
- AcpiEvTerminate ();
-
- /* Close the Namespace */
-
- AcpiNsTerminate ();
-
- /* Delete the ACPI tables */
-
- AcpiTbTerminate ();
-
- /* Close the globals */
-
- AcpiUtTerminate ();
-
- /* Purge the local caches */
-
- (void) AcpiUtDeleteCaches ();
- return_VOID;
-}
-
-
diff --git a/sys/contrib/dev/acpica/utmath.c b/sys/contrib/dev/acpica/utmath.c
deleted file mode 100644
index f6dad73..0000000
--- a/sys/contrib/dev/acpica/utmath.c
+++ /dev/null
@@ -1,431 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: utmath - Integer math support routines
- * $Revision: 1.22 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __UTMATH_C__
-
-#include <contrib/dev/acpica/acpi.h>
-
-
-#define _COMPONENT ACPI_UTILITIES
- ACPI_MODULE_NAME ("utmath")
-
-/*
- * Support for double-precision integer divide. This code is included here
- * in order to support kernel environments where the double-precision math
- * library is not available.
- */
-
-#ifndef ACPI_USE_NATIVE_DIVIDE
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtShortDivide
- *
- * PARAMETERS: Dividend - 64-bit dividend
- * Divisor - 32-bit divisor
- * OutQuotient - Pointer to where the quotient is returned
- * OutRemainder - Pointer to where the remainder is returned
- *
- * RETURN: Status (Checks for divide-by-zero)
- *
- * DESCRIPTION: Perform a short (maximum 64 bits divided by 32 bits)
- * divide and modulo. The result is a 64-bit quotient and a
- * 32-bit remainder.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtShortDivide (
- ACPI_INTEGER Dividend,
- UINT32 Divisor,
- ACPI_INTEGER *OutQuotient,
- UINT32 *OutRemainder)
-{
- UINT64_OVERLAY DividendOvl;
- UINT64_OVERLAY Quotient;
- UINT32 Remainder32;
-
-
- ACPI_FUNCTION_TRACE (UtShortDivide);
-
-
- /* Always check for a zero divisor */
-
- if (Divisor == 0)
- {
- ACPI_ERROR ((AE_INFO, "Divide by zero"));
- return_ACPI_STATUS (AE_AML_DIVIDE_BY_ZERO);
- }
-
- DividendOvl.Full = Dividend;
-
- /*
- * The quotient is 64 bits, the remainder is always 32 bits,
- * and is generated by the second divide.
- */
- ACPI_DIV_64_BY_32 (0, DividendOvl.Part.Hi, Divisor,
- Quotient.Part.Hi, Remainder32);
- ACPI_DIV_64_BY_32 (Remainder32, DividendOvl.Part.Lo, Divisor,
- Quotient.Part.Lo, Remainder32);
-
- /* Return only what was requested */
-
- if (OutQuotient)
- {
- *OutQuotient = Quotient.Full;
- }
- if (OutRemainder)
- {
- *OutRemainder = Remainder32;
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtDivide
- *
- * PARAMETERS: InDividend - Dividend
- * InDivisor - Divisor
- * OutQuotient - Pointer to where the quotient is returned
- * OutRemainder - Pointer to where the remainder is returned
- *
- * RETURN: Status (Checks for divide-by-zero)
- *
- * DESCRIPTION: Perform a divide and modulo.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtDivide (
- ACPI_INTEGER InDividend,
- ACPI_INTEGER InDivisor,
- ACPI_INTEGER *OutQuotient,
- ACPI_INTEGER *OutRemainder)
-{
- UINT64_OVERLAY Dividend;
- UINT64_OVERLAY Divisor;
- UINT64_OVERLAY Quotient;
- UINT64_OVERLAY Remainder;
- UINT64_OVERLAY NormalizedDividend;
- UINT64_OVERLAY NormalizedDivisor;
- UINT32 Partial1;
- UINT64_OVERLAY Partial2;
- UINT64_OVERLAY Partial3;
-
-
- ACPI_FUNCTION_TRACE (UtDivide);
-
-
- /* Always check for a zero divisor */
-
- if (InDivisor == 0)
- {
- ACPI_ERROR ((AE_INFO, "Divide by zero"));
- return_ACPI_STATUS (AE_AML_DIVIDE_BY_ZERO);
- }
-
- Divisor.Full = InDivisor;
- Dividend.Full = InDividend;
- if (Divisor.Part.Hi == 0)
- {
- /*
- * 1) Simplest case is where the divisor is 32 bits, we can
- * just do two divides
- */
- Remainder.Part.Hi = 0;
-
- /*
- * The quotient is 64 bits, the remainder is always 32 bits,
- * and is generated by the second divide.
- */
- ACPI_DIV_64_BY_32 (0, Dividend.Part.Hi, Divisor.Part.Lo,
- Quotient.Part.Hi, Partial1);
- ACPI_DIV_64_BY_32 (Partial1, Dividend.Part.Lo, Divisor.Part.Lo,
- Quotient.Part.Lo, Remainder.Part.Lo);
- }
-
- else
- {
- /*
- * 2) The general case where the divisor is a full 64 bits
- * is more difficult
- */
- Quotient.Part.Hi = 0;
- NormalizedDividend = Dividend;
- NormalizedDivisor = Divisor;
-
- /* Normalize the operands (shift until the divisor is < 32 bits) */
-
- do
- {
- ACPI_SHIFT_RIGHT_64 (NormalizedDivisor.Part.Hi,
- NormalizedDivisor.Part.Lo);
- ACPI_SHIFT_RIGHT_64 (NormalizedDividend.Part.Hi,
- NormalizedDividend.Part.Lo);
-
- } while (NormalizedDivisor.Part.Hi != 0);
-
- /* Partial divide */
-
- ACPI_DIV_64_BY_32 (NormalizedDividend.Part.Hi,
- NormalizedDividend.Part.Lo,
- NormalizedDivisor.Part.Lo,
- Quotient.Part.Lo, Partial1);
-
- /*
- * The quotient is always 32 bits, and simply requires adjustment.
- * The 64-bit remainder must be generated.
- */
- Partial1 = Quotient.Part.Lo * Divisor.Part.Hi;
- Partial2.Full = (ACPI_INTEGER) Quotient.Part.Lo * Divisor.Part.Lo;
- Partial3.Full = (ACPI_INTEGER) Partial2.Part.Hi + Partial1;
-
- Remainder.Part.Hi = Partial3.Part.Lo;
- Remainder.Part.Lo = Partial2.Part.Lo;
-
- if (Partial3.Part.Hi == 0)
- {
- if (Partial3.Part.Lo >= Dividend.Part.Hi)
- {
- if (Partial3.Part.Lo == Dividend.Part.Hi)
- {
- if (Partial2.Part.Lo > Dividend.Part.Lo)
- {
- Quotient.Part.Lo--;
- Remainder.Full -= Divisor.Full;
- }
- }
- else
- {
- Quotient.Part.Lo--;
- Remainder.Full -= Divisor.Full;
- }
- }
-
- Remainder.Full = Remainder.Full - Dividend.Full;
- Remainder.Part.Hi = (UINT32) -((INT32) Remainder.Part.Hi);
- Remainder.Part.Lo = (UINT32) -((INT32) Remainder.Part.Lo);
-
- if (Remainder.Part.Lo)
- {
- Remainder.Part.Hi--;
- }
- }
- }
-
- /* Return only what was requested */
-
- if (OutQuotient)
- {
- *OutQuotient = Quotient.Full;
- }
- if (OutRemainder)
- {
- *OutRemainder = Remainder.Full;
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-#else
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtShortDivide, AcpiUtDivide
- *
- * PARAMETERS: See function headers above
- *
- * DESCRIPTION: Native versions of the UtDivide functions. Use these if either
- * 1) The target is a 64-bit platform and therefore 64-bit
- * integer math is supported directly by the machine.
- * 2) The target is a 32-bit or 16-bit platform, and the
- * double-precision integer math library is available to
- * perform the divide.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtShortDivide (
- ACPI_INTEGER InDividend,
- UINT32 Divisor,
- ACPI_INTEGER *OutQuotient,
- UINT32 *OutRemainder)
-{
-
- ACPI_FUNCTION_TRACE (UtShortDivide);
-
-
- /* Always check for a zero divisor */
-
- if (Divisor == 0)
- {
- ACPI_ERROR ((AE_INFO, "Divide by zero"));
- return_ACPI_STATUS (AE_AML_DIVIDE_BY_ZERO);
- }
-
- /* Return only what was requested */
-
- if (OutQuotient)
- {
- *OutQuotient = InDividend / Divisor;
- }
- if (OutRemainder)
- {
- *OutRemainder = (UINT32) InDividend % Divisor;
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-ACPI_STATUS
-AcpiUtDivide (
- ACPI_INTEGER InDividend,
- ACPI_INTEGER InDivisor,
- ACPI_INTEGER *OutQuotient,
- ACPI_INTEGER *OutRemainder)
-{
- ACPI_FUNCTION_TRACE (UtDivide);
-
-
- /* Always check for a zero divisor */
-
- if (InDivisor == 0)
- {
- ACPI_ERROR ((AE_INFO, "Divide by zero"));
- return_ACPI_STATUS (AE_AML_DIVIDE_BY_ZERO);
- }
-
-
- /* Return only what was requested */
-
- if (OutQuotient)
- {
- *OutQuotient = InDividend / InDivisor;
- }
- if (OutRemainder)
- {
- *OutRemainder = InDividend % InDivisor;
- }
-
- return_ACPI_STATUS (AE_OK);
-}
-
-#endif
-
-
diff --git a/sys/contrib/dev/acpica/utmisc.c b/sys/contrib/dev/acpica/utmisc.c
deleted file mode 100644
index f1585da5..0000000
--- a/sys/contrib/dev/acpica/utmisc.c
+++ /dev/null
@@ -1,1314 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: utmisc - common utility procedures
- * $Revision: 1.151 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __UTMISC_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acnamesp.h>
-
-
-#define _COMPONENT ACPI_UTILITIES
- ACPI_MODULE_NAME ("utmisc")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtValidateException
- *
- * PARAMETERS: Status - The ACPI_STATUS code to be formatted
- *
- * RETURN: A string containing the exception text. NULL if exception is
- * not valid.
- *
- * DESCRIPTION: This function validates and translates an ACPI exception into
- * an ASCII string.
- *
- ******************************************************************************/
-
-const char *
-AcpiUtValidateException (
- ACPI_STATUS Status)
-{
- ACPI_STATUS SubStatus;
- const char *Exception = NULL;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /*
- * Status is composed of two parts, a "type" and an actual code
- */
- SubStatus = (Status & ~AE_CODE_MASK);
-
- switch (Status & AE_CODE_MASK)
- {
- case AE_CODE_ENVIRONMENTAL:
-
- if (SubStatus <= AE_CODE_ENV_MAX)
- {
- Exception = AcpiGbl_ExceptionNames_Env [SubStatus];
- }
- break;
-
- case AE_CODE_PROGRAMMER:
-
- if (SubStatus <= AE_CODE_PGM_MAX)
- {
- Exception = AcpiGbl_ExceptionNames_Pgm [SubStatus -1];
- }
- break;
-
- case AE_CODE_ACPI_TABLES:
-
- if (SubStatus <= AE_CODE_TBL_MAX)
- {
- Exception = AcpiGbl_ExceptionNames_Tbl [SubStatus -1];
- }
- break;
-
- case AE_CODE_AML:
-
- if (SubStatus <= AE_CODE_AML_MAX)
- {
- Exception = AcpiGbl_ExceptionNames_Aml [SubStatus -1];
- }
- break;
-
- case AE_CODE_CONTROL:
-
- if (SubStatus <= AE_CODE_CTRL_MAX)
- {
- Exception = AcpiGbl_ExceptionNames_Ctrl [SubStatus -1];
- }
- break;
-
- default:
- break;
- }
-
- return (ACPI_CAST_PTR (const char, Exception));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtIsAmlTable
- *
- * PARAMETERS: Table - An ACPI table
- *
- * RETURN: TRUE if table contains executable AML; FALSE otherwise
- *
- * DESCRIPTION: Check ACPI Signature for a table that contains AML code.
- * Currently, these are DSDT,SSDT,PSDT. All other table types are
- * data tables that do not contain AML code.
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiUtIsAmlTable (
- ACPI_TABLE_HEADER *Table)
-{
-
- /* These are the only tables that contain executable AML */
-
- if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_DSDT) ||
- ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_PSDT) ||
- ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_SSDT))
- {
- return (TRUE);
- }
-
- return (FALSE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtAllocateOwnerId
- *
- * PARAMETERS: OwnerId - Where the new owner ID is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Allocate a table or method owner ID. The owner ID is used to
- * track objects created by the table or method, to be deleted
- * when the method exits or the table is unloaded.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtAllocateOwnerId (
- ACPI_OWNER_ID *OwnerId)
-{
- ACPI_NATIVE_UINT i;
- ACPI_NATIVE_UINT j;
- ACPI_NATIVE_UINT k;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (UtAllocateOwnerId);
-
-
- /* Guard against multiple allocations of ID to the same location */
-
- if (*OwnerId)
- {
- ACPI_ERROR ((AE_INFO, "Owner ID [%2.2X] already exists", *OwnerId));
- return_ACPI_STATUS (AE_ALREADY_EXISTS);
- }
-
- /* Mutex for the global ID mask */
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_CACHES);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * Find a free owner ID, cycle through all possible IDs on repeated
- * allocations. (ACPI_NUM_OWNERID_MASKS + 1) because first index may have
- * to be scanned twice.
- */
- for (i = 0, j = AcpiGbl_LastOwnerIdIndex;
- i < (ACPI_NUM_OWNERID_MASKS + 1);
- i++, j++)
- {
- if (j >= ACPI_NUM_OWNERID_MASKS)
- {
- j = 0; /* Wraparound to start of mask array */
- }
-
- for (k = AcpiGbl_NextOwnerIdOffset; k < 32; k++)
- {
- if (AcpiGbl_OwnerIdMask[j] == ACPI_UINT32_MAX)
- {
- /* There are no free IDs in this mask */
-
- break;
- }
-
- if (!(AcpiGbl_OwnerIdMask[j] & (1 << k)))
- {
- /*
- * Found a free ID. The actual ID is the bit index plus one,
- * making zero an invalid Owner ID. Save this as the last ID
- * allocated and update the global ID mask.
- */
- AcpiGbl_OwnerIdMask[j] |= (1 << k);
-
- AcpiGbl_LastOwnerIdIndex = (UINT8) j;
- AcpiGbl_NextOwnerIdOffset = (UINT8) (k + 1);
-
- /*
- * Construct encoded ID from the index and bit position
- *
- * Note: Last [j].k (bit 255) is never used and is marked
- * permanently allocated (prevents +1 overflow)
- */
- *OwnerId = (ACPI_OWNER_ID) ((k + 1) + ACPI_MUL_32 (j));
-
- ACPI_DEBUG_PRINT ((ACPI_DB_VALUES,
- "Allocated OwnerId: %2.2X\n", (unsigned int) *OwnerId));
- goto Exit;
- }
- }
-
- AcpiGbl_NextOwnerIdOffset = 0;
- }
-
- /*
- * All OwnerIds have been allocated. This typically should
- * not happen since the IDs are reused after deallocation. The IDs are
- * allocated upon table load (one per table) and method execution, and
- * they are released when a table is unloaded or a method completes
- * execution.
- *
- * If this error happens, there may be very deep nesting of invoked control
- * methods, or there may be a bug where the IDs are not released.
- */
- Status = AE_OWNER_ID_LIMIT;
- ACPI_ERROR ((AE_INFO,
- "Could not allocate new OwnerId (255 max), AE_OWNER_ID_LIMIT"));
-
-Exit:
- (void) AcpiUtReleaseMutex (ACPI_MTX_CACHES);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtReleaseOwnerId
- *
- * PARAMETERS: OwnerIdPtr - Pointer to a previously allocated OwnerID
- *
- * RETURN: None. No error is returned because we are either exiting a
- * control method or unloading a table. Either way, we would
- * ignore any error anyway.
- *
- * DESCRIPTION: Release a table or method owner ID. Valid IDs are 1 - 255
- *
- ******************************************************************************/
-
-void
-AcpiUtReleaseOwnerId (
- ACPI_OWNER_ID *OwnerIdPtr)
-{
- ACPI_OWNER_ID OwnerId = *OwnerIdPtr;
- ACPI_STATUS Status;
- ACPI_NATIVE_UINT Index;
- UINT32 Bit;
-
-
- ACPI_FUNCTION_TRACE_U32 (UtReleaseOwnerId, OwnerId);
-
-
- /* Always clear the input OwnerId (zero is an invalid ID) */
-
- *OwnerIdPtr = 0;
-
- /* Zero is not a valid OwnerID */
-
- if (OwnerId == 0)
- {
- ACPI_ERROR ((AE_INFO, "Invalid OwnerId: %2.2X", OwnerId));
- return_VOID;
- }
-
- /* Mutex for the global ID mask */
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_CACHES);
- if (ACPI_FAILURE (Status))
- {
- return_VOID;
- }
-
- /* Normalize the ID to zero */
-
- OwnerId--;
-
- /* Decode ID to index/offset pair */
-
- Index = ACPI_DIV_32 (OwnerId);
- Bit = 1 << ACPI_MOD_32 (OwnerId);
-
- /* Free the owner ID only if it is valid */
-
- if (AcpiGbl_OwnerIdMask[Index] & Bit)
- {
- AcpiGbl_OwnerIdMask[Index] ^= Bit;
- }
- else
- {
- ACPI_ERROR ((AE_INFO,
- "Release of non-allocated OwnerId: %2.2X", OwnerId + 1));
- }
-
- (void) AcpiUtReleaseMutex (ACPI_MTX_CACHES);
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtStrupr (strupr)
- *
- * PARAMETERS: SrcString - The source string to convert
- *
- * RETURN: None
- *
- * DESCRIPTION: Convert string to uppercase
- *
- * NOTE: This is not a POSIX function, so it appears here, not in utclib.c
- *
- ******************************************************************************/
-
-void
-AcpiUtStrupr (
- char *SrcString)
-{
- char *String;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- if (!SrcString)
- {
- return;
- }
-
- /* Walk entire string, uppercasing the letters */
-
- for (String = SrcString; *String; String++)
- {
- *String = (char) ACPI_TOUPPER (*String);
- }
-
- return;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtPrintString
- *
- * PARAMETERS: String - Null terminated ASCII string
- * MaxLength - Maximum output length
- *
- * RETURN: None
- *
- * DESCRIPTION: Dump an ASCII string with support for ACPI-defined escape
- * sequences.
- *
- ******************************************************************************/
-
-void
-AcpiUtPrintString (
- char *String,
- UINT8 MaxLength)
-{
- UINT32 i;
-
-
- if (!String)
- {
- AcpiOsPrintf ("<\"NULL STRING PTR\">");
- return;
- }
-
- AcpiOsPrintf ("\"");
- for (i = 0; String[i] && (i < MaxLength); i++)
- {
- /* Escape sequences */
-
- switch (String[i])
- {
- case 0x07:
- AcpiOsPrintf ("\\a"); /* BELL */
- break;
-
- case 0x08:
- AcpiOsPrintf ("\\b"); /* BACKSPACE */
- break;
-
- case 0x0C:
- AcpiOsPrintf ("\\f"); /* FORMFEED */
- break;
-
- case 0x0A:
- AcpiOsPrintf ("\\n"); /* LINEFEED */
- break;
-
- case 0x0D:
- AcpiOsPrintf ("\\r"); /* CARRIAGE RETURN*/
- break;
-
- case 0x09:
- AcpiOsPrintf ("\\t"); /* HORIZONTAL TAB */
- break;
-
- case 0x0B:
- AcpiOsPrintf ("\\v"); /* VERTICAL TAB */
- break;
-
- case '\'': /* Single Quote */
- case '\"': /* Double Quote */
- case '\\': /* Backslash */
- AcpiOsPrintf ("\\%c", (int) String[i]);
- break;
-
- default:
-
- /* Check for printable character or hex escape */
-
- if (ACPI_IS_PRINT (String[i]))
- {
- /* This is a normal character */
-
- AcpiOsPrintf ("%c", (int) String[i]);
- }
- else
- {
- /* All others will be Hex escapes */
-
- AcpiOsPrintf ("\\x%2.2X", (INT32) String[i]);
- }
- break;
- }
- }
- AcpiOsPrintf ("\"");
-
- if (i == MaxLength && String[i])
- {
- AcpiOsPrintf ("...");
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtDwordByteSwap
- *
- * PARAMETERS: Value - Value to be converted
- *
- * RETURN: UINT32 integer with bytes swapped
- *
- * DESCRIPTION: Convert a 32-bit value to big-endian (swap the bytes)
- *
- ******************************************************************************/
-
-UINT32
-AcpiUtDwordByteSwap (
- UINT32 Value)
-{
- union
- {
- UINT32 Value;
- UINT8 Bytes[4];
- } Out;
- union
- {
- UINT32 Value;
- UINT8 Bytes[4];
- } In;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- In.Value = Value;
-
- Out.Bytes[0] = In.Bytes[3];
- Out.Bytes[1] = In.Bytes[2];
- Out.Bytes[2] = In.Bytes[1];
- Out.Bytes[3] = In.Bytes[0];
-
- return (Out.Value);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtSetIntegerWidth
- *
- * PARAMETERS: Revision From DSDT header
- *
- * RETURN: None
- *
- * DESCRIPTION: Set the global integer bit width based upon the revision
- * of the DSDT. For Revision 1 and 0, Integers are 32 bits.
- * For Revision 2 and above, Integers are 64 bits. Yes, this
- * makes a difference.
- *
- ******************************************************************************/
-
-void
-AcpiUtSetIntegerWidth (
- UINT8 Revision)
-{
-
- if (Revision < 2)
- {
- /* 32-bit case */
-
- AcpiGbl_IntegerBitWidth = 32;
- AcpiGbl_IntegerNybbleWidth = 8;
- AcpiGbl_IntegerByteWidth = 4;
- }
- else
- {
- /* 64-bit case (ACPI 2.0+) */
-
- AcpiGbl_IntegerBitWidth = 64;
- AcpiGbl_IntegerNybbleWidth = 16;
- AcpiGbl_IntegerByteWidth = 8;
- }
-}
-
-
-#ifdef ACPI_DEBUG_OUTPUT
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtDisplayInitPathname
- *
- * PARAMETERS: Type - Object type of the node
- * ObjHandle - Handle whose pathname will be displayed
- * Path - Additional path string to be appended.
- * (NULL if no extra path)
- *
- * RETURN: ACPI_STATUS
- *
- * DESCRIPTION: Display full pathname of an object, DEBUG ONLY
- *
- ******************************************************************************/
-
-void
-AcpiUtDisplayInitPathname (
- UINT8 Type,
- ACPI_NAMESPACE_NODE *ObjHandle,
- char *Path)
-{
- ACPI_STATUS Status;
- ACPI_BUFFER Buffer;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /* Only print the path if the appropriate debug level is enabled */
-
- if (!(AcpiDbgLevel & ACPI_LV_INIT_NAMES))
- {
- return;
- }
-
- /* Get the full pathname to the node */
-
- Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
- Status = AcpiNsHandleToPathname (ObjHandle, &Buffer);
- if (ACPI_FAILURE (Status))
- {
- return;
- }
-
- /* Print what we're doing */
-
- switch (Type)
- {
- case ACPI_TYPE_METHOD:
- AcpiOsPrintf ("Executing ");
- break;
-
- default:
- AcpiOsPrintf ("Initializing ");
- break;
- }
-
- /* Print the object type and pathname */
-
- AcpiOsPrintf ("%-12s %s",
- AcpiUtGetTypeName (Type), (char *) Buffer.Pointer);
-
- /* Extra path is used to append names like _STA, _INI, etc. */
-
- if (Path)
- {
- AcpiOsPrintf (".%s", Path);
- }
- AcpiOsPrintf ("\n");
-
- ACPI_FREE (Buffer.Pointer);
-}
-#endif
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtValidAcpiChar
- *
- * PARAMETERS: Char - The character to be examined
- * Position - Byte position (0-3)
- *
- * RETURN: TRUE if the character is valid, FALSE otherwise
- *
- * DESCRIPTION: Check for a valid ACPI character. Must be one of:
- * 1) Upper case alpha
- * 2) numeric
- * 3) underscore
- *
- * We allow a '!' as the last character because of the ASF! table
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiUtValidAcpiChar (
- char Character,
- ACPI_NATIVE_UINT Position)
-{
-
- if (!((Character >= 'A' && Character <= 'Z') ||
- (Character >= '0' && Character <= '9') ||
- (Character == '_')))
- {
- /* Allow a '!' in the last position */
-
- if (Character == '!' && Position == 3)
- {
- return (TRUE);
- }
-
- return (FALSE);
- }
-
- return (TRUE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtValidAcpiName
- *
- * PARAMETERS: Name - The name to be examined
- *
- * RETURN: TRUE if the name is valid, FALSE otherwise
- *
- * DESCRIPTION: Check for a valid ACPI name. Each character must be one of:
- * 1) Upper case alpha
- * 2) numeric
- * 3) underscore
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiUtValidAcpiName (
- UINT32 Name)
-{
- ACPI_NATIVE_UINT i;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- for (i = 0; i < ACPI_NAME_SIZE; i++)
- {
- if (!AcpiUtValidAcpiChar ((ACPI_CAST_PTR (char, &Name))[i], i))
- {
- return (FALSE);
- }
- }
-
- return (TRUE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtRepairName
- *
- * PARAMETERS: Name - The ACPI name to be repaired
- *
- * RETURN: Repaired version of the name
- *
- * DESCRIPTION: Repair an ACPI name: Change invalid characters to '*' and
- * return the new name.
- *
- ******************************************************************************/
-
-ACPI_NAME
-AcpiUtRepairName (
- char *Name)
-{
- ACPI_NATIVE_UINT i;
- char NewName[ACPI_NAME_SIZE];
-
-
- for (i = 0; i < ACPI_NAME_SIZE; i++)
- {
- NewName[i] = Name[i];
-
- /*
- * Replace a bad character with something printable, yet technically
- * still invalid. This prevents any collisions with existing "good"
- * names in the namespace.
- */
- if (!AcpiUtValidAcpiChar (Name[i], i))
- {
- NewName[i] = '*';
- }
- }
-
- return (*(UINT32 *) NewName);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtStrtoul64
- *
- * PARAMETERS: String - Null terminated string
- * Base - Radix of the string: 16 or ACPI_ANY_BASE;
- * ACPI_ANY_BASE means 'in behalf of ToInteger'
- * RetInteger - Where the converted integer is returned
- *
- * RETURN: Status and Converted value
- *
- * DESCRIPTION: Convert a string into an unsigned value. Performs either a
- * 32-bit or 64-bit conversion, depending on the current mode
- * of the interpreter.
- * NOTE: Does not support Octal strings, not needed.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtStrtoul64 (
- char *String,
- UINT32 Base,
- ACPI_INTEGER *RetInteger)
-{
- UINT32 ThisDigit = 0;
- ACPI_INTEGER ReturnValue = 0;
- ACPI_INTEGER Quotient;
- ACPI_INTEGER Dividend;
- UINT32 ToIntegerOp = (Base == ACPI_ANY_BASE);
- UINT32 Mode32 = (AcpiGbl_IntegerByteWidth == 4);
- UINT8 ValidDigits = 0;
- UINT8 SignOf0x = 0;
- UINT8 Term = 0;
-
-
- ACPI_FUNCTION_TRACE_STR (UtStroul64, String);
-
-
- switch (Base)
- {
- case ACPI_ANY_BASE:
- case 16:
- break;
-
- default:
- /* Invalid Base */
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- if (!String)
- {
- goto ErrorExit;
- }
-
- /* Skip over any white space in the buffer */
-
- while ((*String) && (ACPI_IS_SPACE (*String) || *String == '\t'))
- {
- String++;
- }
-
- if (ToIntegerOp)
- {
- /*
- * Base equal to ACPI_ANY_BASE means 'ToInteger operation case'.
- * We need to determine if it is decimal or hexadecimal.
- */
- if ((*String == '0') && (ACPI_TOLOWER (*(String + 1)) == 'x'))
- {
- SignOf0x = 1;
- Base = 16;
-
- /* Skip over the leading '0x' */
- String += 2;
- }
- else
- {
- Base = 10;
- }
- }
-
- /* Any string left? Check that '0x' is not followed by white space. */
-
- if (!(*String) || ACPI_IS_SPACE (*String) || *String == '\t')
- {
- if (ToIntegerOp)
- {
- goto ErrorExit;
- }
- else
- {
- goto AllDone;
- }
- }
-
- /*
- * Perform a 32-bit or 64-bit conversion, depending upon the current
- * execution mode of the interpreter
- */
- Dividend = (Mode32) ? ACPI_UINT32_MAX : ACPI_UINT64_MAX;
-
- /* Main loop: convert the string to a 32- or 64-bit integer */
-
- while (*String)
- {
- if (ACPI_IS_DIGIT (*String))
- {
- /* Convert ASCII 0-9 to Decimal value */
-
- ThisDigit = ((UINT8) *String) - '0';
- }
- else if (Base == 10)
- {
- /* Digit is out of range; possible in ToInteger case only */
-
- Term = 1;
- }
- else
- {
- ThisDigit = (UINT8) ACPI_TOUPPER (*String);
- if (ACPI_IS_XDIGIT ((char) ThisDigit))
- {
- /* Convert ASCII Hex char to value */
-
- ThisDigit = ThisDigit - 'A' + 10;
- }
- else
- {
- Term = 1;
- }
- }
-
- if (Term)
- {
- if (ToIntegerOp)
- {
- goto ErrorExit;
- }
- else
- {
- break;
- }
- }
- else if ((ValidDigits == 0) && (ThisDigit == 0) && !SignOf0x)
- {
- /* Skip zeros */
- String++;
- continue;
- }
-
- ValidDigits++;
-
- if (SignOf0x && ((ValidDigits > 16) || ((ValidDigits > 8) && Mode32)))
- {
- /*
- * This is ToInteger operation case.
- * No any restrictions for string-to-integer conversion,
- * see ACPI spec.
- */
- goto ErrorExit;
- }
-
- /* Divide the digit into the correct position */
-
- (void) AcpiUtShortDivide ((Dividend - (ACPI_INTEGER) ThisDigit),
- Base, &Quotient, NULL);
-
- if (ReturnValue > Quotient)
- {
- if (ToIntegerOp)
- {
- goto ErrorExit;
- }
- else
- {
- break;
- }
- }
-
- ReturnValue *= Base;
- ReturnValue += ThisDigit;
- String++;
- }
-
- /* All done, normal exit */
-
-AllDone:
-
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Converted value: %8.8X%8.8X\n",
- ACPI_FORMAT_UINT64 (ReturnValue)));
-
- *RetInteger = ReturnValue;
- return_ACPI_STATUS (AE_OK);
-
-
-ErrorExit:
- /* Base was set/validated above */
-
- if (Base == 10)
- {
- return_ACPI_STATUS (AE_BAD_DECIMAL_CONSTANT);
- }
- else
- {
- return_ACPI_STATUS (AE_BAD_HEX_CONSTANT);
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCreateUpdateStateAndPush
- *
- * PARAMETERS: Object - Object to be added to the new state
- * Action - Increment/Decrement
- * StateList - List the state will be added to
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create a new state and push it
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtCreateUpdateStateAndPush (
- ACPI_OPERAND_OBJECT *Object,
- UINT16 Action,
- ACPI_GENERIC_STATE **StateList)
-{
- ACPI_GENERIC_STATE *State;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /* Ignore null objects; these are expected */
-
- if (!Object)
- {
- return (AE_OK);
- }
-
- State = AcpiUtCreateUpdateState (Object, Action);
- if (!State)
- {
- return (AE_NO_MEMORY);
- }
-
- AcpiUtPushGenericState (StateList, State);
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtWalkPackageTree
- *
- * PARAMETERS: SourceObject - The package to walk
- * TargetObject - Target object (if package is being copied)
- * WalkCallback - Called once for each package element
- * Context - Passed to the callback function
- *
- * RETURN: Status
- *
- * DESCRIPTION: Walk through a package
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtWalkPackageTree (
- ACPI_OPERAND_OBJECT *SourceObject,
- void *TargetObject,
- ACPI_PKG_CALLBACK WalkCallback,
- void *Context)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_GENERIC_STATE *StateList = NULL;
- ACPI_GENERIC_STATE *State;
- UINT32 ThisIndex;
- ACPI_OPERAND_OBJECT *ThisSourceObj;
-
-
- ACPI_FUNCTION_TRACE (UtWalkPackageTree);
-
-
- State = AcpiUtCreatePkgState (SourceObject, TargetObject, 0);
- if (!State)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
-
- while (State)
- {
- /* Get one element of the package */
-
- ThisIndex = State->Pkg.Index;
- ThisSourceObj = (ACPI_OPERAND_OBJECT *)
- State->Pkg.SourceObject->Package.Elements[ThisIndex];
-
- /*
- * Check for:
- * 1) An uninitialized package element. It is completely
- * legal to declare a package and leave it uninitialized
- * 2) Not an internal object - can be a namespace node instead
- * 3) Any type other than a package. Packages are handled in else
- * case below.
- */
- if ((!ThisSourceObj) ||
- (ACPI_GET_DESCRIPTOR_TYPE (ThisSourceObj) != ACPI_DESC_TYPE_OPERAND) ||
- (ACPI_GET_OBJECT_TYPE (ThisSourceObj) != ACPI_TYPE_PACKAGE))
- {
- Status = WalkCallback (ACPI_COPY_TYPE_SIMPLE, ThisSourceObj,
- State, Context);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- State->Pkg.Index++;
- while (State->Pkg.Index >= State->Pkg.SourceObject->Package.Count)
- {
- /*
- * We've handled all of the objects at this level, This means
- * that we have just completed a package. That package may
- * have contained one or more packages itself.
- *
- * Delete this state and pop the previous state (package).
- */
- AcpiUtDeleteGenericState (State);
- State = AcpiUtPopGenericState (&StateList);
-
- /* Finished when there are no more states */
-
- if (!State)
- {
- /*
- * We have handled all of the objects in the top level
- * package just add the length of the package objects
- * and exit
- */
- return_ACPI_STATUS (AE_OK);
- }
-
- /*
- * Go back up a level and move the index past the just
- * completed package object.
- */
- State->Pkg.Index++;
- }
- }
- else
- {
- /* This is a subobject of type package */
-
- Status = WalkCallback (ACPI_COPY_TYPE_PACKAGE, ThisSourceObj,
- State, Context);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * Push the current state and create a new one
- * The callback above returned a new target package object.
- */
- AcpiUtPushGenericState (&StateList, State);
- State = AcpiUtCreatePkgState (ThisSourceObj,
- State->Pkg.ThisTargetObj, 0);
- if (!State)
- {
- return_ACPI_STATUS (AE_NO_MEMORY);
- }
- }
- }
-
- /* We should never get here */
-
- return_ACPI_STATUS (AE_AML_INTERNAL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtError, AcpiUtWarning, AcpiUtInfo
- *
- * PARAMETERS: ModuleName - Caller's module name (for error output)
- * LineNumber - Caller's line number (for error output)
- * Format - Printf format string + additional args
- *
- * RETURN: None
- *
- * DESCRIPTION: Print message with module/line/version info
- *
- ******************************************************************************/
-
-void ACPI_INTERNAL_VAR_XFACE
-AcpiUtError (
- char *ModuleName,
- UINT32 LineNumber,
- char *Format,
- ...)
-{
- va_list args;
-
-
- AcpiOsPrintf ("ACPI Error (%s-%04d): ", ModuleName, LineNumber);
-
- va_start (args, Format);
- AcpiOsVprintf (Format, args);
- AcpiOsPrintf (" [%X]\n", ACPI_CA_VERSION);
-}
-
-void ACPI_INTERNAL_VAR_XFACE
-AcpiUtException (
- char *ModuleName,
- UINT32 LineNumber,
- ACPI_STATUS Status,
- char *Format,
- ...)
-{
- va_list args;
-
-
- AcpiOsPrintf ("ACPI Exception (%s-%04d): %s, ", ModuleName, LineNumber,
- AcpiFormatException (Status));
-
- va_start (args, Format);
- AcpiOsVprintf (Format, args);
- AcpiOsPrintf (" [%X]\n", ACPI_CA_VERSION);
-}
-
-void ACPI_INTERNAL_VAR_XFACE
-AcpiUtWarning (
- char *ModuleName,
- UINT32 LineNumber,
- char *Format,
- ...)
-{
- va_list args;
-
-
- AcpiOsPrintf ("ACPI Warning (%s-%04d): ", ModuleName, LineNumber);
-
- va_start (args, Format);
- AcpiOsVprintf (Format, args);
- AcpiOsPrintf (" [%X]\n", ACPI_CA_VERSION);
-}
-
-void ACPI_INTERNAL_VAR_XFACE
-AcpiUtInfo (
- char *ModuleName,
- UINT32 LineNumber,
- char *Format,
- ...)
-{
- va_list args;
-
-#ifdef _KERNEL
- /* Temporarily hide too verbose printfs. */
- if (!bootverbose)
- return;
-#endif
-
- /*
- * Removed ModuleName, LineNumber, and acpica version, not needed
- * for info output
- */
- AcpiOsPrintf ("ACPI: ");
-
- va_start (args, Format);
- AcpiOsVprintf (Format, args);
- AcpiOsPrintf ("\n");
-}
-
diff --git a/sys/contrib/dev/acpica/utmutex.c b/sys/contrib/dev/acpica/utmutex.c
deleted file mode 100644
index 701d269..0000000
--- a/sys/contrib/dev/acpica/utmutex.c
+++ /dev/null
@@ -1,464 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: utmutex - local mutex support
- * $Revision: 1.12 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __UTMUTEX_C__
-
-#include <contrib/dev/acpica/acpi.h>
-
-#define _COMPONENT ACPI_UTILITIES
- ACPI_MODULE_NAME ("utmutex")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiUtCreateMutex (
- ACPI_MUTEX_HANDLE MutexId);
-
-static ACPI_STATUS
-AcpiUtDeleteMutex (
- ACPI_MUTEX_HANDLE MutexId);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtMutexInitialize
- *
- * PARAMETERS: None.
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create the system mutex objects.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtMutexInitialize (
- void)
-{
- UINT32 i;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (UtMutexInitialize);
-
-
- /*
- * Create each of the predefined mutex objects
- */
- for (i = 0; i < ACPI_NUM_MUTEX; i++)
- {
- Status = AcpiUtCreateMutex (i);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- /* Create the spinlocks for use at interrupt level */
-
- Status = AcpiOsCreateLock (&AcpiGbl_GpeLock);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- Status = AcpiOsCreateLock (&AcpiGbl_HardwareLock);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtMutexTerminate
- *
- * PARAMETERS: None.
- *
- * RETURN: None.
- *
- * DESCRIPTION: Delete all of the system mutex objects.
- *
- ******************************************************************************/
-
-void
-AcpiUtMutexTerminate (
- void)
-{
- UINT32 i;
-
-
- ACPI_FUNCTION_TRACE (UtMutexTerminate);
-
-
- /*
- * Delete each predefined mutex object
- */
- for (i = 0; i < ACPI_NUM_MUTEX; i++)
- {
- (void) AcpiUtDeleteMutex (i);
- }
-
- /* Delete the spinlocks */
-
- AcpiOsDeleteLock (AcpiGbl_GpeLock);
- AcpiOsDeleteLock (AcpiGbl_HardwareLock);
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCreateMutex
- *
- * PARAMETERS: MutexID - ID of the mutex to be created
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create a mutex object.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtCreateMutex (
- ACPI_MUTEX_HANDLE MutexId)
-{
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE_U32 (UtCreateMutex, MutexId);
-
-
- if (MutexId > ACPI_MAX_MUTEX)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- if (!AcpiGbl_MutexInfo[MutexId].Mutex)
- {
- Status = AcpiOsCreateMutex (&AcpiGbl_MutexInfo[MutexId].Mutex);
- AcpiGbl_MutexInfo[MutexId].ThreadId = ACPI_MUTEX_NOT_ACQUIRED;
- AcpiGbl_MutexInfo[MutexId].UseCount = 0;
- }
-
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtDeleteMutex
- *
- * PARAMETERS: MutexID - ID of the mutex to be deleted
- *
- * RETURN: Status
- *
- * DESCRIPTION: Delete a mutex object.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtDeleteMutex (
- ACPI_MUTEX_HANDLE MutexId)
-{
-
- ACPI_FUNCTION_TRACE_U32 (UtDeleteMutex, MutexId);
-
-
- if (MutexId > ACPI_MAX_MUTEX)
- {
- return_ACPI_STATUS (AE_BAD_PARAMETER);
- }
-
- AcpiOsDeleteMutex (AcpiGbl_MutexInfo[MutexId].Mutex);
-
- AcpiGbl_MutexInfo[MutexId].Mutex = NULL;
- AcpiGbl_MutexInfo[MutexId].ThreadId = ACPI_MUTEX_NOT_ACQUIRED;
-
- return_ACPI_STATUS (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtAcquireMutex
- *
- * PARAMETERS: MutexID - ID of the mutex to be acquired
- *
- * RETURN: Status
- *
- * DESCRIPTION: Acquire a mutex object.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtAcquireMutex (
- ACPI_MUTEX_HANDLE MutexId)
-{
- ACPI_STATUS Status;
- ACPI_THREAD_ID ThisThreadId;
-
-
- ACPI_FUNCTION_NAME (UtAcquireMutex);
-
-
- if (MutexId > ACPI_MAX_MUTEX)
- {
- return (AE_BAD_PARAMETER);
- }
-
- ThisThreadId = AcpiOsGetThreadId ();
-
-#ifdef ACPI_MUTEX_DEBUG
- {
- UINT32 i;
- /*
- * Mutex debug code, for internal debugging only.
- *
- * Deadlock prevention. Check if this thread owns any mutexes of value
- * greater than or equal to this one. If so, the thread has violated
- * the mutex ordering rule. This indicates a coding error somewhere in
- * the ACPI subsystem code.
- */
- for (i = MutexId; i < ACPI_MAX_MUTEX; i++)
- {
- if (AcpiGbl_MutexInfo[i].ThreadId == ThisThreadId)
- {
- if (i == MutexId)
- {
- ACPI_ERROR ((AE_INFO,
- "Mutex [%s] already acquired by this thread [%X]",
- AcpiUtGetMutexName (MutexId), ThisThreadId));
-
- return (AE_ALREADY_ACQUIRED);
- }
-
- ACPI_ERROR ((AE_INFO,
- "Invalid acquire order: Thread %X owns [%s], wants [%s]",
- ThisThreadId, AcpiUtGetMutexName (i),
- AcpiUtGetMutexName (MutexId)));
-
- return (AE_ACQUIRE_DEADLOCK);
- }
- }
- }
-#endif
-
- ACPI_DEBUG_PRINT ((ACPI_DB_MUTEX,
- "Thread %X attempting to acquire Mutex [%s]\n",
- ThisThreadId, AcpiUtGetMutexName (MutexId)));
-
- Status = AcpiOsAcquireMutex (AcpiGbl_MutexInfo[MutexId].Mutex,
- ACPI_WAIT_FOREVER);
- if (ACPI_SUCCESS (Status))
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_MUTEX, "Thread %X acquired Mutex [%s]\n",
- ThisThreadId, AcpiUtGetMutexName (MutexId)));
-
- AcpiGbl_MutexInfo[MutexId].UseCount++;
- AcpiGbl_MutexInfo[MutexId].ThreadId = ThisThreadId;
- }
- else
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "Thread %X could not acquire Mutex [%X]", ThisThreadId, MutexId));
- }
-
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtReleaseMutex
- *
- * PARAMETERS: MutexID - ID of the mutex to be released
- *
- * RETURN: Status
- *
- * DESCRIPTION: Release a mutex object.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtReleaseMutex (
- ACPI_MUTEX_HANDLE MutexId)
-{
- ACPI_THREAD_ID ThisThreadId;
-
-
- ACPI_FUNCTION_NAME (UtReleaseMutex);
-
-
- ThisThreadId = AcpiOsGetThreadId ();
- ACPI_DEBUG_PRINT ((ACPI_DB_MUTEX,
- "Thread %X releasing Mutex [%s]\n", ThisThreadId,
- AcpiUtGetMutexName (MutexId)));
-
- if (MutexId > ACPI_MAX_MUTEX)
- {
- return (AE_BAD_PARAMETER);
- }
-
- /*
- * Mutex must be acquired in order to release it!
- */
- if (AcpiGbl_MutexInfo[MutexId].ThreadId == ACPI_MUTEX_NOT_ACQUIRED)
- {
- ACPI_ERROR ((AE_INFO,
- "Mutex [%X] is not acquired, cannot release", MutexId));
-
- return (AE_NOT_ACQUIRED);
- }
-
-#ifdef ACPI_MUTEX_DEBUG
- {
- UINT32 i;
- /*
- * Mutex debug code, for internal debugging only.
- *
- * Deadlock prevention. Check if this thread owns any mutexes of value
- * greater than this one. If so, the thread has violated the mutex
- * ordering rule. This indicates a coding error somewhere in
- * the ACPI subsystem code.
- */
- for (i = MutexId; i < ACPI_MAX_MUTEX; i++)
- {
- if (AcpiGbl_MutexInfo[i].ThreadId == ThisThreadId)
- {
- if (i == MutexId)
- {
- continue;
- }
-
- ACPI_ERROR ((AE_INFO,
- "Invalid release order: owns [%s], releasing [%s]",
- AcpiUtGetMutexName (i), AcpiUtGetMutexName (MutexId)));
-
- return (AE_RELEASE_DEADLOCK);
- }
- }
- }
-#endif
-
- /* Mark unlocked FIRST */
-
- AcpiGbl_MutexInfo[MutexId].ThreadId = ACPI_MUTEX_NOT_ACQUIRED;
-
- AcpiOsReleaseMutex (AcpiGbl_MutexInfo[MutexId].Mutex);
- return (AE_OK);
-}
-
-
diff --git a/sys/contrib/dev/acpica/utobject.c b/sys/contrib/dev/acpica/utobject.c
deleted file mode 100644
index 5b0c3f3..0000000
--- a/sys/contrib/dev/acpica/utobject.c
+++ /dev/null
@@ -1,764 +0,0 @@
-/******************************************************************************
- *
- * Module Name: utobject - ACPI object create/delete/size/cache routines
- * $Revision: 1.104 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-#define __UTOBJECT_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/amlcode.h>
-
-
-#define _COMPONENT ACPI_UTILITIES
- ACPI_MODULE_NAME ("utobject")
-
-/* Local prototypes */
-
-static ACPI_STATUS
-AcpiUtGetSimpleObjectSize (
- ACPI_OPERAND_OBJECT *Obj,
- ACPI_SIZE *ObjLength);
-
-static ACPI_STATUS
-AcpiUtGetPackageObjectSize (
- ACPI_OPERAND_OBJECT *Obj,
- ACPI_SIZE *ObjLength);
-
-static ACPI_STATUS
-AcpiUtGetElementLength (
- UINT8 ObjectType,
- ACPI_OPERAND_OBJECT *SourceObject,
- ACPI_GENERIC_STATE *State,
- void *Context);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCreateInternalObjectDbg
- *
- * PARAMETERS: ModuleName - Source file name of caller
- * LineNumber - Line number of caller
- * ComponentId - Component type of caller
- * Type - ACPI Type of the new object
- *
- * RETURN: A new internal object, null on failure
- *
- * DESCRIPTION: Create and initialize a new internal object.
- *
- * NOTE: We always allocate the worst-case object descriptor because
- * these objects are cached, and we want them to be
- * one-size-satisifies-any-request. This in itself may not be
- * the most memory efficient, but the efficiency of the object
- * cache should more than make up for this!
- *
- ******************************************************************************/
-
-ACPI_OPERAND_OBJECT *
-AcpiUtCreateInternalObjectDbg (
- char *ModuleName,
- UINT32 LineNumber,
- UINT32 ComponentId,
- ACPI_OBJECT_TYPE Type)
-{
- ACPI_OPERAND_OBJECT *Object;
- ACPI_OPERAND_OBJECT *SecondObject;
-
-
- ACPI_FUNCTION_TRACE_STR (UtCreateInternalObjectDbg,
- AcpiUtGetTypeName (Type));
-
-
- /* Allocate the raw object descriptor */
-
- Object = AcpiUtAllocateObjectDescDbg (ModuleName, LineNumber, ComponentId);
- if (!Object)
- {
- return_PTR (NULL);
- }
-
- switch (Type)
- {
- case ACPI_TYPE_REGION:
- case ACPI_TYPE_BUFFER_FIELD:
-
- /* These types require a secondary object */
-
- SecondObject = AcpiUtAllocateObjectDescDbg (ModuleName,
- LineNumber, ComponentId);
- if (!SecondObject)
- {
- AcpiUtDeleteObjectDesc (Object);
- return_PTR (NULL);
- }
-
- SecondObject->Common.Type = ACPI_TYPE_LOCAL_EXTRA;
- SecondObject->Common.ReferenceCount = 1;
-
- /* Link the second object to the first */
-
- Object->Common.NextObject = SecondObject;
- break;
-
- default:
- /* All others have no secondary object */
- break;
- }
-
- /* Save the object type in the object descriptor */
-
- Object->Common.Type = (UINT8) Type;
-
- /* Init the reference count */
-
- Object->Common.ReferenceCount = 1;
-
- /* Any per-type initialization should go here */
-
- return_PTR (Object);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCreateBufferObject
- *
- * PARAMETERS: BufferSize - Size of buffer to be created
- *
- * RETURN: Pointer to a new Buffer object, null on failure
- *
- * DESCRIPTION: Create a fully initialized buffer object
- *
- ******************************************************************************/
-
-ACPI_OPERAND_OBJECT *
-AcpiUtCreateBufferObject (
- ACPI_SIZE BufferSize)
-{
- ACPI_OPERAND_OBJECT *BufferDesc;
- UINT8 *Buffer = NULL;
-
-
- ACPI_FUNCTION_TRACE_U32 (UtCreateBufferObject, BufferSize);
-
-
- /* Create a new Buffer object */
-
- BufferDesc = AcpiUtCreateInternalObject (ACPI_TYPE_BUFFER);
- if (!BufferDesc)
- {
- return_PTR (NULL);
- }
-
- /* Create an actual buffer only if size > 0 */
-
- if (BufferSize > 0)
- {
- /* Allocate the actual buffer */
-
- Buffer = ACPI_ALLOCATE_ZEROED (BufferSize);
- if (!Buffer)
- {
- ACPI_ERROR ((AE_INFO, "Could not allocate size %X",
- (UINT32) BufferSize));
- AcpiUtRemoveReference (BufferDesc);
- return_PTR (NULL);
- }
- }
-
- /* Complete buffer object initialization */
-
- BufferDesc->Buffer.Flags |= AOPOBJ_DATA_VALID;
- BufferDesc->Buffer.Pointer = Buffer;
- BufferDesc->Buffer.Length = (UINT32) BufferSize;
-
- /* Return the new buffer descriptor */
-
- return_PTR (BufferDesc);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCreateStringObject
- *
- * PARAMETERS: StringSize - Size of string to be created. Does not
- * include NULL terminator, this is added
- * automatically.
- *
- * RETURN: Pointer to a new String object
- *
- * DESCRIPTION: Create a fully initialized string object
- *
- ******************************************************************************/
-
-ACPI_OPERAND_OBJECT *
-AcpiUtCreateStringObject (
- ACPI_SIZE StringSize)
-{
- ACPI_OPERAND_OBJECT *StringDesc;
- char *String;
-
-
- ACPI_FUNCTION_TRACE_U32 (UtCreateStringObject, StringSize);
-
-
- /* Create a new String object */
-
- StringDesc = AcpiUtCreateInternalObject (ACPI_TYPE_STRING);
- if (!StringDesc)
- {
- return_PTR (NULL);
- }
-
- /*
- * Allocate the actual string buffer -- (Size + 1) for NULL terminator.
- * NOTE: Zero-length strings are NULL terminated
- */
- String = ACPI_ALLOCATE_ZEROED (StringSize + 1);
- if (!String)
- {
- ACPI_ERROR ((AE_INFO, "Could not allocate size %X",
- (UINT32) StringSize));
- AcpiUtRemoveReference (StringDesc);
- return_PTR (NULL);
- }
-
- /* Complete string object initialization */
-
- StringDesc->String.Pointer = String;
- StringDesc->String.Length = (UINT32) StringSize;
-
- /* Return the new string descriptor */
-
- return_PTR (StringDesc);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtValidInternalObject
- *
- * PARAMETERS: Object - Object to be validated
- *
- * RETURN: TRUE if object is valid, FALSE otherwise
- *
- * DESCRIPTION: Validate a pointer to be an ACPI_OPERAND_OBJECT
- *
- ******************************************************************************/
-
-BOOLEAN
-AcpiUtValidInternalObject (
- void *Object)
-{
-
- ACPI_FUNCTION_NAME (UtValidInternalObject);
-
-
- /* Check for a null pointer */
-
- if (!Object)
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "**** Null Object Ptr\n"));
- return (FALSE);
- }
-
- /* Check the descriptor type field */
-
- switch (ACPI_GET_DESCRIPTOR_TYPE (Object))
- {
- case ACPI_DESC_TYPE_OPERAND:
-
- /* The object appears to be a valid ACPI_OPERAND_OBJECT */
-
- return (TRUE);
-
- default:
- ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
- "%p is not not an ACPI operand obj [%s]\n",
- Object, AcpiUtGetDescriptorName (Object)));
- break;
- }
-
- return (FALSE);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtAllocateObjectDescDbg
- *
- * PARAMETERS: ModuleName - Caller's module name (for error output)
- * LineNumber - Caller's line number (for error output)
- * ComponentId - Caller's component ID (for error output)
- *
- * RETURN: Pointer to newly allocated object descriptor. Null on error
- *
- * DESCRIPTION: Allocate a new object descriptor. Gracefully handle
- * error conditions.
- *
- ******************************************************************************/
-
-void *
-AcpiUtAllocateObjectDescDbg (
- char *ModuleName,
- UINT32 LineNumber,
- UINT32 ComponentId)
-{
- ACPI_OPERAND_OBJECT *Object;
-
-
- ACPI_FUNCTION_TRACE (UtAllocateObjectDescDbg);
-
-
- Object = AcpiOsAcquireObject (AcpiGbl_OperandCache);
- if (!Object)
- {
- ACPI_ERROR ((ModuleName, LineNumber,
- "Could not allocate an object descriptor"));
-
- return_PTR (NULL);
- }
-
- /* Mark the descriptor type */
-
- ACPI_SET_DESCRIPTOR_TYPE (Object, ACPI_DESC_TYPE_OPERAND);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "%p Size %X\n",
- Object, (UINT32) sizeof (ACPI_OPERAND_OBJECT)));
-
- return_PTR (Object);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtDeleteObjectDesc
- *
- * PARAMETERS: Object - An Acpi internal object to be deleted
- *
- * RETURN: None.
- *
- * DESCRIPTION: Free an ACPI object descriptor or add it to the object cache
- *
- ******************************************************************************/
-
-void
-AcpiUtDeleteObjectDesc (
- ACPI_OPERAND_OBJECT *Object)
-{
- ACPI_FUNCTION_TRACE_PTR (UtDeleteObjectDesc, Object);
-
-
- /* Object must be an ACPI_OPERAND_OBJECT */
-
- if (ACPI_GET_DESCRIPTOR_TYPE (Object) != ACPI_DESC_TYPE_OPERAND)
- {
- ACPI_ERROR ((AE_INFO,
- "%p is not an ACPI Operand object [%s]", Object,
- AcpiUtGetDescriptorName (Object)));
- return_VOID;
- }
-
- (void) AcpiOsReleaseObject (AcpiGbl_OperandCache, Object);
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtGetSimpleObjectSize
- *
- * PARAMETERS: InternalObject - An ACPI operand object
- * ObjLength - Where the length is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: This function is called to determine the space required to
- * contain a simple object for return to an external user.
- *
- * The length includes the object structure plus any additional
- * needed space.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtGetSimpleObjectSize (
- ACPI_OPERAND_OBJECT *InternalObject,
- ACPI_SIZE *ObjLength)
-{
- ACPI_SIZE Length;
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE_PTR (UtGetSimpleObjectSize, InternalObject);
-
-
- /*
- * Handle a null object (Could be a uninitialized package
- * element -- which is legal)
- */
- if (!InternalObject)
- {
- *ObjLength = 0;
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Start with the length of the Acpi object */
-
- Length = sizeof (ACPI_OBJECT);
-
- if (ACPI_GET_DESCRIPTOR_TYPE (InternalObject) == ACPI_DESC_TYPE_NAMED)
- {
- /* Object is a named object (reference), just return the length */
-
- *ObjLength = ACPI_ROUND_UP_TO_NATIVE_WORD (Length);
- return_ACPI_STATUS (Status);
- }
-
- /*
- * The final length depends on the object type
- * Strings and Buffers are packed right up against the parent object and
- * must be accessed bytewise or there may be alignment problems on
- * certain processors
- */
- switch (ACPI_GET_OBJECT_TYPE (InternalObject))
- {
- case ACPI_TYPE_STRING:
-
- Length += (ACPI_SIZE) InternalObject->String.Length + 1;
- break;
-
-
- case ACPI_TYPE_BUFFER:
-
- Length += (ACPI_SIZE) InternalObject->Buffer.Length;
- break;
-
-
- case ACPI_TYPE_INTEGER:
- case ACPI_TYPE_PROCESSOR:
- case ACPI_TYPE_POWER:
-
- /*
- * No extra data for these types
- */
- break;
-
-
- case ACPI_TYPE_LOCAL_REFERENCE:
-
- switch (InternalObject->Reference.Opcode)
- {
- case AML_INT_NAMEPATH_OP:
-
- /*
- * Get the actual length of the full pathname to this object.
- * The reference will be converted to the pathname to the object
- */
- Length += ACPI_ROUND_UP_TO_NATIVE_WORD (
- AcpiNsGetPathnameLength (InternalObject->Reference.Node));
- break;
-
- default:
-
- /*
- * No other reference opcodes are supported.
- * Notably, Locals and Args are not supported, but this may be
- * required eventually.
- */
- ACPI_ERROR ((AE_INFO,
- "Unsupported Reference opcode=%X in object %p",
- InternalObject->Reference.Opcode, InternalObject));
- Status = AE_TYPE;
- break;
- }
- break;
-
-
- default:
-
- ACPI_ERROR ((AE_INFO, "Unsupported type=%X in object %p",
- ACPI_GET_OBJECT_TYPE (InternalObject), InternalObject));
- Status = AE_TYPE;
- break;
- }
-
- /*
- * Account for the space required by the object rounded up to the next
- * multiple of the machine word size. This keeps each object aligned
- * on a machine word boundary. (preventing alignment faults on some
- * machines.)
- */
- *ObjLength = ACPI_ROUND_UP_TO_NATIVE_WORD (Length);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtGetElementLength
- *
- * PARAMETERS: ACPI_PKG_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Get the length of one package element.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtGetElementLength (
- UINT8 ObjectType,
- ACPI_OPERAND_OBJECT *SourceObject,
- ACPI_GENERIC_STATE *State,
- void *Context)
-{
- ACPI_STATUS Status = AE_OK;
- ACPI_PKG_INFO *Info = (ACPI_PKG_INFO *) Context;
- ACPI_SIZE ObjectSpace;
-
-
- switch (ObjectType)
- {
- case ACPI_COPY_TYPE_SIMPLE:
-
- /*
- * Simple object - just get the size (Null object/entry is handled
- * here also) and sum it into the running package length
- */
- Status = AcpiUtGetSimpleObjectSize (SourceObject, &ObjectSpace);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
-
- Info->Length += ObjectSpace;
- break;
-
-
- case ACPI_COPY_TYPE_PACKAGE:
-
- /* Package object - nothing much to do here, let the walk handle it */
-
- Info->NumPackages++;
- State->Pkg.ThisTargetObj = NULL;
- break;
-
-
- default:
-
- /* No other types allowed */
-
- return (AE_BAD_PARAMETER);
- }
-
- return (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtGetPackageObjectSize
- *
- * PARAMETERS: InternalObject - An ACPI internal object
- * ObjLength - Where the length is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: This function is called to determine the space required to
- * contain a package object for return to an external user.
- *
- * This is moderately complex since a package contains other
- * objects including packages.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtGetPackageObjectSize (
- ACPI_OPERAND_OBJECT *InternalObject,
- ACPI_SIZE *ObjLength)
-{
- ACPI_STATUS Status;
- ACPI_PKG_INFO Info;
-
-
- ACPI_FUNCTION_TRACE_PTR (UtGetPackageObjectSize, InternalObject);
-
-
- Info.Length = 0;
- Info.ObjectSpace = 0;
- Info.NumPackages = 1;
-
- Status = AcpiUtWalkPackageTree (InternalObject, NULL,
- AcpiUtGetElementLength, &Info);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * We have handled all of the objects in all levels of the package.
- * just add the length of the package objects themselves.
- * Round up to the next machine word.
- */
- Info.Length += ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT)) *
- (ACPI_SIZE) Info.NumPackages;
-
- /* Return the total package length */
-
- *ObjLength = Info.Length;
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtGetObjectSize
- *
- * PARAMETERS: InternalObject - An ACPI internal object
- * ObjLength - Where the length will be returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: This function is called to determine the space required to
- * contain an object for return to an API user.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtGetObjectSize (
- ACPI_OPERAND_OBJECT *InternalObject,
- ACPI_SIZE *ObjLength)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- if ((ACPI_GET_DESCRIPTOR_TYPE (InternalObject) == ACPI_DESC_TYPE_OPERAND) &&
- (ACPI_GET_OBJECT_TYPE (InternalObject) == ACPI_TYPE_PACKAGE))
- {
- Status = AcpiUtGetPackageObjectSize (InternalObject, ObjLength);
- }
- else
- {
- Status = AcpiUtGetSimpleObjectSize (InternalObject, ObjLength);
- }
-
- return (Status);
-}
-
-
diff --git a/sys/contrib/dev/acpica/utresrc.c b/sys/contrib/dev/acpica/utresrc.c
deleted file mode 100644
index 530f782..0000000
--- a/sys/contrib/dev/acpica/utresrc.c
+++ /dev/null
@@ -1,772 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: utresrc - Resource managment utilities
- * $Revision: 1.14 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __UTRESRC_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/amlresrc.h>
-
-
-#define _COMPONENT ACPI_UTILITIES
- ACPI_MODULE_NAME ("utresrc")
-
-
-#if defined(ACPI_DISASSEMBLER) || defined (ACPI_DEBUGGER)
-
-/*
- * Strings used to decode resource descriptors.
- * Used by both the disasssembler and the debugger resource dump routines
- */
-const char *AcpiGbl_BmDecode[] =
-{
- "NotBusMaster",
- "BusMaster"
-};
-
-const char *AcpiGbl_ConfigDecode[] =
-{
- "0 - Good Configuration",
- "1 - Acceptable Configuration",
- "2 - Suboptimal Configuration",
- "3 - ***Invalid Configuration***",
-};
-
-const char *AcpiGbl_ConsumeDecode[] =
-{
- "ResourceProducer",
- "ResourceConsumer"
-};
-
-const char *AcpiGbl_DecDecode[] =
-{
- "PosDecode",
- "SubDecode"
-};
-
-const char *AcpiGbl_HeDecode[] =
-{
- "Level",
- "Edge"
-};
-
-const char *AcpiGbl_IoDecode[] =
-{
- "Decode10",
- "Decode16"
-};
-
-const char *AcpiGbl_LlDecode[] =
-{
- "ActiveHigh",
- "ActiveLow"
-};
-
-const char *AcpiGbl_MaxDecode[] =
-{
- "MaxNotFixed",
- "MaxFixed"
-};
-
-const char *AcpiGbl_MemDecode[] =
-{
- "NonCacheable",
- "Cacheable",
- "WriteCombining",
- "Prefetchable"
-};
-
-const char *AcpiGbl_MinDecode[] =
-{
- "MinNotFixed",
- "MinFixed"
-};
-
-const char *AcpiGbl_MtpDecode[] =
-{
- "AddressRangeMemory",
- "AddressRangeReserved",
- "AddressRangeACPI",
- "AddressRangeNVS"
-};
-
-const char *AcpiGbl_RngDecode[] =
-{
- "InvalidRanges",
- "NonISAOnlyRanges",
- "ISAOnlyRanges",
- "EntireRange"
-};
-
-const char *AcpiGbl_RwDecode[] =
-{
- "ReadOnly",
- "ReadWrite"
-};
-
-const char *AcpiGbl_ShrDecode[] =
-{
- "Exclusive",
- "Shared"
-};
-
-const char *AcpiGbl_SizDecode[] =
-{
- "Transfer8",
- "Transfer8_16",
- "Transfer16",
- "InvalidSize"
-};
-
-const char *AcpiGbl_TrsDecode[] =
-{
- "DenseTranslation",
- "SparseTranslation"
-};
-
-const char *AcpiGbl_TtpDecode[] =
-{
- "TypeStatic",
- "TypeTranslation"
-};
-
-const char *AcpiGbl_TypDecode[] =
-{
- "Compatibility",
- "TypeA",
- "TypeB",
- "TypeF"
-};
-
-#endif
-
-
-/*
- * Base sizes of the raw AML resource descriptors, indexed by resource type.
- * Zero indicates a reserved (and therefore invalid) resource type.
- */
-const UINT8 AcpiGbl_ResourceAmlSizes[] =
-{
- /* Small descriptors */
-
- 0,
- 0,
- 0,
- 0,
- ACPI_AML_SIZE_SMALL (AML_RESOURCE_IRQ),
- ACPI_AML_SIZE_SMALL (AML_RESOURCE_DMA),
- ACPI_AML_SIZE_SMALL (AML_RESOURCE_START_DEPENDENT),
- ACPI_AML_SIZE_SMALL (AML_RESOURCE_END_DEPENDENT),
- ACPI_AML_SIZE_SMALL (AML_RESOURCE_IO),
- ACPI_AML_SIZE_SMALL (AML_RESOURCE_FIXED_IO),
- 0,
- 0,
- 0,
- 0,
- ACPI_AML_SIZE_SMALL (AML_RESOURCE_VENDOR_SMALL),
- ACPI_AML_SIZE_SMALL (AML_RESOURCE_END_TAG),
-
- /* Large descriptors */
-
- 0,
- ACPI_AML_SIZE_LARGE (AML_RESOURCE_MEMORY24),
- ACPI_AML_SIZE_LARGE (AML_RESOURCE_GENERIC_REGISTER),
- 0,
- ACPI_AML_SIZE_LARGE (AML_RESOURCE_VENDOR_LARGE),
- ACPI_AML_SIZE_LARGE (AML_RESOURCE_MEMORY32),
- ACPI_AML_SIZE_LARGE (AML_RESOURCE_FIXED_MEMORY32),
- ACPI_AML_SIZE_LARGE (AML_RESOURCE_ADDRESS32),
- ACPI_AML_SIZE_LARGE (AML_RESOURCE_ADDRESS16),
- ACPI_AML_SIZE_LARGE (AML_RESOURCE_EXTENDED_IRQ),
- ACPI_AML_SIZE_LARGE (AML_RESOURCE_ADDRESS64),
- ACPI_AML_SIZE_LARGE (AML_RESOURCE_EXTENDED_ADDRESS64)
-};
-
-
-/*
- * Resource types, used to validate the resource length field.
- * The length of fixed-length types must match exactly, variable
- * lengths must meet the minimum required length, etc.
- * Zero indicates a reserved (and therefore invalid) resource type.
- */
-static const UINT8 AcpiGbl_ResourceTypes[] =
-{
- /* Small descriptors */
-
- 0,
- 0,
- 0,
- 0,
- ACPI_SMALL_VARIABLE_LENGTH,
- ACPI_FIXED_LENGTH,
- ACPI_SMALL_VARIABLE_LENGTH,
- ACPI_FIXED_LENGTH,
- ACPI_FIXED_LENGTH,
- ACPI_FIXED_LENGTH,
- 0,
- 0,
- 0,
- 0,
- ACPI_VARIABLE_LENGTH,
- ACPI_FIXED_LENGTH,
-
- /* Large descriptors */
-
- 0,
- ACPI_FIXED_LENGTH,
- ACPI_FIXED_LENGTH,
- 0,
- ACPI_VARIABLE_LENGTH,
- ACPI_FIXED_LENGTH,
- ACPI_FIXED_LENGTH,
- ACPI_VARIABLE_LENGTH,
- ACPI_VARIABLE_LENGTH,
- ACPI_VARIABLE_LENGTH,
- ACPI_VARIABLE_LENGTH,
- ACPI_FIXED_LENGTH
-};
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtWalkAmlResources
- *
- * PARAMETERS: Aml - Pointer to the raw AML resource template
- * AmlLength - Length of the entire template
- * UserFunction - Called once for each descriptor found. If
- * NULL, a pointer to the EndTag is returned
- * Context - Passed to UserFunction
- *
- * RETURN: Status
- *
- * DESCRIPTION: Walk a raw AML resource list(buffer). User function called
- * once for each resource found.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtWalkAmlResources (
- UINT8 *Aml,
- ACPI_SIZE AmlLength,
- ACPI_WALK_AML_CALLBACK UserFunction,
- void *Context)
-{
- ACPI_STATUS Status;
- UINT8 *EndAml;
- UINT8 ResourceIndex;
- UINT32 Length;
- UINT32 Offset = 0;
-
-
- ACPI_FUNCTION_TRACE (UtWalkAmlResources);
-
-
- /* The absolute minimum resource template is one EndTag descriptor */
-
- if (AmlLength < sizeof (AML_RESOURCE_END_TAG))
- {
- return_ACPI_STATUS (AE_AML_NO_RESOURCE_END_TAG);
- }
-
- /* Point to the end of the resource template buffer */
-
- EndAml = Aml + AmlLength;
-
- /* Walk the byte list, abort on any invalid descriptor type or length */
-
- while (Aml < EndAml)
- {
- /* Validate the Resource Type and Resource Length */
-
- Status = AcpiUtValidateResource (Aml, &ResourceIndex);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Get the length of this descriptor */
-
- Length = AcpiUtGetDescriptorLength (Aml);
-
- /* Invoke the user function */
-
- if (UserFunction)
- {
- Status = UserFunction (Aml, Length, Offset, ResourceIndex, Context);
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
- }
-
- /* An EndTag descriptor terminates this resource template */
-
- if (AcpiUtGetResourceType (Aml) == ACPI_RESOURCE_NAME_END_TAG)
- {
- /*
- * There must be at least one more byte in the buffer for
- * the 2nd byte of the EndTag
- */
- if ((Aml + 1) >= EndAml)
- {
- return_ACPI_STATUS (AE_AML_NO_RESOURCE_END_TAG);
- }
-
- /* Return the pointer to the EndTag if requested */
-
- if (!UserFunction)
- {
- *(void **) Context = Aml;
- }
-
- /* Normal exit */
-
- return_ACPI_STATUS (AE_OK);
- }
-
- Aml += Length;
- Offset += Length;
- }
-
- /* Did not find an EndTag descriptor */
-
- return (AE_AML_NO_RESOURCE_END_TAG);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtValidateResource
- *
- * PARAMETERS: Aml - Pointer to the raw AML resource descriptor
- * ReturnIndex - Where the resource index is returned. NULL
- * if the index is not required.
- *
- * RETURN: Status, and optionally the Index into the global resource tables
- *
- * DESCRIPTION: Validate an AML resource descriptor by checking the Resource
- * Type and Resource Length. Returns an index into the global
- * resource information/dispatch tables for later use.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtValidateResource (
- void *Aml,
- UINT8 *ReturnIndex)
-{
- UINT8 ResourceType;
- UINT8 ResourceIndex;
- ACPI_RS_LENGTH ResourceLength;
- ACPI_RS_LENGTH MinimumResourceLength;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /*
- * 1) Validate the ResourceType field (Byte 0)
- */
- ResourceType = ACPI_GET8 (Aml);
-
- /*
- * Byte 0 contains the descriptor name (Resource Type)
- * Examine the large/small bit in the resource header
- */
- if (ResourceType & ACPI_RESOURCE_NAME_LARGE)
- {
- /* Verify the large resource type (name) against the max */
-
- if (ResourceType > ACPI_RESOURCE_NAME_LARGE_MAX)
- {
- return (AE_AML_INVALID_RESOURCE_TYPE);
- }
-
- /*
- * Large Resource Type -- bits 6:0 contain the name
- * Translate range 0x80-0x8B to index range 0x10-0x1B
- */
- ResourceIndex = (UINT8) (ResourceType - 0x70);
- }
- else
- {
- /*
- * Small Resource Type -- bits 6:3 contain the name
- * Shift range to index range 0x00-0x0F
- */
- ResourceIndex = (UINT8)
- ((ResourceType & ACPI_RESOURCE_NAME_SMALL_MASK) >> 3);
- }
-
- /* Check validity of the resource type, zero indicates name is invalid */
-
- if (!AcpiGbl_ResourceTypes[ResourceIndex])
- {
- return (AE_AML_INVALID_RESOURCE_TYPE);
- }
-
-
- /*
- * 2) Validate the ResourceLength field. This ensures that the length
- * is at least reasonable, and guarantees that it is non-zero.
- */
- ResourceLength = AcpiUtGetResourceLength (Aml);
- MinimumResourceLength = AcpiGbl_ResourceAmlSizes[ResourceIndex];
-
- /* Validate based upon the type of resource - fixed length or variable */
-
- switch (AcpiGbl_ResourceTypes[ResourceIndex])
- {
- case ACPI_FIXED_LENGTH:
-
- /* Fixed length resource, length must match exactly */
-
- if (ResourceLength != MinimumResourceLength)
- {
- return (AE_AML_BAD_RESOURCE_LENGTH);
- }
- break;
-
- case ACPI_VARIABLE_LENGTH:
-
- /* Variable length resource, length must be at least the minimum */
-
- if (ResourceLength < MinimumResourceLength)
- {
- return (AE_AML_BAD_RESOURCE_LENGTH);
- }
- break;
-
- case ACPI_SMALL_VARIABLE_LENGTH:
-
- /* Small variable length resource, length can be (Min) or (Min-1) */
-
- if ((ResourceLength > MinimumResourceLength) ||
- (ResourceLength < (MinimumResourceLength - 1)))
- {
- return (AE_AML_BAD_RESOURCE_LENGTH);
- }
- break;
-
- default:
-
- /* Shouldn't happen (because of validation earlier), but be sure */
-
- return (AE_AML_INVALID_RESOURCE_TYPE);
- }
-
- /* Optionally return the resource table index */
-
- if (ReturnIndex)
- {
- *ReturnIndex = ResourceIndex;
- }
-
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtGetResourceType
- *
- * PARAMETERS: Aml - Pointer to the raw AML resource descriptor
- *
- * RETURN: The Resource Type with no extraneous bits (except the
- * Large/Small descriptor bit -- this is left alone)
- *
- * DESCRIPTION: Extract the Resource Type/Name from the first byte of
- * a resource descriptor.
- *
- ******************************************************************************/
-
-UINT8
-AcpiUtGetResourceType (
- void *Aml)
-{
- ACPI_FUNCTION_ENTRY ();
-
-
- /*
- * Byte 0 contains the descriptor name (Resource Type)
- * Examine the large/small bit in the resource header
- */
- if (ACPI_GET8 (Aml) & ACPI_RESOURCE_NAME_LARGE)
- {
- /* Large Resource Type -- bits 6:0 contain the name */
-
- return (ACPI_GET8 (Aml));
- }
- else
- {
- /* Small Resource Type -- bits 6:3 contain the name */
-
- return ((UINT8) (ACPI_GET8 (Aml) & ACPI_RESOURCE_NAME_SMALL_MASK));
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtGetResourceLength
- *
- * PARAMETERS: Aml - Pointer to the raw AML resource descriptor
- *
- * RETURN: Byte Length
- *
- * DESCRIPTION: Get the "Resource Length" of a raw AML descriptor. By
- * definition, this does not include the size of the descriptor
- * header or the length field itself.
- *
- ******************************************************************************/
-
-UINT16
-AcpiUtGetResourceLength (
- void *Aml)
-{
- ACPI_RS_LENGTH ResourceLength;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- /*
- * Byte 0 contains the descriptor name (Resource Type)
- * Examine the large/small bit in the resource header
- */
- if (ACPI_GET8 (Aml) & ACPI_RESOURCE_NAME_LARGE)
- {
- /* Large Resource type -- bytes 1-2 contain the 16-bit length */
-
- ACPI_MOVE_16_TO_16 (&ResourceLength, ACPI_ADD_PTR (UINT8, Aml, 1));
-
- }
- else
- {
- /* Small Resource type -- bits 2:0 of byte 0 contain the length */
-
- ResourceLength = (UINT16) (ACPI_GET8 (Aml) &
- ACPI_RESOURCE_NAME_SMALL_LENGTH_MASK);
- }
-
- return (ResourceLength);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtGetResourceHeaderLength
- *
- * PARAMETERS: Aml - Pointer to the raw AML resource descriptor
- *
- * RETURN: Length of the AML header (depends on large/small descriptor)
- *
- * DESCRIPTION: Get the length of the header for this resource.
- *
- ******************************************************************************/
-
-UINT8
-AcpiUtGetResourceHeaderLength (
- void *Aml)
-{
- ACPI_FUNCTION_ENTRY ();
-
-
- /* Examine the large/small bit in the resource header */
-
- if (ACPI_GET8 (Aml) & ACPI_RESOURCE_NAME_LARGE)
- {
- return (sizeof (AML_RESOURCE_LARGE_HEADER));
- }
- else
- {
- return (sizeof (AML_RESOURCE_SMALL_HEADER));
- }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtGetDescriptorLength
- *
- * PARAMETERS: Aml - Pointer to the raw AML resource descriptor
- *
- * RETURN: Byte length
- *
- * DESCRIPTION: Get the total byte length of a raw AML descriptor, including the
- * length of the descriptor header and the length field itself.
- * Used to walk descriptor lists.
- *
- ******************************************************************************/
-
-UINT32
-AcpiUtGetDescriptorLength (
- void *Aml)
-{
- ACPI_FUNCTION_ENTRY ();
-
-
- /*
- * Get the Resource Length (does not include header length) and add
- * the header length (depends on if this is a small or large resource)
- */
- return (AcpiUtGetResourceLength (Aml) +
- AcpiUtGetResourceHeaderLength (Aml));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtGetResourceEndTag
- *
- * PARAMETERS: ObjDesc - The resource template buffer object
- * EndTag - Where the pointer to the EndTag is returned
- *
- * RETURN: Status, pointer to the end tag
- *
- * DESCRIPTION: Find the EndTag resource descriptor in an AML resource template
- * Note: allows a buffer length of zero.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtGetResourceEndTag (
- ACPI_OPERAND_OBJECT *ObjDesc,
- UINT8 **EndTag)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (UtGetResourceEndTag);
-
-
- /* Allow a buffer length of zero */
-
- if (!ObjDesc->Buffer.Length)
- {
- *EndTag = ObjDesc->Buffer.Pointer;
- return_ACPI_STATUS (AE_OK);
- }
-
- /* Validate the template and get a pointer to the EndTag */
-
- Status = AcpiUtWalkAmlResources (ObjDesc->Buffer.Pointer,
- ObjDesc->Buffer.Length, NULL, EndTag);
-
- return_ACPI_STATUS (Status);
-}
-
-
diff --git a/sys/contrib/dev/acpica/utstate.c b/sys/contrib/dev/acpica/utstate.c
deleted file mode 100644
index a58257b..0000000
--- a/sys/contrib/dev/acpica/utstate.c
+++ /dev/null
@@ -1,470 +0,0 @@
-/*******************************************************************************
- *
- * Module Name: utstate - state object support procedures
- * $Revision: 1.8 $
- *
- ******************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __UTSTATE_C__
-
-#include <contrib/dev/acpica/acpi.h>
-
-#define _COMPONENT ACPI_UTILITIES
- ACPI_MODULE_NAME ("utstate")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCreatePkgStateAndPush
- *
- * PARAMETERS: Object - Object to be added to the new state
- * Action - Increment/Decrement
- * StateList - List the state will be added to
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create a new state and push it
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtCreatePkgStateAndPush (
- void *InternalObject,
- void *ExternalObject,
- UINT16 Index,
- ACPI_GENERIC_STATE **StateList)
-{
- ACPI_GENERIC_STATE *State;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- State = AcpiUtCreatePkgState (InternalObject, ExternalObject, Index);
- if (!State)
- {
- return (AE_NO_MEMORY);
- }
-
- AcpiUtPushGenericState (StateList, State);
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtPushGenericState
- *
- * PARAMETERS: ListHead - Head of the state stack
- * State - State object to push
- *
- * RETURN: None
- *
- * DESCRIPTION: Push a state object onto a state stack
- *
- ******************************************************************************/
-
-void
-AcpiUtPushGenericState (
- ACPI_GENERIC_STATE **ListHead,
- ACPI_GENERIC_STATE *State)
-{
- ACPI_FUNCTION_TRACE (UtPushGenericState);
-
-
- /* Push the state object onto the front of the list (stack) */
-
- State->Common.Next = *ListHead;
- *ListHead = State;
-
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtPopGenericState
- *
- * PARAMETERS: ListHead - Head of the state stack
- *
- * RETURN: The popped state object
- *
- * DESCRIPTION: Pop a state object from a state stack
- *
- ******************************************************************************/
-
-ACPI_GENERIC_STATE *
-AcpiUtPopGenericState (
- ACPI_GENERIC_STATE **ListHead)
-{
- ACPI_GENERIC_STATE *State;
-
-
- ACPI_FUNCTION_TRACE (UtPopGenericState);
-
-
- /* Remove the state object at the head of the list (stack) */
-
- State = *ListHead;
- if (State)
- {
- /* Update the list head */
-
- *ListHead = State->Common.Next;
- }
-
- return_PTR (State);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCreateGenericState
- *
- * PARAMETERS: None
- *
- * RETURN: The new state object. NULL on failure.
- *
- * DESCRIPTION: Create a generic state object. Attempt to obtain one from
- * the global state cache; If none available, create a new one.
- *
- ******************************************************************************/
-
-ACPI_GENERIC_STATE *
-AcpiUtCreateGenericState (
- void)
-{
- ACPI_GENERIC_STATE *State;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- State = AcpiOsAcquireObject (AcpiGbl_StateCache);
- if (State)
- {
- /* Initialize */
- State->Common.DescriptorType = ACPI_DESC_TYPE_STATE;
- }
-
- return (State);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCreateThreadState
- *
- * PARAMETERS: None
- *
- * RETURN: New Thread State. NULL on failure
- *
- * DESCRIPTION: Create a "Thread State" - a flavor of the generic state used
- * to track per-thread info during method execution
- *
- ******************************************************************************/
-
-ACPI_THREAD_STATE *
-AcpiUtCreateThreadState (
- void)
-{
- ACPI_GENERIC_STATE *State;
-
-
- ACPI_FUNCTION_TRACE (UtCreateThreadState);
-
-
- /* Create the generic state object */
-
- State = AcpiUtCreateGenericState ();
- if (!State)
- {
- return_PTR (NULL);
- }
-
- /* Init fields specific to the update struct */
-
- State->Common.DescriptorType = ACPI_DESC_TYPE_STATE_THREAD;
- State->Thread.ThreadId = AcpiOsGetThreadId ();
-
- /* Check for invalid thread ID - zero is very bad, it will break things */
-
- if (!State->Thread.ThreadId)
- {
- ACPI_ERROR ((AE_INFO, "Invalid zero ID from AcpiOsGetThreadId"));
- State->Thread.ThreadId = 1;
- }
-
- return_PTR ((ACPI_THREAD_STATE *) State);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCreateUpdateState
- *
- * PARAMETERS: Object - Initial Object to be installed in the state
- * Action - Update action to be performed
- *
- * RETURN: New state object, null on failure
- *
- * DESCRIPTION: Create an "Update State" - a flavor of the generic state used
- * to update reference counts and delete complex objects such
- * as packages.
- *
- ******************************************************************************/
-
-ACPI_GENERIC_STATE *
-AcpiUtCreateUpdateState (
- ACPI_OPERAND_OBJECT *Object,
- UINT16 Action)
-{
- ACPI_GENERIC_STATE *State;
-
-
- ACPI_FUNCTION_TRACE_PTR (UtCreateUpdateState, Object);
-
-
- /* Create the generic state object */
-
- State = AcpiUtCreateGenericState ();
- if (!State)
- {
- return_PTR (NULL);
- }
-
- /* Init fields specific to the update struct */
-
- State->Common.DescriptorType = ACPI_DESC_TYPE_STATE_UPDATE;
- State->Update.Object = Object;
- State->Update.Value = Action;
-
- return_PTR (State);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCreatePkgState
- *
- * PARAMETERS: Object - Initial Object to be installed in the state
- * Action - Update action to be performed
- *
- * RETURN: New state object, null on failure
- *
- * DESCRIPTION: Create a "Package State"
- *
- ******************************************************************************/
-
-ACPI_GENERIC_STATE *
-AcpiUtCreatePkgState (
- void *InternalObject,
- void *ExternalObject,
- UINT16 Index)
-{
- ACPI_GENERIC_STATE *State;
-
-
- ACPI_FUNCTION_TRACE_PTR (UtCreatePkgState, InternalObject);
-
-
- /* Create the generic state object */
-
- State = AcpiUtCreateGenericState ();
- if (!State)
- {
- return_PTR (NULL);
- }
-
- /* Init fields specific to the update struct */
-
- State->Common.DescriptorType = ACPI_DESC_TYPE_STATE_PACKAGE;
- State->Pkg.SourceObject = (ACPI_OPERAND_OBJECT *) InternalObject;
- State->Pkg.DestObject = ExternalObject;
- State->Pkg.Index= Index;
- State->Pkg.NumPackages = 1;
-
- return_PTR (State);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCreateControlState
- *
- * PARAMETERS: None
- *
- * RETURN: New state object, null on failure
- *
- * DESCRIPTION: Create a "Control State" - a flavor of the generic state used
- * to support nested IF/WHILE constructs in the AML.
- *
- ******************************************************************************/
-
-ACPI_GENERIC_STATE *
-AcpiUtCreateControlState (
- void)
-{
- ACPI_GENERIC_STATE *State;
-
-
- ACPI_FUNCTION_TRACE (UtCreateControlState);
-
-
- /* Create the generic state object */
-
- State = AcpiUtCreateGenericState ();
- if (!State)
- {
- return_PTR (NULL);
- }
-
- /* Init fields specific to the control struct */
-
- State->Common.DescriptorType = ACPI_DESC_TYPE_STATE_CONTROL;
- State->Common.State = ACPI_CONTROL_CONDITIONAL_EXECUTING;
-
- return_PTR (State);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtDeleteGenericState
- *
- * PARAMETERS: State - The state object to be deleted
- *
- * RETURN: None
- *
- * DESCRIPTION: Release a state object to the state cache. NULL state objects
- * are ignored.
- *
- ******************************************************************************/
-
-void
-AcpiUtDeleteGenericState (
- ACPI_GENERIC_STATE *State)
-{
- ACPI_FUNCTION_TRACE (UtDeleteGenericState);
-
-
- /* Ignore null state */
-
- if (State)
- {
- (void) AcpiOsReleaseObject (AcpiGbl_StateCache, State);
- }
- return_VOID;
-}
-
-
diff --git a/sys/contrib/dev/acpica/uttrack.c b/sys/contrib/dev/acpica/uttrack.c
deleted file mode 100644
index 5c2ae93..0000000
--- a/sys/contrib/dev/acpica/uttrack.c
+++ /dev/null
@@ -1,726 +0,0 @@
-/******************************************************************************
- *
- * Module Name: uttrack - Memory allocation tracking routines (debug only)
- * $Revision: 1.5 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-/*
- * These procedures are used for tracking memory leaks in the subsystem, and
- * they get compiled out when the ACPI_DBG_TRACK_ALLOCATIONS is not set.
- *
- * Each memory allocation is tracked via a doubly linked list. Each
- * element contains the caller's component, module name, function name, and
- * line number. AcpiUtAllocate and AcpiUtAllocateZeroed call
- * AcpiUtTrackAllocation to add an element to the list; deletion
- * occurs in the body of AcpiUtFree.
- */
-
-#define __UTTRACK_C__
-
-#include <contrib/dev/acpica/acpi.h>
-
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-
-#define _COMPONENT ACPI_UTILITIES
- ACPI_MODULE_NAME ("uttrack")
-
-/* Local prototypes */
-
-static ACPI_DEBUG_MEM_BLOCK *
-AcpiUtFindAllocation (
- void *Allocation);
-
-static ACPI_STATUS
-AcpiUtTrackAllocation (
- ACPI_DEBUG_MEM_BLOCK *Address,
- ACPI_SIZE Size,
- UINT8 AllocType,
- UINT32 Component,
- char *Module,
- UINT32 Line);
-
-static ACPI_STATUS
-AcpiUtRemoveAllocation (
- ACPI_DEBUG_MEM_BLOCK *Address,
- UINT32 Component,
- char *Module,
- UINT32 Line);
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtCreateList
- *
- * PARAMETERS: CacheName - Ascii name for the cache
- * ObjectSize - Size of each cached object
- * ReturnCache - Where the new cache object is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create a local memory list for tracking purposed
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiUtCreateList (
- char *ListName,
- UINT16 ObjectSize,
- ACPI_MEMORY_LIST **ReturnCache)
-{
- ACPI_MEMORY_LIST *Cache;
-
-
- Cache = AcpiOsAllocate (sizeof (ACPI_MEMORY_LIST));
- if (!Cache)
- {
- return (AE_NO_MEMORY);
- }
-
- ACPI_MEMSET (Cache, 0, sizeof (ACPI_MEMORY_LIST));
-
- Cache->ListName = ListName;
- Cache->ObjectSize = ObjectSize;
-
- *ReturnCache = Cache;
- return (AE_OK);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtAllocateAndTrack
- *
- * PARAMETERS: Size - Size of the allocation
- * Component - Component type of caller
- * Module - Source file name of caller
- * Line - Line number of caller
- *
- * RETURN: Address of the allocated memory on success, NULL on failure.
- *
- * DESCRIPTION: The subsystem's equivalent of malloc.
- *
- ******************************************************************************/
-
-void *
-AcpiUtAllocateAndTrack (
- ACPI_SIZE Size,
- UINT32 Component,
- char *Module,
- UINT32 Line)
-{
- ACPI_DEBUG_MEM_BLOCK *Allocation;
- ACPI_STATUS Status;
-
-
- Allocation = AcpiUtAllocate (Size + sizeof (ACPI_DEBUG_MEM_HEADER),
- Component, Module, Line);
- if (!Allocation)
- {
- return (NULL);
- }
-
- Status = AcpiUtTrackAllocation (Allocation, Size,
- ACPI_MEM_MALLOC, Component, Module, Line);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsFree (Allocation);
- return (NULL);
- }
-
- AcpiGbl_GlobalList->TotalAllocated++;
- AcpiGbl_GlobalList->TotalSize += (UINT32) Size;
- AcpiGbl_GlobalList->CurrentTotalSize += (UINT32) Size;
- if (AcpiGbl_GlobalList->CurrentTotalSize > AcpiGbl_GlobalList->MaxOccupied)
- {
- AcpiGbl_GlobalList->MaxOccupied = AcpiGbl_GlobalList->CurrentTotalSize;
- }
-
- return ((void *) &Allocation->UserSpace);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtAllocateZeroedAndTrack
- *
- * PARAMETERS: Size - Size of the allocation
- * Component - Component type of caller
- * Module - Source file name of caller
- * Line - Line number of caller
- *
- * RETURN: Address of the allocated memory on success, NULL on failure.
- *
- * DESCRIPTION: Subsystem equivalent of calloc.
- *
- ******************************************************************************/
-
-void *
-AcpiUtAllocateZeroedAndTrack (
- ACPI_SIZE Size,
- UINT32 Component,
- char *Module,
- UINT32 Line)
-{
- ACPI_DEBUG_MEM_BLOCK *Allocation;
- ACPI_STATUS Status;
-
-
- Allocation = AcpiUtAllocateZeroed (Size + sizeof (ACPI_DEBUG_MEM_HEADER),
- Component, Module, Line);
- if (!Allocation)
- {
- /* Report allocation error */
-
- ACPI_ERROR ((Module, Line,
- "Could not allocate size %X", (UINT32) Size));
- return (NULL);
- }
-
- Status = AcpiUtTrackAllocation (Allocation, Size,
- ACPI_MEM_CALLOC, Component, Module, Line);
- if (ACPI_FAILURE (Status))
- {
- AcpiOsFree (Allocation);
- return (NULL);
- }
-
- AcpiGbl_GlobalList->TotalAllocated++;
- AcpiGbl_GlobalList->TotalSize += (UINT32) Size;
- AcpiGbl_GlobalList->CurrentTotalSize += (UINT32) Size;
- if (AcpiGbl_GlobalList->CurrentTotalSize > AcpiGbl_GlobalList->MaxOccupied)
- {
- AcpiGbl_GlobalList->MaxOccupied = AcpiGbl_GlobalList->CurrentTotalSize;
- }
-
- return ((void *) &Allocation->UserSpace);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtFreeAndTrack
- *
- * PARAMETERS: Allocation - Address of the memory to deallocate
- * Component - Component type of caller
- * Module - Source file name of caller
- * Line - Line number of caller
- *
- * RETURN: None
- *
- * DESCRIPTION: Frees the memory at Allocation
- *
- ******************************************************************************/
-
-void
-AcpiUtFreeAndTrack (
- void *Allocation,
- UINT32 Component,
- char *Module,
- UINT32 Line)
-{
- ACPI_DEBUG_MEM_BLOCK *DebugBlock;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE_PTR (UtFree, Allocation);
-
-
- if (NULL == Allocation)
- {
- ACPI_ERROR ((Module, Line,
- "Attempt to delete a NULL address"));
-
- return_VOID;
- }
-
- DebugBlock = ACPI_CAST_PTR (ACPI_DEBUG_MEM_BLOCK,
- (((char *) Allocation) - sizeof (ACPI_DEBUG_MEM_HEADER)));
-
- AcpiGbl_GlobalList->TotalFreed++;
- AcpiGbl_GlobalList->CurrentTotalSize -= DebugBlock->Size;
-
- Status = AcpiUtRemoveAllocation (DebugBlock,
- Component, Module, Line);
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status, "Could not free memory"));
- }
-
- AcpiOsFree (DebugBlock);
- ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "%p freed\n", Allocation));
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtFindAllocation
- *
- * PARAMETERS: Allocation - Address of allocated memory
- *
- * RETURN: A list element if found; NULL otherwise.
- *
- * DESCRIPTION: Searches for an element in the global allocation tracking list.
- *
- ******************************************************************************/
-
-static ACPI_DEBUG_MEM_BLOCK *
-AcpiUtFindAllocation (
- void *Allocation)
-{
- ACPI_DEBUG_MEM_BLOCK *Element;
-
-
- ACPI_FUNCTION_ENTRY ();
-
-
- Element = AcpiGbl_GlobalList->ListHead;
-
- /* Search for the address. */
-
- while (Element)
- {
- if (Element == Allocation)
- {
- return (Element);
- }
-
- Element = Element->Next;
- }
-
- return (NULL);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtTrackAllocation
- *
- * PARAMETERS: Allocation - Address of allocated memory
- * Size - Size of the allocation
- * AllocType - MEM_MALLOC or MEM_CALLOC
- * Component - Component type of caller
- * Module - Source file name of caller
- * Line - Line number of caller
- *
- * RETURN: None.
- *
- * DESCRIPTION: Inserts an element into the global allocation tracking list.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtTrackAllocation (
- ACPI_DEBUG_MEM_BLOCK *Allocation,
- ACPI_SIZE Size,
- UINT8 AllocType,
- UINT32 Component,
- char *Module,
- UINT32 Line)
-{
- ACPI_MEMORY_LIST *MemList;
- ACPI_DEBUG_MEM_BLOCK *Element;
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE_PTR (UtTrackAllocation, Allocation);
-
-
- MemList = AcpiGbl_GlobalList;
- Status = AcpiUtAcquireMutex (ACPI_MTX_MEMORY);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * Search list for this address to make sure it is not already on the list.
- * This will catch several kinds of problems.
- */
- Element = AcpiUtFindAllocation (Allocation);
- if (Element)
- {
- ACPI_ERROR ((AE_INFO,
- "UtTrackAllocation: Allocation already present in list! (%p)",
- Allocation));
-
- ACPI_ERROR ((AE_INFO, "Element %p Address %p",
- Element, Allocation));
-
- goto UnlockAndExit;
- }
-
- /* Fill in the instance data. */
-
- Allocation->Size = (UINT32) Size;
- Allocation->AllocType = AllocType;
- Allocation->Component = Component;
- Allocation->Line = Line;
-
- ACPI_STRNCPY (Allocation->Module, Module, ACPI_MAX_MODULE_NAME);
- Allocation->Module[ACPI_MAX_MODULE_NAME-1] = 0;
-
- /* Insert at list head */
-
- if (MemList->ListHead)
- {
- ((ACPI_DEBUG_MEM_BLOCK *)(MemList->ListHead))->Previous = Allocation;
- }
-
- Allocation->Next = MemList->ListHead;
- Allocation->Previous = NULL;
-
- MemList->ListHead = Allocation;
-
-
-UnlockAndExit:
- Status = AcpiUtReleaseMutex (ACPI_MTX_MEMORY);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtRemoveAllocation
- *
- * PARAMETERS: Allocation - Address of allocated memory
- * Component - Component type of caller
- * Module - Source file name of caller
- * Line - Line number of caller
- *
- * RETURN:
- *
- * DESCRIPTION: Deletes an element from the global allocation tracking list.
- *
- ******************************************************************************/
-
-static ACPI_STATUS
-AcpiUtRemoveAllocation (
- ACPI_DEBUG_MEM_BLOCK *Allocation,
- UINT32 Component,
- char *Module,
- UINT32 Line)
-{
- ACPI_MEMORY_LIST *MemList;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (UtRemoveAllocation);
-
-
- MemList = AcpiGbl_GlobalList;
- if (NULL == MemList->ListHead)
- {
- /* No allocations! */
-
- ACPI_ERROR ((Module, Line,
- "Empty allocation list, nothing to free!"));
-
- return_ACPI_STATUS (AE_OK);
- }
-
- Status = AcpiUtAcquireMutex (ACPI_MTX_MEMORY);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Unlink */
-
- if (Allocation->Previous)
- {
- (Allocation->Previous)->Next = Allocation->Next;
- }
- else
- {
- MemList->ListHead = Allocation->Next;
- }
-
- if (Allocation->Next)
- {
- (Allocation->Next)->Previous = Allocation->Previous;
- }
-
- /* Mark the segment as deleted */
-
- ACPI_MEMSET (&Allocation->UserSpace, 0xEA, Allocation->Size);
-
- ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "Freeing size 0%X\n",
- Allocation->Size));
-
- Status = AcpiUtReleaseMutex (ACPI_MTX_MEMORY);
- return_ACPI_STATUS (Status);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtDumpAllocationInfo
- *
- * PARAMETERS:
- *
- * RETURN: None
- *
- * DESCRIPTION: Print some info about the outstanding allocations.
- *
- ******************************************************************************/
-
-void
-AcpiUtDumpAllocationInfo (
- void)
-{
-/*
- ACPI_MEMORY_LIST *MemList;
-*/
-
- ACPI_FUNCTION_TRACE (UtDumpAllocationInfo);
-
-/*
- ACPI_DEBUG_PRINT (TRACE_ALLOCATIONS | TRACE_TABLES,
- ("%30s: %4d (%3d Kb)\n", "Current allocations",
- MemList->CurrentCount,
- ROUND_UP_TO_1K (MemList->CurrentSize)));
-
- ACPI_DEBUG_PRINT (TRACE_ALLOCATIONS | TRACE_TABLES,
- ("%30s: %4d (%3d Kb)\n", "Max concurrent allocations",
- MemList->MaxConcurrentCount,
- ROUND_UP_TO_1K (MemList->MaxConcurrentSize)));
-
-
- ACPI_DEBUG_PRINT (TRACE_ALLOCATIONS | TRACE_TABLES,
- ("%30s: %4d (%3d Kb)\n", "Total (all) internal objects",
- RunningObjectCount,
- ROUND_UP_TO_1K (RunningObjectSize)));
-
- ACPI_DEBUG_PRINT (TRACE_ALLOCATIONS | TRACE_TABLES,
- ("%30s: %4d (%3d Kb)\n", "Total (all) allocations",
- RunningAllocCount,
- ROUND_UP_TO_1K (RunningAllocSize)));
-
-
- ACPI_DEBUG_PRINT (TRACE_ALLOCATIONS | TRACE_TABLES,
- ("%30s: %4d (%3d Kb)\n", "Current Nodes",
- AcpiGbl_CurrentNodeCount,
- ROUND_UP_TO_1K (AcpiGbl_CurrentNodeSize)));
-
- ACPI_DEBUG_PRINT (TRACE_ALLOCATIONS | TRACE_TABLES,
- ("%30s: %4d (%3d Kb)\n", "Max Nodes",
- AcpiGbl_MaxConcurrentNodeCount,
- ROUND_UP_TO_1K ((AcpiGbl_MaxConcurrentNodeCount *
- sizeof (ACPI_NAMESPACE_NODE)))));
-*/
- return_VOID;
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiUtDumpAllocations
- *
- * PARAMETERS: Component - Component(s) to dump info for.
- * Module - Module to dump info for. NULL means all.
- *
- * RETURN: None
- *
- * DESCRIPTION: Print a list of all outstanding allocations.
- *
- ******************************************************************************/
-
-void
-AcpiUtDumpAllocations (
- UINT32 Component,
- char *Module)
-{
- ACPI_DEBUG_MEM_BLOCK *Element;
- ACPI_DESCRIPTOR *Descriptor;
- UINT32 NumOutstanding = 0;
-
-
- ACPI_FUNCTION_TRACE (UtDumpAllocations);
-
-
- /*
- * Walk the allocation list.
- */
- if (ACPI_FAILURE (AcpiUtAcquireMutex (ACPI_MTX_MEMORY)))
- {
- return;
- }
-
- Element = AcpiGbl_GlobalList->ListHead;
- while (Element)
- {
- if ((Element->Component & Component) &&
- ((Module == NULL) || (0 == ACPI_STRCMP (Module, Element->Module))))
- {
- /* Ignore allocated objects that are in a cache */
-
- Descriptor = ACPI_CAST_PTR (ACPI_DESCRIPTOR, &Element->UserSpace);
- if (ACPI_GET_DESCRIPTOR_TYPE (Descriptor) != ACPI_DESC_TYPE_CACHED)
- {
- AcpiOsPrintf ("%p Len %04X %9.9s-%d [%s] ",
- Descriptor, Element->Size, Element->Module,
- Element->Line, AcpiUtGetDescriptorName (Descriptor));
-
- /* Most of the elements will be Operand objects. */
-
- switch (ACPI_GET_DESCRIPTOR_TYPE (Descriptor))
- {
- case ACPI_DESC_TYPE_OPERAND:
- AcpiOsPrintf ("%12.12s R%hd",
- AcpiUtGetTypeName (Descriptor->Object.Common.Type),
- Descriptor->Object.Common.ReferenceCount);
- break;
-
- case ACPI_DESC_TYPE_PARSER:
- AcpiOsPrintf ("AmlOpcode %04hX",
- Descriptor->Op.Asl.AmlOpcode);
- break;
-
- case ACPI_DESC_TYPE_NAMED:
- AcpiOsPrintf ("%4.4s",
- AcpiUtGetNodeName (&Descriptor->Node));
- break;
-
- default:
- break;
- }
-
- AcpiOsPrintf ( "\n");
- NumOutstanding++;
- }
- }
- Element = Element->Next;
- }
-
- (void) AcpiUtReleaseMutex (ACPI_MTX_MEMORY);
-
- /* Print summary */
-
- if (!NumOutstanding)
- {
- ACPI_INFO ((AE_INFO,
- "No outstanding allocations"));
- }
- else
- {
- ACPI_ERROR ((AE_INFO,
- "%d(%X) Outstanding allocations",
- NumOutstanding, NumOutstanding));
- }
-
- return_VOID;
-}
-
-#endif /* ACPI_DBG_TRACK_ALLOCATIONS */
-
diff --git a/sys/contrib/dev/acpica/utxface.c b/sys/contrib/dev/acpica/utxface.c
deleted file mode 100644
index 83c420e..0000000
--- a/sys/contrib/dev/acpica/utxface.c
+++ /dev/null
@@ -1,638 +0,0 @@
-/******************************************************************************
- *
- * Module Name: utxface - External interfaces for "global" ACPI functions
- * $Revision: 1.125 $
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2007, 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.
- *
- *****************************************************************************/
-
-
-#define __UTXFACE_C__
-
-#include <contrib/dev/acpica/acpi.h>
-#include <contrib/dev/acpica/acevents.h>
-#include <contrib/dev/acpica/acnamesp.h>
-#include <contrib/dev/acpica/acdebug.h>
-
-#define _COMPONENT ACPI_UTILITIES
- ACPI_MODULE_NAME ("utxface")
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiInitializeSubsystem
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Initializes all global variables. This is the first function
- * called, so any early initialization belongs here.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiInitializeSubsystem (
- void)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (AcpiInitializeSubsystem);
-
-
- AcpiGbl_StartupFlags = ACPI_SUBSYSTEM_INITIALIZE;
- ACPI_DEBUG_EXEC (AcpiUtInitStackPtrTrace ());
-
- /* Initialize the OS-Dependent layer */
-
- Status = AcpiOsInitialize ();
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status, "During OSL initialization"));
- return_ACPI_STATUS (Status);
- }
-
- /* Initialize all globals used by the subsystem */
-
- AcpiUtInitGlobals ();
-
- /* Create the default mutex objects */
-
- Status = AcpiUtMutexInitialize ();
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status, "During Global Mutex creation"));
- return_ACPI_STATUS (Status);
- }
-
- /*
- * Initialize the namespace manager and
- * the root of the namespace tree
- */
- Status = AcpiNsRootInitialize ();
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status, "During Namespace initialization"));
- return_ACPI_STATUS (Status);
- }
-
- /* If configured, initialize the AML debugger */
-
- ACPI_DEBUGGER_EXEC (Status = AcpiDbInitialize ());
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiInitializeSubsystem)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiEnableSubsystem
- *
- * PARAMETERS: Flags - Init/enable Options
- *
- * RETURN: Status
- *
- * DESCRIPTION: Completes the subsystem initialization including hardware.
- * Puts system into ACPI mode if it isn't already.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiEnableSubsystem (
- UINT32 Flags)
-{
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (AcpiEnableSubsystem);
-
-
- /* Enable ACPI mode */
-
- if (!(Flags & ACPI_NO_ACPI_ENABLE))
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[Init] Going into ACPI mode\n"));
-
- AcpiGbl_OriginalMode = AcpiHwGetMode();
-
- Status = AcpiEnable ();
- if (ACPI_FAILURE (Status))
- {
- ACPI_WARNING ((AE_INFO, "AcpiEnable failed"));
- return_ACPI_STATUS (Status);
- }
- }
-
- /*
- * Install the default OpRegion handlers. These are installed unless
- * other handlers have already been installed via the
- * InstallAddressSpaceHandler interface.
- */
- if (!(Flags & ACPI_NO_ADDRESS_SPACE_INIT))
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "[Init] Installing default address space handlers\n"));
-
- Status = AcpiEvInstallRegionHandlers ();
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- /*
- * Initialize ACPI Event handling (Fixed and General Purpose)
- *
- * Note1: We must have the hardware and events initialized before we can
- * execute any control methods safely. Any control method can require
- * ACPI hardware support, so the hardware must be fully initialized before
- * any method execution!
- *
- * Note2: Fixed events are initialized and enabled here. GPEs are
- * initialized, but cannot be enabled until after the hardware is
- * completely initialized (SCI and GlobalLock activated)
- */
- if (!(Flags & ACPI_NO_EVENT_INIT))
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "[Init] Initializing ACPI events\n"));
-
- Status = AcpiEvInitializeEvents ();
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- /*
- * Install the SCI handler and Global Lock handler. This completes the
- * hardware initialization.
- */
- if (!(Flags & ACPI_NO_HANDLER_INIT))
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "[Init] Installing SCI/GL handlers\n"));
-
- Status = AcpiEvInstallXruptHandlers ();
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- /*
- * Complete the GPE initialization for the GPE blocks defined in the FADT
- * (GPE block 0 and 1).
- *
- * Note1: This is where the _PRW methods are executed for the GPEs. These
- * methods can only be executed after the SCI and Global Lock handlers are
- * installed and initialized.
- *
- * Note2: Currently, there seems to be no need to run the _REG methods
- * before execution of the _PRW methods and enabling of the GPEs.
- */
- if (!(Flags & ACPI_NO_EVENT_INIT))
- {
- Status = AcpiEvInstallFadtGpes ();
- if (ACPI_FAILURE (Status))
- {
- return (Status);
- }
- }
-
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiEnableSubsystem)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiInitializeObjects
- *
- * PARAMETERS: Flags - Init/enable Options
- *
- * RETURN: Status
- *
- * DESCRIPTION: Completes namespace initialization by initializing device
- * objects and executing AML code for Regions, buffers, etc.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiInitializeObjects (
- UINT32 Flags)
-{
- ACPI_STATUS Status = AE_OK;
-
-
- ACPI_FUNCTION_TRACE (AcpiInitializeObjects);
-
-
- /*
- * Run all _REG methods
- *
- * Note: Any objects accessed by the _REG methods will be automatically
- * initialized, even if they contain executable AML (see the call to
- * AcpiNsInitializeObjects below).
- */
- if (!(Flags & ACPI_NO_ADDRESS_SPACE_INIT))
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "[Init] Executing _REG OpRegion methods\n"));
-
- Status = AcpiEvInitializeOpRegions ();
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- /*
- * Initialize the objects that remain uninitialized. This runs the
- * executable AML that may be part of the declaration of these objects:
- * OperationRegions, BufferFields, Buffers, and Packages.
- */
- if (!(Flags & ACPI_NO_OBJECT_INIT))
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "[Init] Completing Initialization of ACPI Objects\n"));
-
- Status = AcpiNsInitializeObjects ();
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- /*
- * Initialize all device objects in the namespace. This runs the device
- * _STA and _INI methods.
- */
- if (!(Flags & ACPI_NO_DEVICE_INIT))
- {
- ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
- "[Init] Initializing ACPI Devices\n"));
-
- Status = AcpiNsInitializeDevices ();
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
- }
-
- /*
- * Empty the caches (delete the cached objects) on the assumption that
- * the table load filled them up more than they will be at runtime --
- * thus wasting non-paged memory.
- */
- Status = AcpiPurgeCachedObjects ();
-
- AcpiGbl_StartupFlags |= ACPI_INITIALIZED_OK;
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiInitializeObjects)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiTerminate
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Shutdown the ACPI subsystem. Release all resources.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiTerminate (
- void)
-{
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (AcpiTerminate);
-
-
- /* Terminate the AML Debugger if present */
-
- ACPI_DEBUGGER_EXEC(AcpiGbl_DbTerminateThreads = TRUE);
-
- /* Shutdown and free all resources */
-
- AcpiUtSubsystemShutdown ();
-
-
- /* Free the mutex objects */
-
- AcpiUtMutexTerminate ();
-
-
-#ifdef ACPI_DEBUGGER
-
- /* Shut down the debugger */
-
- AcpiDbTerminate ();
-#endif
-
- /* Now we can shutdown the OS-dependent layer */
-
- Status = AcpiOsTerminate ();
- return_ACPI_STATUS (Status);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiTerminate)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiSubsystemStatus
- *
- * PARAMETERS: None
- *
- * RETURN: Status of the ACPI subsystem
- *
- * DESCRIPTION: Other drivers that use the ACPI subsystem should call this
- * before making any other calls, to ensure the subsystem
- * initialized successfully.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiSubsystemStatus (
- void)
-{
-
- if (AcpiGbl_StartupFlags & ACPI_INITIALIZED_OK)
- {
- return (AE_OK);
- }
- else
- {
- return (AE_ERROR);
- }
-}
-
-ACPI_EXPORT_SYMBOL (AcpiSubsystemStatus)
-
-
-/*******************************************************************************
- *
- * FUNCTION: AcpiGetSystemInfo
- *
- * PARAMETERS: OutBuffer - A buffer to receive the resources for the
- * device
- *
- * RETURN: Status - the status of the call
- *
- * DESCRIPTION: This function is called to get information about the current
- * state of the ACPI subsystem. It will return system information
- * in the OutBuffer.
- *
- * If the function fails an appropriate status will be returned
- * and the value of OutBuffer is undefined.
- *
- ******************************************************************************/
-
-ACPI_STATUS
-AcpiGetSystemInfo (
- ACPI_BUFFER *OutBuffer)
-{
- ACPI_SYSTEM_INFO *InfoPtr;
- ACPI_STATUS Status;
-
-
- ACPI_FUNCTION_TRACE (AcpiGetSystemInfo);
-
-
- /* Parameter validation */
-
- Status = AcpiUtValidateBuffer (OutBuffer);
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /* Validate/Allocate/Clear caller buffer */
-
- Status = AcpiUtInitializeBuffer (OutBuffer, sizeof (ACPI_SYSTEM_INFO));
- if (ACPI_FAILURE (Status))
- {
- return_ACPI_STATUS (Status);
- }
-
- /*
- * Populate the return buffer
- */
- InfoPtr = (ACPI_SYSTEM_INFO *) OutBuffer->Pointer;
-
- InfoPtr->AcpiCaVersion = ACPI_CA_VERSION;
-
- /* System flags (ACPI capabilities) */
-
- InfoPtr->Flags = ACPI_SYS_MODE_ACPI;
-
- /* Timer resolution - 24 or 32 bits */
-
- if (AcpiGbl_FADT.Flags & ACPI_FADT_32BIT_TIMER)
- {
- InfoPtr->TimerResolution = 24;
- }
- else
- {
- InfoPtr->TimerResolution = 32;
- }
-
- /* Clear the reserved fields */
-
- InfoPtr->Reserved1 = 0;
- InfoPtr->Reserved2 = 0;
-
- /* Current debug levels */
-
- InfoPtr->DebugLayer = AcpiDbgLayer;
- InfoPtr->DebugLevel = AcpiDbgLevel;
-
- return_ACPI_STATUS (AE_OK);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiGetSystemInfo)
-
-
-/*****************************************************************************
- *
- * FUNCTION: AcpiInstallInitializationHandler
- *
- * PARAMETERS: Handler - Callback procedure
- * Function - Not (currently) used, see below
- *
- * RETURN: Status
- *
- * DESCRIPTION: Install an initialization handler
- *
- * TBD: When a second function is added, must save the Function also.
- *
- ****************************************************************************/
-
-ACPI_STATUS
-AcpiInstallInitializationHandler (
- ACPI_INIT_HANDLER Handler,
- UINT32 Function)
-{
-
- if (!Handler)
- {
- return (AE_BAD_PARAMETER);
- }
-
- if (AcpiGbl_InitHandler)
- {
- return (AE_ALREADY_EXISTS);
- }
-
- AcpiGbl_InitHandler = Handler;
- return AE_OK;
-}
-
-ACPI_EXPORT_SYMBOL (AcpiInstallInitializationHandler)
-
-
-/*****************************************************************************
- *
- * FUNCTION: AcpiPurgeCachedObjects
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Empty all caches (delete the cached objects)
- *
- ****************************************************************************/
-
-ACPI_STATUS
-AcpiPurgeCachedObjects (
- void)
-{
- ACPI_FUNCTION_TRACE (AcpiPurgeCachedObjects);
-
- (void) AcpiOsPurgeCache (AcpiGbl_StateCache);
- (void) AcpiOsPurgeCache (AcpiGbl_OperandCache);
- (void) AcpiOsPurgeCache (AcpiGbl_PsNodeCache);
- (void) AcpiOsPurgeCache (AcpiGbl_PsNodeExtCache);
- return_ACPI_STATUS (AE_OK);
-}
-
-ACPI_EXPORT_SYMBOL (AcpiPurgeCachedObjects)
OpenPOWER on IntegriCloud