From owner-svn-src-head@FreeBSD.ORG Fri Jun 5 18:43:14 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6C2DE106564A; Fri, 5 Jun 2009 18:43:14 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 563BF8FC17; Fri, 5 Jun 2009 18:43:14 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n55IhEOg034587; Fri, 5 Jun 2009 18:43:14 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n55IhEgT034583; Fri, 5 Jun 2009 18:43:14 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <200906051843.n55IhEgT034583@svn.freebsd.org> From: Jung-uk Kim Date: Fri, 5 Jun 2009 18:43:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r193529 - in head/sys/contrib/dev/acpica: . common compiler debugger disassembler dispatcher events executer hardware include namespace parser resources tables tools utilities X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Jun 2009 18:43:14 -0000 Author: jkim Date: Fri Jun 5 18:43:13 2009 New Revision: 193529 URL: http://svn.freebsd.org/changeset/base/193529 Log: Import ACPICA 20090521. Added: head/sys/contrib/dev/acpica/changes.txt - copied unchanged from r193525, projects/acpica_20090521/sys/contrib/dev/acpica/changes.txt head/sys/contrib/dev/acpica/compiler/aslstartup.c - copied unchanged from r193525, projects/acpica_20090521/sys/contrib/dev/acpica/compiler/aslstartup.c head/sys/contrib/dev/acpica/debugger/ - copied from r193525, projects/acpica_20090521/sys/contrib/dev/acpica/debugger/ head/sys/contrib/dev/acpica/disassembler/ - copied from r193525, projects/acpica_20090521/sys/contrib/dev/acpica/disassembler/ head/sys/contrib/dev/acpica/dispatcher/ - copied from r193525, projects/acpica_20090521/sys/contrib/dev/acpica/dispatcher/ head/sys/contrib/dev/acpica/events/ - copied from r193525, projects/acpica_20090521/sys/contrib/dev/acpica/events/ head/sys/contrib/dev/acpica/executer/ - copied from r193525, projects/acpica_20090521/sys/contrib/dev/acpica/executer/ head/sys/contrib/dev/acpica/hardware/ - copied from r193525, projects/acpica_20090521/sys/contrib/dev/acpica/hardware/ head/sys/contrib/dev/acpica/include/ - copied from r193525, projects/acpica_20090521/sys/contrib/dev/acpica/include/ head/sys/contrib/dev/acpica/namespace/ - copied from r193525, projects/acpica_20090521/sys/contrib/dev/acpica/namespace/ head/sys/contrib/dev/acpica/parser/ - copied from r193525, projects/acpica_20090521/sys/contrib/dev/acpica/parser/ head/sys/contrib/dev/acpica/resources/ - copied from r193525, projects/acpica_20090521/sys/contrib/dev/acpica/resources/ head/sys/contrib/dev/acpica/tables/ - copied from r193525, projects/acpica_20090521/sys/contrib/dev/acpica/tables/ head/sys/contrib/dev/acpica/tools/ - copied from r193525, projects/acpica_20090521/sys/contrib/dev/acpica/tools/ head/sys/contrib/dev/acpica/utilities/ - copied from r193525, projects/acpica_20090521/sys/contrib/dev/acpica/utilities/ Deleted: head/sys/contrib/dev/acpica/CHANGES.txt head/sys/contrib/dev/acpica/acapps.h head/sys/contrib/dev/acpica/acconfig.h head/sys/contrib/dev/acpica/acdebug.h head/sys/contrib/dev/acpica/acdisasm.h head/sys/contrib/dev/acpica/acdispat.h head/sys/contrib/dev/acpica/acefi.h head/sys/contrib/dev/acpica/acenv.h head/sys/contrib/dev/acpica/acevents.h head/sys/contrib/dev/acpica/acexcep.h head/sys/contrib/dev/acpica/acfreebsd.h head/sys/contrib/dev/acpica/acgcc.h head/sys/contrib/dev/acpica/acglobal.h head/sys/contrib/dev/acpica/achware.h head/sys/contrib/dev/acpica/acinterp.h head/sys/contrib/dev/acpica/aclocal.h head/sys/contrib/dev/acpica/acmacros.h head/sys/contrib/dev/acpica/acnames.h head/sys/contrib/dev/acpica/acnamesp.h head/sys/contrib/dev/acpica/acobject.h head/sys/contrib/dev/acpica/acopcode.h head/sys/contrib/dev/acpica/acoutput.h head/sys/contrib/dev/acpica/acparser.h head/sys/contrib/dev/acpica/acpi.h head/sys/contrib/dev/acpica/acpiosxf.h head/sys/contrib/dev/acpica/acpixf.h head/sys/contrib/dev/acpica/acresrc.h head/sys/contrib/dev/acpica/acstruct.h head/sys/contrib/dev/acpica/actables.h head/sys/contrib/dev/acpica/actbl.h head/sys/contrib/dev/acpica/actbl1.h head/sys/contrib/dev/acpica/actbl2.h head/sys/contrib/dev/acpica/actypes.h head/sys/contrib/dev/acpica/acutils.h head/sys/contrib/dev/acpica/aecommon.h head/sys/contrib/dev/acpica/amlcode.h head/sys/contrib/dev/acpica/amlresrc.h head/sys/contrib/dev/acpica/dbcmds.c head/sys/contrib/dev/acpica/dbdisply.c head/sys/contrib/dev/acpica/dbexec.c head/sys/contrib/dev/acpica/dbfileio.c head/sys/contrib/dev/acpica/dbhistry.c head/sys/contrib/dev/acpica/dbinput.c head/sys/contrib/dev/acpica/dbstats.c head/sys/contrib/dev/acpica/dbutils.c head/sys/contrib/dev/acpica/dbxface.c head/sys/contrib/dev/acpica/dmbuffer.c head/sys/contrib/dev/acpica/dmnames.c head/sys/contrib/dev/acpica/dmobject.c head/sys/contrib/dev/acpica/dmopcode.c head/sys/contrib/dev/acpica/dmresrc.c head/sys/contrib/dev/acpica/dmresrcl.c head/sys/contrib/dev/acpica/dmresrcs.c head/sys/contrib/dev/acpica/dmutils.c head/sys/contrib/dev/acpica/dmwalk.c head/sys/contrib/dev/acpica/dsfield.c head/sys/contrib/dev/acpica/dsinit.c head/sys/contrib/dev/acpica/dsmethod.c head/sys/contrib/dev/acpica/dsmthdat.c head/sys/contrib/dev/acpica/dsobject.c head/sys/contrib/dev/acpica/dsopcode.c head/sys/contrib/dev/acpica/dsutils.c head/sys/contrib/dev/acpica/dswexec.c head/sys/contrib/dev/acpica/dswload.c head/sys/contrib/dev/acpica/dswscope.c head/sys/contrib/dev/acpica/dswstate.c head/sys/contrib/dev/acpica/evevent.c head/sys/contrib/dev/acpica/evgpe.c head/sys/contrib/dev/acpica/evgpeblk.c head/sys/contrib/dev/acpica/evmisc.c head/sys/contrib/dev/acpica/evregion.c head/sys/contrib/dev/acpica/evrgnini.c head/sys/contrib/dev/acpica/evsci.c head/sys/contrib/dev/acpica/evxface.c head/sys/contrib/dev/acpica/evxfevnt.c head/sys/contrib/dev/acpica/evxfregn.c head/sys/contrib/dev/acpica/exconfig.c head/sys/contrib/dev/acpica/exconvrt.c head/sys/contrib/dev/acpica/excreate.c head/sys/contrib/dev/acpica/exdump.c head/sys/contrib/dev/acpica/exfield.c head/sys/contrib/dev/acpica/exfldio.c head/sys/contrib/dev/acpica/exmisc.c head/sys/contrib/dev/acpica/exmutex.c head/sys/contrib/dev/acpica/exnames.c head/sys/contrib/dev/acpica/exoparg1.c head/sys/contrib/dev/acpica/exoparg2.c head/sys/contrib/dev/acpica/exoparg3.c head/sys/contrib/dev/acpica/exoparg6.c head/sys/contrib/dev/acpica/exprep.c head/sys/contrib/dev/acpica/exregion.c head/sys/contrib/dev/acpica/exresnte.c head/sys/contrib/dev/acpica/exresolv.c head/sys/contrib/dev/acpica/exresop.c head/sys/contrib/dev/acpica/exstore.c head/sys/contrib/dev/acpica/exstoren.c head/sys/contrib/dev/acpica/exstorob.c head/sys/contrib/dev/acpica/exsystem.c head/sys/contrib/dev/acpica/exutils.c head/sys/contrib/dev/acpica/hwacpi.c head/sys/contrib/dev/acpica/hwgpe.c head/sys/contrib/dev/acpica/hwregs.c head/sys/contrib/dev/acpica/hwsleep.c head/sys/contrib/dev/acpica/hwtimer.c head/sys/contrib/dev/acpica/nsaccess.c head/sys/contrib/dev/acpica/nsalloc.c head/sys/contrib/dev/acpica/nsdump.c head/sys/contrib/dev/acpica/nsdumpdv.c head/sys/contrib/dev/acpica/nseval.c head/sys/contrib/dev/acpica/nsinit.c head/sys/contrib/dev/acpica/nsload.c head/sys/contrib/dev/acpica/nsnames.c head/sys/contrib/dev/acpica/nsobject.c head/sys/contrib/dev/acpica/nsparse.c head/sys/contrib/dev/acpica/nssearch.c head/sys/contrib/dev/acpica/nsutils.c head/sys/contrib/dev/acpica/nswalk.c head/sys/contrib/dev/acpica/nsxfeval.c head/sys/contrib/dev/acpica/nsxfname.c head/sys/contrib/dev/acpica/nsxfobj.c head/sys/contrib/dev/acpica/psargs.c head/sys/contrib/dev/acpica/psloop.c head/sys/contrib/dev/acpica/psopcode.c head/sys/contrib/dev/acpica/psparse.c head/sys/contrib/dev/acpica/psscope.c head/sys/contrib/dev/acpica/pstree.c head/sys/contrib/dev/acpica/psutils.c head/sys/contrib/dev/acpica/pswalk.c head/sys/contrib/dev/acpica/psxface.c head/sys/contrib/dev/acpica/rsaddr.c head/sys/contrib/dev/acpica/rscalc.c head/sys/contrib/dev/acpica/rscreate.c head/sys/contrib/dev/acpica/rsdump.c head/sys/contrib/dev/acpica/rsinfo.c head/sys/contrib/dev/acpica/rsio.c head/sys/contrib/dev/acpica/rsirq.c head/sys/contrib/dev/acpica/rslist.c head/sys/contrib/dev/acpica/rsmemory.c head/sys/contrib/dev/acpica/rsmisc.c head/sys/contrib/dev/acpica/rsutils.c head/sys/contrib/dev/acpica/rsxface.c head/sys/contrib/dev/acpica/tbfadt.c head/sys/contrib/dev/acpica/tbfind.c head/sys/contrib/dev/acpica/tbinstal.c head/sys/contrib/dev/acpica/tbutils.c head/sys/contrib/dev/acpica/tbxface.c head/sys/contrib/dev/acpica/tbxfroot.c head/sys/contrib/dev/acpica/utalloc.c head/sys/contrib/dev/acpica/utcache.c head/sys/contrib/dev/acpica/utclib.c head/sys/contrib/dev/acpica/utcopy.c head/sys/contrib/dev/acpica/utdebug.c head/sys/contrib/dev/acpica/utdelete.c head/sys/contrib/dev/acpica/uteval.c head/sys/contrib/dev/acpica/utglobal.c head/sys/contrib/dev/acpica/utinit.c head/sys/contrib/dev/acpica/utmath.c head/sys/contrib/dev/acpica/utmisc.c head/sys/contrib/dev/acpica/utmutex.c head/sys/contrib/dev/acpica/utobject.c head/sys/contrib/dev/acpica/utresrc.c head/sys/contrib/dev/acpica/utstate.c head/sys/contrib/dev/acpica/uttrack.c head/sys/contrib/dev/acpica/utxface.c Modified: head/sys/contrib/dev/acpica/ (props changed) head/sys/contrib/dev/acpica/acpica_prep.sh head/sys/contrib/dev/acpica/common/adfile.c head/sys/contrib/dev/acpica/common/adisasm.c head/sys/contrib/dev/acpica/common/adwalk.c head/sys/contrib/dev/acpica/common/dmrestag.c head/sys/contrib/dev/acpica/common/dmtable.c head/sys/contrib/dev/acpica/common/dmtbdump.c head/sys/contrib/dev/acpica/common/dmtbinfo.c head/sys/contrib/dev/acpica/common/getopt.c head/sys/contrib/dev/acpica/compiler/aslanalyze.c head/sys/contrib/dev/acpica/compiler/aslcodegen.c head/sys/contrib/dev/acpica/compiler/aslcompile.c head/sys/contrib/dev/acpica/compiler/aslcompiler.h head/sys/contrib/dev/acpica/compiler/aslcompiler.l head/sys/contrib/dev/acpica/compiler/aslcompiler.y head/sys/contrib/dev/acpica/compiler/asldefine.h head/sys/contrib/dev/acpica/compiler/aslerror.c head/sys/contrib/dev/acpica/compiler/aslfiles.c head/sys/contrib/dev/acpica/compiler/aslfold.c head/sys/contrib/dev/acpica/compiler/aslglobal.h head/sys/contrib/dev/acpica/compiler/asllength.c head/sys/contrib/dev/acpica/compiler/asllisting.c head/sys/contrib/dev/acpica/compiler/aslload.c head/sys/contrib/dev/acpica/compiler/asllookup.c head/sys/contrib/dev/acpica/compiler/aslmain.c head/sys/contrib/dev/acpica/compiler/aslmap.c head/sys/contrib/dev/acpica/compiler/aslopcodes.c head/sys/contrib/dev/acpica/compiler/asloperands.c head/sys/contrib/dev/acpica/compiler/aslopt.c head/sys/contrib/dev/acpica/compiler/aslresource.c head/sys/contrib/dev/acpica/compiler/aslrestype1.c head/sys/contrib/dev/acpica/compiler/aslrestype2.c head/sys/contrib/dev/acpica/compiler/aslstubs.c head/sys/contrib/dev/acpica/compiler/asltransform.c head/sys/contrib/dev/acpica/compiler/asltree.c head/sys/contrib/dev/acpica/compiler/asltypes.h head/sys/contrib/dev/acpica/compiler/aslutils.c head/sys/contrib/dev/acpica/osunixxf.c Modified: head/sys/contrib/dev/acpica/acpica_prep.sh ============================================================================== --- head/sys/contrib/dev/acpica/acpica_prep.sh Fri Jun 5 18:14:51 2009 (r193528) +++ head/sys/contrib/dev/acpica/acpica_prep.sh Fri Jun 5 18:43:13 2009 (r193529) @@ -10,33 +10,35 @@ if [ ! $# -eq 1 ]; then fi src=$1 -wrk=./_acpi_ca_unpack -dst=./acpi_ca_destination +wrk=`realpath ./_acpi_ca_unpack` +dst=`realpath ./acpi_ca_destination` # files that should keep their full directory path -fulldirs="common compiler" +fulldirs="common compiler debugger disassembler dispatcher events \ + executer hardware include namespace parser resources tables \ + tools utilities" + # files to remove -stripdirs="generate acpisrc" -stripfiles="16bit.h Makefile README a16find.c a16utils.asm a16utils.obj \ - acdos16.h acintel.h aclinux.h acmsvc.h acnetbsd.h acpixtract.c \ - acwin.h acwin64.h aeexec.c aemain.c osdosxf.c osunixdir.c \ - oswindir.c oswinxf.c readme.txt" +stripdirs="acpisrc acpixtract examples generate os_specific" +stripfiles="Makefile README acintel.h aclinux.h acmsvc.h acnetbsd.h \ + acos2.h accygwin.h acefi.h actbl2.h acwin.h acwin64.h aeexec.c \ + aehandlers.c aemain.c aetables.c osunixdir.c readme.txt \ + utclib.c" + # include files to canonify -src_headers="acapps.h acconfig.h acdebug.h acdisasm.h acdispat.h \ - acenv.h acevents.h acexcep.h acfreebsd.h acgcc.h acglobal.h \ - achware.h acinterp.h aclocal.h acmacros.h acnames.h acnamesp.h \ - acobject.h acopcode.h acoutput.h acparser.h acpi.h acpiosxf.h \ - acpixf.h acresrc.h acstruct.h actables.h actbl.h actbl1.h \ - actbl2.h actypes.h acutils.h aecommon.h amlcode.h amlresrc.h" +src_headers="acapps.h accommon.h acconfig.h acdebug.h acdisasm.h \ + acdispat.h acevents.h acexcep.h acglobal.h achware.h acinterp.h \ + aclocal.h acmacros.h acnames.h acnamesp.h acobject.h acopcode.h \ + acoutput.h acparser.h acpi.h acpiosxf.h acpixf.h acpredef.h \ + acresrc.h acrestyp.h acstruct.h actables.h actbl.h actbl1.h \ + actypes.h acutils.h amlcode.h amlresrc.h platform/acenv.h \ + platform/acfreebsd.h platform/acgcc.h" comp_headers="aslcompiler.h asldefine.h aslglobal.h asltypes.h" - -# files to update paths in -src_update_files="acpi.h acpiosxf.h" +platform_headers="acfreebsd.h acgcc.h" # pre-clean echo pre-clean -rm -rf ${wrk} -rm -rf ${dst} +rm -rf ${wrk} ${dst} mkdir -p ${wrk} mkdir -p ${dst} @@ -53,32 +55,27 @@ for i in ${stripfiles}; do find ${wrk} -name ${i} -type f -delete done +# copy files echo copying full dirs for i in ${fulldirs}; do find ${wrk} -name ${i} -type d | xargs -J % mv % ${dst} done - -# move files to destination -echo copying flat dirs +echo copying remaining files find ${wrk} -type f | xargs -J % mv % ${dst} -mv ${dst}/changes.txt ${dst}/CHANGES.txt - -# update src/headers for appropriate paths -echo updating paths -for i in ${src_update_files}; do - i=${dst}/$i - sed -e 's/platform\///' $i > $i.new && mv $i.new $i -done # canonify include paths for H in ${src_headers}; do find ${dst} -name "*.[chy]" -type f | \ - xargs sed -i "" -e "s|[\"<]$H[\">]|\|g" + xargs sed -i "" -e "s|[\"<]$H[\">]|\|g" done for H in ${comp_headers}; do find ${dst}/compiler -name "*.[chly]" -type f | \ xargs sed -i "" -e "s|[\"<]$H[\">]|\|g" done +for H in ${platform_headers}; do + find ${dst}/include/platform -name "*.h" -type f | \ + xargs sed -i "" -e "s|[\"<]$H[\">]|\|g" +done # post-clean echo post-clean Copied: head/sys/contrib/dev/acpica/changes.txt (from r193525, projects/acpica_20090521/sys/contrib/dev/acpica/changes.txt) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/contrib/dev/acpica/changes.txt Fri Jun 5 18:43:13 2009 (r193529, copy of r193525, projects/acpica_20090521/sys/contrib/dev/acpica/changes.txt) @@ -0,0 +1,9235 @@ +---------------------------------------- +21 May 2009. Summary of changes for version 20090521: + +This release is available at www.acpica.org/downloads + +1) ACPI CA Core Subsystem: + +Disabled the preservation of the SCI enable bit in the PM1 control register. +The SCI enable bit (bit 0, SCI_EN) is defined by the ACPI specification to be +a "preserved" bit - "OSPM always preserves this bit position", section +4.7.3.2.1. However, some machines fail if this bit is in fact preserved +because the bit needs to be explicitly set by the OS as a workaround. No +machines fail if the bit is not preserved. Therefore, ACPICA no longer +attempts to preserve this bit. + +Fixed a problem in AcpiRsGetPciRoutingTableLength where an invalid or +incorrectly formed _PRT package could cause a fault. Added validation to +ensure that each package element is actually a sub-package. + +Implemented a new interface to install or override a single control method, +AcpiInstallMethod. This interface is useful when debugging in order to repair +an existing method or to install a missing method without having to override +the entire ACPI table. See the ACPICA Programmer Reference for use and +examples. Lin Ming, Bob Moore. + +Fixed several reference count issues with the DdbHandle object that is +created from a Load or LoadTable operator. Prevent premature deletion of the +object. Also, mark the object as invalid once the table has been unloaded. +This is needed because the handle itself may not be deleted after the table +unload, depending on whether it has been stored in a named object by the +caller. Lin Ming. + +Fixed a problem with Mutex Sync Levels. Fixed a problem where if multiple +mutexes of the same sync level are acquired but then not released in strict +opposite order, the internally maintained Current Sync Level becomes confused +and can cause subsequent execution errors. ACPICA BZ 471. + +Changed the allowable release order for ASL mutex objects. The ACPI 4.0 +specification has been changed to make the SyncLevel for mutex objects more +useful. When releasing a mutex, the SyncLevel of the mutex must now be the +same as the current sync level. This makes more sense than the previous rule +(SyncLevel less than or equal). This change updates the code to match the +specification. + +Fixed a problem with the local version of the AcpiOsPurgeCache function. The +(local) cache must be locked during all cache object deletions. Andrew +Baumann. + +Updated the Load operator to use operation region interfaces. This replaces +direct memory mapping with region access calls. Now, all region accesses go +through the installed region handler as they should. + +Simplified and optimized the NsGetNextNode function. Reduced parameter count +and reduced code for this frequently used function. + +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: 82.8K Code, 17.5K Data, 100.3K Total + Debug Version: 158.0K Code, 49.9K Data, 207.9K Total + Current Release: + Non-Debug Version: 83.4K Code, 17.5K Data, 100.9K Total + Debug Version: 158.9K Code, 50.0K Data, 208.9K Total + +2) iASL Compiler/Disassembler and Tools: + +Disassembler: Fixed some issues with DMAR, HEST, MADT tables. Some problems +with sub-table disassembly and handling invalid sub-tables. Attempt recovery +after an invalid sub-table ID. + +---------------------------------------- +22 April 2009. Summary of changes for version 20090422: + +This release is available at www.acpica.org/downloads + +1) ACPI CA Core Subsystem: + +Fixed a compatibility issue with the recently released I/O port protection +mechanism. For windows compatibility, 1) On a port protection violation, +simply ignore the request and do not return an exception (allow the control +method to continue execution.) 2) If only part of the request overlaps a +protected port, read/write the individual ports that are not protected. Linux +BZ 13036. Lin Ming + +Enhanced the execution of the ASL/AML BreakPoint operator so that it actually +breaks into the AML debugger if the debugger is present. This matches the +ACPI-defined behavior. + +Fixed several possible warnings related to the use of the configurable +ACPI_THREAD_ID. This type can now be configured as either an integer or a +pointer with no warnings. Also fixes several warnings in printf-like +statements for the 64-bit build when the type is configured as a pointer. +ACPICA BZ 766, 767. + +Fixed a number of possible warnings when compiling with gcc 4+ (depending on +warning options.) Examples include printf formats, aliasing, unused globals, +missing prototypes, missing switch default statements, use of non-ANSI +library functions, use of non-ANSI constructs. See generate/unix/Makefile for +a list of warning options used with gcc 3 and 4. ACPICA BZ 735. + +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: 82.6K Code, 17.6K Data, 100.2K Total + Debug Version: 157.7K Code, 49.9K Data, 207.6K Total + Current Release: + Non-Debug Version: 82.8K Code, 17.5K Data, 100.3K Total + Debug Version: 158.0K Code, 49.9K Data, 207.9K Total + +2) iASL Compiler/Disassembler and Tools: + +iASL: Fixed a generation warning from Bison 2.3 and fixed several warnings on +the 64-bit build. + +iASL: Fixed a problem where the Unix/Linux versions of the compiler could not +correctly digest Windows/DOS formatted files (with CR/LF). + +iASL: Added a new option for "quiet mode" (-va) that produces only the +compilation summary, not individual errors and warnings. Useful for large +batch compilations. + +AcpiExec: Implemented a new option (-z) to enable a forced semaphore/mutex +timeout that can be used to detect hang conditions during execution of AML +code (includes both internal semaphores and AML-defined mutexes and events.) + +Added new makefiles for the generation of acpica in a generic unix-like +environment. These makefiles are intended to generate the acpica tools and +utilities from the original acpica git source tree structure. + +Test Suites: Updated and cleaned up the documentation files. Updated the +copyrights to 2009, affecting all source files. Use the new version of iASL +with quiet mode. Increased the number of available semaphores in the Windows +OSL, allowing the aslts to execute fully on Windows. For the Unix OSL, added +an alternate implementation of the semaphore timeout to allow aslts to +execute fully on Cygwin. + +---------------------------------------- +20 March 2009. Summary of changes for version 20090320: + +1) ACPI CA Core Subsystem: + +Fixed a possible race condition between AcpiWalkNamespace and dynamic table +unloads. Added a reader/writer locking mechanism to allow multiple concurrent +namespace walks (readers), but block a dynamic table unload until it can gain +exclusive write access to the namespace. This fixes a problem where a table +unload could (possibly catastrophically) delete the portion of the namespace +that is currently being examined by a walk. Adds a new file, utlock.c, that +implements the reader/writer lock mechanism. ACPICA BZ 749. + +Fixed a regression introduced in version 20090220 where a change to the FADT +handling could cause the ACPICA subsystem to access non-existent I/O ports. + +Modified the handling of FADT register and table (FACS/DSDT) addresses. The +FADT can contain both 32-bit and 64-bit versions of these addresses. +Previously, the 64-bit versions were favored, meaning that if both 32 and 64 +versions were valid, but not equal, the 64-bit version was used. This was +found to cause some machines to fail. Now, in this case, the 32-bit version +is used instead. This now matches the Windows behavior. + +Implemented a new mechanism to protect certain I/O ports. Provides Microsoft +compatibility and protects the standard PC I/O ports from access via AML +code. Adds a new file, hwvalid.c + +Fixed a possible extraneous warning message from the FADT support. The +message warns of a 32/64 length mismatch between the legacy and GAS +definitions for a register. + +Removed the obsolete AcpiOsValidateAddress OSL interface. This interface is +made obsolete by the port protection mechanism above. It was previously used +to validate the entire address range of an operation region, which could be +incorrect if the range included illegal ports, but fields within the +operation region did not actually access those ports. Validation is now +performed on a per-field basis instead of the entire region. + +Modified the handling of the PM1 Status Register ignored bit (bit 11.) +Ignored bits must be "preserved" according to the ACPI spec. Usually, this +means a read/modify/write when writing to the register. However, for status +registers, writing a one means clear the event. Writing a zero means preserve +the event (do not clear.) This behavior is clarified in the ACPI 4.0 spec, +and the ACPICA code now simply always writes a zero to the ignored bit. + +Modified the handling of ignored bits for the PM1 A/B Control Registers. As +per the ACPI specification, for the control registers, preserve +(read/modify/write) all bits that are defined as either reserved or ignored. + +Updated the handling of write-only bits in the PM1 A/B Control Registers. +When reading the register, zero the write-only bits as per the ACPI spec. +ACPICA BZ 443. Lin Ming. + +Removed "Linux" from the list of supported _OSI strings. Linux no longer +wants to reply true to this request. The Windows strings are the only paths +through the AML that are tested and known to work properly. + + Previous Release: + Non-Debug Version: 82.0K Code, 17.5K Data, 99.5K Total + Debug Version: 156.9K Code, 49.8K Data, 206.7K Total + Current Release: + Non-Debug Version: 82.6K Code, 17.6K Data, 100.2K Total + Debug Version: 157.7K Code, 49.9K Data, 207.6K Total + +2) iASL Compiler/Disassembler and Tools: + +Acpiexec: Split the large aeexec.c file into two new files, aehandlers.c and +aetables.c + +---------------------------------------- +20 February 2009. Summary of changes for version 20090220: + +1) ACPI CA Core Subsystem: + +Optimized the ACPI register locking. Removed locking for reads from the ACPI +bit registers in PM1 Status, Enable, Control, and PM2 Control. The lock is +not required when reading the single-bit registers. The +AcpiGetRegisterUnlocked function is no longer needed and has been removed. +This will improve performance for reads on these registers. ACPICA BZ 760. + +Fixed the parameter validation for AcpiRead/Write. Now return +AE_BAD_PARAMETER if the input register pointer is null, and AE_BAD_ADDRESS if +the register has an address of zero. Previously, these cases simply returned +AE_OK. For optional registers such as PM1B status/enable/control, the caller +should check for a valid register address before calling. ACPICA BZ 748. + +Renamed the external ACPI bit register access functions. Renamed +AcpiGetRegister and AcpiSetRegister to clarify the purpose of these +functions. The new names are AcpiReadBitRegister and AcpiWriteBitRegister. +Also, restructured the code for these functions by simplifying the code path +and condensing duplicate code to reduce code size. + +Added new functions to transparently handle the possibly split PM1 A/B +registers. AcpiHwReadMultiple and AcpiHwWriteMultiple. These two functions +now handle the split registers for PM1 Status, Enable, and Control. ACPICA BZ +746. + +Added a function to handle the PM1 control registers, AcpiHwWritePm1Control. +This function writes both of the PM1 control registers (A/B). These registers +are different than the PM1 A/B status and enable registers in that different +values can be written to the A/B registers. Most notably, the SLP_TYP bits +can be different, as per the values returned from the _Sx predefined methods. + +Removed an extra register write within AcpiHwClearAcpiStatus. This function +was writing an optional PM1B status register twice. The existing call to the +low-level AcpiHwRegisterWrite automatically handles a possibly split PM1 A/B +register. ACPICA BZ 751. + +Split out the PM1 Status registers from the FADT. Added new globals for these +registers (A/B), similar to the way the PM1 Enable registers are handled. +Instead of overloading the FADT Event Register blocks. This makes the code +clearer and less prone to error. + +Fixed the warning message for when the platform contains too many ACPI tables +for the default size of the global root table data structure. The calculation +for the truncation value was incorrect. + +Removed the ACPI_GET_OBJECT_TYPE macro. Removed all instances of this +obsolete macro, since it is now a simple reference to ->common.type. There +were about 150 invocations of the macro across 41 files. ACPICA BZ 755. + +Removed the redundant ACPI_BITREG_SLEEP_TYPE_B. This type is the same as +TYPE_A. Removed this and all related instances. Renamed SLEEP_TYPE_A to +simply SLEEP_TYPE. ACPICA BZ 754. + +Conditionally compile the AcpiSetFirmwareWakingVector64 function. This +function is only needed on 64-bit host operating systems and is thus not +included for 32-bit hosts. + +Debug output: print the input and result for invocations of the _OSI reserved +control method via the ACPI_LV_INFO debug level. Also, reduced some of the +verbosity of this debug level. Len Brown. + +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: 82.3K Code, 17.5K Data, 99.8K Total + Debug Version: 157.3K Code, 49.8K Data, 207.1K Total + Current Release: + Non-Debug Version: 82.0K Code, 17.5K Data, 99.5K Total + Debug Version: 156.9K Code, 49.8K Data, 206.7K Total + +2) iASL Compiler/Disassembler and Tools: + +Disassembler: Decode the FADT PM_Profile field. Emit ascii names for the +various legal performance profiles. + +---------------------------------------- +23 January 2009. Summary of changes for version 20090123: + +1) ACPI CA Core Subsystem: + +Added the 2009 copyright to all module headers and signons. This affects +virtually every file in the ACPICA core subsystem, the iASL compiler, and +the tools/utilities. + +Implemented a change to allow the host to override any ACPI table, including +dynamically loaded tables. Previously, only the DSDT could be replaced by the +host. With this change, the AcpiOsTableOverride interface is called for each +table found in the RSDT/XSDT during ACPICA initialization, and also whenever +a table is dynamically loaded via the AML Load operator. + +Updated FADT flag definitions, especially the Boot Architecture flags. + +Debugger: For the Find command, automatically pad the input ACPI name with +underscores if the name is shorter than 4 characters. This enables a match +with the actual namespace entry which is itself padded with underscores. + +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: 82.3K Code, 17.4K Data, 99.7K Total + Debug Version: 157.1K Code, 49.7K Data, 206.8K Total + Current Release: + Non-Debug Version: 82.3K Code, 17.5K Data, 99.8K Total + Debug Version: 157.3K Code, 49.8K Data, 207.1K Total + +2) iASL Compiler/Disassembler and Tools: + +Fix build error under Bison-2.4. + +Dissasembler: Enhanced FADT support. Added decoding of the Boot Architecture +flags. Now decode all flags, regardless of the FADT version. Flag output +includes the FADT version which first defined each flag. + +The iASL -g option now dumps the RSDT to a file (in addition to the FADT and +DSDT). Windows only. + +---------------------------------------- +04 December 2008. Summary of changes for version 20081204: + +1) ACPI CA Core Subsystem: + +The ACPICA Programmer Reference has been completely updated and revamped for +this release. This includes updates to the external interfaces, OSL +interfaces, the overview sections, and the debugger reference. + +Several new ACPICA interfaces have been implemented and documented in the +programmer reference: +AcpiReset - Writes the reset value to the FADT-defined reset register. +AcpiDisableAllGpes - Disable all available GPEs. +AcpiEnableAllRuntimeGpes - Enable all available runtime GPEs. +AcpiGetGpeDevice - Get the GPE block device associated with a GPE. +AcpiGbl_CurrentGpeCount - Tracks the current number of available GPEs. +AcpiRead - Low-level read ACPI register (was HwLowLevelRead.) +AcpiWrite - Low-level write ACPI register (was HwLowLevelWrite.) + +Most of the public ACPI hardware-related interfaces have been moved to a new +file, components/hardware/hwxface.c + +Enhanced the FADT parsing and low-level ACPI register access: The ACPI +register lengths within the FADT are now used, and the low level ACPI +register access no longer hardcodes the ACPI register lengths. Given that +there may be some risk in actually trusting the FADT register lengths, a run- +time option was added to fall back to the default hardcoded lengths if the +FADT proves to contain incorrect values - UseDefaultRegisterWidths. This +option is set to true for now, and a warning is issued if a suspicious FADT +register length is overridden with the default value. + +Fixed a reference count issue in NsRepairObject. This problem was introduced +in version 20081031 as part of a fix to repair Buffer objects within +Packages. Lin Ming. + +Added semaphore support to the Linux/Unix application OS-services layer +(OSL). ACPICA BZ 448. Lin Ming. + +Added the ACPI_MUTEX_TYPE configuration option to select whether mutexes will +be implemented in the OSL, or will binary semaphores be used instead. + +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.7K Code, 17.3K Data, 99.0K Total + Debug Version: 156.4K Code, 49.4K Data, 205.8K Total + Current Release: + Non-Debug Version: 82.3K Code, 17.4K Data, 99.7K Total + Debug Version: 157.1K Code, 49.7K Data, 206.8K Total + +2) iASL Compiler/Disassembler and Tools: + +iASL: Completed the '-e' option to include additional ACPI tables in order to +aid with disassembly and External statement generation. ACPICA BZ 742. Lin +Ming. + +iASL: Removed the "named object in while loop" error. The compiler cannot +determine how many times a loop will execute. ACPICA BZ 730. + +Disassembler: Implemented support for FADT revision 2 (MS extension). ACPICA +BZ 743. + +Disassembler: Updates for several ACPI data tables (HEST, EINJ, and MCFG). + +---------------------------------------- +31 October 2008. Summary of changes for version 20081031: + +1) ACPI CA Core Subsystem: + +Restructured the ACPICA header files into public/private. acpi.h now includes +only the "public" acpica headers. All other acpica headers are "private" and +should not be included by acpica users. One new file, accommon.h is used to +include the commonly used private headers for acpica code generation. Future +plans include moving all private headers to a new subdirectory. + +Implemented an automatic Buffer->String return value conversion for +predefined ACPI methods. For these methods (such as _BIF), added automatic +conversion for return objects that are required to be a String, but a Buffer +was found instead. This can happen when reading string battery data from an +operation region, because it used to be difficult to convert the data from +buffer to string from within the ASL. Ensures that the host OS is provided +with a valid null-terminated string. Linux BZ 11822. + +Updated the FACS waking vector interfaces. Split AcpiSetFirmwareWakingVector +into two: one for the 32-bit vector, another for the 64-bit vector. This is +required because the host OS must setup the wake much differently for each +vector (real vs. protected mode, etc.) and the interface itself should not be +deciding which vector to use. Also, eliminated the GetFirmwareWakingVector +interface, as it served no purpose (only the firmware reads the vector, OS +only writes the vector.) ACPICA BZ 731. + +Implemented a mechanism to escape infinite AML While() loops. Added a loop +counter to force exit from AML While loops if the count becomes too large. +This can occur in poorly written AML when the hardware does not respond +within a while loop and the loop does not implement a timeout. The maximum +loop count is configurable. A new exception code is returned when a loop is +broken, AE_AML_INFINITE_LOOP. Alexey Starikovskiy, Bob Moore. + +Optimized the execution of AML While loops. Previously, a control state +object was allocated and freed for each execution of the loop. The +optimization is to simply reuse the control state for each iteration. This +speeds up the raw loop execution time by about 5%. + +Enhanced the implicit return mechanism. For Windows compatibility, return an +implicit integer of value zero for methods that contain no executable code. +Such methods are seen in the field as stubs (presumably), and can cause +drivers to fail if they expect a return value. Lin Ming. + +Allow multiple backslashes as root prefixes in namepaths. In a fully +qualified namepath, allow multiple backslash prefixes. This can happen (and +is seen in the field) because of the use of a double-backslash in strings +(since backslash is the escape character) causing confusion. ACPICA BZ 739 +Lin Ming. + +Emit a warning if two different FACS or DSDT tables are discovered in the +FADT. Checks if there are two valid but different addresses for the FACS and +DSDT within the FADT (mismatch between the 32-bit and 64-bit fields.) + +Consolidated the method argument count validation code. Merged the code that +validates control method argument counts into the predefined validation +module. Eliminates possible multiple warnings for incorrect argument counts. + +Implemented ACPICA example code. Includes code for ACPICA initialization, +handler installation, and calling a control method. Available at +source/tools/examples. + +Added a global pointer for FACS table to simplify internal FACS access. Use +the global pointer instead of using AcpiGetTableByIndex for each FACS access. +This simplifies the code for the Global Lock and the Firmware Waking +Vector(s). + +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.2K Code, 17.0K Data, 98.2K Total + Debug Version: 155.8K Code, 49.1K Data, 204.9K Total + Current Release: + Non-Debug Version: 81.7K Code, 17.3K Data, 99.0K Total + Debug Version: 156.4K Code, 49.4K Data, 205.8K Total + +2) iASL Compiler/Disassembler and Tools: + +iASL: Improved disassembly of external method calls. Added the -e option to +allow the inclusion of additional ACPI tables to help with the disassembly of +method invocations and the generation of external declarations during the +disassembly. Certain external method invocations cannot be disassembled +properly without the actual declaration of the method. Use the -e option to +include the table where the external method(s) are actually declared. Most +useful for disassembling SSDTs that make method calls back to the master +DSDT. Lin Ming. Example: To disassemble an SSDT with calls to DSDT: iasl -d +-e dsdt.aml ssdt1.aml + +iASL: Fix to allow references to aliases within ASL namepaths. Fixes a +problem where the use of an alias within a namepath would result in a not +found error or cause the compiler to fault. Also now allows forward +references from the Alias operator itself. ACPICA BZ 738. + +---------------------------------------- +26 September 2008. Summary of changes for version 20080926: + +1) ACPI CA Core Subsystem: + +Designed and implemented a mechanism to validate predefined ACPI methods and +objects. This code validates the predefined ACPI objects (objects whose names +start with underscore) that appear in the namespace, at the time they are +evaluated. The argument count and the type of the returned object are +validated against the ACPI specification. The purpose of this validation is +to detect problems with the BIOS-implemented predefined ACPI objects before +the results are returned to the ACPI-related drivers. Future enhancements may +include actual repair of incorrect return objects where possible. Two new +files are nspredef.c and acpredef.h. + +Fixed a fault in the AML parser if a memory allocation fails during the Op +completion routine AcpiPsCompleteThisOp. Lin Ming. ACPICA BZ 492. + +Fixed an issue with implicit return compatibility. This change improves the +implicit return mechanism to be more compatible with the MS interpreter. Lin +Ming, ACPICA BZ 349. + +Implemented support for zero-length buffer-to-string conversions. Allow zero +length strings during interpreter buffer-to-string conversions. For example, +during the ToDecimalString and ToHexString operators, as well as implicit +conversions. Fiodor Suietov, ACPICA BZ 585. + +Fixed two possible memory leaks in the error exit paths of +AcpiUtUpdateObjectReference and AcpiUtWalkPackageTree. These functions are +similar in that they use a stack of state objects in order to eliminate +recursion. The stack must be fully unwound and deallocated if an error +occurs. Lin Ming. ACPICA BZ 383. + +Removed the unused ACPI_BITREG_WAKE_ENABLE definition and entry in the global +ACPI register table. This bit does not exist and is unused. Lin Ming, Bob +Moore ACPICA BZ 442. + +Removed the obsolete version number in module headers. Removed the +"$Revision" number that appeared in each module header. This version number +was useful under SourceSafe and CVS, but has no meaning under git. It is not +only incorrect, it could also be misleading. + +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, 16.4K Data, 96.1K Total + Debug Version: 153.7K Code, 48.2K Data, 201.9K Total + Current Release: + Non-Debug Version: 81.2K Code, 17.0K Data, 98.2K Total + Debug Version: 155.8K Code, 49.1K Data, 204.9K Total + +---------------------------------------- +29 August 2008. Summary of changes for version 20080829: + +1) ACPI CA Core Subsystem: + +Completed a major cleanup of the internal ACPI_OPERAND_OBJECT of type +Reference. Changes include the elimination of cheating on the Object field +for the DdbHandle subtype, addition of a reference class field to +differentiate the various reference types (instead of an AML opcode), and the +cleanup of debug output for this object. Lin Ming, Bob Moore. BZ 723 + +Reduce an error to a warning for an incorrect method argument count. +Previously aborted with an error if too few arguments were passed to a +control method via the external ACPICA interface. Now issue a warning instead +and continue. Handles the case where the method inadvertently declares too +many arguments, but does not actually use the extra ones. Applies mainly to +the predefined methods. Lin Ming. Linux BZ 11032. + +Disallow the evaluation of named object types with no intrinsic value. Return +AE_TYPE for objects that have no value and therefore evaluation is undefined: +Device, Event, Mutex, Region, Thermal, and Scope. Previously, evaluation of +these types were allowed, but an exception would be generated at some point +during the evaluation. Now, the error is generated up front. + +Fixed a possible memory leak in the AcpiNsGetExternalPathname function +(nsnames.c). Fixes a leak in the error exit path. + +Removed the obsolete debug levels ACPI_DB_WARN and ACPI_DB_ERROR. These debug +levels were made obsolete by the ACPI_WARNING, ACPI_ERROR, and ACPI_EXCEPTION +interfaces. Also added ACPI_DB_EVENTS to correspond with the existing +ACPI_LV_EVENTS. + +Removed obsolete and/or unused exception codes from the acexcep.h header. +There is the possibility that certain device drivers may be affected if they +use any of these exceptions. + +The ACPICA documentation has been added to the public git source tree, under +acpica/documents. Included are the ACPICA programmer reference, the iASL +compiler reference, and the changes.txt release logfile. + +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, 16.4K Data, 96.1K Total + Debug Version: 153.9K Code, 48.4K Data, 202.3K Total + Current Release: + Non-Debug Version: 79.7K Code, 16.4K Data, 96.1K Total + Debug Version: 153.7K Code, 48.2K Data, 201.9K Total + +2) iASL Compiler/Disassembler and Tools: + +Allow multiple argument counts for the predefined _SCP method. ACPI 3.0 +defines _SCP with 3 arguments. Previous versions defined it with only 1 +argument. iASL now allows both definitions. + +iASL/disassembler: avoid infinite loop on bad ACPI tables. Check for zero- +length subtables when disassembling ACPI tables. Also fixed a couple of +errors where a full 16-bit table type field was not extracted from the input +properly. + +acpisrc: Improve comment counting mechanism for generating source code +statistics. Count first and last lines of multi-line comments as whitespace, +not comment lines. Handle Linux legal header in addition to standard acpica +header. + +---------------------------------------- + +29 July 2008. Summary of changes for version 20080729: + +This release is available at http://acpica.org/downloads +Direct git access via http://www.acpica.org/repos/acpica.git + +1) ACPI CA Core Subsystem: + +Fix a possible deadlock in the GPE dispatch. Remove call to +AcpiHwDisableAllGpes during wake in AcpiEvGpeDispatch. This call will attempt +to acquire the GPE lock but can deadlock since the GPE lock is already held +at dispatch time. This code was introduced in version 20060831 as a response +to Linux BZ 6881 and has since been removed from Linux. + +Add a function to dereference returned reference objects. Examines the return +object from a call to AcpiEvaluateObject. Any Index or RefOf references are +automatically dereferenced in an attempt to return something useful (these +reference types cannot be converted into an external ACPI_OBJECT.) Provides +MS compatibility. Lin Ming, Bob Moore. Linux BZ 11105 + +x2APIC support: changes for MADT and SRAT ACPI tables. There are 2 new +subtables for the MADT and one new subtable for the SRAT. Includes +disassembler and AcpiSrc support. Data from the Intel 64 Architecture x2APIC +Specification, June 2008. + +Additional error checking for pathname utilities. Add error check after all +calls to AcpiNsGetPathnameLength. Add status return from +AcpiNsBuildExternalPath and check after all calls. Add parameter validation +to AcpiUtInitializeBuffer. Reported by and initial patch by Ingo Molnar. + +Return status from the global init function AcpiUtGlobalInitialize. This is +used by both the kernel subsystem and the utilities such as iASL compiler. +The function could possibly fail when the caches are initialized. Yang Yi. + +Add a function to decode reference object types to strings. Created for +improved error messages. + +Improve object conversion error messages. Better error messages during object +conversion from internal to the external ACPI_OBJECT. Used for external calls +to AcpiEvaluateObject. + +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.6K Code, 16.2K Data, 95.8K Total + Debug Version: 153.5K Code, 48.2K Data, 201.7K Total + Current Release: + Non-Debug Version: 79.7K Code, 16.4K Data, 96.1K Total + Debug Version: 153.9K Code, 48.4K Data, 202.3K Total + +2) iASL Compiler/Disassembler and Tools: + +Debugger: fix a possible hang when evaluating non-methods. Fixes a problem +introduced in version 20080701. If the object being evaluated (via execute +command) is not a method, the debugger can hang while trying to obtain non- +existent parameters. + +iASL: relax error for using reserved "_T_x" identifiers. These names can +appear in a disassembled ASL file if they were emitted by the original +compiler. Instead of issuing an error or warning and forcing the user to +manually change these names, issue a remark instead. + +iASL: error if named object created in while loop. Emit an error if any named +object is created within a While loop. If allowed, this code will generate a +run-time error on the second iteration of the loop when an attempt is made to +create the same named object twice. ACPICA bugzilla 730. + +iASL: Support absolute pathnames for include files. Add support for absolute +pathnames within the Include operator. previously, only relative pathnames +were supported. + +iASL: Enforce minimum 1 interrupt in interrupt macro and Resource Descriptor. +The ACPI spec requires one interrupt minimum. BZ 423 + +iASL: Handle a missing ResourceSource arg, with a present SourceIndex. +Handles the case for the Interrupt Resource Descriptor where +the ResourceSource argument is omitted but ResourceSourceIndex +is present. Now leave room for the Index. BZ 426 + +iASL: Prevent error message if CondRefOf target does not exist. Fixes cases +where an error message is emitted if the target does not exist. BZ 516 + +iASL: Fix broken -g option (get Windows ACPI tables). Fixes the -g option +(get ACPI tables on Windows). This was apparently broken in version 20070919. + +AcpiXtract: Handle EOF while extracting data. Correctly handle the case where +the EOF happens immediately after the last table in the input file. Print +completion message. Previously, no message was displayed in this case. + +---------------------------------------- +01 July 2008. Summary of changes for version 20080701: + +This release is available at http://acpica.org/downloads +Direct git access via http://www.acpica.org/repos/acpica.git + +0) Git source tree / acpica.org + +Fixed a problem where a git-clone from http would not transfer the entire +source tree. + +1) ACPI CA Core Subsystem: + +Implemented a "careful" GPE disable in AcpiEvDisableGpe, only modify one +enable bit. Now performs a read-change-write of the enable register instead +of simply writing out the cached enable mask. This will prevent inadvertent +enabling of GPEs if a rogue GPE is received during initialization (before GPE +handlers are installed.) + +Implemented a copy for dynamically loaded tables. Previously, dynamically +loaded tables were simply mapped - but on some machines this memory is +corrupted after suspend. Now copy the table to a local buffer. For the +OpRegion case, added checksum verify. Use the table length from the table +header, not the region length. For the Buffer case, use the table length +also. Dennis Noordsij, Bob Moore. BZ 10734 + +Fixed a problem where the same ACPI table could not be dynamically loaded and +unloaded more than once. Without this change, a table cannot be loaded again +once it has been loaded/unloaded one time. The current mechanism does not +unregister a table upon an unload. During a load, if the same table is found, +this no longer returns an exception. BZ 722 + +Fixed a problem where the wrong descriptor length was calculated for the +EndTag descriptor in 64-bit mode. The "minimal" descriptors such as EndTag +are calculated as 12 bytes long, but the actual length in the internal +descriptor is 16 because of the round-up to 8 on the 64-bit build. Reported +by Linn Crosetto. BZ 728 + +Fixed a possible memory leak in the Unload operator. The DdbHandle returned +by Load() did not have its reference count decremented during unload, leading +to a memory leak. Lin Ming. BZ 727 + +Fixed a possible memory leak when deleting thermal/processor objects. Any +associated notify handlers (and objects) were not being deleted. Fiodor +Suietov. BZ 506 + +Fixed the ordering of the ASCII names in the global mutex table to match the +actual mutex IDs. Used by AcpiUtGetMutexName, a function used for debug only. +Vegard Nossum. BZ 726 + +Enhanced the AcpiGetObjectInfo interface to return the number of required +arguments if the object is a control method. Added this call to the debugger +so the proper number of default arguments are passed to a method. This +prevents a warning when executing methods from AcpiExec. + +Added a check for an invalid handle in AcpiGetObjectInfo. Return +AE_BAD_PARAMETER if input handle is invalid. BZ 474 + +Fixed an extraneous warning from exconfig.c on the 64-bit build. + +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.3K Code, 16.2K Data, 95.5K Total + Debug Version: 153.0K Code, 48.2K Data, 201.2K Total + Current Release: + Non-Debug Version: 79.6K Code, 16.2K Data, 95.8K Total + Debug Version: 153.5K Code, 48.2K Data, 201.7K Total + +2) iASL Compiler/Disassembler and Tools: + +iASL: Added two missing ACPI reserved names. Added _MTP and _ASZ, both +resource descriptor names. + +iASL: Detect invalid ASCII characters in input (windows version). Removed the +"-CF" flag from the flex compile, enables correct detection of non-ASCII +characters in the input. BZ 441 + +iASL: Eliminate warning when result of LoadTable is not used. Eliminate the +"result of operation not used" warning when the DDB handle returned from +LoadTable is not used. The warning is not needed. BZ 590 + +AcpiExec: Add support for dynamic table load/unload. Now calls _CFG method to +pass address of table to the AML. Added option to disable OpRegion simulation +to allow creation of an OpRegion with a real address that was passed to _CFG. +All of this allows testing of the Load and Unload operators from AcpiExec. + +Debugger: update tables command for unloaded tables. Handle unloaded tables +and use the standard table header output routine. + +---------------------------------------- +09 June 2008. Summary of changes for version 20080609: + +1) ACPI CA Core Subsystem: + +Implemented a workaround for reversed _PRT entries. A significant number of +BIOSs erroneously reverse the _PRT SourceName and the SourceIndex. This +change dynamically detects and repairs this problem. Provides compatibility +with MS ACPI. BZ 6859 + +Simplified the internal ACPI hardware interfaces to eliminate the locking +flag parameter from Register Read/Write. Added a new external interface, +AcpiGetRegisterUnlocked. + +Fixed a problem where the invocation of a GPE control method could hang. This +was a regression introduced in 20080514. The new method argument count +validation mechanism can enter an infinite loop when a GPE method is +dispatched. Problem fixed by removing the obsolete code that passed GPE block +information to the notify handler via the control method parameter pointer. + +Fixed a problem where the _SST execution status was incorrectly returned to +the caller of AcpiEnterSleepStatePrep. This was a regression introduced in +20080514. _SST is optional and a NOT_FOUND exception should never be +returned. BZ 716 + +Fixed a problem where a deleted object could be accessed from within the AML +parser. This was a regression introduced in version 20080123 as a fix for the +Unload operator. Lin Ming. BZ 10669 + +Cleaned up the debug operand dump mechanism. Eliminated unnecessary operands +and eliminated the use of a negative index in a loop. Operands are now +displayed in the correct order, not backwards. This also fixes a regression +introduced in 20080514 on 64-bit systems where the elimination of +ACPI_NATIVE_UINT caused the negative index to go large and positive. BZ 715 + +Fixed a possible memory leak in EvPciConfigRegionSetup where the error exit +path did not delete a locally allocated structure. + +Updated definitions for the DMAR and SRAT tables to synchronize with the +current specifications. Includes disassembler support. + +Fixed a problem in the mutex debug code (in utmutex.c) where an incorrect +loop termination value was used. Loop terminated on iteration early, missing +one mutex. Linn Crosetto + +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.5K Code, 16.2K Data, 95.7K Total + Debug Version: 153.3K Code, 48.3K Data, 201.6K Total + Current Release: + Non-Debug Version: 79.3K Code, 16.2K Data, 95.5K Total + Debug Version: 153.0K Code, 48.2K Data, 201.2K Total + +2) iASL Compiler/Disassembler and Tools: + +Disassembler: Implemented support for EisaId() within _CID objects. Now +disassemble integer _CID objects back to EisaId invocations, including +multiple integers within _CID packages. Includes single-step support for +debugger also. + +Disassembler: Added support for DMAR and SRAT table definition changes. + +---------------------------------------- +14 May 2008. Summary of changes for version 20080514: + +1) ACPI CA Core Subsystem: + +Fixed a problem where GPEs were enabled too early during the ACPICA +initialization. This could lead to "handler not installed" errors on some +machines. Moved GPE enable until after _REG/_STA/_INI methods are run. This +ensures that all operation regions and devices throughout the namespace have +been initialized before GPEs are enabled. Alexey Starikovskiy, BZ 9916. + +Implemented a change to the enter sleep code. Moved execution of the _GTS +method to just before setting sleep enable bit. The execution was moved from +AcpiEnterSleepStatePrep to AcpiEnterSleepState. _GTS is now executed +immediately before the SLP_EN bit is set, as per the ACPI specification. +Luming Yu, BZ 1653. + +Implemented a fix to disable unknown GPEs (2nd version). Now always disable +the GPE, even if ACPICA thinks that that it is already disabled. It is +possible that the AML or some other code has enabled the GPE unbeknownst to +the ACPICA code. + +Fixed a problem with the Field operator where zero-length fields would return +an AE_AML_NO_OPERAND exception during table load. Fix enables zero-length ASL +field declarations in Field(), BankField(), and IndexField(). BZ 10606. + +Implemented a fix for the Load operator, now load the table at the namespace *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***