24 if ((Buffer[0] == AML_ROOT_CHAR) && (Buffer[1] == 0)) {
44 if ((Ch ==
'_') || ((Ch >=
'A') && (Ch <=
'Z'))) {
90 for (Index = 1; Index < AML_NAME_SEG_SIZE; Index++) {
123 if (*Buffer == AML_ROOT_CHAR) {
126 }
else if (*Buffer == AML_PARENT_PREFIX_CHAR) {
130 }
while (*Buffer == AML_PARENT_PREFIX_CHAR);
136 if (*Buffer == AML_DUAL_NAME_PREFIX) {
140 }
else if (*Buffer == AML_MULTI_NAME_PREFIX) {
146 }
else if (*Buffer == 0) {
152 if ((Length == 1) && (*Buffer == AML_ROOT_CHAR)) {
156 return EFI_INVALID_PARAMETER;
168 return EFI_INVALID_PARAMETER;
171 Buffer += AML_NAME_SEG_SIZE;
172 Length += AML_NAME_SEG_SIZE;
174 }
while (Index < SegCount);
176 *BufferSize = Length;
248 if ((*Buffer == 0) || (*Buffer ==
'.')) {
255 for (Index = 0; Index < 3; Index++) {
261 if ((*Buffer == 0) || (*Buffer ==
'.')) {
298 if (*Buffer == AML_ROOT_CHAR) {
301 }
else if (*Buffer == AML_PARENT_PREFIX_CHAR) {
305 }
while (*Buffer == AML_PARENT_PREFIX_CHAR);
311 while (*Buffer != 0) {
313 if ((NameLength == 0) || (NameLength > AML_NAME_SEG_SIZE)) {
318 Buffer += NameLength;
329 if (*SegCount > 0xFF) {
336 TotalLength = *Root + *Parent + (*SegCount) * AML_NAME_SEG_SIZE;
339 }
else if (*SegCount == 2) {
367 for (Index = 0; Index < Length; Index++) {
368 if ((SrcBuffer[Index] >=
'a') && (SrcBuffer[Index] <=
'z')) {
369 DstBuffer[Index] = (UINT8)(SrcBuffer[Index] -
'a' +
'A');
371 DstBuffer[Index] = SrcBuffer[Index];
399 if (TotalLength == 0) {
404 if (AmlPath ==
NULL) {
405 ASSERT (AmlPath !=
NULL);
416 *AmlBuffer = AML_ROOT_CHAR;
419 }
else if (Parent > 0) {
420 SetMem (AmlBuffer, Parent, AML_PARENT_PREFIX_CHAR);
429 *AmlBuffer = AML_MULTI_NAME_PREFIX;
431 *AmlBuffer = (UINT8)SegCount;
433 }
else if (SegCount == 2) {
434 *AmlBuffer = AML_DUAL_NAME_PREFIX;
441 while (*Buffer != 0) {
443 ASSERT ((NameLength != 0) && (NameLength <= AML_NAME_SEG_SIZE));
445 SetMem (AmlBuffer + NameLength, AML_NAME_SEG_SIZE - NameLength, AML_NAME_CHAR__);
446 Buffer += NameLength;
447 AmlBuffer += AML_NAME_SEG_SIZE;
458 AmlPath[TotalLength - 1] = 0;
473 DEBUG ((DEBUG_ERROR,
"%c", Buffer[0]));
474 if ((Buffer[1] ==
'_') && (Buffer[2] ==
'_') && (Buffer[3] ==
'_')) {
478 DEBUG ((DEBUG_ERROR,
"%c", Buffer[1]));
479 if ((Buffer[2] ==
'_') && (Buffer[3] ==
'_')) {
483 DEBUG ((DEBUG_ERROR,
"%c", Buffer[2]));
484 if (Buffer[3] ==
'_') {
488 DEBUG ((DEBUG_ERROR,
"%c", Buffer[3]));
505 if (*Buffer == AML_ROOT_CHAR) {
510 DEBUG ((DEBUG_ERROR,
"\\"));
511 }
else if (*Buffer == AML_PARENT_PREFIX_CHAR) {
517 DEBUG ((DEBUG_ERROR,
"^"));
518 }
while (*Buffer == AML_PARENT_PREFIX_CHAR);
521 if (*Buffer == AML_DUAL_NAME_PREFIX) {
527 }
else if (*Buffer == AML_MULTI_NAME_PREFIX) {
534 }
else if (*Buffer == 0) {
547 Buffer += AML_NAME_SEG_SIZE;
548 for (Index = 0; Index < SegCount - 1; Index++) {
549 DEBUG ((DEBUG_ERROR,
"."));
551 Buffer += AML_NAME_SEG_SIZE;
VOID *EFIAPI SetMem(OUT VOID *Buffer, IN UINTN Length, IN UINT8 Value)
BOOLEAN EFIAPI AmlIsRootPath(IN CONST CHAR8 *Buffer)
EFI_STATUS EFIAPI AmlGetNameStringSize(IN CONST CHAR8 *AmlPath, OUT UINT32 *AmlPathSizePtr)
BOOLEAN EFIAPI AmlIsNameSeg(IN CONST CHAR8 *AmlBuffer)
UINTN AmlGetAslNameStringSize(IN UINT8 *Buffer, OUT UINTN *Root, OUT UINTN *Parent, OUT UINTN *SegCount)
VOID AmlPrintNameString(IN UINT8 *Buffer)
BOOLEAN AmlIsLeadName(IN CHAR8 Ch)
BOOLEAN AmlIsName(IN CHAR8 Ch)
BOOLEAN AmlIsAslLeadName(IN CHAR8 Ch)
UINTN AmlGetAslNameSegLength(IN UINT8 *Buffer)
BOOLEAN AmlIsAslName(IN CHAR8 Ch)
VOID AmlUpperCaseCopyMem(IN UINT8 *DstBuffer, IN UINT8 *SrcBuffer, IN UINTN Length)
UINT8 * AmlNameFromAslName(IN UINT8 *AslPath)
VOID AmlPrintNameSeg(IN UINT8 *Buffer)
#define DEBUG(Expression)
VOID *EFIAPI AllocatePool(IN UINTN AllocationSize)