svn commit: r209746 - in head: sys/contrib/dev/acpica
sys/contrib/dev/acpica/common sys/contrib/dev/acpica/compiler
sys/contrib/dev/acpica/debugger
sys/contrib/dev/acpica/disassembler sys/contrib/d...
Jung-uk Kim
jkim at FreeBSD.org
Tue Jul 6 20:57:29 UTC 2010
Author: jkim
Date: Tue Jul 6 20:57:28 2010
New Revision: 209746
URL: http://svn.freebsd.org/changeset/base/209746
Log:
Merge ACPICA 20100702.
Added:
head/sys/contrib/dev/acpica/compiler/dtcompile.c
- copied, changed from r209743, vendor-sys/acpica/dist/compiler/dtcompile.c
head/sys/contrib/dev/acpica/compiler/dtcompiler.h
- copied, changed from r209743, vendor-sys/acpica/dist/compiler/dtcompiler.h
head/sys/contrib/dev/acpica/compiler/dtfield.c
- copied, changed from r209743, vendor-sys/acpica/dist/compiler/dtfield.c
head/sys/contrib/dev/acpica/compiler/dtio.c
- copied, changed from r209743, vendor-sys/acpica/dist/compiler/dtio.c
head/sys/contrib/dev/acpica/compiler/dtsubtable.c
- copied, changed from r209743, vendor-sys/acpica/dist/compiler/dtsubtable.c
head/sys/contrib/dev/acpica/compiler/dttable.c
- copied, changed from r209743, vendor-sys/acpica/dist/compiler/dttable.c
head/sys/contrib/dev/acpica/compiler/dttemplate.c
- copied, changed from r209743, vendor-sys/acpica/dist/compiler/dttemplate.c
head/sys/contrib/dev/acpica/compiler/dttemplate.h
- copied unchanged from r209743, vendor-sys/acpica/dist/compiler/dttemplate.h
head/sys/contrib/dev/acpica/compiler/dtutils.c
- copied, changed from r209743, vendor-sys/acpica/dist/compiler/dtutils.c
Modified:
head/sys/contrib/dev/acpica/acpica_prep.sh
head/sys/contrib/dev/acpica/changes.txt
head/sys/contrib/dev/acpica/common/adisasm.c
head/sys/contrib/dev/acpica/common/adwalk.c
head/sys/contrib/dev/acpica/common/dmextern.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/compiler/aslanalyze.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/aslglobal.h
head/sys/contrib/dev/acpica/compiler/asllookup.c
head/sys/contrib/dev/acpica/compiler/aslmain.c
head/sys/contrib/dev/acpica/compiler/aslopt.c
head/sys/contrib/dev/acpica/compiler/aslpredef.c
head/sys/contrib/dev/acpica/compiler/aslstartup.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/debugger/dbcmds.c
head/sys/contrib/dev/acpica/debugger/dbdisply.c
head/sys/contrib/dev/acpica/debugger/dbexec.c
head/sys/contrib/dev/acpica/debugger/dbfileio.c
head/sys/contrib/dev/acpica/debugger/dbhistry.c
head/sys/contrib/dev/acpica/debugger/dbinput.c
head/sys/contrib/dev/acpica/debugger/dbutils.c
head/sys/contrib/dev/acpica/disassembler/dmobject.c
head/sys/contrib/dev/acpica/disassembler/dmopcode.c
head/sys/contrib/dev/acpica/disassembler/dmresrc.c
head/sys/contrib/dev/acpica/dispatcher/dsinit.c
head/sys/contrib/dev/acpica/dispatcher/dsmethod.c
head/sys/contrib/dev/acpica/dispatcher/dsmthdat.c
head/sys/contrib/dev/acpica/dispatcher/dsobject.c
head/sys/contrib/dev/acpica/dispatcher/dsopcode.c
head/sys/contrib/dev/acpica/dispatcher/dsutils.c
head/sys/contrib/dev/acpica/events/evgpe.c
head/sys/contrib/dev/acpica/events/evgpeblk.c
head/sys/contrib/dev/acpica/events/evgpeinit.c
head/sys/contrib/dev/acpica/events/evgpeutil.c
head/sys/contrib/dev/acpica/events/evrgnini.c
head/sys/contrib/dev/acpica/events/evxface.c
head/sys/contrib/dev/acpica/events/evxfevnt.c
head/sys/contrib/dev/acpica/executer/exdump.c
head/sys/contrib/dev/acpica/executer/exfldio.c
head/sys/contrib/dev/acpica/executer/exprep.c
head/sys/contrib/dev/acpica/executer/exregion.c
head/sys/contrib/dev/acpica/executer/exsystem.c
head/sys/contrib/dev/acpica/hardware/hwgpe.c
head/sys/contrib/dev/acpica/hardware/hwsleep.c
head/sys/contrib/dev/acpica/hardware/hwvalid.c
head/sys/contrib/dev/acpica/include/acconfig.h
head/sys/contrib/dev/acpica/include/acdisasm.h
head/sys/contrib/dev/acpica/include/acevents.h
head/sys/contrib/dev/acpica/include/acexcep.h
head/sys/contrib/dev/acpica/include/acglobal.h
head/sys/contrib/dev/acpica/include/achware.h
head/sys/contrib/dev/acpica/include/aclocal.h
head/sys/contrib/dev/acpica/include/acnamesp.h
head/sys/contrib/dev/acpica/include/acobject.h
head/sys/contrib/dev/acpica/include/acoutput.h
head/sys/contrib/dev/acpica/include/acpixf.h
head/sys/contrib/dev/acpica/include/acpredef.h
head/sys/contrib/dev/acpica/include/acstruct.h
head/sys/contrib/dev/acpica/include/actbl.h
head/sys/contrib/dev/acpica/include/actbl2.h
head/sys/contrib/dev/acpica/include/actypes.h
head/sys/contrib/dev/acpica/include/acutils.h
head/sys/contrib/dev/acpica/namespace/nsaccess.c
head/sys/contrib/dev/acpica/namespace/nsalloc.c
head/sys/contrib/dev/acpica/namespace/nsdump.c
head/sys/contrib/dev/acpica/namespace/nsinit.c
head/sys/contrib/dev/acpica/namespace/nsnames.c
head/sys/contrib/dev/acpica/namespace/nsparse.c
head/sys/contrib/dev/acpica/namespace/nsrepair.c
head/sys/contrib/dev/acpica/namespace/nsrepair2.c
head/sys/contrib/dev/acpica/namespace/nssearch.c
head/sys/contrib/dev/acpica/namespace/nsutils.c
head/sys/contrib/dev/acpica/namespace/nswalk.c
head/sys/contrib/dev/acpica/namespace/nsxfobj.c
head/sys/contrib/dev/acpica/osunixxf.c
head/sys/contrib/dev/acpica/utilities/utglobal.c
head/sys/contrib/dev/acpica/utilities/utmisc.c
head/sys/contrib/dev/acpica/utilities/uttrack.c
head/sys/dev/acpica/acpi.c
head/sys/dev/acpica/acpi_button.c
head/sys/dev/acpica/acpi_ec.c
head/sys/dev/acpica/acpi_lid.c
head/usr.sbin/acpi/acpidump/acpi_user.c
head/usr.sbin/acpi/iasl/Makefile
Directory Properties:
head/sys/contrib/dev/acpica/ (props changed)
Modified: head/sys/contrib/dev/acpica/acpica_prep.sh
==============================================================================
--- head/sys/contrib/dev/acpica/acpica_prep.sh Tue Jul 6 19:43:40 2010 (r209745)
+++ head/sys/contrib/dev/acpica/acpica_prep.sh Tue Jul 6 20:57:28 2010 (r209746)
@@ -33,7 +33,8 @@ src_headers="acapps.h accommon.h acconfi
acresrc.h acrestyp.h acstruct.h actables.h actbl.h actbl1.h \
actbl2.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"
+comp_headers="aslcompiler.h asldefine.h aslglobal.h asltypes.h \
+ dtcompiler.h dttemplate.h"
platform_headers="acfreebsd.h acgcc.h"
# pre-clean
@@ -49,7 +50,7 @@ tar -x -z -f ${src} -C ${wrk}
# strip files
echo strip
for i in ${stripdirs}; do
- find ${wrk} -name ${i} -type d | xargs rm -r
+ find ${wrk} -name ${i} -type d -print | xargs rm -r
done
for i in ${stripfiles}; do
find ${wrk} -name ${i} -type f -delete
@@ -58,22 +59,22 @@ done
# copy files
echo copying full dirs
for i in ${fulldirs}; do
- find ${wrk} -name ${i} -type d | xargs -J % mv % ${dst}
+ find ${wrk} -name ${i} -type d -print | xargs -J % mv % ${dst}
done
echo copying remaining files
-find ${wrk} -type f | xargs -J % mv % ${dst}
+find ${wrk} -type f -print | xargs -J % mv % ${dst}
# canonify include paths
for H in ${src_headers}; do
- find ${dst} -name "*.[chy]" -type f | \
+ find ${dst} -name "*.[chy]" -type f -print | \
xargs sed -i "" -e "s|[\"<]$H[\">]|\<contrib/dev/acpica/include/$H\>|g"
done
for H in ${comp_headers}; do
- find ${dst}/compiler -name "*.[chly]" -type f | \
+ find ${dst}/common ${dst}/compiler -name "*.[chly]" -type f | \
xargs sed -i "" -e "s|[\"<]$H[\">]|\<contrib/dev/acpica/compiler/$H\>|g"
done
for H in ${platform_headers}; do
- find ${dst}/include/platform -name "*.h" -type f | \
+ find ${dst}/include/platform -name "*.h" -type f -print | \
xargs sed -i "" -e "s|[\"<]$H[\">]|\<contrib/dev/acpica/include/platform/$H\>|g"
done
Modified: head/sys/contrib/dev/acpica/changes.txt
==============================================================================
--- head/sys/contrib/dev/acpica/changes.txt Tue Jul 6 19:43:40 2010 (r209745)
+++ head/sys/contrib/dev/acpica/changes.txt Tue Jul 6 20:57:28 2010 (r209746)
@@ -1,4 +1,167 @@
----------------------------------------
+02 July 2010. Summary of changes for version 20100702:
+
+This release is available at www.acpica.org/downloads
+
+1) ACPI CA Core Subsystem:
+
+Implemented several updates to the recently added GPE reference count
+support. The model for "wake" GPEs is changing to give the host OS complete
+control of these GPEs. Eventually, the ACPICA core will not execute any _PRW
+methods, since the host already must execute them. Also, additional changes
+were made to help ensure that the reference counts are kept in proper
+synchronization with reality. Rafael J. Wysocki.
+
+1) Ensure that GPEs are not enabled twice during initialization.
+2) Ensure that GPE enable masks stay in sync with the reference count.
+3) Do not inadvertently enable GPEs when writing GPE registers.
+4) Remove the internal wake reference counter and add new AcpiGpeWakeup
+interface. This interface will set or clear individual GPEs for wakeup.
+5) Remove GpeType argument from AcpiEnable and AcpiDisable. These interfaces
+are now used for "runtime" GPEs only.
+
+Changed the behavior of the GPE install/remove handler interfaces. The GPE is
+no longer disabled during this process, as it was found to cause problems on
+some machines. Rafael J. Wysocki.
+
+Reverted a change introduced in version 20100528 to enable Embedded
+Controller multi-byte transfers. This change was found to cause problems with
+Index Fields and possibly Bank Fields. It will be reintroduced when these
+problems have been resolved.
+
+Fixed a problem with references to Alias objects within Package Objects. A
+reference to an Alias within the definition of a Package was not always
+resolved properly. Aliases to objects like Processors, Thermal zones, etc.
+were resolved to the actual object instead of a reference to the object as it
+should be. Package objects are only allowed to contain integer, string,
+buffer, package, and reference objects. Redhat bugzilla 608648.
+
+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: 88.3K Code, 18.8K Data, 107.1K Total
+ Debug Version: 164.1K Code, 51.5K Data, 215.6K Total
+ Current Release:
+ Non-Debug Version: 88.3K Code, 18.8K Data, 107.1K Total
+ Debug Version: 164.0K Code, 51.5K Data, 215.5K Total
+
+2) iASL Compiler/Disassembler and Tools:
+
+iASL: Implemented a new compiler subsystem to allow definition and
+compilation of the non-AML ACPI tables such as FADT, MADT, SRAT, etc. These
+are called "ACPI Data Tables", and the new compiler is the "Data Table
+Compiler". This compiler is intended to simplify the existing error-prone
+process of creating these tables for the BIOS, as well as allowing the
+disassembly, modification, recompilation, and override of existing ACPI data
+tables. See the iASL User Guide for detailed information.
+
+iASL: Implemented a new Template Generator option in support of the new Data
+Table Compiler. This option will create examples of all known ACPI tables
+that can be used as the basis for table development. See the iASL
+documentation and the -T option.
+
+Disassembler and headers: Added support for the WDDT ACPI table (Watchdog
+Descriptor Table).
+
+Updated the Linux makefiles for iASL and AcpiExec to place the generated
+object files in the local directory so that there can be no collisions
+between the shared files between them that are generated with different
+options.
+
+Added support for Mac OS X in the Unix OSL used for iASL and AcpiExec. Use
+the #define __APPLE__ to enable this support.
+
+----------------------------------------
+28 May 2010. Summary of changes for version 20100528:
+
+This release is available at www.acpica.org/downloads
+
+Note: The ACPI 4.0a specification was released on April 5, 2010 and is
+available at www.acpi.info. This is primarily an errata release.
+
+1) ACPI CA Core Subsystem:
+
+Undefined ACPI tables: We are looking for the definitions for the following
+ACPI tables that have been seen in the field: ATKG, IEIT, GSCI.
+
+Implemented support to enable multi-byte transfers for Embedded Controller
+(EC) operation regions. Previously, the maximum data size passed to the EC
+operation region handler was a single byte. There are often EC Fields larger
+than one byte that need to be transferred, and it is useful for the EC driver
+to lock these as a single transaction. This change enables single transfers
+larger than 8 bits. This effectively changes the access to the EC space from
+ByteAcc to AnyAcc, and will probably require changes to the host OS Embedded
+Controller driver to enable 16/32/64/256-bit transfers in addition to 8-bit
+transfers. Alexey Starikovskiy, Lin Ming
+
+Implemented a performance enhancement for namespace search and access. This
+change enhances the performance of namespace searches and walks by adding a
+backpointer to the parent in each namespace node. On large namespaces, this
+change can improve overall ACPI performance by up to 9X. Adding a pointer to
+each namespace node increases the overall size of the internal namespace by
+about 5%, since each namespace entry usually consists of both a namespace
+node and an ACPI operand object. However, this is the first growth of the
+namespace in ten years. ACPICA bugzilla 817. Alexey Starikovskiy.
+
+Implemented a performance optimization that reduces the number of namespace
+walks. On control method exit, only walk the namespace if the method is known
+to have created namespace objects outside of its local scope. Previously, the
+entire namespace was traversed on each control method exit. This change can
+improve overall ACPI performance by up to 3X. Alexey Starikovskiy, Bob Moore.
+
+Added support to truncate I/O addresses to 16 bits for Windows compatibility.
+Some ASL code has been seen in the field that inadvertently has bits set
+above bit 15. This feature is optional and is enabled if the BIOS requests
+any Windows OSI strings. It can also be enabled by the host OS. Matthew
+Garrett, Bob Moore.
+
+Added support to limit the maximum time for the ASL Sleep() operator. To
+prevent accidental deep sleeps, limit the maximum time that Sleep() will
+actually sleep. Configurable, the default maximum is two seconds. ACPICA
+bugzilla 854.
+
+Added run-time validation support for the _WDG and_WED Microsoft predefined
+methods. These objects are defined by "Windows Instrumentation", and are not
+part of the ACPI spec. ACPICA BZ 860.
+
+Expanded all statistic counters used during namespace and device
+initialization from 16 to 32 bits in order to support very large namespaces.
+
+Replaced all instances of %d in printf format specifiers with %u since nearly
+all integers in ACPICA are unsigned.
+
+Fixed the exception namestring for AE_WAKE_ONLY_GPE. Was incorrectly returned
+as AE_NO_HANDLER.
+
+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: 88.4K Code, 18.8K Data, 107.2K Total
+ Debug Version: 164.2K Code, 51.5K Data, 215.7K Total
+ Current Release:
+ Non-Debug Version: 88.3K Code, 18.8K Data, 107.1K Total
+ Debug Version: 164.1K Code, 51.5K Data, 215.6K Total
+
+2) iASL Compiler/Disassembler and Tools:
+
+iASL: Added compiler support for the _WDG and_WED Microsoft predefined
+methods. These objects are defined by "Windows Instrumentation", and are not
+part of the ACPI spec. ACPICA BZ 860.
+
+AcpiExec: added option to disable the memory tracking mechanism. The -dt
+option will disable the tracking mechanism, which improves performance
+considerably.
+
+AcpiExec: Restructured the command line options into -d (disable) and -e
+(enable) options.
+
+----------------------------------------
28 April 2010. Summary of changes for version 20100428:
1) ACPI CA Core Subsystem:
Modified: head/sys/contrib/dev/acpica/common/adisasm.c
==============================================================================
--- head/sys/contrib/dev/acpica/common/adisasm.c Tue Jul 6 19:43:40 2010 (r209745)
+++ head/sys/contrib/dev/acpica/common/adisasm.c Tue Jul 6 20:57:28 2010 (r209746)
@@ -153,10 +153,6 @@ AdCreateTableHeader (
char *Filename,
ACPI_TABLE_HEADER *Table);
-void
-AdDisassemblerHeader (
- char *Filename);
-
ACPI_STATUS
AdDeferredParse (
ACPI_PARSE_OBJECT *Op,
@@ -502,7 +498,7 @@ AdAmlDisassemble (
if (AcpiDmGetExternalMethodCount ())
{
fprintf (stderr,
- "\nFound %d external control methods, reparsing with new information\n",
+ "\nFound %u external control methods, reparsing with new information\n",
AcpiDmGetExternalMethodCount ());
/*
@@ -515,10 +511,11 @@ AdAmlDisassemble (
AcpiGbl_RootNodeStruct.Name.Integer = ACPI_ROOT_NAME;
AcpiGbl_RootNodeStruct.DescriptorType = ACPI_DESC_TYPE_NAMED;
AcpiGbl_RootNodeStruct.Type = ACPI_TYPE_DEVICE;
+ AcpiGbl_RootNodeStruct.Parent = NULL;
AcpiGbl_RootNodeStruct.Child = NULL;
AcpiGbl_RootNodeStruct.Peer = NULL;
AcpiGbl_RootNodeStruct.Object = NULL;
- AcpiGbl_RootNodeStruct.Flags = ANOBJ_END_OF_PEER_LIST;
+ AcpiGbl_RootNodeStruct.Flags = 0;
Status = AcpiNsRootInitialize ();
AcpiDmAddExternalsToNamespace ();
@@ -643,7 +640,7 @@ AdCreateTableHeader (
*/
AdDisassemblerHeader (Filename);
- AcpiOsPrintf (" *\n * Original Table Header:\n");
+ AcpiOsPrintf (" * Original Table Header:\n");
AcpiOsPrintf (" * Signature \"%4.4s\"\n", Table->Signature);
AcpiOsPrintf (" * Length 0x%8.8X (%u)\n", Table->Length, Table->Length);
@@ -688,7 +685,7 @@ AdCreateTableHeader (
AcpiOsPrintf (" * OEM Revision 0x%8.8X (%u)\n", Table->OemRevision, Table->OemRevision);
AcpiOsPrintf (" * Compiler ID \"%.4s\"\n", Table->AslCompilerId);
AcpiOsPrintf (" * Compiler Version 0x%8.8X (%u)\n", Table->AslCompilerRevision, Table->AslCompilerRevision);
- AcpiOsPrintf (" */\n");
+ AcpiOsPrintf (" */\n\n");
/* Create AML output filename based on input filename */
@@ -706,7 +703,7 @@ AdCreateTableHeader (
/* Open the ASL definition block */
AcpiOsPrintf (
- "DefinitionBlock (\"%s\", \"%4.4s\", %hd, \"%.6s\", \"%.8s\", 0x%8.8X)\n",
+ "DefinitionBlock (\"%s\", \"%4.4s\", %hu, \"%.6s\", \"%.8s\", 0x%8.8X)\n",
NewFilename, Table->Signature, Table->Revision,
Table->OemId, Table->OemTableId, Table->OemRevision);
@@ -1018,7 +1015,7 @@ AdGetLocalTables (
* is architecture-dependent.
*/
NumTables = (NewTable->Length - sizeof (ACPI_TABLE_HEADER)) / PointerSize;
- AcpiOsPrintf ("There are %d tables defined in the %4.4s\n\n",
+ AcpiOsPrintf ("There are %u tables defined in the %4.4s\n\n",
NumTables, NewTable->Signature);
/* Get the FADT */
Modified: head/sys/contrib/dev/acpica/common/adwalk.c
==============================================================================
--- head/sys/contrib/dev/acpica/common/adwalk.c Tue Jul 6 19:43:40 2010 (r209745)
+++ head/sys/contrib/dev/acpica/common/adwalk.c Tue Jul 6 20:57:28 2010 (r209746)
@@ -537,7 +537,7 @@ AcpiDmFindOrphanDescending (
}
ArgCount = AcpiDmInspectPossibleArgs (3, 1, NextOp);
- AcpiOsPrintf ("/* A-CHILDREN: %d Actual %d */\n", ArgCount, AcpiDmCountChildren (Op));
+ AcpiOsPrintf ("/* A-CHILDREN: %u Actual %u */\n", ArgCount, AcpiDmCountChildren (Op));
if (ArgCount < 1)
{
Modified: head/sys/contrib/dev/acpica/common/dmextern.c
==============================================================================
--- head/sys/contrib/dev/acpica/common/dmextern.c Tue Jul 6 19:43:40 2010 (r209745)
+++ head/sys/contrib/dev/acpica/common/dmextern.c Tue Jul 6 20:57:28 2010 (r209746)
@@ -252,7 +252,7 @@ AcpiDmNormalizeParentPrefix (
Node = Op->Common.Node;
while (Node && (*Path == (UINT8) AML_PARENT_PREFIX))
{
- Node = AcpiNsGetParentNode (Node);
+ Node = Node->Parent;
Path++;
}
@@ -629,7 +629,7 @@ AcpiDmEmitExternals (
if (AcpiGbl_ExternalList->Type == ACPI_TYPE_METHOD)
{
- AcpiOsPrintf (") // %d Arguments\n",
+ AcpiOsPrintf (") // %u Arguments\n",
AcpiGbl_ExternalList->Value);
}
else
Modified: head/sys/contrib/dev/acpica/common/dmrestag.c
==============================================================================
--- head/sys/contrib/dev/acpica/common/dmrestag.c Tue Jul 6 19:43:40 2010 (r209745)
+++ head/sys/contrib/dev/acpica/common/dmrestag.c Tue Jul 6 20:57:28 2010 (r209746)
@@ -549,13 +549,6 @@ AcpiDmGetResourceNode (
return (Node);
}
- /* List is circular, this flag marks the end */
-
- if (Node->Flags & ANOBJ_END_OF_PEER_LIST)
- {
- return (NULL);
- }
-
Node = Node->Peer;
}
Modified: head/sys/contrib/dev/acpica/common/dmtable.c
==============================================================================
--- head/sys/contrib/dev/acpica/common/dmtable.c Tue Jul 6 19:43:40 2010 (r209745)
+++ head/sys/contrib/dev/acpica/common/dmtable.c Tue Jul 6 20:57:28 2010 (r209746)
@@ -117,6 +117,8 @@
#include <contrib/dev/acpica/include/accommon.h>
#include <contrib/dev/acpica/include/acdisasm.h>
#include <contrib/dev/acpica/include/actables.h>
+#include <contrib/dev/acpica/compiler/aslcompiler.h>
+#include <contrib/dev/acpica/compiler/dtcompiler.h>
/* This module used for application-level code only */
@@ -125,20 +127,12 @@
/* Local Prototypes */
-static ACPI_DMTABLE_DATA *
-AcpiDmGetTableData (
- char *Signature);
-
static void
AcpiDmCheckAscii (
UINT8 *Target,
char *RepairedName,
UINT32 Count);
-UINT8
-AcpiTbGenerateChecksum (
- ACPI_TABLE_HEADER *Table);
-
/* These tables map a subtable type to a description string */
@@ -161,6 +155,74 @@ static const char *AcpiDmDmarS
"Unknown SubTable Type" /* Reserved */
};
+static const char *AcpiDmEinjActions[] =
+{
+ "Begin Operation",
+ "Get Trigger Table",
+ "Set Error Type",
+ "Get Error Type",
+ "End Operation",
+ "Execute Operation",
+ "Check Busy Status",
+ "Get Command Status",
+ "Unknown Action"
+};
+
+static const char *AcpiDmEinjInstructions[] =
+{
+ "Read Register",
+ "Read Register Value",
+ "Write Register",
+ "Write Register Value",
+ "Noop",
+ "Unknown Instruction"
+};
+
+static const char *AcpiDmErstActions[] =
+{
+ "Begin Write Operation",
+ "Begin Read Operation",
+ "Begin Clear Operation",
+ "End Operation",
+ "Set Record Offset",
+ "Execute Operation",
+ "Check Busy Status",
+ "Get Command Status",
+ "Get Record Identifier",
+ "Set Record Identifier",
+ "Get Record Count",
+ "Begin Dummy Write",
+ "Unused/Unknown Action",
+ "Get Error Address Range",
+ "Get Error Address Length",
+ "Get Error Attributes",
+ "Unknown Action"
+};
+
+static const char *AcpiDmErstInstructions[] =
+{
+ "Read Register",
+ "Read Register Value",
+ "Write Register",
+ "Write Register Value",
+ "Noop",
+ "Load Var1",
+ "Load Var2",
+ "Store Var1",
+ "Add",
+ "Subtract",
+ "Add Value",
+ "Subtract Value",
+ "Stall",
+ "Stall While True",
+ "Skip Next If True",
+ "GoTo",
+ "Set Source Address",
+ "Set Destination Address",
+ "Move Data",
+ "Unknown Instruction"
+};
+
static const char *AcpiDmHestSubnames[] =
{
"IA-32 Machine Check Exception",
@@ -237,56 +299,59 @@ static const char *AcpiDmFadtP
*
* ACPI Table Data, indexed by signature.
*
- * Each entry contains: Signature, Table Info, Handler, Description
+ * Each entry contains: Signature, Table Info, Handler, DtHandler,
+ * Template, Description
*
- * Simple tables have only a TableInfo structure, complex tables have a handler.
- * This table must be NULL terminated. RSDP and FACS are special-cased
- * elsewhere.
+ * Simple tables have only a TableInfo structure, complex tables have a
+ * handler. This table must be NULL terminated. RSDP and FACS are
+ * special-cased elsewhere.
*
******************************************************************************/
-static ACPI_DMTABLE_DATA AcpiDmTableData[] =
+ACPI_DMTABLE_DATA AcpiDmTableData[] =
{
- {ACPI_SIG_ASF, NULL, AcpiDmDumpAsf, "Alert Standard Format table"},
- {ACPI_SIG_BOOT, AcpiDmTableInfoBoot, NULL, "Simple Boot Flag Table"},
- {ACPI_SIG_BERT, AcpiDmTableInfoBert, NULL, "Boot Error Record Table"},
- {ACPI_SIG_CPEP, NULL, AcpiDmDumpCpep, "Corrected Platform Error Polling table"},
- {ACPI_SIG_DBGP, AcpiDmTableInfoDbgp, NULL, "Debug Port table"},
- {ACPI_SIG_DMAR, NULL, AcpiDmDumpDmar, "DMA Remapping table"},
- {ACPI_SIG_ECDT, AcpiDmTableInfoEcdt, NULL, "Embedded Controller Boot Resources Table"},
- {ACPI_SIG_EINJ, NULL, AcpiDmDumpEinj, "Error Injection table"},
- {ACPI_SIG_ERST, NULL, AcpiDmDumpErst, "Error Record Serialization Table"},
- {ACPI_SIG_FADT, NULL, AcpiDmDumpFadt, "Fixed ACPI Description Table"},
- {ACPI_SIG_HEST, NULL, AcpiDmDumpHest, "Hardware Error Source Table"},
- {ACPI_SIG_HPET, AcpiDmTableInfoHpet, NULL, "High Precision Event Timer table"},
- {ACPI_SIG_IVRS, NULL, AcpiDmDumpIvrs, "I/O Virtualization Reporting Structure"},
- {ACPI_SIG_MADT, NULL, AcpiDmDumpMadt, "Multiple APIC Description Table"},
- {ACPI_SIG_MCFG, NULL, AcpiDmDumpMcfg, "Memory Mapped Configuration table"},
- {ACPI_SIG_MCHI, AcpiDmTableInfoMchi, NULL, "Management Controller Host Interface table"},
- {ACPI_SIG_MSCT, NULL, AcpiDmDumpMsct, "Maximum System Characteristics Table"},
- {ACPI_SIG_RSDT, NULL, AcpiDmDumpRsdt, "Root System Description Table"},
- {ACPI_SIG_SBST, AcpiDmTableInfoSbst, NULL, "Smart Battery Specification Table"},
- {ACPI_SIG_SLIC, AcpiDmTableInfoSlic, NULL, "Software Licensing Description Table"},
- {ACPI_SIG_SLIT, NULL, AcpiDmDumpSlit, "System Locality Information Table"},
- {ACPI_SIG_SPCR, AcpiDmTableInfoSpcr, NULL, "Serial Port Console Redirection table"},
- {ACPI_SIG_SPMI, AcpiDmTableInfoSpmi, NULL, "Server Platform Management Interface table"},
- {ACPI_SIG_SRAT, NULL, AcpiDmDumpSrat, "System Resource Affinity Table"},
- {ACPI_SIG_TCPA, AcpiDmTableInfoTcpa, NULL, "Trusted Computing Platform Alliance table"},
- {ACPI_SIG_UEFI, AcpiDmTableInfoUefi, NULL, "UEFI Boot Optimization Table"},
- {ACPI_SIG_WAET, AcpiDmTableInfoWaet, NULL, "Windows ACPI Emulated Devices Table"},
- {ACPI_SIG_WDAT, NULL, AcpiDmDumpWdat, "Watchdog Action Table"},
- {ACPI_SIG_WDRT, AcpiDmTableInfoWdrt, NULL, "Watchdog Resource Table"},
- {ACPI_SIG_XSDT, NULL, AcpiDmDumpXsdt, "Extended System Description Table"},
- {NULL, NULL, NULL, NULL}
+ {ACPI_SIG_ASF, NULL, AcpiDmDumpAsf, DtCompileAsf, TemplateAsf, "Alert Standard Format table"},
+ {ACPI_SIG_BOOT, AcpiDmTableInfoBoot, NULL, NULL, TemplateBoot, "Simple Boot Flag Table"},
+ {ACPI_SIG_BERT, AcpiDmTableInfoBert, NULL, NULL, TemplateBert, "Boot Error Record Table"},
+ {ACPI_SIG_CPEP, NULL, AcpiDmDumpCpep, DtCompileCpep, TemplateCpep, "Corrected Platform Error Polling table"},
+ {ACPI_SIG_DBGP, AcpiDmTableInfoDbgp, NULL, NULL, TemplateDbgp, "Debug Port table"},
+ {ACPI_SIG_DMAR, NULL, AcpiDmDumpDmar, DtCompileDmar, TemplateDmar, "DMA Remapping table"},
+ {ACPI_SIG_ECDT, AcpiDmTableInfoEcdt, NULL, NULL, TemplateEcdt, "Embedded Controller Boot Resources Table"},
+ {ACPI_SIG_EINJ, NULL, AcpiDmDumpEinj, DtCompileEinj, TemplateEinj, "Error Injection table"},
+ {ACPI_SIG_ERST, NULL, AcpiDmDumpErst, DtCompileErst, TemplateErst, "Error Record Serialization Table"},
+ {ACPI_SIG_FADT, NULL, AcpiDmDumpFadt, DtCompileFadt, TemplateFadt, "Fixed ACPI Description Table"},
+ {ACPI_SIG_HEST, NULL, AcpiDmDumpHest, DtCompileHest, TemplateHest, "Hardware Error Source Table"},
+ {ACPI_SIG_HPET, AcpiDmTableInfoHpet, NULL, NULL, TemplateHpet, "High Precision Event Timer table"},
+ {ACPI_SIG_IVRS, NULL, AcpiDmDumpIvrs, DtCompileIvrs, TemplateIvrs, "I/O Virtualization Reporting Structure"},
+ {ACPI_SIG_MADT, NULL, AcpiDmDumpMadt, DtCompileMadt, TemplateMadt, "Multiple APIC Description Table"},
+ {ACPI_SIG_MCFG, NULL, AcpiDmDumpMcfg, DtCompileMcfg, TemplateMcfg, "Memory Mapped Configuration table"},
+ {ACPI_SIG_MCHI, AcpiDmTableInfoMchi, NULL, NULL, TemplateMchi, "Management Controller Host Interface table"},
+ {ACPI_SIG_MSCT, NULL, AcpiDmDumpMsct, DtCompileMsct, TemplateMsct, "Maximum System Characteristics Table"},
+ {ACPI_SIG_RSDT, NULL, AcpiDmDumpRsdt, DtCompileRsdt, TemplateRsdt, "Root System Description Table"},
+ {ACPI_SIG_SBST, AcpiDmTableInfoSbst, NULL, NULL, TemplateSbst, "Smart Battery Specification Table"},
+ {ACPI_SIG_SLIC, AcpiDmTableInfoSlic, NULL, NULL, NULL, "Software Licensing Description Table"},
+ {ACPI_SIG_SLIT, NULL, AcpiDmDumpSlit, DtCompileSlit, TemplateSlit, "System Locality Information Table"},
+ {ACPI_SIG_SPCR, AcpiDmTableInfoSpcr, NULL, NULL, TemplateSpcr, "Serial Port Console Redirection table"},
+ {ACPI_SIG_SPMI, AcpiDmTableInfoSpmi, NULL, NULL, TemplateSpmi, "Server Platform Management Interface table"},
+ {ACPI_SIG_SRAT, NULL, AcpiDmDumpSrat, DtCompileSrat, TemplateSrat, "System Resource Affinity Table"},
+ {ACPI_SIG_TCPA, AcpiDmTableInfoTcpa, NULL, NULL, TemplateTcpa, "Trusted Computing Platform Alliance table"},
+ {ACPI_SIG_UEFI, AcpiDmTableInfoUefi, NULL, NULL, TemplateUefi, "UEFI Boot Optimization Table"},
+ {ACPI_SIG_WAET, AcpiDmTableInfoWaet, NULL, NULL, TemplateWaet, "Windows ACPI Emulated Devices Table"},
+ {ACPI_SIG_WDAT, NULL, AcpiDmDumpWdat, DtCompileWdat, TemplateWdat, "Watchdog Action Table"},
+ {ACPI_SIG_WDDT, AcpiDmTableInfoWddt, NULL, NULL, TemplateWddt, "Watchdog Description Table"},
+ {ACPI_SIG_WDRT, AcpiDmTableInfoWdrt, NULL, NULL, TemplateWdrt, "Watchdog Resource Table"},
+ {ACPI_SIG_XSDT, NULL, AcpiDmDumpXsdt, DtCompileXsdt, TemplateXsdt, "Extended System Description Table"},
+ {NULL, NULL, NULL, NULL, NULL, NULL}
};
/*******************************************************************************
*
- * FUNCTION: AcpiTbGenerateChecksum
+ * FUNCTION: AcpiDmGenerateChecksum
*
- * PARAMETERS: Table - Pointer to a valid ACPI table (with a
- * standard ACPI header)
+ * PARAMETERS: Table - Pointer to table to be checksummed
+ * Length - Length of the table
+ * OriginalChecksum - Value of the checksum field
*
* RETURN: 8 bit checksum of buffer
*
@@ -295,19 +360,21 @@ static ACPI_DMTABLE_DATA AcpiDmTableD
******************************************************************************/
UINT8
-AcpiTbGenerateChecksum (
- ACPI_TABLE_HEADER *Table)
+AcpiDmGenerateChecksum (
+ void *Table,
+ UINT32 Length,
+ UINT8 OriginalChecksum)
{
UINT8 Checksum;
/* Sum the entire table as-is */
- Checksum = AcpiTbChecksum ((UINT8 *) Table, Table->Length);
+ Checksum = AcpiTbChecksum ((UINT8 *) Table, Length);
/* Subtract off the existing checksum value in the table */
- Checksum = (UINT8) (Checksum - Table->Checksum);
+ Checksum = (UINT8) (Checksum - OriginalChecksum);
/* Compute the final checksum */
@@ -328,7 +395,7 @@ AcpiTbGenerateChecksum (
*
******************************************************************************/
-static ACPI_DMTABLE_DATA *
+ACPI_DMTABLE_DATA *
AcpiDmGetTableData (
char *Signature)
{
@@ -432,10 +499,13 @@ AcpiDmDumpDataTable (
}
}
- /* Always dump the raw table data */
+ if (!Gbl_DoTemplates || Gbl_VerboseTemplates)
+ {
+ /* Dump the raw table data */
- AcpiOsPrintf ("\nRaw Table Data\n\n");
- AcpiUtDumpBuffer2 (ACPI_CAST_PTR (UINT8, Table), Length, DB_BYTE_DISPLAY);
+ AcpiOsPrintf ("\nRaw Table Data\n\n");
+ AcpiUtDumpBuffer2 (ACPI_CAST_PTR (UINT8, Table), Length, DB_BYTE_DISPLAY);
+ }
}
@@ -463,15 +533,31 @@ AcpiDmLineHeader (
char *Name)
{
- if (ByteLength)
+ if (Gbl_DoTemplates && !Gbl_VerboseTemplates) /* Terse template */
{
- AcpiOsPrintf ("[%3.3Xh %4.4d% 3d] %28s : ",
- Offset, Offset, ByteLength, Name);
+ if (ByteLength)
+ {
+ AcpiOsPrintf ("[%.3d] %34s : ",
+ ByteLength, Name);
+ }
+ else
+ {
+ AcpiOsPrintf ("%40s : ",
+ Name);
+ }
}
- else
+ else /* Normal disassembler or verbose template */
{
- AcpiOsPrintf ("%43s : ",
- Name);
+ if (ByteLength)
+ {
+ AcpiOsPrintf ("[%3.3Xh %4.4d% 3d] %28s : ",
+ Offset, Offset, ByteLength, Name);
+ }
+ else
+ {
+ AcpiOsPrintf ("%43s : ",
+ Name);
+ }
}
}
@@ -483,15 +569,31 @@ AcpiDmLineHeader2 (
UINT32 Value)
{
- if (ByteLength)
+ if (Gbl_DoTemplates && !Gbl_VerboseTemplates) /* Terse template */
{
- AcpiOsPrintf ("[%3.3Xh %4.4d% 3d] %24s % 3d : ",
- Offset, Offset, ByteLength, Name, Value);
+ if (ByteLength)
+ {
+ AcpiOsPrintf ("[%.3d] %30s % 3d : ",
+ ByteLength, Name, Value);
+ }
+ else
+ {
+ AcpiOsPrintf ("%36s % 3d : ",
+ Name, Value);
+ }
}
- else
+ else /* Normal disassembler or verbose template */
{
- AcpiOsPrintf ("[%3.3Xh %4.4d ] %24s % 3d : ",
- Offset, Offset, Name, Value);
+ if (ByteLength)
+ {
+ AcpiOsPrintf ("[%3.3Xh %4.4d% 3d] %24s % 3d : ",
+ Offset, Offset, ByteLength, Name, Value);
+ }
+ else
+ {
+ AcpiOsPrintf ("[%3.3Xh %4.4d ] %24s % 3d : ",
+ Offset, Offset, Name, Value);
+ }
}
}
@@ -511,6 +613,8 @@ AcpiDmLineHeader2 (
*
* DESCRIPTION: Display ACPI table contents by walking the Info table.
*
+ * Note: This function must remain in sync with DtGetFieldLength.
+ *
******************************************************************************/
ACPI_STATUS
@@ -571,6 +675,10 @@ AcpiDmDumpTable (
case ACPI_DMT_ASF:
case ACPI_DMT_HESTNTYP:
case ACPI_DMT_FADTPM:
+ case ACPI_DMT_EINJACT:
+ case ACPI_DMT_EINJINST:
+ case ACPI_DMT_ERSTACT:
+ case ACPI_DMT_ERSTINST:
ByteLength = 1;
break;
case ACPI_DMT_UINT16:
@@ -705,7 +813,11 @@ AcpiDmDumpTable (
for (Temp8 = 0; Temp8 < 16; Temp8++)
{
- AcpiOsPrintf ("%2.2X,", Target[Temp8]);
+ AcpiOsPrintf ("%2.2X", Target[Temp8]);
+ if ((Temp8 + 1) < 16)
+ {
+ AcpiOsPrintf (",");
+ }
}
AcpiOsPrintf ("\n");
break;
@@ -754,7 +866,9 @@ AcpiDmDumpTable (
/* Checksum, display and validate */
AcpiOsPrintf ("%2.2X", *Target);
- Temp8 = AcpiTbGenerateChecksum (Table);
+ Temp8 = AcpiDmGenerateChecksum (Table,
+ ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Length,
+ ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Checksum);
if (Temp8 != ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Checksum)
{
AcpiOsPrintf (
@@ -807,6 +921,58 @@ AcpiDmDumpTable (
AcpiOsPrintf ("%4.4X <%s>\n", ACPI_GET16 (Target), AcpiDmDmarSubnames[Temp16]);
break;
+ case ACPI_DMT_EINJACT:
+
+ /* EINJ Action types */
+
+ Temp8 = *Target;
+ if (Temp8 > ACPI_EINJ_ACTION_RESERVED)
+ {
+ Temp8 = ACPI_EINJ_ACTION_RESERVED;
+ }
+
+ AcpiOsPrintf ("%2.2X (%s)\n", *Target, AcpiDmEinjActions[Temp8]);
+ break;
+
+ case ACPI_DMT_EINJINST:
+
+ /* EINJ Instruction types */
+
+ Temp8 = *Target;
+ if (Temp8 > ACPI_EINJ_INSTRUCTION_RESERVED)
+ {
+ Temp8 = ACPI_EINJ_INSTRUCTION_RESERVED;
+ }
+
+ AcpiOsPrintf ("%2.2X (%s)\n", *Target, AcpiDmEinjInstructions[Temp8]);
+ break;
+
+ case ACPI_DMT_ERSTACT:
+
+ /* ERST Action types */
+
+ Temp8 = *Target;
+ if (Temp8 > ACPI_ERST_ACTION_RESERVED)
+ {
+ Temp8 = ACPI_ERST_ACTION_RESERVED;
+ }
+
+ AcpiOsPrintf ("%2.2X (%s)\n", *Target, AcpiDmErstActions[Temp8]);
+ break;
+
+ case ACPI_DMT_ERSTINST:
+
+ /* ERST Instruction types */
+
+ Temp8 = *Target;
+ if (Temp8 > ACPI_ERST_INSTRUCTION_RESERVED)
+ {
+ Temp8 = ACPI_ERST_INSTRUCTION_RESERVED;
+ }
+
+ AcpiOsPrintf ("%2.2X (%s)\n", *Target, AcpiDmErstInstructions[Temp8]);
+ break;
+
case ACPI_DMT_HEST:
/* HEST subtable types */
@@ -842,7 +1008,6 @@ AcpiDmDumpTable (
AcpiOsPrintf ("%2.2X (%s)\n", *Target, AcpiDmHestNotifySubnames[Temp8]);
break;
-
case ACPI_DMT_MADT:
/* MADT subtable types */
Modified: head/sys/contrib/dev/acpica/common/dmtbdump.c
==============================================================================
--- head/sys/contrib/dev/acpica/common/dmtbdump.c Tue Jul 6 19:43:40 2010 (r209745)
+++ head/sys/contrib/dev/acpica/common/dmtbdump.c Tue Jul 6 20:57:28 2010 (r209746)
@@ -130,7 +130,8 @@
*
* PARAMETERS: Table - A RSDP
*
- * RETURN: Length of the table (there is no length field, use revision)
+ * RETURN: Length of the table (there is not always a length field,
+ * use revision or length if available (ACPI 2.0+))
*
* DESCRIPTION: Format the contents of a RSDP
*
@@ -140,19 +141,42 @@ UINT32
AcpiDmDumpRsdp (
ACPI_TABLE_HEADER *Table)
{
- UINT32 Length = ACPI_RSDP_REV0_SIZE;
+ ACPI_TABLE_RSDP *Rsdp = ACPI_CAST_PTR (ACPI_TABLE_RSDP, Table);
+ UINT32 Length = sizeof (ACPI_RSDP_COMMON);
+ UINT8 Checksum;
/* Dump the common ACPI 1.0 portion */
AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoRsdp1);
- /* ACPI 2.0+ contains more data and has a Length field */
+ /* Validate the first checksum */
- if (ACPI_CAST_PTR (ACPI_TABLE_RSDP, Table)->Revision > 0)
+ Checksum = AcpiDmGenerateChecksum (Rsdp, sizeof (ACPI_RSDP_COMMON),
+ Rsdp->Checksum);
+ if (Checksum != Rsdp->Checksum)
{
- Length = ACPI_CAST_PTR (ACPI_TABLE_RSDP, Table)->Length;
+ AcpiOsPrintf ("/* Incorrect Checksum above, should be 0x%2.2X */\n",
+ Checksum);
+ }
+
+ /* The RSDP for ACPI 2.0+ contains more data and has a Length field */
+
+ if (Rsdp->Revision > 0)
+ {
+ Length = Rsdp->Length;
AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoRsdp2);
+
+ /* Validate the extended checksum over entire RSDP */
+
+ Checksum = AcpiDmGenerateChecksum (Rsdp, sizeof (ACPI_TABLE_RSDP),
+ Rsdp->ExtendedChecksum);
+ if (Checksum != Rsdp->ExtendedChecksum)
+ {
+ AcpiOsPrintf (
+ "/* Incorrect Extended Checksum above, should be 0x%2.2X */\n",
+ Checksum);
+ }
}
return (Length);
@@ -595,7 +619,7 @@ AcpiDmDumpDmar (
while (PathOffset < ScopeTable->Length)
{
AcpiDmLineHeader ((PathOffset + ScopeOffset + Offset), 2, "PCI Path");
- AcpiOsPrintf ("[%2.2X, %2.2X]\n", PciPath[0], PciPath[1]);
+ AcpiOsPrintf ("%2.2X,%2.2X\n", PciPath[0], PciPath[1]);
/* Point to next PCI Path entry */
@@ -709,7 +733,7 @@ AcpiDmDumpErst (
{
AcpiOsPrintf ("\n");
Status = AcpiDmDumpTable (Length, Offset, SubTable,
- sizeof (ACPI_WHEA_HEADER), AcpiDmTableInfoEinj0);
+ sizeof (ACPI_WHEA_HEADER), AcpiDmTableInfoErst0);
if (ACPI_FAILURE (Status))
{
return;
@@ -1174,7 +1198,7 @@ AcpiDmDumpMcfg (
{
if (Offset + sizeof (ACPI_MCFG_ALLOCATION) > Table->Length)
{
- AcpiOsPrintf ("Warning: there are %d invalid trailing bytes\n",
+ AcpiOsPrintf ("Warning: there are %u invalid trailing bytes\n",
sizeof (ACPI_MCFG_ALLOCATION) - (Offset - Table->Length));
return;
}
@@ -1301,15 +1325,20 @@ AcpiDmDumpSlit (
return;
}
- AcpiOsPrintf ("%2.2X ", Row[j]);
+ AcpiOsPrintf ("%2.2X", Row[j]);
Offset++;
/* Display up to 16 bytes per output row */
- if (j && (((j+1) % 16) == 0) && ((j+1) < Localities))
+ if ((j+1) < Localities)
{
- AcpiOsPrintf ("\n");
- AcpiDmLineHeader (Offset, 0, "");
+ AcpiOsPrintf (",");
+
+ if (j && (((j+1) % 16) == 0))
+ {
+ AcpiOsPrintf ("\n");
+ AcpiDmLineHeader (Offset, 0, "");
+ }
}
}
Modified: head/sys/contrib/dev/acpica/common/dmtbinfo.c
==============================================================================
--- head/sys/contrib/dev/acpica/common/dmtbinfo.c Tue Jul 6 19:43:40 2010 (r209745)
+++ head/sys/contrib/dev/acpica/common/dmtbinfo.c Tue Jul 6 20:57:28 2010 (r209746)
@@ -153,6 +153,7 @@
#define ACPI_UEFI_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_UEFI,f)
#define ACPI_WAET_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_WAET,f)
#define ACPI_WDAT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_WDAT,f)
+#define ACPI_WDDT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_WDDT,f)
#define ACPI_WDRT_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_TABLE_WDRT,f)
/* Subtables */
@@ -171,6 +172,7 @@
#define ACPI_DMAR2_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_DMAR_ATSR,f)
#define ACPI_DMAR3_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_DMAR_RHSA,f)
#define ACPI_EINJ0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_WHEA_HEADER,f)
+#define ACPI_ERST0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_WHEA_HEADER,f)
#define ACPI_HEST0_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_HEST_IA_MACHINE_CHECK,f)
#define ACPI_HEST1_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_HEST_IA_CORRECTED,f)
#define ACPI_HEST2_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_HEST_IA_NMI,f)
@@ -229,6 +231,17 @@
#define ACPI_MADT8_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_INTERRUPT_SOURCE,f,o)
#define ACPI_MADT9_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_LOCAL_X2APIC,f,o)
#define ACPI_MADT10_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_LOCAL_X2APIC_NMI,f,o)
+#define ACPI_WDDT_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_WDDT,f,o)
+#define ACPI_EINJ0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_WHEA_HEADER,f,o)
+#define ACPI_ERST0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_WHEA_HEADER,f,o)
+#define ACPI_HEST0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_HEST_IA_MACHINE_CHECK,f,o)
+#define ACPI_HEST1_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_HEST_IA_CORRECTED,f,o)
+#define ACPI_HEST6_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_HEST_AER_ROOT,f,o)
+
+/*
+ * Required terminator for all tables below
+ */
+#define ACPI_DMT_TERMINATOR {ACPI_DMT_EXIT, 0, NULL, 0}
/*
@@ -245,16 +258,16 @@
ACPI_DMTABLE_INFO AcpiDmTableInfoHeader[] =
{
- {ACPI_DMT_SIG, ACPI_HDR_OFFSET (Signature[0]), "Signature"},
- {ACPI_DMT_UINT32, ACPI_HDR_OFFSET (Length), "Table Length"},
- {ACPI_DMT_UINT8, ACPI_HDR_OFFSET (Revision), "Revision"},
- {ACPI_DMT_CHKSUM, ACPI_HDR_OFFSET (Checksum), "Checksum"},
- {ACPI_DMT_NAME6, ACPI_HDR_OFFSET (OemId[0]), "Oem ID"},
- {ACPI_DMT_NAME8, ACPI_HDR_OFFSET (OemTableId[0]), "Oem Table ID"},
- {ACPI_DMT_UINT32, ACPI_HDR_OFFSET (OemRevision), "Oem Revision"},
- {ACPI_DMT_NAME4, ACPI_HDR_OFFSET (AslCompilerId[0]), "Asl Compiler ID"},
- {ACPI_DMT_UINT32, ACPI_HDR_OFFSET (AslCompilerRevision), "Asl Compiler Revision"},
- {ACPI_DMT_EXIT, 0, NULL}
+ {ACPI_DMT_SIG, ACPI_HDR_OFFSET (Signature[0]), "Signature", 0},
+ {ACPI_DMT_UINT32, ACPI_HDR_OFFSET (Length), "Table Length", DT_LENGTH},
+ {ACPI_DMT_UINT8, ACPI_HDR_OFFSET (Revision), "Revision", 0},
+ {ACPI_DMT_CHKSUM, ACPI_HDR_OFFSET (Checksum), "Checksum", 0},
+ {ACPI_DMT_NAME6, ACPI_HDR_OFFSET (OemId[0]), "Oem ID", 0},
+ {ACPI_DMT_NAME8, ACPI_HDR_OFFSET (OemTableId[0]), "Oem Table ID", 0},
+ {ACPI_DMT_UINT32, ACPI_HDR_OFFSET (OemRevision), "Oem Revision", 0},
+ {ACPI_DMT_NAME4, ACPI_HDR_OFFSET (AslCompilerId[0]), "Asl Compiler ID", 0},
+ {ACPI_DMT_UINT32, ACPI_HDR_OFFSET (AslCompilerRevision), "Asl Compiler Revision", 0},
+ ACPI_DMT_TERMINATOR
};
@@ -266,12 +279,12 @@ ACPI_DMTABLE_INFO AcpiDmTableI
ACPI_DMTABLE_INFO AcpiDmTableInfoGas[] =
{
- {ACPI_DMT_SPACEID, ACPI_GAS_OFFSET (SpaceId), "Space ID"},
- {ACPI_DMT_UINT8, ACPI_GAS_OFFSET (BitWidth), "Bit Width"},
- {ACPI_DMT_UINT8, ACPI_GAS_OFFSET (BitOffset), "Bit Offset"},
- {ACPI_DMT_UINT8, ACPI_GAS_OFFSET (AccessWidth), "Access Width"},
- {ACPI_DMT_UINT64, ACPI_GAS_OFFSET (Address), "Address"},
- {ACPI_DMT_EXIT, 0, NULL}
+ {ACPI_DMT_SPACEID, ACPI_GAS_OFFSET (SpaceId), "Space ID", 0},
+ {ACPI_DMT_UINT8, ACPI_GAS_OFFSET (BitWidth), "Bit Width", 0},
+ {ACPI_DMT_UINT8, ACPI_GAS_OFFSET (BitOffset), "Bit Offset", 0},
+ {ACPI_DMT_UINT8, ACPI_GAS_OFFSET (AccessWidth), "Access Width", 0},
+ {ACPI_DMT_UINT64, ACPI_GAS_OFFSET (Address), "Address", 0},
+ ACPI_DMT_TERMINATOR
};
@@ -283,23 +296,23 @@ ACPI_DMTABLE_INFO AcpiDmTableI
ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[] =
{
- {ACPI_DMT_NAME8, ACPI_RSDP_OFFSET (Signature[0]), "Signature"},
- {ACPI_DMT_UINT8, ACPI_RSDP_OFFSET (Checksum), "Checksum"},
- {ACPI_DMT_NAME6, ACPI_RSDP_OFFSET (OemId[0]), "Oem ID"},
- {ACPI_DMT_UINT8, ACPI_RSDP_OFFSET (Revision), "Revision"},
- {ACPI_DMT_UINT32, ACPI_RSDP_OFFSET (RsdtPhysicalAddress), "RSDT Address"},
- {ACPI_DMT_EXIT, 0, NULL}
+ {ACPI_DMT_NAME8, ACPI_RSDP_OFFSET (Signature[0]), "Signature", 0},
+ {ACPI_DMT_UINT8, ACPI_RSDP_OFFSET (Checksum), "Checksum", 0},
+ {ACPI_DMT_NAME6, ACPI_RSDP_OFFSET (OemId[0]), "Oem ID", 0},
+ {ACPI_DMT_UINT8, ACPI_RSDP_OFFSET (Revision), "Revision", 0},
+ {ACPI_DMT_UINT32, ACPI_RSDP_OFFSET (RsdtPhysicalAddress), "RSDT Address", 0},
+ ACPI_DMT_TERMINATOR
};
/* ACPI 2.0+ Extensions */
ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[] =
{
- {ACPI_DMT_UINT32, ACPI_RSDP_OFFSET (Length), "Length"},
- {ACPI_DMT_UINT64, ACPI_RSDP_OFFSET (XsdtPhysicalAddress), "XSDT Address"},
- {ACPI_DMT_UINT8, ACPI_RSDP_OFFSET (ExtendedChecksum), "Extended Checksum"},
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-head
mailing list