aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2019-03-29 16:40:11 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2019-03-29 16:40:11 +0000
commit222d1f49264d00972299c6ff23de8100be561897 (patch)
treee2a1cfd1ec138c9cc64abc609558682be382674f
parent805e3b079cfb4a9e01aa35dc378a35f922979517 (diff)
downloadsrc-222d1f49264d00972299c6ff23de8100be561897.tar.gz
src-222d1f49264d00972299c6ff23de8100be561897.zip
Import ACPICA 20190329.vendor/acpica/20190329
Notes
Notes: svn path=/vendor-sys/acpica/dist/; revision=345699 svn path=/vendor-sys/acpica/20190329/; revision=345700; tag=vendor/acpica/20190329
-rw-r--r--changes.txt72
-rw-r--r--source/common/acfileio.c2
-rw-r--r--source/common/adisasm.c2
-rw-r--r--source/common/adwalk.c2
-rw-r--r--source/common/ahpredef.c2
-rw-r--r--source/common/ahtable.c2
-rw-r--r--source/common/dmrestag.c24
-rw-r--r--source/common/dmtable.c6
-rw-r--r--source/common/dmtables.c2
-rw-r--r--source/compiler/aslanalyze.c14
-rw-r--r--source/compiler/aslcodegen.c16
-rw-r--r--source/compiler/aslcompiler.l2
-rw-r--r--source/compiler/asldefine.h2
-rw-r--r--source/compiler/aslerror.c2
-rw-r--r--source/compiler/aslload.c11
-rw-r--r--source/compiler/aslmessages.c2
-rw-r--r--source/compiler/aslmethod.c8
-rw-r--r--source/compiler/asloffset.c10
-rw-r--r--source/compiler/asloperands.c4
-rw-r--r--source/compiler/aslopt.c10
-rw-r--r--source/compiler/aslpredef.c6
-rw-r--r--source/compiler/asltransform.c2
-rw-r--r--source/compiler/aslutils.c4
-rw-r--r--source/compiler/aslxref.c14
-rw-r--r--source/compiler/dtcompile.c4
-rw-r--r--source/compiler/dttemplate.c22
-rw-r--r--source/components/debugger/dbexec.c2
-rw-r--r--source/components/debugger/dbnames.c2
-rw-r--r--source/components/disassembler/dmbuffer.c8
-rw-r--r--source/components/disassembler/dmnames.c6
-rw-r--r--source/components/dispatcher/dsfield.c2
-rw-r--r--source/components/dispatcher/dsinit.c2
-rw-r--r--source/components/events/evgpeinit.c4
-rw-r--r--source/components/executer/exnames.c6
-rw-r--r--source/components/namespace/nsaccess.c2
-rw-r--r--source/components/namespace/nsdump.c2
-rw-r--r--source/components/namespace/nsinit.c4
-rw-r--r--source/components/namespace/nsnames.c8
-rw-r--r--source/components/namespace/nsobject.c5
-rw-r--r--source/components/namespace/nsparse.c2
-rw-r--r--source/components/namespace/nsrepair.c2
-rw-r--r--source/components/namespace/nsrepair2.c4
-rw-r--r--source/components/namespace/nsutils.c12
-rw-r--r--source/components/namespace/nsxfname.c4
-rw-r--r--source/components/parser/psargs.c8
-rw-r--r--source/components/resources/rsxface.c8
-rw-r--r--source/components/tables/tbdata.c2
-rw-r--r--source/components/tables/tbfind.c6
-rw-r--r--source/components/tables/tbinstal.c2
-rw-r--r--source/components/tables/tbprint.c10
-rw-r--r--source/components/tables/tbutils.c2
-rw-r--r--source/components/tables/tbxface.c4
-rw-r--r--source/components/tables/tbxfload.c10
-rw-r--r--source/components/utilities/utascii.c2
-rw-r--r--source/components/utilities/utdecode.c24
-rw-r--r--source/components/utilities/utmisc.c8
-rw-r--r--source/components/utilities/utpredef.c4
-rw-r--r--source/components/utilities/utstring.c6
-rw-r--r--source/include/aclocal.h4
-rw-r--r--source/include/acpixf.h2
-rw-r--r--source/include/actbl.h4
-rw-r--r--source/include/actypes.h12
-rw-r--r--source/include/platform/aclinux.h5
-rw-r--r--source/os_specific/service_layers/osbsdtbl.c30
-rw-r--r--source/os_specific/service_layers/oslinuxtbl.c46
-rw-r--r--source/os_specific/service_layers/oswintbl.c13
-rw-r--r--source/os_specific/service_layers/oswinxf.c2
-rw-r--r--source/tools/acpidump/apdump.c8
-rw-r--r--source/tools/acpidump/apfiles.c8
-rw-r--r--source/tools/acpiexec/aecommon.h4
-rw-r--r--source/tools/acpiexec/aeexception.c2
-rw-r--r--source/tools/acpiexec/aemain.c1
-rw-r--r--source/tools/acpiexec/aetables.c22
-rw-r--r--source/tools/acpiexec/aetests.c60
-rw-r--r--source/tools/acpihelp/ahdecode.c4
-rw-r--r--source/tools/acpinames/antables.c14
-rw-r--r--source/tools/acpixtract/acpixtract.c12
-rw-r--r--source/tools/acpixtract/axutils.c6
78 files changed, 422 insertions, 257 deletions
diff --git a/changes.txt b/changes.txt
index f2c099e1acda..f8de9aafa208 100644
--- a/changes.txt
+++ b/changes.txt
@@ -1,7 +1,75 @@
----------------------------------------
-15 February 2019. Summary of changes for version 20190215:
+29 March 2019. Summary of changes for version 20190329:
-This release is available at https://acpica.org/downloads
+
+1) ACPICA kernel-resident subsystem:
+
+Namespace support: Remove the address nodes from global list after method
+termination. The global address list contains pointers to namespace nodes
+that represent Operation Regions. This change properly removes Operation
+Region namespace nodes that are declared dynamically during method
+execution.
+
+Linux: Use a different debug default than ACPICA. There was a divergence
+between Linux and the ACPICA codebases. In order to resolve this
+divergence, Linux now declares its own debug default in aclinux.h
+
+Renamed some internal macros to improve code understanding and
+maintenance. The macros below all operate on single 4-character ACPI
+NameSegs, not generic strings (old -> new):
+ ACPI_NAME_SIZE -> ACPI_NAMESEG_SIZE
+ ACPI_COMPARE_NAME -> ACPI_COMPARE_NAMESEG
+ ACPI_MOVE_NAME -> ACPI_COPY_NAMESEG
+
+Fix for missing comma in array declaration for the AcpiGbl_GenericNotify
+table.
+
+Test suite: Update makefiles, add PCC operation region support
+
+
+2) iASL Compiler/Disassembler and Tools:
+
+iASL: Implemented additional illegal forward reference detection. Now
+detect and emit an error upon detection of a forward reference from a
+Field to an Operation Region. This will fail at runtime if allowed to
+pass the compiler.
+
+AcpiExec: Add an address list check for dynamic Operation Regions. This
+feature performs a sanity test for each node the global address list.
+This is done in order to ensure that all dynamic operation regions are
+properly removed from the global address list and no dangling pointers
+are left behind.
+
+Disassembler: Improved generation of resource pathnames. This change
+improves the code that generates resource descriptor and resource tag
+pathnames. The original code used a bunch of str* C library functions
+that caused warnings on some compilers.
+
+iASL: Removed some uses of strncpy and replaced with memmove. The strncpy
+function can overwrite buffers if the calling code is not very careful.
+In the case of generating a module/table header, use of memmove is a
+better implementation.
+
+
+3) Status of new features that have not been completed at this time:
+
+iASL: Implementing an enhanced multiple file compilation into a single
+namespace feature (Status): This feature will be released soon, and
+allows multiple ASL files to be compiled into the same single namespace.
+By doing so, any unresolved external declarations as well as duplicate
+named object declarations can be detected during compilation (rather than
+later during runtime). The following commands are examples that utilize
+this feature:
+ iasl dsdt.asl ssdt.asl
+ iasl dsdt.asl ssdt1.asl ssdt2.asl
+ iasl dsdt.asl ssdt*.asl
+
+ASL tutorial status: Feedback is being gathered internally and the
+current plan is to publish this tutorial on the ACPICA website after a
+final review by a tech writer.
+
+----------------------------------------
+15 February 2019. Summary of changes for version 20190215:
0) Support for ACPI specification version 6.3:
diff --git a/source/common/acfileio.c b/source/common/acfileio.c
index 18992b208294..74f285779177 100644
--- a/source/common/acfileio.c
+++ b/source/common/acfileio.c
@@ -585,7 +585,7 @@ AcValidateTableHeader (
* These fields must be ASCII: OemId, OemTableId, AslCompilerId.
* We allow a NULL terminator in OemId and OemTableId.
*/
- for (i = 0; i < ACPI_NAME_SIZE; i++)
+ for (i = 0; i < ACPI_NAMESEG_SIZE; i++)
{
if (!ACPI_IS_ASCII ((UINT8) TableHeader.AslCompilerId[i]))
{
diff --git a/source/common/adisasm.c b/source/common/adisasm.c
index 6fbfaf5da4e1..518468b7feba 100644
--- a/source/common/adisasm.c
+++ b/source/common/adisasm.c
@@ -459,7 +459,7 @@ AdDisassembleOneTable (
*/
if (AcpiGbl_CaptureComments)
{
- strncpy (Table->Signature, AcpiGbl_TableSig, ACPI_NAME_SIZE);
+ strncpy (Table->Signature, AcpiGbl_TableSig, ACPI_NAMESEG_SIZE);
}
#endif
diff --git a/source/common/adwalk.c b/source/common/adwalk.c
index 9f51b64e2624..d9bd4d9e9a7a 100644
--- a/source/common/adwalk.c
+++ b/source/common/adwalk.c
@@ -814,7 +814,7 @@ AcpiDmLoadDescendingOp (
while (AcpiGbl_PreDefinedNames[PreDefineIndex].Name)
{
- if (ACPI_COMPARE_NAME (Node->Name.Ascii,
+ if (ACPI_COMPARE_NAMESEG (Node->Name.Ascii,
AcpiGbl_PreDefinedNames[PreDefineIndex].Name))
{
PreDefined = TRUE;
diff --git a/source/common/ahpredef.c b/source/common/ahpredef.c
index 58b2d6627c8d..a76148dc9e6f 100644
--- a/source/common/ahpredef.c
+++ b/source/common/ahpredef.c
@@ -490,7 +490,7 @@ AcpiAhMatchPredefinedName (
for (Info = AslPredefinedInfo; Info->Name; Info++)
{
- if (ACPI_COMPARE_NAME (Nameseg, Info->Name))
+ if (ACPI_COMPARE_NAMESEG (Nameseg, Info->Name))
{
return (Info);
}
diff --git a/source/common/ahtable.c b/source/common/ahtable.c
index 96b5f9f609e9..599c53a89994 100644
--- a/source/common/ahtable.c
+++ b/source/common/ahtable.c
@@ -183,7 +183,7 @@ AcpiAhGetTableInfo (
for (Info = AcpiGbl_SupportedTables; Info->Signature; Info++)
{
- if (ACPI_COMPARE_NAME (Signature, Info->Signature))
+ if (ACPI_COMPARE_NAMESEG (Signature, Info->Signature))
{
return (Info);
}
diff --git a/source/common/dmrestag.c b/source/common/dmrestag.c
index c33b0497b67e..8ab92d71f162 100644
--- a/source/common/dmrestag.c
+++ b/source/common/dmrestag.c
@@ -747,6 +747,7 @@ AcpiGetTagPathname (
UINT8 ResourceTableIndex;
ACPI_SIZE RequiredSize;
char *Pathname;
+ char *PathnameEnd;
AML_RESOURCE *Aml;
ACPI_PARSE_OBJECT *Op;
char *InternalPath;
@@ -809,19 +810,26 @@ AcpiGetTagPathname (
RequiredSize, FALSE);
/*
- * Create the full path to the resource and tag by: remove the buffer name,
- * append the resource descriptor name, append a dot, append the tag name.
+ * Create the full path to the resource and tag by:
+ * 1) Remove the buffer nameseg from the end of the pathname
+ * 2) Append the resource descriptor nameseg
+ * 3) Append a dot
+ * 4) Append the field tag nameseg
*
- * TBD: Always using the full path is a bit brute force, the path can be
+ * Always using the full path is a bit brute force, the path can be
* often be optimized with carats (if the original buffer namepath is a
* single nameseg). This doesn't really matter, because these paths do not
* end up in the final compiled AML, it's just an appearance issue for the
* disassembled code.
*/
- Pathname[strlen (Pathname) - ACPI_NAME_SIZE] = 0;
- strncat (Pathname, ResourceNode->Name.Ascii, ACPI_NAME_SIZE);
- strcat (Pathname, ".");
- strncat (Pathname, Tag, ACPI_NAME_SIZE);
+ PathnameEnd = Pathname + (RequiredSize - ACPI_NAMESEG_SIZE - 1);
+ ACPI_COPY_NAMESEG (PathnameEnd, ResourceNode->Name.Ascii);
+
+ PathnameEnd += ACPI_NAMESEG_SIZE;
+ *PathnameEnd = '.';
+
+ PathnameEnd++;
+ ACPI_COPY_NAMESEG (PathnameEnd, Tag);
/* Internalize the namepath to AML format */
@@ -863,7 +871,7 @@ static void
AcpiDmUpdateResourceName (
ACPI_NAMESPACE_NODE *ResourceNode)
{
- char Name[ACPI_NAME_SIZE];
+ char Name[ACPI_NAMESEG_SIZE];
/* Ignore if a unique name has already been assigned */
diff --git a/source/common/dmtable.c b/source/common/dmtable.c
index e51ff424f1b4..6b67662bf02c 100644
--- a/source/common/dmtable.c
+++ b/source/common/dmtable.c
@@ -602,7 +602,7 @@ AcpiDmGetTableData (
for (Info = AcpiDmTableData; Info->Signature; Info++)
{
- if (ACPI_COMPARE_NAME (Signature, Info->Signature))
+ if (ACPI_COMPARE_NAMESEG (Signature, Info->Signature))
{
return (Info);
}
@@ -657,7 +657,7 @@ AcpiDmDumpDataTable (
* Handle tables that don't use the common ACPI table header structure.
* Currently, these are the FACS, RSDP, and S3PT.
*/
- if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_FACS))
+ if (ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_FACS))
{
Length = Table->Length;
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoFacs);
@@ -670,7 +670,7 @@ AcpiDmDumpDataTable (
{
Length = AcpiDmDumpRsdp (Table);
}
- else if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_S3PT))
+ else if (ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_S3PT))
{
Length = AcpiDmDumpS3pt (Table);
}
diff --git a/source/common/dmtables.c b/source/common/dmtables.c
index 1a8da3afec8b..f95795096156 100644
--- a/source/common/dmtables.c
+++ b/source/common/dmtables.c
@@ -281,7 +281,7 @@ AdCreateTableHeader (
/* Revision of DSDT controls the ACPI integer width */
- if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_DSDT))
+ if (ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_DSDT))
{
AcpiOsPrintf (" **** 32-bit table (V1), no 64-bit math support");
}
diff --git a/source/compiler/aslanalyze.c b/source/compiler/aslanalyze.c
index 0ea8dc47ffb8..58da5e2eec7c 100644
--- a/source/compiler/aslanalyze.c
+++ b/source/compiler/aslanalyze.c
@@ -563,14 +563,14 @@ ApCheckForGpeNameConflict (
{
ACPI_PARSE_OBJECT *NextOp;
UINT32 GpeNumber;
- char Name[ACPI_NAME_SIZE + 1];
- char Target[ACPI_NAME_SIZE];
+ char Name[ACPI_NAMESEG_SIZE + 1];
+ char Target[ACPI_NAMESEG_SIZE];
/* Need a null-terminated string version of NameSeg */
ACPI_MOVE_32_TO_32 (Name, &Op->Asl.NameSeg);
- Name[ACPI_NAME_SIZE] = 0;
+ Name[ACPI_NAMESEG_SIZE] = 0;
/*
* For a GPE method:
@@ -622,7 +622,7 @@ ApCheckForGpeNameConflict (
if ((NextOp->Asl.ParseOpcode == PARSEOP_METHOD) ||
(NextOp->Asl.ParseOpcode == PARSEOP_NAME))
{
- if (ACPI_COMPARE_NAME (Target, NextOp->Asl.NameSeg))
+ if (ACPI_COMPARE_NAMESEG (Target, NextOp->Asl.NameSeg))
{
/* Found both _Exy and _Lxy in the same scope, error */
@@ -666,7 +666,7 @@ ApCheckRegMethod (
/* We are only interested in _REG methods */
- if (!ACPI_COMPARE_NAME (METHOD_NAME__REG, &Op->Asl.NameSeg))
+ if (!ACPI_COMPARE_NAMESEG (METHOD_NAME__REG, &Op->Asl.NameSeg))
{
return;
}
@@ -772,7 +772,7 @@ ApDeviceSubtreeWalk (
/* These are what we are looking for */
- if (ACPI_COMPARE_NAME (Name, Op->Asl.NameSeg))
+ if (ACPI_COMPARE_NAMESEG (Name, Op->Asl.NameSeg))
{
return (AE_CTRL_TRUE);
}
@@ -831,7 +831,7 @@ ApFindNameInScope (
if ((Next->Asl.ParseOpcode == PARSEOP_METHOD) ||
(Next->Asl.ParseOpcode == PARSEOP_NAME))
{
- if (ACPI_COMPARE_NAME (Name, Next->Asl.NameSeg))
+ if (ACPI_COMPARE_NAMESEG (Name, Next->Asl.NameSeg))
{
return (TRUE);
}
diff --git a/source/compiler/aslcodegen.c b/source/compiler/aslcodegen.c
index 21459178539c..8edcb668af4a 100644
--- a/source/compiler/aslcodegen.c
+++ b/source/compiler/aslcodegen.c
@@ -523,6 +523,8 @@ CgWriteAmlOpcode (
*
* DESCRIPTION: Write a table header corresponding to the DEFINITIONBLOCK
*
+ * NOTE: Input strings should be validated before this function is invoked.
+ *
******************************************************************************/
static void
@@ -534,6 +536,8 @@ CgWriteTableHeader (
ACPI_COMMENT_NODE *Current;
+ memset (&AslGbl_TableHeader, 0, sizeof (ACPI_TABLE_HEADER));
+
/* AML filename */
Child = Op->Asl.Child;
@@ -552,11 +556,11 @@ CgWriteTableHeader (
*/
if (AcpiGbl_CaptureComments)
{
- strncpy(AcpiGbl_TableSig, Child->Asl.Value.String, ACPI_NAME_SIZE);
+ ACPI_COPY_NAMESEG (AcpiGbl_TableSig, Child->Asl.Value.String);
Child->Asl.Value.String = ACPI_SIG_XXXX;
}
- strncpy (AslGbl_TableHeader.Signature, Child->Asl.Value.String, ACPI_NAME_SIZE);
+ ACPI_COPY_NAMESEG (AslGbl_TableHeader.Signature, Child->Asl.Value.String);
/* Revision */
@@ -573,12 +577,14 @@ CgWriteTableHeader (
/* OEMID */
Child = Child->Asl.Next;
- strncpy (AslGbl_TableHeader.OemId, Child->Asl.Value.String, ACPI_OEM_ID_SIZE);
+ memcpy (AslGbl_TableHeader.OemId, Child->Asl.Value.String,
+ strlen (Child->Asl.Value.String));
/* OEM TableID */
Child = Child->Asl.Next;
- strncpy (AslGbl_TableHeader.OemTableId, Child->Asl.Value.String, ACPI_OEM_TABLE_ID_SIZE);
+ memcpy (AslGbl_TableHeader.OemTableId, Child->Asl.Value.String,
+ strlen (Child->Asl.Value.String));
/* OEM Revision */
@@ -587,7 +593,7 @@ CgWriteTableHeader (
/* Compiler ID */
- ACPI_MOVE_NAME (AslGbl_TableHeader.AslCompilerId, ASL_CREATOR_ID);
+ ACPI_COPY_NAMESEG (AslGbl_TableHeader.AslCompilerId, ASL_CREATOR_ID);
/* Compiler version */
diff --git a/source/compiler/aslcompiler.l b/source/compiler/aslcompiler.l
index 72fbbef380c4..26c221e58875 100644
--- a/source/compiler/aslcompiler.l
+++ b/source/compiler/aslcompiler.l
@@ -813,7 +813,7 @@ NamePathTail [.]{NameSeg}
{NameSeg} { char *s;
count (0);
- s=UtLocalCacheCalloc (ACPI_NAME_SIZE + 1);
+ s=UtLocalCacheCalloc (ACPI_NAMESEG_SIZE + 1);
if (strcmp (AslCompilertext, "\\"))
{
/*
diff --git a/source/compiler/asldefine.h b/source/compiler/asldefine.h
index a13acec0bee6..8089d0b95a0b 100644
--- a/source/compiler/asldefine.h
+++ b/source/compiler/asldefine.h
@@ -162,7 +162,7 @@
#define ASL_CREATOR_ID "INTL"
#define ASL_DEFINE "__IASL__"
#define ASL_PREFIX "iASL: "
-#define ASL_COMPLIANCE "Supports ACPI Specification Revision 6.2A"
+#define ASL_COMPLIANCE "Supports ACPI Specification Revision 6.3"
/* Configuration constants */
diff --git a/source/compiler/aslerror.c b/source/compiler/aslerror.c
index 5d3a7764d255..a2f9fcef1766 100644
--- a/source/compiler/aslerror.c
+++ b/source/compiler/aslerror.c
@@ -1239,7 +1239,7 @@ AslElevateException (
return (AE_LIMIT);
}
- AslGbl_ElevatedMessages[AslGbl_ExpectedMessagesIndex] = MessageId;
+ AslGbl_ElevatedMessages[AslGbl_ElevatedMessagesIndex] = MessageId;
AslGbl_ElevatedMessagesIndex++;
return (AE_OK);
}
diff --git a/source/compiler/aslload.c b/source/compiler/aslload.c
index c910358d7efb..dfbdf7cefc4c 100644
--- a/source/compiler/aslload.c
+++ b/source/compiler/aslload.c
@@ -492,7 +492,7 @@ LdNamespace1Begin (
case AML_FIELD_OP:
Status = LdLoadFieldElements (Op, WalkState);
- return (Status);
+ break;
case AML_INT_CONNECTION_OP:
@@ -556,7 +556,8 @@ LdNamespace1Begin (
* We only want references to named objects:
* Store (2, WXYZ) -> Attempt to resolve the name
*/
- if (OpInfo->Class == AML_CLASS_NAMED_OBJECT)
+ if ((OpInfo->Class == AML_CLASS_NAMED_OBJECT) &&
+ (OpInfo->Type != AML_TYPE_NAMED_FIELD))
{
return (AE_OK);
}
@@ -702,7 +703,7 @@ LdNamespace1Begin (
/* However, this is an error -- operand to Scope must exist */
- if (strlen (Op->Asl.ExternalName) == ACPI_NAME_SIZE)
+ if (strlen (Op->Asl.ExternalName) == ACPI_NAMESEG_SIZE)
{
AslError (ASL_ERROR, ASL_MSG_NOT_FOUND, Op,
Op->Asl.ExternalName);
@@ -731,7 +732,7 @@ LdNamespace1Begin (
* 10/2015.
*/
if ((Node->Flags & ANOBJ_IS_EXTERNAL) &&
- (ACPI_COMPARE_NAME (AslGbl_TableSignature, "DSDT")))
+ (ACPI_COMPARE_NAMESEG (AslGbl_TableSignature, "DSDT")))
{
/* However, allowed if the reference is within a method */
@@ -1095,7 +1096,7 @@ LdNamespace2Begin (
{
/* Standalone NameSeg vs. NamePath */
- if (strlen (Arg->Asl.ExternalName) == ACPI_NAME_SIZE)
+ if (strlen (Arg->Asl.ExternalName) == ACPI_NAMESEG_SIZE)
{
AslError (ASL_ERROR, ASL_MSG_NOT_FOUND, Op,
Arg->Asl.ExternalName);
diff --git a/source/compiler/aslmessages.c b/source/compiler/aslmessages.c
index 07e9848233bc..0f31c655af78 100644
--- a/source/compiler/aslmessages.c
+++ b/source/compiler/aslmessages.c
@@ -342,7 +342,7 @@ const char *AslCompilerMsgs [] =
/* ASL_MSG_RANGE */ "Constant out of range",
/* ASL_MSG_BUFFER_ALLOCATION */ "Could not allocate line buffer",
/* ASL_MSG_MISSING_DEPENDENCY */ "Missing dependency",
-/* ASL_MSG_ILLEGAL_FORWARD_REF */ "Illegal forward reference",
+/* ASL_MSG_ILLEGAL_FORWARD_REF */ "Forward references are not supported by the ASL language",
/* ASL_MSG_ILLEGAL_METHOD_REF */ "Object is declared in a different method",
/* ASL_MSG_LOCAL_NOT_USED */ "Method Local is set but never used",
/* ASL_MSG_ARG_AS_LOCAL_NOT_USED */ "Method Argument (as a local) is set but never used",
diff --git a/source/compiler/aslmethod.c b/source/compiler/aslmethod.c
index 4563317dd65c..98884bc37ef8 100644
--- a/source/compiler/aslmethod.c
+++ b/source/compiler/aslmethod.c
@@ -228,7 +228,7 @@ MtMethodAnalysisWalkBegin (
* 1) _PS0 - One of these must exist: _PS1, _PS2, _PS3
* 2) _PS1/_PS2/_PS3: A _PS0 must exist
*/
- if (ACPI_COMPARE_NAME (METHOD_NAME__PS0, Op->Asl.NameSeg))
+ if (ACPI_COMPARE_NAMESEG (METHOD_NAME__PS0, Op->Asl.NameSeg))
{
/* For _PS0, one of _PS1/_PS2/_PS3 must exist */
@@ -241,9 +241,9 @@ MtMethodAnalysisWalkBegin (
}
}
else if (
- ACPI_COMPARE_NAME (METHOD_NAME__PS1, Op->Asl.NameSeg) ||
- ACPI_COMPARE_NAME (METHOD_NAME__PS2, Op->Asl.NameSeg) ||
- ACPI_COMPARE_NAME (METHOD_NAME__PS3, Op->Asl.NameSeg))
+ ACPI_COMPARE_NAMESEG (METHOD_NAME__PS1, Op->Asl.NameSeg) ||
+ ACPI_COMPARE_NAMESEG (METHOD_NAME__PS2, Op->Asl.NameSeg) ||
+ ACPI_COMPARE_NAMESEG (METHOD_NAME__PS3, Op->Asl.NameSeg))
{
/* For _PS1/_PS2/_PS3, a _PS0 must exist */
diff --git a/source/compiler/asloffset.c b/source/compiler/asloffset.c
index 4a99c39a3a7b..dd8e1b079103 100644
--- a/source/compiler/asloffset.c
+++ b/source/compiler/asloffset.c
@@ -258,7 +258,7 @@ LsAmlOffsetWalk (
/* Get offset of last nameseg and the actual data */
NamepathOffset = AslGbl_CurrentAmlOffset + Length +
- (Op->Asl.FinalAmlLength - ACPI_NAME_SIZE);
+ (Op->Asl.FinalAmlLength - ACPI_NAMESEG_SIZE);
DataOffset = AslGbl_CurrentAmlOffset + Length +
Op->Asl.FinalAmlLength;
@@ -323,7 +323,7 @@ LsAmlOffsetWalk (
/* Get offset of last nameseg and the actual data */
NamepathOffset = AslGbl_CurrentAmlOffset + Length +
- (NextOp->Asl.FinalAmlLength - ACPI_NAME_SIZE);
+ (NextOp->Asl.FinalAmlLength - ACPI_NAMESEG_SIZE);
DataOffset = AslGbl_CurrentAmlOffset + Length +
(NextOp->Asl.FinalAmlLength + 1);
@@ -370,7 +370,7 @@ LsAmlOffsetWalk (
/* Get offset of last nameseg and the actual data (flags byte) */
NamepathOffset = AslGbl_CurrentAmlOffset + Length +
- (NextOp->Asl.FinalAmlLength - ACPI_NAME_SIZE);
+ (NextOp->Asl.FinalAmlLength - ACPI_NAMESEG_SIZE);
DataOffset = AslGbl_CurrentAmlOffset + Length +
NextOp->Asl.FinalAmlLength;
@@ -394,7 +394,7 @@ LsAmlOffsetWalk (
/* Get offset of last nameseg and the actual data (PBlock address) */
NamepathOffset = AslGbl_CurrentAmlOffset + Length +
- (NextOp->Asl.FinalAmlLength - ACPI_NAME_SIZE);
+ (NextOp->Asl.FinalAmlLength - ACPI_NAMESEG_SIZE);
DataOffset = AslGbl_CurrentAmlOffset + Length +
(NextOp->Asl.FinalAmlLength + 1);
@@ -419,7 +419,7 @@ LsAmlOffsetWalk (
/* Get offset of last nameseg */
NamepathOffset = AslGbl_CurrentAmlOffset + Length +
- (NextOp->Asl.FinalAmlLength - ACPI_NAME_SIZE);
+ (NextOp->Asl.FinalAmlLength - ACPI_NAMESEG_SIZE);
LsEmitOffsetTableEntry (FileId, Node, NamepathOffset, 0,
Op->Asl.ParseOpName, 0, (UINT8) 0, Op->Asl.AmlOpcode);
diff --git a/source/compiler/asloperands.c b/source/compiler/asloperands.c
index 172f347063bc..67e16fd58b19 100644
--- a/source/compiler/asloperands.c
+++ b/source/compiler/asloperands.c
@@ -1087,13 +1087,13 @@ OpnDoDefinitionBlock (
if (Child->Asl.Value.String)
{
AslGbl_TableSignature = Child->Asl.Value.String;
- if (strlen (AslGbl_TableSignature) != ACPI_NAME_SIZE)
+ if (strlen (AslGbl_TableSignature) != ACPI_NAMESEG_SIZE)
{
AslError (ASL_ERROR, ASL_MSG_TABLE_SIGNATURE, Child,
"Length must be exactly 4 characters");
}
- for (i = 0; i < ACPI_NAME_SIZE; i++)
+ for (i = 0; i < ACPI_NAMESEG_SIZE; i++)
{
if (!isalnum ((int) AslGbl_TableSignature[i]))
{
diff --git a/source/compiler/aslopt.c b/source/compiler/aslopt.c
index 1b0c4d338a6c..6d2045f8229d 100644
--- a/source/compiler/aslopt.c
+++ b/source/compiler/aslopt.c
@@ -241,7 +241,7 @@ OptSearchToRoot (
* not match, and we cannot use this optimization.
*/
Path = &(((char *) TargetPath->Pointer)[
- TargetPath->Length - ACPI_NAME_SIZE]);
+ TargetPath->Length - ACPI_NAMESEG_SIZE]);
ScopeInfo.Scope.Node = CurrentNode;
/* Lookup the NameSeg using SEARCH_PARENT (search-to-root) */
@@ -275,7 +275,7 @@ OptSearchToRoot (
/* We must allocate a new string for the name (TargetPath gets deleted) */
- *NewPath = UtLocalCacheCalloc (ACPI_NAME_SIZE + 1);
+ *NewPath = UtLocalCacheCalloc (ACPI_NAMESEG_SIZE + 1);
strcpy (*NewPath, Path);
if (strncmp (*NewPath, "_T_", 3))
@@ -343,7 +343,7 @@ OptBuildShortestPath (
* can possibly have in common. (To optimize, we have to have at least 1)
*
* Note: The external NamePath string lengths are always a multiple of 5
- * (ACPI_NAME_SIZE + separator)
+ * (ACPI_NAMESEG_SIZE + separator)
*/
MaxCommonSegments = TargetPath->Length / ACPI_PATH_SEGMENT_LENGTH;
if (CurrentPath->Length < TargetPath->Length)
@@ -363,7 +363,7 @@ OptBuildShortestPath (
Index = (NumCommonSegments * ACPI_PATH_SEGMENT_LENGTH) + 1;
- if (!ACPI_COMPARE_NAME (
+ if (!ACPI_COMPARE_NAMESEG (
&(ACPI_CAST_PTR (char, TargetPath->Pointer)) [Index],
&(ACPI_CAST_PTR (char, CurrentPath->Pointer)) [Index]))
{
@@ -713,7 +713,7 @@ OptOptimizeNamePath (
* to be any possibility that it can be optimized to a shorter string
*/
AmlNameStringLength = strlen (AmlNameString);
- if (AmlNameStringLength <= ACPI_NAME_SIZE)
+ if (AmlNameStringLength <= ACPI_NAMESEG_SIZE)
{
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OPTIMIZATIONS,
"NAMESEG %4.4s\n", AmlNameString));
diff --git a/source/compiler/aslpredef.c b/source/compiler/aslpredef.c
index ab29105ab6f2..1f850239c08e 100644
--- a/source/compiler/aslpredef.c
+++ b/source/compiler/aslpredef.c
@@ -578,7 +578,7 @@ ApCheckForPredefinedName (
ThisName = AcpiGbl_PredefinedMethods;
for (i = 0; ThisName->Info.Name[0]; i++)
{
- if (ACPI_COMPARE_NAME (Name, ThisName->Info.Name))
+ if (ACPI_COMPARE_NAMESEG (Name, ThisName->Info.Name))
{
/* Return index into predefined array */
return (i);
@@ -592,7 +592,7 @@ ApCheckForPredefinedName (
ThisName = AcpiGbl_ResourceNames;
while (ThisName->Info.Name[0])
{
- if (ACPI_COMPARE_NAME (Name, ThisName->Info.Name))
+ if (ACPI_COMPARE_NAMESEG (Name, ThisName->Info.Name))
{
return (ACPI_PREDEFINED_NAME);
}
@@ -603,7 +603,7 @@ ApCheckForPredefinedName (
ThisName = AcpiGbl_ScopeNames;
while (ThisName->Info.Name[0])
{
- if (ACPI_COMPARE_NAME (Name, ThisName->Info.Name))
+ if (ACPI_COMPARE_NAMESEG (Name, ThisName->Info.Name))
{
return (ACPI_PREDEFINED_NAME);
}
diff --git a/source/compiler/asltransform.c b/source/compiler/asltransform.c
index e9f0d049b939..5237c638d743 100644
--- a/source/compiler/asltransform.c
+++ b/source/compiler/asltransform.c
@@ -553,7 +553,7 @@ TrDoDefinitionBlock (
* to be at the root of the namespace; Therefore, namepath
* optimization can only be performed on the DSDT.
*/
- if (!ACPI_COMPARE_NAME (Next->Asl.Value.String, ACPI_SIG_DSDT))
+ if (!ACPI_COMPARE_NAMESEG (Next->Asl.Value.String, ACPI_SIG_DSDT))
{
AslGbl_ReferenceOptimizationFlag = FALSE;
}
diff --git a/source/compiler/aslutils.c b/source/compiler/aslutils.c
index 1fc98bb524b9..6b0d5eff31d7 100644
--- a/source/compiler/aslutils.c
+++ b/source/compiler/aslutils.c
@@ -752,7 +752,7 @@ UtPadNameWithUnderscores (
UINT32 i;
- for (i = 0; (i < ACPI_NAME_SIZE); i++)
+ for (i = 0; (i < ACPI_NAMESEG_SIZE); i++)
{
if (*NameSeg)
{
@@ -823,7 +823,7 @@ UtAttachNameseg (
UtPadNameWithUnderscores (Name, PaddedNameSeg);
}
- ACPI_MOVE_NAME (Op->Asl.NameSeg, PaddedNameSeg);
+ ACPI_COPY_NAMESEG (Op->Asl.NameSeg, PaddedNameSeg);
}
diff --git a/source/compiler/aslxref.c b/source/compiler/aslxref.c
index b3067feb7c4e..99f6c4a07c0b 100644
--- a/source/compiler/aslxref.c
+++ b/source/compiler/aslxref.c
@@ -613,7 +613,8 @@ XfNamespaceLocateBegin (
(Op->Asl.ParseOpcode != PARSEOP_NAMESTRING) &&
(Op->Asl.ParseOpcode != PARSEOP_NAMESEG) &&
(Op->Asl.ParseOpcode != PARSEOP_METHODCALL) &&
- (Op->Asl.ParseOpcode != PARSEOP_EXTERNAL))
+ (Op->Asl.ParseOpcode != PARSEOP_EXTERNAL) &&
+ (OpInfo->Type != AML_TYPE_NAMED_FIELD))
{
return_ACPI_STATUS (AE_OK);
}
@@ -637,7 +638,8 @@ XfNamespaceLocateBegin (
if ((Op->Asl.ParseOpcode == PARSEOP_NAMESTRING) ||
(Op->Asl.ParseOpcode == PARSEOP_NAMESEG) ||
(Op->Asl.ParseOpcode == PARSEOP_METHODCALL) ||
- (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL))
+ (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL) ||
+ (OpInfo->Type == AML_TYPE_NAMED_FIELD))
{
/*
* These are name references, do not push the scope stack
@@ -674,6 +676,10 @@ XfNamespaceLocateBegin (
Path = NextOp->Asl.Value.String;
}
+ else if (OpInfo->Type == AML_TYPE_NAMED_FIELD)
+ {
+ Path = Op->Asl.Child->Asl.Value.String;
+ }
else
{
Path = Op->Asl.Value.String;
@@ -702,7 +708,7 @@ XfNamespaceLocateBegin (
* We didn't find the name reference by path -- we can qualify this
* a little better before we print an error message
*/
- if (strlen (Path) == ACPI_NAME_SIZE)
+ if (strlen (Path) == ACPI_NAMESEG_SIZE)
{
/* A simple, one-segment ACPI name */
@@ -764,7 +770,7 @@ XfNamespaceLocateBegin (
* doesn't exist or just can't be reached. However, we
* can differentiate between a NameSeg vs. NamePath.
*/
- if (strlen (Op->Asl.ExternalName) == ACPI_NAME_SIZE)
+ if (strlen (Op->Asl.ExternalName) == ACPI_NAMESEG_SIZE)
{
AslError (ASL_ERROR, ASL_MSG_NOT_FOUND, Op,
Op->Asl.ExternalName);
diff --git a/source/compiler/dtcompile.c b/source/compiler/dtcompile.c
index 88a7a8b0550f..95fcb2d460d8 100644
--- a/source/compiler/dtcompile.c
+++ b/source/compiler/dtcompile.c
@@ -418,7 +418,7 @@ DtCompileDataTable (
* Currently, these are the FACS and RSDP. Also check for an OEMx table,
* these tables have user-defined contents.
*/
- if (ACPI_COMPARE_NAME (Signature, ACPI_SIG_FACS))
+ if (ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_FACS))
{
Status = DtCompileFacs (FieldList);
if (ACPI_FAILURE (Status))
@@ -434,7 +434,7 @@ DtCompileDataTable (
Status = DtCompileRsdp (FieldList);
return (Status);
}
- else if (ACPI_COMPARE_NAME (Signature, ACPI_SIG_S3PT))
+ else if (ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_S3PT))
{
Status = DtCompileS3pt (FieldList);
if (ACPI_FAILURE (Status))
diff --git a/source/compiler/dttemplate.c b/source/compiler/dttemplate.c
index 8e3124a36520..4cc6c0403252 100644
--- a/source/compiler/dttemplate.c
+++ b/source/compiler/dttemplate.c
@@ -204,11 +204,11 @@ AcpiUtIsSpecialTable (
char *Signature)
{
- if (ACPI_COMPARE_NAME (Signature, ACPI_SIG_DSDT) ||
- ACPI_COMPARE_NAME (Signature, ACPI_SIG_OSDT) ||
- ACPI_COMPARE_NAME (Signature, ACPI_SIG_SSDT) ||
- ACPI_COMPARE_NAME (Signature, ACPI_SIG_FACS) ||
- ACPI_COMPARE_NAME (Signature, ACPI_RSDP_NAME))
+ if (ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_DSDT) ||
+ ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_OSDT) ||
+ ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_SSDT) ||
+ ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_FACS) ||
+ ACPI_COMPARE_NAMESEG (Signature, ACPI_RSDP_NAME))
{
return (TRUE);
}
@@ -346,7 +346,7 @@ DtCreateOneTemplateFile (
* 2) Signature must be a recognized ACPI table
* 3) There must be a template associated with the signature
*/
- if (strlen (Signature) != ACPI_NAME_SIZE)
+ if (strlen (Signature) != ACPI_NAMESEG_SIZE)
{
fprintf (stderr,
"%s: Invalid ACPI table signature "
@@ -567,7 +567,7 @@ DtCreateOneTemplate (
AcpiOsPrintf (" (AML byte code table)\n");
AcpiOsPrintf (" */\n");
- if (ACPI_COMPARE_NAME (Signature, ACPI_SIG_DSDT))
+ if (ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_DSDT))
{
Actual = DtEmitDefinitionBlock (
File, DisasmFilename, ACPI_SIG_DSDT, 1);
@@ -590,7 +590,7 @@ DtCreateOneTemplate (
}
}
}
- else if (ACPI_COMPARE_NAME (Signature, ACPI_SIG_SSDT))
+ else if (ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_SSDT))
{
Actual = DtEmitDefinitionBlock (
File, DisasmFilename, ACPI_SIG_SSDT, 1);
@@ -600,7 +600,7 @@ DtCreateOneTemplate (
goto Cleanup;
}
}
- else if (ACPI_COMPARE_NAME (Signature, ACPI_SIG_OSDT))
+ else if (ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_OSDT))
{
Actual = DtEmitDefinitionBlock (
File, DisasmFilename, ACPI_SIG_OSDT, 1);
@@ -610,12 +610,12 @@ DtCreateOneTemplate (
goto Cleanup;
}
}
- else if (ACPI_COMPARE_NAME (Signature, ACPI_SIG_FACS))
+ else if (ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_FACS))
{
AcpiDmDumpDataTable (ACPI_CAST_PTR (ACPI_TABLE_HEADER,
TemplateFacs));
}
- else if (ACPI_COMPARE_NAME (Signature, ACPI_RSDP_NAME))
+ else if (ACPI_COMPARE_NAMESEG (Signature, ACPI_RSDP_NAME))
{
AcpiDmDumpDataTable (ACPI_CAST_PTR (ACPI_TABLE_HEADER,
TemplateRsdp));
diff --git a/source/components/debugger/dbexec.c b/source/components/debugger/dbexec.c
index 49d1180fba58..8897fa6dd642 100644
--- a/source/components/debugger/dbexec.c
+++ b/source/components/debugger/dbexec.c
@@ -658,7 +658,7 @@ AcpiDbExecute (
/* Dump a _PLD buffer if present */
- if (ACPI_COMPARE_NAME ((ACPI_CAST_PTR (ACPI_NAMESPACE_NODE,
+ if (ACPI_COMPARE_NAMESEG ((ACPI_CAST_PTR (ACPI_NAMESPACE_NODE,
AcpiGbl_DbMethodInfo.Method)->Name.Ascii),
METHOD_NAME__PLD))
{
diff --git a/source/components/debugger/dbnames.c b/source/components/debugger/dbnames.c
index 3c01e8088651..2c9af4be741d 100644
--- a/source/components/debugger/dbnames.c
+++ b/source/components/debugger/dbnames.c
@@ -557,7 +557,7 @@ AcpiDbFindNameInNamespace (
char *AcpiNamePtr = AcpiName;
- if (strlen (NameArg) > ACPI_NAME_SIZE)
+ if (strlen (NameArg) > ACPI_NAMESEG_SIZE)
{
AcpiOsPrintf ("Name must be no longer than 4 characters\n");
return (AE_OK);
diff --git a/source/components/disassembler/dmbuffer.c b/source/components/disassembler/dmbuffer.c
index a58ff2f5212a..f61c83781b5d 100644
--- a/source/components/disassembler/dmbuffer.c
+++ b/source/components/disassembler/dmbuffer.c
@@ -736,7 +736,7 @@ AcpiDmIsPldBuffer (
{
Node = ParentOp->Common.Node;
- if (ACPI_COMPARE_NAME (Node->Name.Ascii, METHOD_NAME__PLD))
+ if (ACPI_COMPARE_NAMESEG (Node->Name.Ascii, METHOD_NAME__PLD))
{
/* Ignore the Size argument in the disassembly of this buffer op */
@@ -770,7 +770,7 @@ AcpiDmIsPldBuffer (
{
Node = ParentOp->Common.Node;
- if (ACPI_COMPARE_NAME (Node->Name.Ascii, METHOD_NAME__PLD))
+ if (ACPI_COMPARE_NAMESEG (Node->Name.Ascii, METHOD_NAME__PLD))
{
/* Ignore the Size argument in the disassembly of this buffer op */
@@ -1100,7 +1100,7 @@ AcpiDmCheckForHardwareId (
/* Check for _HID - has one argument */
- if (ACPI_COMPARE_NAME (&Name, METHOD_NAME__HID))
+ if (ACPI_COMPARE_NAMESEG (&Name, METHOD_NAME__HID))
{
AcpiDmGetHardwareIdType (NextOp);
return;
@@ -1108,7 +1108,7 @@ AcpiDmCheckForHardwareId (
/* Exit if not _CID */
- if (!ACPI_COMPARE_NAME (&Name, METHOD_NAME__CID))
+ if (!ACPI_COMPARE_NAMESEG (&Name, METHOD_NAME__CID))
{
return;
}
diff --git a/source/components/disassembler/dmnames.c b/source/components/disassembler/dmnames.c
index bbff3e0a6988..d07af72ffe02 100644
--- a/source/components/disassembler/dmnames.c
+++ b/source/components/disassembler/dmnames.c
@@ -199,8 +199,8 @@ AcpiDmDumpName (
/* Remove all trailing underscores from the name */
- Length = ACPI_NAME_SIZE;
- for (i = (ACPI_NAME_SIZE - 1); i != 0; i--)
+ Length = ACPI_NAMESEG_SIZE;
+ for (i = (ACPI_NAMESEG_SIZE - 1); i != 0; i--)
{
if (NewName[i] == '_')
{
@@ -378,7 +378,7 @@ AcpiDmNamestring (
AcpiOsPrintf (".");
}
- Name += ACPI_NAME_SIZE;
+ Name += ACPI_NAMESEG_SIZE;
}
}
diff --git a/source/components/dispatcher/dsfield.c b/source/components/dispatcher/dsfield.c
index cc0a271e41d0..3aff4db10262 100644
--- a/source/components/dispatcher/dsfield.c
+++ b/source/components/dispatcher/dsfield.c
@@ -685,7 +685,7 @@ AcpiDsCreateField (
Info.RegionNode = RegionNode;
Status = AcpiDsGetFieldNames (&Info, WalkState, Arg->Common.Next);
- if (Info.RegionNode->Type == ACPI_ADR_SPACE_PLATFORM_COMM &&
+ if (Info.RegionNode->Object->Region.SpaceId == ACPI_ADR_SPACE_PLATFORM_COMM &&
!(RegionNode->Object->Field.InternalPccBuffer
= ACPI_ALLOCATE_ZEROED(Info.RegionNode->Object->Region.Length)))
{
diff --git a/source/components/dispatcher/dsinit.c b/source/components/dispatcher/dsinit.c
index 334187a395bf..e7045f461a8a 100644
--- a/source/components/dispatcher/dsinit.c
+++ b/source/components/dispatcher/dsinit.c
@@ -359,7 +359,7 @@ AcpiDsInitializeObjects (
/* DSDT is always the first AML table */
- if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_DSDT))
+ if (ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_DSDT))
{
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
"\nInitializing Namespace objects:\n"));
diff --git a/source/components/events/evgpeinit.c b/source/components/events/evgpeinit.c
index 4aec9b80bac2..b7e02a060bcf 100644
--- a/source/components/events/evgpeinit.c
+++ b/source/components/events/evgpeinit.c
@@ -447,7 +447,7 @@ AcpiEvMatchGpeMethod (
ACPI_STATUS Status;
UINT32 GpeNumber;
UINT8 TempGpeNumber;
- char Name[ACPI_NAME_SIZE + 1];
+ char Name[ACPI_NAMESEG_SIZE + 1];
UINT8 Type;
@@ -468,7 +468,7 @@ AcpiEvMatchGpeMethod (
* 1) Extract the method name and null terminate it
*/
ACPI_MOVE_32_TO_32 (Name, &MethodNode->Name.Integer);
- Name[ACPI_NAME_SIZE] = 0;
+ Name[ACPI_NAMESEG_SIZE] = 0;
/* 2) Name must begin with an underscore */
diff --git a/source/components/executer/exnames.c b/source/components/executer/exnames.c
index f652dfab68ad..70a01467a969 100644
--- a/source/components/executer/exnames.c
+++ b/source/components/executer/exnames.c
@@ -207,11 +207,11 @@ AcpiExAllocateNameString (
{
/* Special case for root */
- SizeNeeded = 1 + (ACPI_NAME_SIZE * NumNameSegs) + 2 + 1;
+ SizeNeeded = 1 + (ACPI_NAMESEG_SIZE * NumNameSegs) + 2 + 1;
}
else
{
- SizeNeeded = PrefixCount + (ACPI_NAME_SIZE * NumNameSegs) + 2 + 1;
+ SizeNeeded = PrefixCount + (ACPI_NAMESEG_SIZE * NumNameSegs) + 2 + 1;
}
/*
@@ -310,7 +310,7 @@ AcpiExNameSegment (
}
for (Index = 0;
- (Index < ACPI_NAME_SIZE) && (AcpiUtValidNameChar (*AmlAddress, 0));
+ (Index < ACPI_NAMESEG_SIZE) && (AcpiUtValidNameChar (*AmlAddress, 0));
Index++)
{
CharBuf[Index] = *AmlAddress++;
diff --git a/source/components/namespace/nsaccess.c b/source/components/namespace/nsaccess.c
index d8e3b8414618..94dba1307a59 100644
--- a/source/components/namespace/nsaccess.c
+++ b/source/components/namespace/nsaccess.c
@@ -851,7 +851,7 @@ AcpiNsLookup (
/* Point to next name segment and make this node current */
- Path += ACPI_NAME_SIZE;
+ Path += ACPI_NAMESEG_SIZE;
CurrentNode = ThisNode;
}
diff --git a/source/components/namespace/nsdump.c b/source/components/namespace/nsdump.c
index 11cb03e3bd5c..6ea04525752b 100644
--- a/source/components/namespace/nsdump.c
+++ b/source/components/namespace/nsdump.c
@@ -236,7 +236,7 @@ AcpiNsPrintPathname (
AcpiOsPrintf ("?");
}
- Pathname += ACPI_NAME_SIZE;
+ Pathname += ACPI_NAMESEG_SIZE;
NumSegments--;
if (NumSegments)
{
diff --git a/source/components/namespace/nsinit.c b/source/components/namespace/nsinit.c
index ccdef3c955cc..4dd28fd4e69e 100644
--- a/source/components/namespace/nsinit.c
+++ b/source/components/namespace/nsinit.c
@@ -662,7 +662,7 @@ AcpiNsFindIniMethods (
/* We are only looking for methods named _INI */
- if (!ACPI_COMPARE_NAME (Node->Name.Ascii, METHOD_NAME__INI))
+ if (!ACPI_COMPARE_NAMESEG (Node->Name.Ascii, METHOD_NAME__INI))
{
return (AE_OK);
}
@@ -839,7 +839,7 @@ AcpiNsInitOneDevice (
* Note: We know there is an _INI within this subtree, but it may not be
* under this particular device, it may be lower in the branch.
*/
- if (!ACPI_COMPARE_NAME (DeviceNode->Name.Ascii, "_SB_") ||
+ if (!ACPI_COMPARE_NAMESEG (DeviceNode->Name.Ascii, "_SB_") ||
DeviceNode->Parent != AcpiGbl_RootNode)
{
ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname (
diff --git a/source/components/namespace/nsnames.c b/source/components/namespace/nsnames.c
index 0bab2f236fe1..7633e2ef2417 100644
--- a/source/components/namespace/nsnames.c
+++ b/source/components/namespace/nsnames.c
@@ -273,8 +273,8 @@ AcpiNsHandleToName (
/* Just copy the ACPI name from the Node and zero terminate it */
NodeName = AcpiUtGetNodeName (Node);
- ACPI_MOVE_NAME (Buffer->Pointer, NodeName);
- ((char *) Buffer->Pointer) [ACPI_NAME_SIZE] = 0;
+ ACPI_COPY_NAMESEG (Buffer->Pointer, NodeName);
+ ((char *) Buffer->Pointer) [ACPI_NAMESEG_SIZE] = 0;
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%4.4s\n", (char *) Buffer->Pointer));
return_ACPI_STATUS (AE_OK);
@@ -374,7 +374,7 @@ AcpiNsBuildNormalizedPath (
BOOLEAN NoTrailing)
{
UINT32 Length = 0, i;
- char Name[ACPI_NAME_SIZE];
+ char Name[ACPI_NAMESEG_SIZE];
BOOLEAN DoNoTrailing;
char c, *Left, *Right;
ACPI_NAMESPACE_NODE *NextNode;
@@ -657,7 +657,7 @@ AcpiNsNormalizePathname (
{
/* Do one nameseg at a time */
- for (i = 0; (i < ACPI_NAME_SIZE) && *InputPath; i++)
+ for (i = 0; (i < ACPI_NAMESEG_SIZE) && *InputPath; i++)
{
if ((i == 0) || (*InputPath != '_')) /* First char is allowed to be underscore */
{
diff --git a/source/components/namespace/nsobject.c b/source/components/namespace/nsobject.c
index 3655b0652976..9c8865f0ef26 100644
--- a/source/components/namespace/nsobject.c
+++ b/source/components/namespace/nsobject.c
@@ -352,6 +352,11 @@ AcpiNsDetachObject (
}
}
+ if (ObjDesc->Common.Type == ACPI_TYPE_REGION)
+ {
+ AcpiUtRemoveAddressRange(ObjDesc->Region.SpaceId, Node);
+ }
+
/* Clear the Node entry in all cases */
Node->Object = NULL;
diff --git a/source/components/namespace/nsparse.c b/source/components/namespace/nsparse.c
index e559223a1b45..43d261e48711 100644
--- a/source/components/namespace/nsparse.c
+++ b/source/components/namespace/nsparse.c
@@ -365,7 +365,7 @@ AcpiNsOneCompleteParse (
/* Found OSDT table, enable the namespace override feature */
- if (ACPI_COMPARE_NAME(Table->Signature, ACPI_SIG_OSDT) &&
+ if (ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_OSDT) &&
PassNumber == ACPI_IMODE_LOAD_PASS1)
{
WalkState->NamespaceOverride = TRUE;
diff --git a/source/components/namespace/nsrepair.c b/source/components/namespace/nsrepair.c
index 6c9e2b2e1eaa..885d50bf1a3f 100644
--- a/source/components/namespace/nsrepair.c
+++ b/source/components/namespace/nsrepair.c
@@ -470,7 +470,7 @@ AcpiNsMatchSimpleRepair (
ThisName = AcpiObjectRepairInfo;
while (ThisName->ObjectConverter)
{
- if (ACPI_COMPARE_NAME (Node->Name.Ascii, ThisName->Name))
+ if (ACPI_COMPARE_NAMESEG (Node->Name.Ascii, ThisName->Name))
{
/* Check if we can actually repair this name/type combination */
diff --git a/source/components/namespace/nsrepair2.c b/source/components/namespace/nsrepair2.c
index 9c6ee4f75077..a0b10747dc80 100644
--- a/source/components/namespace/nsrepair2.c
+++ b/source/components/namespace/nsrepair2.c
@@ -169,7 +169,7 @@ ACPI_STATUS (*ACPI_REPAIR_FUNCTION) (
typedef struct acpi_repair_info
{
- char Name[ACPI_NAME_SIZE];
+ char Name[ACPI_NAMESEG_SIZE];
ACPI_REPAIR_FUNCTION RepairFunction;
} ACPI_REPAIR_INFO;
@@ -358,7 +358,7 @@ AcpiNsMatchComplexRepair (
ThisName = AcpiNsRepairableNames;
while (ThisName->RepairFunction)
{
- if (ACPI_COMPARE_NAME (Node->Name.Ascii, ThisName->Name))
+ if (ACPI_COMPARE_NAMESEG (Node->Name.Ascii, ThisName->Name))
{
return (ThisName);
}
diff --git a/source/components/namespace/nsutils.c b/source/components/namespace/nsutils.c
index 4a9f0313dda0..85732ff8b7bd 100644
--- a/source/components/namespace/nsutils.c
+++ b/source/components/namespace/nsutils.c
@@ -351,7 +351,7 @@ AcpiNsGetInternalNameLength (
}
}
- Info->Length = (ACPI_NAME_SIZE * Info->NumSegments) +
+ Info->Length = (ACPI_NAMESEG_SIZE * Info->NumSegments) +
4 + Info->NumCarats;
Info->NextExternalChar = NextExternalChar;
@@ -443,7 +443,7 @@ AcpiNsBuildInternalName (
for (; NumSegments; NumSegments--)
{
- for (i = 0; i < ACPI_NAME_SIZE; i++)
+ for (i = 0; i < ACPI_NAMESEG_SIZE; i++)
{
if (ACPI_IS_PATH_SEPARATOR (*ExternalName) ||
(*ExternalName == 0))
@@ -472,7 +472,7 @@ AcpiNsBuildInternalName (
/* Move on the next segment */
ExternalName++;
- Result += ACPI_NAME_SIZE;
+ Result += ACPI_NAMESEG_SIZE;
}
/* Terminate the string */
@@ -721,12 +721,12 @@ AcpiNsExternalizeName (
/* Copy and validate the 4-char name segment */
- ACPI_MOVE_NAME (&(*ConvertedName)[j],
+ ACPI_COPY_NAMESEG (&(*ConvertedName)[j],
&InternalName[NamesIndex]);
AcpiUtRepairName (&(*ConvertedName)[j]);
- j += ACPI_NAME_SIZE;
- NamesIndex += ACPI_NAME_SIZE;
+ j += ACPI_NAMESEG_SIZE;
+ NamesIndex += ACPI_NAMESEG_SIZE;
}
}
diff --git a/source/components/namespace/nsxfname.c b/source/components/namespace/nsxfname.c
index a946b5410205..7332a92f3e87 100644
--- a/source/components/namespace/nsxfname.c
+++ b/source/components/namespace/nsxfname.c
@@ -691,8 +691,8 @@ AcpiInstallMethod (
/* Table must be a DSDT or SSDT */
- if (!ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_DSDT) &&
- !ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_SSDT))
+ if (!ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_DSDT) &&
+ !ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_SSDT))
{
return (AE_BAD_HEADER);
}
diff --git a/source/components/parser/psargs.c b/source/components/parser/psargs.c
index 3f4ffeed6a38..c9faa95bc21d 100644
--- a/source/components/parser/psargs.c
+++ b/source/components/parser/psargs.c
@@ -314,21 +314,21 @@ AcpiPsGetNextNamestring (
/* Two name segments */
- End += 1 + (2 * ACPI_NAME_SIZE);
+ End += 1 + (2 * ACPI_NAMESEG_SIZE);
break;
case AML_MULTI_NAME_PREFIX:
/* Multiple name segments, 4 chars each, count in next byte */
- End += 2 + (*(End + 1) * ACPI_NAME_SIZE);
+ End += 2 + (*(End + 1) * ACPI_NAMESEG_SIZE);
break;
default:
/* Single name segment */
- End += ACPI_NAME_SIZE;
+ End += ACPI_NAMESEG_SIZE;
break;
}
@@ -708,7 +708,7 @@ AcpiPsGetNextField (
ACPI_MOVE_32_TO_32 (&Name, ParserState->Aml);
AcpiPsSetName (Field, Name);
- ParserState->Aml += ACPI_NAME_SIZE;
+ ParserState->Aml += ACPI_NAMESEG_SIZE;
ASL_CV_CAPTURE_COMMENTS_ONLY (ParserState);
diff --git a/source/components/resources/rsxface.c b/source/components/resources/rsxface.c
index 1a624dc2653f..2e8130b3e9f1 100644
--- a/source/components/resources/rsxface.c
+++ b/source/components/resources/rsxface.c
@@ -825,10 +825,10 @@ AcpiWalkResources (
/* Parameter validation */
if (!DeviceHandle || !UserFunction || !Name ||
- (!ACPI_COMPARE_NAME (Name, METHOD_NAME__CRS) &&
- !ACPI_COMPARE_NAME (Name, METHOD_NAME__PRS) &&
- !ACPI_COMPARE_NAME (Name, METHOD_NAME__AEI) &&
- !ACPI_COMPARE_NAME (Name, METHOD_NAME__DMA)))
+ (!ACPI_COMPARE_NAMESEG (Name, METHOD_NAME__CRS) &&
+ !ACPI_COMPARE_NAMESEG (Name, METHOD_NAME__PRS) &&
+ !ACPI_COMPARE_NAMESEG (Name, METHOD_NAME__AEI) &&
+ !ACPI_COMPARE_NAMESEG (Name, METHOD_NAME__DMA)))
{
return_ACPI_STATUS (AE_BAD_PARAMETER);
}
diff --git a/source/components/tables/tbdata.c b/source/components/tables/tbdata.c
index 1fc20a38b37d..9d86fdbc70ba 100644
--- a/source/components/tables/tbdata.c
+++ b/source/components/tables/tbdata.c
@@ -676,7 +676,7 @@ AcpiTbVerifyTempTable (
/* If a particular signature is expected (DSDT/FACS), it must match */
if (Signature &&
- !ACPI_COMPARE_NAME (&TableDesc->Signature, Signature))
+ !ACPI_COMPARE_NAMESEG (&TableDesc->Signature, Signature))
{
ACPI_BIOS_ERROR ((AE_INFO,
"Invalid signature 0x%X for ACPI table, expected [%s]",
diff --git a/source/components/tables/tbfind.c b/source/components/tables/tbfind.c
index 4ec53043f66d..3119ddb11ecb 100644
--- a/source/components/tables/tbfind.c
+++ b/source/components/tables/tbfind.c
@@ -207,7 +207,7 @@ AcpiTbFindTable (
/* Normalize the input strings */
memset (&Header, 0, sizeof (ACPI_TABLE_HEADER));
- ACPI_MOVE_NAME (Header.Signature, Signature);
+ ACPI_COPY_NAMESEG (Header.Signature, Signature);
strncpy (Header.OemId, OemId, ACPI_OEM_ID_SIZE);
strncpy (Header.OemTableId, OemTableId, ACPI_OEM_TABLE_ID_SIZE);
@@ -217,7 +217,7 @@ AcpiTbFindTable (
for (i = 0; i < AcpiGbl_RootTableList.CurrentTableCount; ++i)
{
if (memcmp (&(AcpiGbl_RootTableList.Tables[i].Signature),
- Header.Signature, ACPI_NAME_SIZE))
+ Header.Signature, ACPI_NAMESEG_SIZE))
{
/* Not the requested table */
@@ -245,7 +245,7 @@ AcpiTbFindTable (
/* Check for table match on all IDs */
if (!memcmp (AcpiGbl_RootTableList.Tables[i].Pointer->Signature,
- Header.Signature, ACPI_NAME_SIZE) &&
+ Header.Signature, ACPI_NAMESEG_SIZE) &&
(!OemId[0] ||
!memcmp (AcpiGbl_RootTableList.Tables[i].Pointer->OemId,
Header.OemId, ACPI_OEM_ID_SIZE)) &&
diff --git a/source/components/tables/tbinstal.c b/source/components/tables/tbinstal.c
index fbb85ce79e8c..c1d470224ddc 100644
--- a/source/components/tables/tbinstal.c
+++ b/source/components/tables/tbinstal.c
@@ -274,7 +274,7 @@ AcpiTbInstallStandardTable (
*/
if (!Reload &&
AcpiGbl_DisableSsdtTableInstall &&
- ACPI_COMPARE_NAME (&NewTableDesc.Signature, ACPI_SIG_SSDT))
+ ACPI_COMPARE_NAMESEG (&NewTableDesc.Signature, ACPI_SIG_SSDT))
{
ACPI_INFO ((
"Ignoring installation of %4.4s at %8.8X%8.8X",
diff --git a/source/components/tables/tbprint.c b/source/components/tables/tbprint.c
index ffa4856b3ea0..0ff6a6ceec5d 100644
--- a/source/components/tables/tbprint.c
+++ b/source/components/tables/tbprint.c
@@ -225,10 +225,10 @@ AcpiTbCleanupTableHeader (
memcpy (OutHeader, Header, sizeof (ACPI_TABLE_HEADER));
- AcpiTbFixString (OutHeader->Signature, ACPI_NAME_SIZE);
+ AcpiTbFixString (OutHeader->Signature, ACPI_NAMESEG_SIZE);
AcpiTbFixString (OutHeader->OemId, ACPI_OEM_ID_SIZE);
AcpiTbFixString (OutHeader->OemTableId, ACPI_OEM_TABLE_ID_SIZE);
- AcpiTbFixString (OutHeader->AslCompilerId, ACPI_NAME_SIZE);
+ AcpiTbFixString (OutHeader->AslCompilerId, ACPI_NAMESEG_SIZE);
}
@@ -253,7 +253,7 @@ AcpiTbPrintTableHeader (
ACPI_TABLE_HEADER LocalHeader;
- if (ACPI_COMPARE_NAME (Header->Signature, ACPI_SIG_FACS))
+ if (ACPI_COMPARE_NAMESEG (Header->Signature, ACPI_SIG_FACS))
{
/* FACS only has signature and length fields */
@@ -320,8 +320,8 @@ AcpiTbVerifyChecksum (
* They are the odd tables, have no standard ACPI header and no checksum
*/
- if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_S3PT) ||
- ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_FACS))
+ if (ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_S3PT) ||
+ ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_FACS))
{
return (AE_OK);
}
diff --git a/source/components/tables/tbutils.c b/source/components/tables/tbutils.c
index 9bb3fe89bbf3..badee3c5c671 100644
--- a/source/components/tables/tbutils.c
+++ b/source/components/tables/tbutils.c
@@ -503,7 +503,7 @@ AcpiTbParseRootTable (
ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL, FALSE, TRUE, &TableIndex);
if (ACPI_SUCCESS (Status) &&
- ACPI_COMPARE_NAME (
+ ACPI_COMPARE_NAMESEG (
&AcpiGbl_RootTableList.Tables[TableIndex].Signature,
ACPI_SIG_FADT))
{
diff --git a/source/components/tables/tbxface.c b/source/components/tables/tbxface.c
index 097e535df8c3..ae5991aa00b5 100644
--- a/source/components/tables/tbxface.c
+++ b/source/components/tables/tbxface.c
@@ -401,7 +401,7 @@ AcpiGetTableHeader (
for (i = 0, j = 0; i < AcpiGbl_RootTableList.CurrentTableCount; i++)
{
- if (!ACPI_COMPARE_NAME (
+ if (!ACPI_COMPARE_NAMESEG (
&(AcpiGbl_RootTableList.Tables[i].Signature), Signature))
{
continue;
@@ -504,7 +504,7 @@ AcpiGetTable (
{
TableDesc = &AcpiGbl_RootTableList.Tables[i];
- if (!ACPI_COMPARE_NAME (&TableDesc->Signature, Signature))
+ if (!ACPI_COMPARE_NAMESEG (&TableDesc->Signature, Signature))
{
continue;
}
diff --git a/source/components/tables/tbxfload.c b/source/components/tables/tbxfload.c
index bda55ea2ac74..217d54bf0a60 100644
--- a/source/components/tables/tbxfload.c
+++ b/source/components/tables/tbxfload.c
@@ -275,7 +275,7 @@ AcpiTbLoadNamespace (
Table = &AcpiGbl_RootTableList.Tables[AcpiGbl_DsdtIndex];
if (!AcpiGbl_RootTableList.CurrentTableCount ||
- !ACPI_COMPARE_NAME (Table->Signature.Ascii, ACPI_SIG_DSDT) ||
+ !ACPI_COMPARE_NAMESEG (Table->Signature.Ascii, ACPI_SIG_DSDT) ||
ACPI_FAILURE (AcpiTbValidateTable (Table)))
{
Status = AE_NO_ACPI_TABLES;
@@ -334,9 +334,9 @@ AcpiTbLoadNamespace (
Table = &AcpiGbl_RootTableList.Tables[i];
if (!Table->Address ||
- (!ACPI_COMPARE_NAME (Table->Signature.Ascii, ACPI_SIG_SSDT) &&
- !ACPI_COMPARE_NAME (Table->Signature.Ascii, ACPI_SIG_PSDT) &&
- !ACPI_COMPARE_NAME (Table->Signature.Ascii, ACPI_SIG_OSDT)) ||
+ (!ACPI_COMPARE_NAMESEG (Table->Signature.Ascii, ACPI_SIG_SSDT) &&
+ !ACPI_COMPARE_NAMESEG (Table->Signature.Ascii, ACPI_SIG_PSDT) &&
+ !ACPI_COMPARE_NAMESEG (Table->Signature.Ascii, ACPI_SIG_OSDT)) ||
ACPI_FAILURE (AcpiTbValidateTable (Table)))
{
continue;
@@ -556,7 +556,7 @@ AcpiUnloadParentTable (
* only these types can contain AML and thus are the only types
* that can create namespace objects.
*/
- if (ACPI_COMPARE_NAME (
+ if (ACPI_COMPARE_NAMESEG (
AcpiGbl_RootTableList.Tables[i].Signature.Ascii,
ACPI_SIG_DSDT))
{
diff --git a/source/components/utilities/utascii.c b/source/components/utilities/utascii.c
index 08dcb920cc7c..c7aaff403237 100644
--- a/source/components/utilities/utascii.c
+++ b/source/components/utilities/utascii.c
@@ -176,7 +176,7 @@ AcpiUtValidNameseg (
/* Validate each character in the signature */
- for (i = 0; i < ACPI_NAME_SIZE; i++)
+ for (i = 0; i < ACPI_NAMESEG_SIZE; i++)
{
if (!AcpiUtValidNameChar (Name[i], i))
{
diff --git a/source/components/utilities/utdecode.c b/source/components/utilities/utdecode.c
index 443a6dd7114c..3daff815ffa7 100644
--- a/source/components/utilities/utdecode.c
+++ b/source/components/utilities/utdecode.c
@@ -214,17 +214,17 @@ const UINT8 AcpiGbl_NsProperties[ACPI_NUM_NS_TYPES] =
const char *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS] =
{
- "SystemMemory", /* 0x00 */
- "SystemIO", /* 0x01 */
- "PCI_Config", /* 0x02 */
- "EmbeddedControl", /* 0x03 */
- "SMBus", /* 0x04 */
- "SystemCMOS", /* 0x05 */
- "PCIBARTarget", /* 0x06 */
- "IPMI", /* 0x07 */
- "GeneralPurposeIo", /* 0x08 */
- "GenericSerialBus", /* 0x09 */
- "PCC" /* 0x0A */
+ "SystemMemory", /* 0x00 */
+ "SystemIO", /* 0x01 */
+ "PCI_Config", /* 0x02 */
+ "EmbeddedControl", /* 0x03 */
+ "SMBus", /* 0x04 */
+ "SystemCMOS", /* 0x05 */
+ "PCIBARTarget", /* 0x06 */
+ "IPMI", /* 0x07 */
+ "GeneralPurposeIo", /* 0x08 */
+ "GenericSerialBus", /* 0x09 */
+ "PlatformCommChannel"/* 0x0A */
};
@@ -416,7 +416,7 @@ AcpiUtGetNodeName (
ACPI_NAMESPACE_NODE *Node = (ACPI_NAMESPACE_NODE *) Object;
- /* Must return a string of exactly 4 characters == ACPI_NAME_SIZE */
+ /* Must return a string of exactly 4 characters == ACPI_NAMESEG_SIZE */
if (!Object)
{
diff --git a/source/components/utilities/utmisc.c b/source/components/utilities/utmisc.c
index acc048d665de..466e3fa26c20 100644
--- a/source/components/utilities/utmisc.c
+++ b/source/components/utilities/utmisc.c
@@ -214,10 +214,10 @@ AcpiUtIsAmlTable (
/* These are the only tables that contain executable AML */
- if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_DSDT) ||
- ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_PSDT) ||
- ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_SSDT) ||
- ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_OSDT) ||
+ if (ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_DSDT) ||
+ ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_PSDT) ||
+ ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_SSDT) ||
+ ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_OSDT) ||
ACPI_IS_OEM_SIG (Table->Signature))
{
return (TRUE);
diff --git a/source/components/utilities/utpredef.c b/source/components/utilities/utpredef.c
index e1cdd704e69d..8d9c5b0b2fff 100644
--- a/source/components/utilities/utpredef.c
+++ b/source/components/utilities/utpredef.c
@@ -237,7 +237,7 @@ AcpiUtMatchPredefinedMethod (
ThisName = AcpiGbl_PredefinedMethods;
while (ThisName->Info.Name[0])
{
- if (ACPI_COMPARE_NAME (Name, ThisName->Info.Name))
+ if (ACPI_COMPARE_NAMESEG (Name, ThisName->Info.Name))
{
return (ThisName);
}
@@ -374,7 +374,7 @@ AcpiUtMatchResourceName (
ThisName = AcpiGbl_ResourceNames;
while (ThisName->Info.Name[0])
{
- if (ACPI_COMPARE_NAME (Name, ThisName->Info.Name))
+ if (ACPI_COMPARE_NAMESEG (Name, ThisName->Info.Name))
{
return (ThisName);
}
diff --git a/source/components/utilities/utstring.c b/source/components/utilities/utstring.c
index 893a957451d0..f0ee49a0ec4f 100644
--- a/source/components/utilities/utstring.c
+++ b/source/components/utilities/utstring.c
@@ -303,16 +303,16 @@ AcpiUtRepairName (
* Special case for the root node. This can happen if we get an
* error during the execution of module-level code.
*/
- if (ACPI_COMPARE_NAME (Name, ACPI_ROOT_PATHNAME))
+ if (ACPI_COMPARE_NAMESEG (Name, ACPI_ROOT_PATHNAME))
{
return;
}
- ACPI_MOVE_NAME (&OriginalName, Name);
+ ACPI_COPY_NAMESEG (&OriginalName, Name);
/* Check each character in the name */
- for (i = 0; i < ACPI_NAME_SIZE; i++)
+ for (i = 0; i < ACPI_NAMESEG_SIZE; i++)
{
if (AcpiUtValidNameChar (Name[i], i))
{
diff --git a/source/include/aclocal.h b/source/include/aclocal.h
index b5c4aa029c1a..e1ed00531356 100644
--- a/source/include/aclocal.h
+++ b/source/include/aclocal.h
@@ -480,7 +480,7 @@ ACPI_STATUS (*ACPI_INTERNAL_METHOD) (
*/
typedef struct acpi_name_info
{
- char Name[ACPI_NAME_SIZE];
+ char Name[ACPI_NAMESEG_SIZE];
UINT16 ArgumentList;
UINT8 ExpectedBtypes;
@@ -568,7 +568,7 @@ typedef ACPI_STATUS (*ACPI_OBJECT_CONVERTER) (
typedef struct acpi_simple_repair_info
{
- char Name[ACPI_NAME_SIZE];
+ char Name[ACPI_NAMESEG_SIZE];
UINT32 UnexpectedBtypes;
UINT32 PackageIndex;
ACPI_OBJECT_CONVERTER ObjectConverter;
diff --git a/source/include/acpixf.h b/source/include/acpixf.h
index ad653f0ef24b..d3e4e7b54757 100644
--- a/source/include/acpixf.h
+++ b/source/include/acpixf.h
@@ -154,7 +154,7 @@
/* Current ACPICA subsystem version in YYYYMMDD format */
-#define ACPI_CA_VERSION 0x20190215
+#define ACPI_CA_VERSION 0x20190329
#include "acconfig.h"
#include "actypes.h"
diff --git a/source/include/actbl.h b/source/include/actbl.h
index 97134e5e7605..d6b9e8ff2196 100644
--- a/source/include/actbl.h
+++ b/source/include/actbl.h
@@ -213,14 +213,14 @@
typedef struct acpi_table_header
{
- char Signature[ACPI_NAME_SIZE]; /* ASCII table signature */
+ char Signature[ACPI_NAMESEG_SIZE]; /* ASCII table signature */
UINT32 Length; /* Length of table in bytes, including this header */
UINT8 Revision; /* ACPI Specification minor version number */
UINT8 Checksum; /* To make sum of entire table == 0 */
char OemId[ACPI_OEM_ID_SIZE]; /* ASCII OEM identification */
char OemTableId[ACPI_OEM_TABLE_ID_SIZE]; /* ASCII OEM table identification */
UINT32 OemRevision; /* OEM revision number */
- char AslCompilerId[ACPI_NAME_SIZE]; /* ASCII ASL compiler vendor ID */
+ char AslCompilerId[ACPI_NAMESEG_SIZE]; /* ASCII ASL compiler vendor ID */
UINT32 AslCompilerRevision; /* ASL compiler version */
} ACPI_TABLE_HEADER;
diff --git a/source/include/actypes.h b/source/include/actypes.h
index 2a65ee8f570d..e7a2d57804e2 100644
--- a/source/include/actypes.h
+++ b/source/include/actypes.h
@@ -520,7 +520,7 @@ typedef UINT64 ACPI_PHYSICAL_ADDRESS;
/* Names within the namespace are 4 bytes long */
-#define ACPI_NAME_SIZE 4
+#define ACPI_NAMESEG_SIZE 4 /* Fixed by ACPI spec */
#define ACPI_PATH_SEGMENT_LENGTH 5 /* 4 chars for name + 1 char for separator */
#define ACPI_PATH_SEPARATOR '.'
@@ -666,11 +666,11 @@ typedef UINT64 ACPI_INTEGER;
/* Optimizations for 4-character (32-bit) ACPI_NAME manipulation */
#ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED
-#define ACPI_COMPARE_NAME(a,b) (*ACPI_CAST_PTR (UINT32, (a)) == *ACPI_CAST_PTR (UINT32, (b)))
-#define ACPI_MOVE_NAME(dest,src) (*ACPI_CAST_PTR (UINT32, (dest)) = *ACPI_CAST_PTR (UINT32, (src)))
+#define ACPI_COMPARE_NAMESEG(a,b) (*ACPI_CAST_PTR (UINT32, (a)) == *ACPI_CAST_PTR (UINT32, (b)))
+#define ACPI_COPY_NAMESEG(dest,src) (*ACPI_CAST_PTR (UINT32, (dest)) = *ACPI_CAST_PTR (UINT32, (src)))
#else
-#define ACPI_COMPARE_NAME(a,b) (!strncmp (ACPI_CAST_PTR (char, (a)), ACPI_CAST_PTR (char, (b)), ACPI_NAME_SIZE))
-#define ACPI_MOVE_NAME(dest,src) (strncpy (ACPI_CAST_PTR (char, (dest)), ACPI_CAST_PTR (char, (src)), ACPI_NAME_SIZE))
+#define ACPI_COMPARE_NAMESEG(a,b) (!strncmp (ACPI_CAST_PTR (char, (a)), ACPI_CAST_PTR (char, (b)), ACPI_NAMESEG_SIZE))
+#define ACPI_COPY_NAMESEG(dest,src) (strncpy (ACPI_CAST_PTR (char, (dest)), ACPI_CAST_PTR (char, (src)), ACPI_NAMESEG_SIZE))
#endif
/* Support for the special RSDP signature (8 characters) */
@@ -680,7 +680,7 @@ typedef UINT64 ACPI_INTEGER;
/* Support for OEMx signature (x can be any character) */
#define ACPI_IS_OEM_SIG(a) (!strncmp (ACPI_CAST_PTR (char, (a)), ACPI_OEM_NAME, 3) &&\
- strnlen (a, ACPI_NAME_SIZE) == ACPI_NAME_SIZE)
+ strnlen (a, ACPI_NAMESEG_SIZE) == ACPI_NAMESEG_SIZE)
/*
* Algorithm to obtain access bit width.
diff --git a/source/include/platform/aclinux.h b/source/include/platform/aclinux.h
index 990d17c7a749..f6522e326275 100644
--- a/source/include/platform/aclinux.h
+++ b/source/include/platform/aclinux.h
@@ -221,6 +221,11 @@
#define ACPI_NO_ERROR_MESSAGES
#undef ACPI_DEBUG_OUTPUT
+/* Use a specific bugging default separate from ACPICA */
+
+#undef ACPI_DEBUG_DEFAULT
+#define ACPI_DEBUG_DEFAULT (ACPI_LV_INFO | ACPI_LV_REPAIR)
+
/* External interface for __KERNEL__, stub is needed */
#define ACPI_EXTERNAL_RETURN_STATUS(Prototype) \
diff --git a/source/os_specific/service_layers/osbsdtbl.c b/source/os_specific/service_layers/osbsdtbl.c
index 0f112781e025..0e00621624c2 100644
--- a/source/os_specific/service_layers/osbsdtbl.c
+++ b/source/os_specific/service_layers/osbsdtbl.c
@@ -319,8 +319,8 @@ AcpiOsGetTableByName (
/* Instance is only valid for SSDT/UEFI tables */
if (Instance &&
- !ACPI_COMPARE_NAME (Signature, ACPI_SIG_SSDT) &&
- !ACPI_COMPARE_NAME (Signature, ACPI_SIG_UEFI))
+ !ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_SSDT) &&
+ !ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_UEFI))
{
return (AE_LIMIT);
}
@@ -337,7 +337,7 @@ AcpiOsGetTableByName (
* If one of the main ACPI tables was requested (RSDT/XSDT/FADT),
* simply return it immediately.
*/
- if (ACPI_COMPARE_NAME (Signature, ACPI_SIG_XSDT))
+ if (ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_XSDT))
{
if (!Gbl_Revision)
{
@@ -349,7 +349,7 @@ AcpiOsGetTableByName (
return (AE_OK);
}
- if (ACPI_COMPARE_NAME (Signature, ACPI_SIG_RSDT))
+ if (ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_RSDT))
{
if (!Gbl_Rsdp.RsdtPhysicalAddress)
{
@@ -361,7 +361,7 @@ AcpiOsGetTableByName (
return (AE_OK);
}
- if (ACPI_COMPARE_NAME (Signature, ACPI_SIG_FADT))
+ if (ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_FADT))
{
*Address = Gbl_FadtAddress;
*Table = (ACPI_TABLE_HEADER *) Gbl_Fadt;
@@ -688,15 +688,15 @@ OslGetTableViaRoot (
/* DSDT and FACS address must be extracted from the FADT */
- if (ACPI_COMPARE_NAME (Signature, ACPI_SIG_DSDT) ||
- ACPI_COMPARE_NAME (Signature, ACPI_SIG_FACS))
+ if (ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_DSDT) ||
+ ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_FACS))
{
/*
* Get the appropriate address, either 32-bit or 64-bit. Be very
* careful about the FADT length and validate table addresses.
* Note: The 64-bit addresses have priority.
*/
- if (ACPI_COMPARE_NAME (Signature, ACPI_SIG_DSDT))
+ if (ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_DSDT))
{
if ((Gbl_Fadt->Header.Length >= MIN_FADT_FOR_XDSDT) &&
Gbl_Fadt->XDsdt)
@@ -759,7 +759,7 @@ OslGetTableViaRoot (
/* Does this table match the requested signature? */
- if (ACPI_COMPARE_NAME (MappedTable->Signature, Signature))
+ if (ACPI_COMPARE_NAMESEG (MappedTable->Signature, Signature))
{
/* Match table instance (for SSDT/UEFI tables) */
@@ -862,18 +862,18 @@ OslAddTablesToList(
case 1:
- ACPI_MOVE_NAME (NewInfo->Signature,
+ ACPI_COPY_NAMESEG (NewInfo->Signature,
Gbl_Revision ? ACPI_SIG_XSDT : ACPI_SIG_RSDT);
break;
case 2:
- ACPI_MOVE_NAME (NewInfo->Signature, ACPI_SIG_FACS);
+ ACPI_COPY_NAMESEG (NewInfo->Signature, ACPI_SIG_FACS);
break;
default:
- ACPI_MOVE_NAME (NewInfo->Signature, ACPI_SIG_DSDT);
+ ACPI_COPY_NAMESEG (NewInfo->Signature, ACPI_SIG_DSDT);
}
@@ -919,7 +919,7 @@ OslAddTablesToList(
while (NewInfo->Next != NULL)
{
NewInfo = NewInfo->Next;
- if (ACPI_COMPARE_NAME (Table->Signature, NewInfo->Signature))
+ if (ACPI_COMPARE_NAMESEG (Table->Signature, NewInfo->Signature))
{
Instance++;
}
@@ -932,7 +932,7 @@ OslAddTablesToList(
return (AE_NO_MEMORY);
}
- ACPI_MOVE_NAME (NewInfo->Signature, Table->Signature);
+ ACPI_COPY_NAMESEG (NewInfo->Signature, Table->Signature);
AcpiOsUnmapMemory (Table, sizeof (*Table));
@@ -994,7 +994,7 @@ OslMapTable (
/* If specified, signature must match */
if (Signature &&
- !ACPI_COMPARE_NAME (Signature, MappedTable->Signature))
+ !ACPI_COMPARE_NAMESEG (Signature, MappedTable->Signature))
{
AcpiOsUnmapMemory (MappedTable, sizeof (*MappedTable));
return (AE_NOT_EXIST);
diff --git a/source/os_specific/service_layers/oslinuxtbl.c b/source/os_specific/service_layers/oslinuxtbl.c
index 254a7746d957..d60866dd426c 100644
--- a/source/os_specific/service_layers/oslinuxtbl.c
+++ b/source/os_specific/service_layers/oslinuxtbl.c
@@ -167,7 +167,7 @@ typedef struct osl_table_info
{
struct osl_table_info *Next;
UINT32 Instance;
- char Signature[ACPI_NAME_SIZE];
+ char Signature[ACPI_NAMESEG_SIZE];
} OSL_TABLE_INFO;
@@ -484,7 +484,7 @@ OslAddTableToList (
return (AE_NO_MEMORY);
}
- ACPI_MOVE_NAME (NewInfo->Signature, Signature);
+ ACPI_COPY_NAMESEG (NewInfo->Signature, Signature);
if (!Gbl_TableListHead)
{
@@ -495,7 +495,7 @@ OslAddTableToList (
Next = Gbl_TableListHead;
while (1)
{
- if (ACPI_COMPARE_NAME (Next->Signature, Signature))
+ if (ACPI_COMPARE_NAMESEG (Next->Signature, Signature))
{
if (Next->Instance == Instance)
{
@@ -1050,11 +1050,11 @@ OslGetBiosTable (
/* Handle special tables whose addresses are not in RSDT/XSDT */
- if (ACPI_COMPARE_NAME (Signature, ACPI_RSDP_NAME) ||
- ACPI_COMPARE_NAME (Signature, ACPI_SIG_RSDT) ||
- ACPI_COMPARE_NAME (Signature, ACPI_SIG_XSDT) ||
- ACPI_COMPARE_NAME (Signature, ACPI_SIG_DSDT) ||
- ACPI_COMPARE_NAME (Signature, ACPI_SIG_FACS))
+ if (ACPI_COMPARE_NAMESEG (Signature, ACPI_RSDP_NAME) ||
+ ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_RSDT) ||
+ ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_XSDT) ||
+ ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_DSDT) ||
+ ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_FACS))
{
FindNextInstance:
@@ -1066,7 +1066,7 @@ FindNextInstance:
* careful about the FADT length and validate table addresses.
* Note: The 64-bit addresses have priority.
*/
- if (ACPI_COMPARE_NAME (Signature, ACPI_SIG_DSDT))
+ if (ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_DSDT))
{
if (CurrentInstance < 2)
{
@@ -1082,7 +1082,7 @@ FindNextInstance:
}
}
}
- else if (ACPI_COMPARE_NAME (Signature, ACPI_SIG_FACS))
+ else if (ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_FACS))
{
if (CurrentInstance < 2)
{
@@ -1098,7 +1098,7 @@ FindNextInstance:
}
}
}
- else if (ACPI_COMPARE_NAME (Signature, ACPI_SIG_XSDT))
+ else if (ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_XSDT))
{
if (!Gbl_Revision)
{
@@ -1110,7 +1110,7 @@ FindNextInstance:
(ACPI_PHYSICAL_ADDRESS) Gbl_Rsdp.XsdtPhysicalAddress;
}
}
- else if (ACPI_COMPARE_NAME (Signature, ACPI_SIG_RSDT))
+ else if (ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_RSDT))
{
if (CurrentInstance == 0)
{
@@ -1206,7 +1206,7 @@ FindNextInstance:
/* Does this table match the requested signature? */
- if (!ACPI_COMPARE_NAME (MappedTable->Signature, Signature))
+ if (!ACPI_COMPARE_NAMESEG (MappedTable->Signature, Signature))
{
OslUnmapTable (MappedTable);
MappedTable = NULL;
@@ -1277,7 +1277,7 @@ OslListCustomizedTables (
{
void *TableDir;
UINT32 Instance;
- char TempName[ACPI_NAME_SIZE];
+ char TempName[ACPI_NAMESEG_SIZE];
char *Filename;
ACPI_STATUS Status = AE_OK;
@@ -1377,7 +1377,7 @@ OslMapTable (
return (AE_BAD_SIGNATURE);
}
}
- else if (!ACPI_COMPARE_NAME (Signature, MappedTable->Signature))
+ else if (!ACPI_COMPARE_NAMESEG (Signature, MappedTable->Signature))
{
AcpiOsUnmapMemory (MappedTable, sizeof (ACPI_TABLE_HEADER));
return (AE_BAD_SIGNATURE);
@@ -1457,18 +1457,18 @@ OslTableNameFromFile (
/* Ignore meaningless files */
- if (strlen (Filename) < ACPI_NAME_SIZE)
+ if (strlen (Filename) < ACPI_NAMESEG_SIZE)
{
return (AE_BAD_SIGNATURE);
}
/* Extract instance number */
- if (isdigit ((int) Filename[ACPI_NAME_SIZE]))
+ if (isdigit ((int) Filename[ACPI_NAMESEG_SIZE]))
{
- sscanf (&Filename[ACPI_NAME_SIZE], "%u", Instance);
+ sscanf (&Filename[ACPI_NAMESEG_SIZE], "%u", Instance);
}
- else if (strlen (Filename) != ACPI_NAME_SIZE)
+ else if (strlen (Filename) != ACPI_NAMESEG_SIZE)
{
return (AE_BAD_SIGNATURE);
}
@@ -1479,7 +1479,7 @@ OslTableNameFromFile (
/* Extract signature */
- ACPI_MOVE_NAME (Signature, Filename);
+ ACPI_COPY_NAMESEG (Signature, Filename);
return (AE_OK);
}
@@ -1549,7 +1549,7 @@ OslReadTableFromFile (
goto Exit;
}
}
- else if (!ACPI_COMPARE_NAME (Signature, Header.Signature))
+ else if (!ACPI_COMPARE_NAMESEG (Signature, Header.Signature))
{
fprintf (stderr, "Incorrect signature: Expecting %4.4s, found %4.4s\n",
Signature, Header.Signature);
@@ -1629,7 +1629,7 @@ OslGetCustomizedTable (
{
void *TableDir;
UINT32 CurrentInstance = 0;
- char TempName[ACPI_NAME_SIZE];
+ char TempName[ACPI_NAMESEG_SIZE];
char TableFilename[PATH_MAX];
char *Filename;
ACPI_STATUS Status;
@@ -1649,7 +1649,7 @@ OslGetCustomizedTable (
{
/* Ignore meaningless files */
- if (!ACPI_COMPARE_NAME (Filename, Signature))
+ if (!ACPI_COMPARE_NAMESEG (Filename, Signature))
{
continue;
}
diff --git a/source/os_specific/service_layers/oswintbl.c b/source/os_specific/service_layers/oswintbl.c
index a14f719e0fe0..413c7af3823d 100644
--- a/source/os_specific/service_layers/oswintbl.c
+++ b/source/os_specific/service_layers/oswintbl.c
@@ -299,7 +299,8 @@ AcpiOsGetTableByIndex (
{
*Instance = Index;
}
- else if (Status == AE_NOT_FOUND && ACPI_COMPARE_NAME (Signature, ACPI_SIG_SSDT))
+ else if (Status == AE_NOT_FOUND &&
+ ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_SSDT))
{
/* Treat SSDTs that are not found as invalid index. */
Status = (AE_LIMIT);
@@ -353,7 +354,7 @@ AcpiOsGetTableByName (
/* Multiple instances are only supported for SSDT tables. */
- if (Instance > 0 && !ACPI_COMPARE_NAME (Signature, ACPI_SIG_SSDT))
+ if (Instance > 0 && !ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_SSDT))
{
return (AE_LIMIT);
}
@@ -374,7 +375,7 @@ AcpiOsGetTableByName (
* OEM ID, Table ID and Revision, then the 29th entry will overwrite the
* first entry... Let's hope that we do not have that many entries.
*/
- if (Instance > 0 && ACPI_COMPARE_NAME (Signature, ACPI_SIG_SSDT))
+ if (Instance > 0 && ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_SSDT))
{
if (Instance < 10)
{
@@ -403,15 +404,15 @@ AcpiOsGetTableByName (
*
* This code allows for both.
*/
- if (ACPI_COMPARE_NAME (Signature, "FACP"))
+ if (ACPI_COMPARE_NAMESEG (Signature, "FACP"))
{
Signature = "FADT";
}
- else if (ACPI_COMPARE_NAME (Signature, "XSDT"))
+ else if (ACPI_COMPARE_NAMESEG (Signature, "XSDT"))
{
Signature = "RSDT";
}
- else if (ACPI_COMPARE_NAME (Signature, ACPI_SIG_SSDT))
+ else if (ACPI_COMPARE_NAMESEG (Signature, ACPI_SIG_SSDT))
{
/* SSDT may not be present on older Windows versions, but it is
* also possible that the index is not found. */
diff --git a/source/os_specific/service_layers/oswinxf.c b/source/os_specific/service_layers/oswinxf.c
index 13849edb9fe6..138004e36d37 100644
--- a/source/os_specific/service_layers/oswinxf.c
+++ b/source/os_specific/service_layers/oswinxf.c
@@ -173,7 +173,7 @@
UINT64 TimerFrequency;
-char TableName[ACPI_NAME_SIZE + 1];
+char TableName[ACPI_NAMESEG_SIZE + 1];
#define ACPI_OS_DEBUG_TIMEOUT 30000 /* 30 seconds */
diff --git a/source/tools/acpidump/apdump.c b/source/tools/acpidump/apdump.c
index 2d4177442fee..9a2f717668b2 100644
--- a/source/tools/acpidump/apdump.c
+++ b/source/tools/acpidump/apdump.c
@@ -475,7 +475,7 @@ int
ApDumpTableByName (
char *Signature)
{
- char LocalSignature [ACPI_NAME_SIZE + 1];
+ char LocalSignature [ACPI_NAMESEG_SIZE + 1];
UINT32 Instance;
ACPI_TABLE_HEADER *Table;
ACPI_PHYSICAL_ADDRESS Address;
@@ -483,7 +483,7 @@ ApDumpTableByName (
int TableStatus;
- if (strlen (Signature) != ACPI_NAME_SIZE)
+ if (strlen (Signature) != ACPI_NAMESEG_SIZE)
{
fprintf (stderr,
"Invalid table signature [%s]: must be exactly 4 characters\n",
@@ -498,11 +498,11 @@ ApDumpTableByName (
/* To be friendly, handle tables whose signatures do not match the name */
- if (ACPI_COMPARE_NAME (LocalSignature, "FADT"))
+ if (ACPI_COMPARE_NAMESEG (LocalSignature, "FADT"))
{
strcpy (LocalSignature, ACPI_SIG_FADT);
}
- else if (ACPI_COMPARE_NAME (LocalSignature, "MADT"))
+ else if (ACPI_COMPARE_NAMESEG (LocalSignature, "MADT"))
{
strcpy (LocalSignature, ACPI_SIG_MADT);
}
diff --git a/source/tools/acpidump/apfiles.c b/source/tools/acpidump/apfiles.c
index 0010ca6fbb1f..784a9315ead3 100644
--- a/source/tools/acpidump/apfiles.c
+++ b/source/tools/acpidump/apfiles.c
@@ -257,7 +257,7 @@ ApWriteToBinaryFile (
ACPI_TABLE_HEADER *Table,
UINT32 Instance)
{
- char Filename[ACPI_NAME_SIZE + 16];
+ char Filename[ACPI_NAMESEG_SIZE + 16];
char InstanceStr [16];
ACPI_FILE File;
ACPI_SIZE Actual;
@@ -272,18 +272,18 @@ ApWriteToBinaryFile (
if (ACPI_VALIDATE_RSDP_SIG (Table->Signature))
{
- ACPI_MOVE_NAME (Filename, ACPI_RSDP_NAME);
+ ACPI_COPY_NAMESEG (Filename, ACPI_RSDP_NAME);
}
else
{
- ACPI_MOVE_NAME (Filename, Table->Signature);
+ ACPI_COPY_NAMESEG (Filename, Table->Signature);
}
Filename[0] = (char) tolower ((int) Filename[0]);
Filename[1] = (char) tolower ((int) Filename[1]);
Filename[2] = (char) tolower ((int) Filename[2]);
Filename[3] = (char) tolower ((int) Filename[3]);
- Filename[ACPI_NAME_SIZE] = 0;
+ Filename[ACPI_NAMESEG_SIZE] = 0;
/* Handle multiple SSDTs - create different filenames for each */
diff --git a/source/tools/acpiexec/aecommon.h b/source/tools/acpiexec/aecommon.h
index eb244841983d..602356de9dcc 100644
--- a/source/tools/acpiexec/aecommon.h
+++ b/source/tools/acpiexec/aecommon.h
@@ -287,6 +287,10 @@ void
AeMiscellaneousTests (
void);
+void
+AeLateTest (
+ void);
+
/* aeregion */
ACPI_STATUS
diff --git a/source/tools/acpiexec/aeexception.c b/source/tools/acpiexec/aeexception.c
index 2a25d1813096..77ba166bbeed 100644
--- a/source/tools/acpiexec/aeexception.c
+++ b/source/tools/acpiexec/aeexception.c
@@ -206,7 +206,7 @@ AeExceptionHandler (
if (Name)
{
- if (ACPI_COMPARE_NAME (&Name, ACPI_ROOT_PATHNAME))
+ if (ACPI_COMPARE_NAMESEG (&Name, ACPI_ROOT_PATHNAME))
{
AcpiOsPrintf (AE_PREFIX
"Evaluating executable code at [%s]\n", ACPI_NAMESPACE_ROOT);
diff --git a/source/tools/acpiexec/aemain.c b/source/tools/acpiexec/aemain.c
index 9ee25805b932..65664b236021 100644
--- a/source/tools/acpiexec/aemain.c
+++ b/source/tools/acpiexec/aemain.c
@@ -840,6 +840,7 @@ NormalExit:
ExitCode = 0;
ErrorExit:
+ AeLateTest ();
(void) AcpiTerminate ();
AcDeleteTableList (ListHead);
AcpiOsFree (AcpiGbl_InitEntries);
diff --git a/source/tools/acpiexec/aetables.c b/source/tools/acpiexec/aetables.c
index de51b210df9f..c16033554f63 100644
--- a/source/tools/acpiexec/aetables.c
+++ b/source/tools/acpiexec/aetables.c
@@ -220,14 +220,14 @@ AeTableOverride (
/* This code exercises the table override mechanism in the core */
- if (ACPI_COMPARE_NAME (ExistingTable->Signature, ACPI_SIG_DSDT))
+ if (ACPI_COMPARE_NAMESEG (ExistingTable->Signature, ACPI_SIG_DSDT))
{
*NewTable = DsdtToInstallOverride;
}
/* This code tests override of dynamically loaded tables */
- else if (ACPI_COMPARE_NAME (ExistingTable->Signature, "OEM9"))
+ else if (ACPI_COMPARE_NAMESEG (ExistingTable->Signature, "OEM9"))
{
*NewTable = ACPI_CAST_PTR (ACPI_TABLE_HEADER, Ssdt3Code);
}
@@ -255,13 +255,13 @@ AeInitializeTableHeader (
UINT32 Length)
{
- ACPI_MOVE_NAME (Header->Signature, Signature);
+ ACPI_COPY_NAMESEG (Header->Signature, Signature);
Header->Length = Length;
Header->OemRevision = 0x1001;
memcpy (Header->OemId, "Intel ", ACPI_OEM_ID_SIZE);
memcpy (Header->OemTableId, "AcpiExec", ACPI_OEM_TABLE_ID_SIZE);
- ACPI_MOVE_NAME (Header->AslCompilerId, "INTL");
+ ACPI_COPY_NAMESEG (Header->AslCompilerId, "INTL");
Header->AslCompilerRevision = ACPI_CA_VERSION;
/* Set the checksum, must set to zero first */
@@ -306,8 +306,8 @@ AeBuildLocalTables (
NextTable = ListHead;
while (NextTable)
{
- if (!ACPI_COMPARE_NAME (NextTable->Table->Signature, ACPI_SIG_DSDT) &&
- !ACPI_COMPARE_NAME (NextTable->Table->Signature, ACPI_SIG_FADT))
+ if (!ACPI_COMPARE_NAMESEG (NextTable->Table->Signature, ACPI_SIG_DSDT) &&
+ !ACPI_COMPARE_NAMESEG (NextTable->Table->Signature, ACPI_SIG_FADT))
{
TableCount++;
}
@@ -345,7 +345,7 @@ AeBuildLocalTables (
* Incoming DSDT or FADT are special cases. All other tables are
* just immediately installed into the XSDT.
*/
- if (ACPI_COMPARE_NAME (NextTable->Table->Signature, ACPI_SIG_DSDT))
+ if (ACPI_COMPARE_NAMESEG (NextTable->Table->Signature, ACPI_SIG_DSDT))
{
if (DsdtAddress)
{
@@ -358,7 +358,7 @@ AeBuildLocalTables (
DsdtAddress = ACPI_PTR_TO_PHYSADDR (NextTable->Table);
DsdtToInstallOverride = NextTable->Table;
}
- else if (ACPI_COMPARE_NAME (NextTable->Table->Signature, ACPI_SIG_FADT))
+ else if (ACPI_COMPARE_NAMESEG (NextTable->Table->Signature, ACPI_SIG_FADT))
{
ExternalFadt = ACPI_CAST_PTR (ACPI_TABLE_FADT, NextTable->Table);
LocalXSDT->TableOffsetEntry[0] = ACPI_PTR_TO_PHYSADDR (NextTable->Table);
@@ -531,7 +531,7 @@ AeBuildLocalTables (
/* Build a FACS */
memset (&LocalFACS, 0, sizeof (ACPI_TABLE_FACS));
- ACPI_MOVE_NAME (LocalFACS.Signature, ACPI_SIG_FACS);
+ ACPI_COPY_NAMESEG (LocalFACS.Signature, ACPI_SIG_FACS);
LocalFACS.Length = sizeof (ACPI_TABLE_FACS);
LocalFACS.GlobalLock = 0x11AA0011;
@@ -545,7 +545,7 @@ AeBuildLocalTables (
* ACPICA core ignores it
*/
memset (&LocalTEST, 0, sizeof (ACPI_TABLE_HEADER));
- ACPI_MOVE_NAME (LocalTEST.Signature, "TEST");
+ ACPI_COPY_NAMESEG (LocalTEST.Signature, "TEST");
LocalTEST.Revision = 1;
LocalTEST.Length = sizeof (ACPI_TABLE_HEADER);
@@ -559,7 +559,7 @@ AeBuildLocalTables (
* sure that the ACPICA core ignores it
*/
memset (&LocalBADTABLE, 0, sizeof (ACPI_TABLE_HEADER));
- ACPI_MOVE_NAME (LocalBADTABLE.Signature, "BAD!");
+ ACPI_COPY_NAMESEG (LocalBADTABLE.Signature, "BAD!");
LocalBADTABLE.Revision = 1;
LocalBADTABLE.Length = sizeof (ACPI_TABLE_HEADER);
diff --git a/source/tools/acpiexec/aetests.c b/source/tools/acpiexec/aetests.c
index 9f66fcea4ecd..9f35e8f5acaa 100644
--- a/source/tools/acpiexec/aetests.c
+++ b/source/tools/acpiexec/aetests.c
@@ -168,6 +168,10 @@ static void
AeTestSleepData (
void);
+static void
+AeGlobalAddressRangeCheck(
+ void);
+
/******************************************************************************
*
@@ -594,3 +598,59 @@ AeTestSleepData (
}
}
}
+
+
+/******************************************************************************
+ *
+ * FUNCTION: AeLateTest
+ *
+ * DESCRIPTION: Exercise tests that should be performed before shutdown.
+ *
+ *****************************************************************************/
+
+void
+AeLateTest (
+ void)
+{
+ AeGlobalAddressRangeCheck();
+}
+
+
+/******************************************************************************
+ *
+ * FUNCTION: AeGlobalAddressRangeCheck
+ *
+ * DESCRIPTION: There have been some issues in the past with adding and
+ * removing items to the global address list from
+ * OperationRegions declared in control methods. This test loops
+ * over the list to ensure that dangling pointers do not exist in
+ * the global address list.
+ *
+ *****************************************************************************/
+
+static void
+AeGlobalAddressRangeCheck(
+ void)
+{
+ ACPI_STATUS Status;
+ ACPI_ADDRESS_RANGE *Current;
+ ACPI_BUFFER ReturnBuffer;
+ UINT32 i;
+
+
+ ReturnBuffer.Length = ACPI_ALLOCATE_BUFFER;
+ AcpiUtInitializeBuffer (&ReturnBuffer, ACPI_ALLOCATE_BUFFER);
+
+ for (i = 0; i < ACPI_ADDRESS_RANGE_MAX; i++)
+ {
+ Current = AcpiGbl_AddressRangeList[i];
+
+ while (Current)
+ {
+ Status = AcpiGetName (Current->RegionNode, ACPI_SINGLE_NAME, &ReturnBuffer);
+ ACPI_CHECK_OK (AcpiGetname, Status);
+
+ Current = Current->Next;
+ }
+ }
+}
diff --git a/source/tools/acpihelp/ahdecode.c b/source/tools/acpihelp/ahdecode.c
index 025246b72241..13b72d6bb149 100644
--- a/source/tools/acpihelp/ahdecode.c
+++ b/source/tools/acpihelp/ahdecode.c
@@ -297,7 +297,7 @@ AhFindPredefinedNames (
{
UINT32 Length;
BOOLEAN Found;
- char Name[ACPI_NAME_SIZE + 1];
+ char Name[ACPI_NAMESEG_SIZE + 1];
if (!NamePrefix || (*NamePrefix == '*'))
@@ -307,7 +307,7 @@ AhFindPredefinedNames (
}
Length = strlen (NamePrefix);
- if (Length > ACPI_NAME_SIZE)
+ if (Length > ACPI_NAMESEG_SIZE)
{
printf ("%.8s: Predefined name must be 4 characters maximum\n",
NamePrefix);
diff --git a/source/tools/acpinames/antables.c b/source/tools/acpinames/antables.c
index 911a2cc5c267..289948f68a07 100644
--- a/source/tools/acpinames/antables.c
+++ b/source/tools/acpinames/antables.c
@@ -206,13 +206,13 @@ AnInitializeTableHeader (
UINT32 Length)
{
- ACPI_MOVE_NAME (Header->Signature, Signature);
+ ACPI_COPY_NAMESEG (Header->Signature, Signature);
Header->Length = Length;
Header->OemRevision = 0x1001;
memcpy (Header->OemId, "Intel ", ACPI_OEM_ID_SIZE);
memcpy (Header->OemTableId, "AcpiExec", ACPI_OEM_TABLE_ID_SIZE);
- ACPI_MOVE_NAME (Header->AslCompilerId, "INTL");
+ ACPI_COPY_NAMESEG (Header->AslCompilerId, "INTL");
Header->AslCompilerRevision = ACPI_CA_VERSION;
/* Set the checksum, must set to zero first */
@@ -257,8 +257,8 @@ AnBuildLocalTables (
NextTable = TableList;
while (NextTable)
{
- if (!ACPI_COMPARE_NAME (NextTable->Table->Signature, ACPI_SIG_DSDT) &&
- !ACPI_COMPARE_NAME (NextTable->Table->Signature, ACPI_SIG_FADT))
+ if (!ACPI_COMPARE_NAMESEG (NextTable->Table->Signature, ACPI_SIG_DSDT) &&
+ !ACPI_COMPARE_NAMESEG (NextTable->Table->Signature, ACPI_SIG_FADT))
{
TableCount++;
}
@@ -294,7 +294,7 @@ AnBuildLocalTables (
* Incoming DSDT or FADT are special cases. All other tables are
* just immediately installed into the XSDT.
*/
- if (ACPI_COMPARE_NAME (NextTable->Table->Signature, ACPI_SIG_DSDT))
+ if (ACPI_COMPARE_NAMESEG (NextTable->Table->Signature, ACPI_SIG_DSDT))
{
if (DsdtAddress)
{
@@ -306,7 +306,7 @@ AnBuildLocalTables (
DsdtAddress = ACPI_PTR_TO_PHYSADDR (NextTable->Table);
}
- else if (ACPI_COMPARE_NAME (NextTable->Table->Signature, ACPI_SIG_FADT))
+ else if (ACPI_COMPARE_NAMESEG (NextTable->Table->Signature, ACPI_SIG_FADT))
{
ExternalFadt =
ACPI_CAST_PTR (ACPI_TABLE_FADT, NextTable->Table);
@@ -434,7 +434,7 @@ AnBuildLocalTables (
/* Build a FACS */
memset (&LocalFACS, 0, sizeof (ACPI_TABLE_FACS));
- ACPI_MOVE_NAME (LocalFACS.Signature, ACPI_SIG_FACS);
+ ACPI_COPY_NAMESEG (LocalFACS.Signature, ACPI_SIG_FACS);
LocalFACS.Length = sizeof (ACPI_TABLE_FACS);
LocalFACS.GlobalLock = 0x11AA0011;
diff --git a/source/tools/acpixtract/acpixtract.c b/source/tools/acpixtract/acpixtract.c
index 75e3382aee14..64264bcf3106 100644
--- a/source/tools/acpixtract/acpixtract.c
+++ b/source/tools/acpixtract/acpixtract.c
@@ -204,7 +204,7 @@ AxExtractTables (
if (Signature)
{
- strncpy (UpperSignature, Signature, ACPI_NAME_SIZE);
+ strncpy (UpperSignature, Signature, ACPI_NAMESEG_SIZE);
AcpiUtStrupr (UpperSignature);
/* Are there enough instances of the table to continue? */
@@ -262,12 +262,12 @@ AxExtractTables (
continue;
}
- ACPI_MOVE_NAME (ThisSignature, Gbl_LineBuffer);
+ ACPI_COPY_NAMESEG (ThisSignature, Gbl_LineBuffer);
if (Signature)
{
/* Ignore signatures that don't match */
- if (!ACPI_COMPARE_NAME (ThisSignature, UpperSignature))
+ if (!ACPI_COMPARE_NAMESEG (ThisSignature, UpperSignature))
{
continue;
}
@@ -466,12 +466,12 @@ AxExtractToMultiAmlFile (
continue;
}
- ACPI_MOVE_NAME (ThisSignature, Gbl_LineBuffer);
+ ACPI_COPY_NAMESEG (ThisSignature, Gbl_LineBuffer);
/* Only want DSDT and SSDTs */
- if (!ACPI_COMPARE_NAME (ThisSignature, ACPI_SIG_DSDT) &&
- !ACPI_COMPARE_NAME (ThisSignature, ACPI_SIG_SSDT))
+ if (!ACPI_COMPARE_NAMESEG (ThisSignature, ACPI_SIG_DSDT) &&
+ !ACPI_COMPARE_NAMESEG (ThisSignature, ACPI_SIG_SSDT))
{
continue;
}
diff --git a/source/tools/acpixtract/axutils.c b/source/tools/acpixtract/axutils.c
index 07d48b67cf61..480bd0f3289f 100644
--- a/source/tools/acpixtract/axutils.c
+++ b/source/tools/acpixtract/axutils.c
@@ -530,7 +530,7 @@ AxCountTableInstances (
}
AxNormalizeSignature (Gbl_InstanceBuffer);
- if (ACPI_COMPARE_NAME (Gbl_InstanceBuffer, Signature))
+ if (ACPI_COMPARE_NAMESEG (Gbl_InstanceBuffer, Signature))
{
Instances++;
}
@@ -703,7 +703,7 @@ AxDumpTableHeader (
/* FACS has only signature and length */
- if (ACPI_COMPARE_NAME (TableHeader->Signature, "FACS"))
+ if (ACPI_COMPARE_NAMESEG (TableHeader->Signature, "FACS"))
{
printf (" 0x%2.2X\n", Facs->Version);
return;
@@ -745,7 +745,7 @@ AxCheckTableLengths (
}
if ((ByteCount < sizeof (ACPI_TABLE_HEADER)) &&
- (ByteCount >= ACPI_NAME_SIZE))
+ (ByteCount >= ACPI_NAMESEG_SIZE))
{
printf (" : (Table too short for an ACPI table)");
}