Merge from vendor branch INTEL_ACPICA:
authorYONETANI Tomokazu <y0netan1@dragonflybsd.org>
Wed, 17 Jan 2007 16:29:46 +0000 (16:29 +0000)
committerYONETANI Tomokazu <y0netan1@dragonflybsd.org>
Wed, 17 Jan 2007 16:29:46 +0000 (16:29 +0000)
Import acpica-unix-20061109 from Intel.

241 files changed:
sys/contrib/dev/acpica-unix-20061109/README [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/README.DELETED [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/README.DRAGONFLY [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/changes.txt [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/common/adfile.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/common/adisasm.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/common/adwalk.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/common/dmrestag.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/common/dmtable.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/common/dmtbdump.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/common/dmtbinfo.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/common/getopt.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/Makefile [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/aslanalyze.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/aslcodegen.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/aslcompile.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/aslcompiler.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/aslcompiler.l [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/aslcompiler.y [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/asldefine.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/aslerror.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/aslfiles.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/aslfold.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/aslglobal.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/asllength.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/asllisting.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/aslload.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/asllookup.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/aslmain.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/aslmap.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/aslopcodes.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/asloperands.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/aslopt.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/aslresource.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/aslrestype1.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/aslrestype2.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/aslstubs.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/asltransform.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/asltree.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/asltypes.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/aslutils.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/compiler/readme.txt [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/debugger/dbcmds.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/debugger/dbdisply.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/debugger/dbexec.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/debugger/dbfileio.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/debugger/dbhistry.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/debugger/dbinput.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/debugger/dbstats.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/debugger/dbutils.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/debugger/dbxface.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/disassembler/dmbuffer.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/disassembler/dmnames.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/disassembler/dmobject.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/disassembler/dmopcode.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/disassembler/dmresrc.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/disassembler/dmresrcl.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/disassembler/dmresrcs.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/disassembler/dmutils.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/disassembler/dmwalk.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/events/evevent.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/events/evgpe.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/events/evgpeblk.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/events/evmisc.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/events/evregion.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/events/evrgnini.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/events/evsci.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/events/evxface.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/events/evxfevnt.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/events/evxfregn.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/generate/lint/lint.bat [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/generate/lint/lset.bat [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/generate/lint/options.lnt [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/generate/lint/readme.txt [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/generate/lint/std16.lnt [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/generate/lint/std32.lnt [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/generate/lint/std64.lnt [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/hardware/hwacpi.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/hardware/hwgpe.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/hardware/hwregs.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/hardware/hwsleep.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/hardware/hwtimer.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/acapps.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/acconfig.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/acdebug.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/acdisasm.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/acdispat.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/acevents.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/acexcep.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/acglobal.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/achware.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/acinterp.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/aclocal.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/acmacros.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/acnames.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/acnamesp.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/acobject.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/acopcode.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/acoutput.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/acparser.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/acpi.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/acpiosxf.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/acpixf.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/acresrc.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/acstruct.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/actables.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/actbl.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/actbl1.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/actbl2.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/actypes.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/acutils.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/amlcode.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/amlresrc.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/platform/acdos16.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/platform/acefi.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/platform/acenv.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/platform/acfreebsd.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/platform/acgcc.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/platform/acintel.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/platform/aclinux.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/platform/acmsvc.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/platform/acnetbsd.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/platform/acwin.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/include/platform/acwin64.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/dispatcher/dsfield.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/dispatcher/dsinit.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/dispatcher/dsmethod.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/dispatcher/dsmthdat.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/dispatcher/dsobject.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/dispatcher/dsopcode.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/dispatcher/dsutils.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/dispatcher/dswexec.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/dispatcher/dswload.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/dispatcher/dswscope.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/dispatcher/dswstate.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/executer/exconfig.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/executer/exconvrt.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/executer/excreate.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/executer/exdump.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/executer/exfield.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/executer/exfldio.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/executer/exmisc.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/executer/exmutex.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/executer/exnames.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/executer/exoparg1.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/executer/exoparg2.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/executer/exoparg3.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/executer/exoparg6.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/executer/exprep.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/executer/exregion.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/executer/exresnte.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/executer/exresolv.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/executer/exresop.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/executer/exstore.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/executer/exstoren.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/executer/exstorob.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/executer/exsystem.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/executer/exutils.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/parser/psargs.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/parser/psloop.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/parser/psopcode.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/parser/psparse.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/parser/psscope.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/parser/pstree.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/parser/psutils.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/parser/pswalk.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/interpreter/parser/psxface.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/namespace/nsaccess.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/namespace/nsalloc.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/namespace/nsdump.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/namespace/nsdumpdv.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/namespace/nseval.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/namespace/nsinit.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/namespace/nsload.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/namespace/nsnames.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/namespace/nsobject.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/namespace/nsparse.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/namespace/nssearch.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/namespace/nsutils.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/namespace/nswalk.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/namespace/nsxfeval.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/namespace/nsxfname.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/namespace/nsxfobj.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/os_specific/service_layers/osdosxf.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/os_specific/service_layers/osunixdir.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/os_specific/service_layers/osunixxf.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/os_specific/service_layers/oswindir.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/os_specific/service_layers/oswinxf.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/osunixxf.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/resources/rsaddr.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/resources/rscalc.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/resources/rscreate.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/resources/rsdump.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/resources/rsinfo.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/resources/rsio.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/resources/rsirq.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/resources/rslist.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/resources/rsmemory.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/resources/rsmisc.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/resources/rsutils.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/resources/rsxface.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/tables/tbfadt.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/tables/tbfind.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/tables/tbinstal.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/tables/tbutils.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/tables/tbxface.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/tables/tbxfroot.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/tools/acpiexec/Makefile [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/tools/acpiexec/aecommon.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/tools/acpiexec/aeexec.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/tools/acpiexec/aemain.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/tools/acpiexec/osunixdir.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/tools/acpisrc/Makefile [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/tools/acpisrc/acpisrc.h [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/tools/acpisrc/ascase.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/tools/acpisrc/asconvrt.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/tools/acpisrc/asfile.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/tools/acpisrc/asmain.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/tools/acpisrc/asremove.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/tools/acpisrc/astable.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/tools/acpisrc/asutils.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/tools/acpisrc/osunixdir.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/tools/acpixtract/Makefile [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/tools/acpixtract/acpixtract.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/utilities/utalloc.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/utilities/utcache.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/utilities/utclib.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/utilities/utcopy.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/utilities/utdebug.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/utilities/utdelete.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/utilities/uteval.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/utilities/utglobal.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/utilities/utinit.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/utilities/utmath.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/utilities/utmisc.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/utilities/utmutex.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/utilities/utobject.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/utilities/utresrc.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/utilities/utstate.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/utilities/uttrack.c [new file with mode: 0644]
sys/contrib/dev/acpica-unix-20061109/utilities/utxface.c [new file with mode: 0644]

diff --git a/sys/contrib/dev/acpica-unix-20061109/README b/sys/contrib/dev/acpica-unix-20061109/README
new file mode 100644 (file)
index 0000000..8b6f3ea
--- /dev/null
@@ -0,0 +1,79 @@
+acpica-unix
+-----------
+
+This source release includes:
+
+
+1) a cross-OS AML interpreter
+
+This is intended to allow commercial and open source operating systems
+to be enabled for ACPI. OS specific code is still needed, but the
+AML interpreter should greatly improve the development speed of ACPI
+support.
+
+The AML interpreter source should be integrated into the kernel's
+build process. We recommend establishing an automated method for
+this, so later versions can also be incorporated easily. Please see
+the documentation on the website for API and other implementation
+information.
+
+
+2) iasl, an ASL compiler/decompiler
+
+iasl compiles ASL (ACPI Source Language) into AML (ACPI Machine
+Language). This AML is suitable for inclusion as a DSDT in system
+firmware. It also can disassemble AML, for debugging purposes.
+
+To compile:
+
+cd compiler
+make
+
+It has been compiled on Linux, but should easily port to other Unix
+environments.
+
+Run 'iasl -h' for more information, or download the binary version for
+documentation in PDF format.
+
+
+3) acpisrc, a source code conversion tool
+
+acpisrc converts the standard form of the acpica source release (included
+here) into a version that meets Linux coding guidelines. This consists
+mainly of performing a series of string replacements and transformations
+to the code.
+
+To compile:
+
+cd tools/acpisrc
+make
+
+It has been compiled on Linux, but should easily port to other Unix
+environments.
+
+
+4) acpibin, an AML file tool
+
+acpibin compares AML files, dumps AML binary files to text files,
+extracts binary AML from text files, and other AML file
+manipulation.
+
+To compile:
+
+cd tools/acpibin
+make
+
+
+5) acpiexec, a user-space AML interpreter
+
+acpiexec allows the loading of ACPI tables and execution of control
+methods from user space.  Useful for debugging AML code and testing
+the AML interpreter.
+
+To compile:
+
+cd tools/acpiexec
+make
+
+
+Thanks -- The ACPI CA Team
diff --git a/sys/contrib/dev/acpica-unix-20061109/README.DELETED b/sys/contrib/dev/acpica-unix-20061109/README.DELETED
new file mode 100644 (file)
index 0000000..3f9f36d
--- /dev/null
@@ -0,0 +1,4 @@
+common/16bit.h
+common/a16find.c
+common/a16utils.asm
+common/a16utils.obj
diff --git a/sys/contrib/dev/acpica-unix-20061109/README.DRAGONFLY b/sys/contrib/dev/acpica-unix-20061109/README.DRAGONFLY
new file mode 100644 (file)
index 0000000..034b1f5
--- /dev/null
@@ -0,0 +1,41 @@
+
+               ACPI 20061109 AS USED BY DRAGONFLY
+
+    This directory contains a selected set of files from the Intel
+    acpica-unix-20061109 distribution.  No files have been moved
+    or modified from their extracted position.
+
+    DO NOT CREATE OR EDIT ANY FILES IN THIS DIRECTORY HIERARCHY!  THIS
+    HIERARCHY REPRESENTS AN EXACT COPY, MINUS UNNEEDED FILES, OF THE INTEL
+    ACPICA-UNIX-20061109 DISTRIBUTION.  All modifications are made in the 
+    DragonFly build wrapper, primarily in /usr/src/sys/dev/acpica5 and 
+    /usr/src/usr.sbin/acpi, by creating overrides or performing surgery
+    on the distribution.  The only additional file added to this directory
+    is README.DRAGONFLY.  The base source was fetched from:
+
+       http://developer.intel.com/technology/iapc/acpi/downloads/acpica-unix-20061109.tar.gz
+       MD5 (acpica-unix-20061109.tar.gz) = 0ca508dd9bec10fb3b53c72aea6bb6a1
+
+    UPGRADE PROCEDURE:
+
+       * download a new acpica-unix distribution and extract the archive
+         under /sys/contrib/dev.  copy README.* files over from the current
+         version, and adjust file names and MD5 sum in README.DRAGONFLY
+         to match with the new version.
+
+       * adjust build wrappers to use new distribution.  /sys/conf/acpi.mk
+         controls the name of the directory containing the acpica-unix
+         distribution.  build a system and make sure the new ACPICA5 module
+         and ACPI tools work properly.  if you had to remove or re-add
+         files in the distribution directory, change README.DELETED
+         accordingly.
+
+       * cvs import the new distribution directory.
+
+       * commit the changes in the build wrapper directories.
+
+       * cvs remove the old distribution directory after a while.
+
+         DO NOT MAKE ANY EDITS TO THE BINUTILS DISTRIBUTION IN THIS CONTRIB
+         DIRECTORY, OTHER THEN TO README.DRAGONFLY!
+
diff --git a/sys/contrib/dev/acpica-unix-20061109/changes.txt b/sys/contrib/dev/acpica-unix-20061109/changes.txt
new file mode 100644 (file)
index 0000000..56987d3
--- /dev/null
@@ -0,0 +1,7979 @@
+----------------------------------------
+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-unix-20061109/common/adfile.c b/sys/contrib/dev/acpica-unix-20061109/common/adfile.c
new file mode 100644 (file)
index 0000000..42ab3bf
--- /dev/null
@@ -0,0 +1,398 @@
+/******************************************************************************
+ *
+ * Module Name: adfile - Application-level disassembler file support routines
+ *              $Revision: 1.2 $
+ *
+ *****************************************************************************/
+
+/******************************************************************************
+ *
+ * 1. Copyright Notice
+ *
+ * Some or all of this work - Copyright (c) 1999 - 2006, 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 "acpi.h"
+#include "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-unix-20061109/common/adisasm.c b/sys/contrib/dev/acpica-unix-20061109/common/adisasm.c
new file mode 100644 (file)
index 0000000..e8805bd
--- /dev/null
@@ -0,0 +1,1132 @@
+/******************************************************************************
+ *
+ * Module Name: adisasm - Application-level disassembler routines
+ *              $Revision: 1.103 $
+ *
+ *****************************************************************************/
+
+/******************************************************************************
+ *
+ * 1. Copyright Notice
+ *
+ * Some or all of this work - Copyright (c) 1999 - 2006, 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 "acpi.h"
+#include "acparser.h"
+#include "amlcode.h"
+#include "acdebug.h"
+#include "acdisasm.h"
+#include "acdispat.h"
+#include "acnamesp.h"
+#include "actables.h"
+#include "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
+