Merge ACPICA 20190329.

This commit is contained in:
jkim 2019-03-29 20:21:28 +00:00
parent 24a54e79c9
commit c30ced85d1
68 changed files with 283 additions and 189 deletions

View File

@ -164,7 +164,7 @@ map_table(vm_paddr_t pa, int offset, const char *sig)
void *table;
header = table_map(pa, offset, sizeof(ACPI_TABLE_HEADER));
if (strncmp(header->Signature, sig, ACPI_NAME_SIZE) != 0) {
if (strncmp(header->Signature, sig, ACPI_NAMESEG_SIZE) != 0) {
table_unmap(header, sizeof(ACPI_TABLE_HEADER));
return (NULL);
}
@ -202,7 +202,7 @@ probe_table(vm_paddr_t address, const char *sig)
printf("Table '%.4s' at 0x%jx\n", table->Signature,
(uintmax_t)address);
if (strncmp(table->Signature, sig, ACPI_NAME_SIZE) != 0) {
if (strncmp(table->Signature, sig, ACPI_NAMESEG_SIZE) != 0) {
table_unmap(table, sizeof(ACPI_TABLE_HEADER));
return (0);
}

View File

@ -70,7 +70,7 @@ map_table(vm_paddr_t pa, int offset, const char *sig)
void *table;
header = pmap_mapbios(pa, sizeof(ACPI_TABLE_HEADER));
if (strncmp(header->Signature, sig, ACPI_NAME_SIZE) != 0) {
if (strncmp(header->Signature, sig, ACPI_NAMESEG_SIZE) != 0) {
pmap_unmapbios((vm_offset_t)header, sizeof(ACPI_TABLE_HEADER));
return (NULL);
}
@ -109,7 +109,7 @@ probe_table(vm_paddr_t address, const char *sig)
printf("Table '%.4s' at 0x%jx\n", table->Signature,
(uintmax_t)address);
if (strncmp(table->Signature, sig, ACPI_NAME_SIZE) != 0) {
if (strncmp(table->Signature, sig, ACPI_NAMESEG_SIZE) != 0) {
pmap_unmapbios((vm_offset_t)table, sizeof(ACPI_TABLE_HEADER));
return (0);
}

View File

@ -1,8 +1,76 @@
----------------------------------------
29 March 2019. Summary of changes for version 20190329:
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:
This release is available at https://acpica.org/downloads
0) Support for ACPI specification version 6.3:

View File

@ -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]))
{

View File

@ -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

View File

@ -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;

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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 */

View File

@ -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);
}

View File

@ -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");
}

View File

@ -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);
}

View File

@ -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 */

View File

@ -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, "\\"))
{
/*

View File

@ -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 */

View File

@ -1239,7 +1239,7 @@ AslElevateException (
return (AE_LIMIT);
}
AslGbl_ElevatedMessages[AslGbl_ExpectedMessagesIndex] = MessageId;
AslGbl_ElevatedMessages[AslGbl_ElevatedMessagesIndex] = MessageId;
AslGbl_ElevatedMessagesIndex++;
return (AE_OK);
}

View File

@ -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);

View File

@ -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",

View File

@ -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 */

View File

@ -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);

View File

@ -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]))
{

View File

@ -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));

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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);

View File

@ -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))

View File

@ -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));

View File

@ -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))
{

View File

@ -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);

View File

@ -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;
}

View File

@ -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;
}
}

View File

@ -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)))
{

View File

@ -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"));

View File

@ -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 */

View File

@ -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++;

View File

@ -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;
}

View File

@ -236,7 +236,7 @@ AcpiNsPrintPathname (
AcpiOsPrintf ("?");
}
Pathname += ACPI_NAME_SIZE;
Pathname += ACPI_NAMESEG_SIZE;
NumSegments--;
if (NumSegments)
{

View File

@ -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 (

View File

@ -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 */
{

View File

@ -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;

View File

@ -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;

View File

@ -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 */

View File

@ -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);
}

View File

@ -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;
}
}

View File

@ -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);
}

View File

@ -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);

View File

@ -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);
}

View File

@ -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]",

View File

@ -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)) &&

View File

@ -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",

View File

@ -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);
}

View File

@ -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))
{

View File

@ -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;
}

View File

@ -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))
{

View File

@ -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))
{

View File

@ -224,7 +224,7 @@ const char *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS] =
"IPMI", /* 0x07 */
"GeneralPurposeIo", /* 0x08 */
"GenericSerialBus", /* 0x09 */
"PCC" /* 0x0A */
"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)
{

View File

@ -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);

View File

@ -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);
}

View File

@ -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))
{

View File

@ -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;

View File

@ -154,7 +154,7 @@
/* Current ACPICA subsystem version in YYYYMMDD format */
#define ACPI_CA_VERSION 0x20190215
#define ACPI_CA_VERSION 0x20190329
#include <contrib/dev/acpica/include/acconfig.h>
#include <contrib/dev/acpica/include/actypes.h>

View File

@ -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;

View File

@ -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.

View File

@ -55,7 +55,7 @@ AcpiOsPredefinedOverride(const ACPI_PREDEFINED_NAMES *InitVal,
return (AE_BAD_PARAMETER);
*NewVal = NULL;
if (ACPI_COMPARE_NAME(InitVal->Name, "_OS_") &&
if (ACPI_COMPARE_NAMESEG(InitVal->Name, "_OS_") &&
InitVal->Type == ACPI_TYPE_STRING && strlen(acpi_osname) > 0) {
printf("ACPI: Overriding _OS definition with \"%s\"\n",
acpi_osname);
@ -77,9 +77,9 @@ AcpiOsTableOverride(ACPI_TABLE_HEADER *ExistingTable,
return (AE_BAD_PARAMETER);
*NewTable = NULL;
if (!ACPI_COMPARE_NAME(ExistingTable->Signature, ACPI_SIG_DSDT))
if (!ACPI_COMPARE_NAMESEG(ExistingTable->Signature, ACPI_SIG_DSDT))
#ifdef notyet
for (int i = 0; i < ACPI_NAME_SIZE; i++)
for (int i = 0; i < ACPI_NAMESEG_SIZE; i++)
modname[i + 5] = tolower(ExistingTable->Signature[i]);
#else
return (AE_SUPPORT);

View File

@ -49,7 +49,7 @@ enum val_t {
};
struct acpi_q_rule {
char sig[ACPI_NAME_SIZE]; /* Table signature to match */
char sig[ACPI_NAMESEG_SIZE]; /* Table signature to match */
enum val_t val;
union {
char *id;
@ -158,11 +158,11 @@ acpi_table_quirks(int *quirks)
for (entry = acpi_quirks_table; entry->match; entry++) {
done = TRUE;
for (match = entry->match; match->sig[0] != '\0'; match++) {
if (!strncmp(match->sig, "FADT", ACPI_NAME_SIZE))
if (!strncmp(match->sig, "FADT", ACPI_NAMESEG_SIZE))
hdr = &fadt;
else if (!strncmp(match->sig, ACPI_SIG_DSDT, ACPI_NAME_SIZE))
else if (!strncmp(match->sig, ACPI_SIG_DSDT, ACPI_NAMESEG_SIZE))
hdr = &dsdt;
else if (!strncmp(match->sig, ACPI_SIG_XSDT, ACPI_NAME_SIZE))
else if (!strncmp(match->sig, ACPI_SIG_XSDT, ACPI_NAMESEG_SIZE))
hdr = &xsdt;
else
panic("invalid quirk header\n");

View File

@ -180,7 +180,7 @@ map_table(vm_paddr_t pa, int offset, const char *sig)
void *table;
header = table_map(pa, offset, sizeof(ACPI_TABLE_HEADER));
if (strncmp(header->Signature, sig, ACPI_NAME_SIZE) != 0) {
if (strncmp(header->Signature, sig, ACPI_NAMESEG_SIZE) != 0) {
table_unmap(header, sizeof(ACPI_TABLE_HEADER));
return (NULL);
}
@ -218,7 +218,7 @@ probe_table(vm_paddr_t address, const char *sig)
printf("Table '%.4s' at 0x%jx\n", table->Signature,
(uintmax_t)address);
if (strncmp(table->Signature, sig, ACPI_NAME_SIZE) != 0) {
if (strncmp(table->Signature, sig, ACPI_NAMESEG_SIZE) != 0) {
table_unmap(table, sizeof(ACPI_TABLE_HEADER));
return (0);
}

View File

@ -1463,7 +1463,7 @@ static void
acpi_print_sdt(ACPI_TABLE_HEADER *sdp)
{
printf(" ");
acpi_print_string(sdp->Signature, ACPI_NAME_SIZE);
acpi_print_string(sdp->Signature, ACPI_NAMESEG_SIZE);
printf(": Length=%d, Revision=%d, Checksum=%d,\n",
sdp->Length, sdp->Revision, sdp->Checksum);
printf("\tOEMID=");
@ -1472,7 +1472,7 @@ acpi_print_sdt(ACPI_TABLE_HEADER *sdp)
acpi_print_string(sdp->OemTableId, ACPI_OEM_TABLE_ID_SIZE);
printf(", OEM Revision=0x%x,\n", sdp->OemRevision);
printf("\tCreator ID=");
acpi_print_string(sdp->AslCompilerId, ACPI_NAME_SIZE);
acpi_print_string(sdp->AslCompilerId, ACPI_NAMESEG_SIZE);
printf(", Creator Revision=0x%x\n", sdp->AslCompilerRevision);
}