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)))
{
/* 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"));
ACPI_STATUS Status;
UINT32 GpeNumber;
UINT8 TempGpeNumber;
- char Name[ACPI_NAME_SIZE + 1];
+ char Name[ACPI_NAMESEG_SIZE + 1];
UINT8 Type;
* 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 */
{
/* 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;
}
/*
}
for (Index = 0;
- (Index < ACPI_NAME_SIZE) && (AcpiUtValidNameChar (*AmlAddress, 0));
+ (Index < ACPI_NAMESEG_SIZE) && (AcpiUtValidNameChar (*AmlAddress, 0));
Index++)
{
CharBuf[Index] = *AmlAddress++;
*/
typedef struct acpi_name_info
{
- char Name[ACPI_NAME_SIZE];
+ char Name[ACPI_NAMESEG_SIZE];
UINT16 ArgumentList;
UINT8 ExpectedBtypes;
typedef struct acpi_simple_repair_info
{
- char Name[ACPI_NAME_SIZE];
+ char Name[ACPI_NAMESEG_SIZE];
UINT32 UnexpectedBtypes;
UINT32 PackageIndex;
ACPI_OBJECT_CONVERTER ObjectConverter;
/* Current ACPICA subsystem version in YYYYMMDD format */
-#define ACPI_CA_VERSION 0x20190215
+#define ACPI_CA_VERSION 0x20190329
#include "acconfig.h"
#include "actypes.h"
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;
/* 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 '.'
/* 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) */
/* 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.
#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) \
/* Point to next name segment and make this node current */
- Path += ACPI_NAME_SIZE;
+ Path += ACPI_NAMESEG_SIZE;
CurrentNode = ThisNode;
}
AcpiOsPrintf ("?");
}
- Pathname += ACPI_NAME_SIZE;
+ Pathname += ACPI_NAMESEG_SIZE;
NumSegments--;
if (NumSegments)
{
/* 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);
}
* 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 (
/* 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);
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;
{
/* 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 */
{
}
}
+ if (ObjDesc->Common.Type == ACPI_TYPE_REGION)
+ {
+ AcpiUtRemoveAddressRange(ObjDesc->Region.SpaceId, Node);
+ }
+
/* Clear the Node entry in all cases */
Node->Object = NULL;
/* 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;
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 */
typedef struct acpi_repair_info
{
- char Name[ACPI_NAME_SIZE];
+ char Name[ACPI_NAMESEG_SIZE];
ACPI_REPAIR_FUNCTION RepairFunction;
} ACPI_REPAIR_INFO;
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);
}
}
}
- Info->Length = (ACPI_NAME_SIZE * Info->NumSegments) +
+ Info->Length = (ACPI_NAMESEG_SIZE * Info->NumSegments) +
4 + Info->NumCarats;
Info->NextExternalChar = NextExternalChar;
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))
/* Move on the next segment */
ExternalName++;
- Result += ACPI_NAME_SIZE;
+ Result += ACPI_NAMESEG_SIZE;
}
/* Terminate the string */
/* 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;
}
}
/* 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);
}
/* 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;
}
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);
/* 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);
}
/* 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]",
/* 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);
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 */
/* 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)) &&
*/
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",
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);
}
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 */
* 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);
}
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))
{
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;
{
TableDesc = &AcpiGbl_RootTableList.Tables[i];
- if (!ACPI_COMPARE_NAME (&TableDesc->Signature, Signature))
+ if (!ACPI_COMPARE_NAMESEG (&TableDesc->Signature, Signature))
{
continue;
}
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;
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;
* 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))
{
/* 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))
{
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 */
};
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)
{
/* 0B */ "System Locality Update",
/* 0C */ "Reserved (was previously Shutdown Request)", /* Reserved in ACPI 6.0 */
/* 0D */ "System Resource Affinity Update",
- /* 0E */ "Heterogeneous Memory Attributes Update" /* ACPI 6.2 */
+ /* 0E */ "Heterogeneous Memory Attributes Update", /* ACPI 6.2 */
/* 0F */ "Error Disconnect Recover" /* ACPI 6.3 */
};
/* 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);
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);
}
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);
}
* 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))
{
Website: http://libpng.sourceforge.net/
Title: ACPICA
-Used Version: 20190215
+Used Version: 20190329
Website: https://acpica.org/