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 ASSERT (AmlPath !=
NULL);
413 *AmlBuffer = AML_ROOT_CHAR;
416 }
else if (Parent > 0) {
417 SetMem (AmlBuffer, Parent, AML_PARENT_PREFIX_CHAR);
426 *AmlBuffer = AML_MULTI_NAME_PREFIX;
428 *AmlBuffer = (UINT8)SegCount;
430 }
else if (SegCount == 2) {
431 *AmlBuffer = AML_DUAL_NAME_PREFIX;
438 while (*Buffer != 0) {
440 ASSERT ((NameLength != 0) && (NameLength <= AML_NAME_SEG_SIZE));
442 SetMem (AmlBuffer + NameLength, AML_NAME_SEG_SIZE - NameLength, AML_NAME_CHAR__);
443 Buffer += NameLength;
444 AmlBuffer += AML_NAME_SEG_SIZE;
455 AmlPath[TotalLength - 1] = 0;
470 DEBUG ((DEBUG_ERROR,
"%c", Buffer[0]));
471 if ((Buffer[1] ==
'_') && (Buffer[2] ==
'_') && (Buffer[3] ==
'_')) {
475 DEBUG ((DEBUG_ERROR,
"%c", Buffer[1]));
476 if ((Buffer[2] ==
'_') && (Buffer[3] ==
'_')) {
480 DEBUG ((DEBUG_ERROR,
"%c", Buffer[2]));
481 if (Buffer[3] ==
'_') {
485 DEBUG ((DEBUG_ERROR,
"%c", Buffer[3]));
502 if (*Buffer == AML_ROOT_CHAR) {
507 DEBUG ((DEBUG_ERROR,
"\\"));
508 }
else if (*Buffer == AML_PARENT_PREFIX_CHAR) {
514 DEBUG ((DEBUG_ERROR,
"^"));
515 }
while (*Buffer == AML_PARENT_PREFIX_CHAR);
518 if (*Buffer == AML_DUAL_NAME_PREFIX) {
524 }
else if (*Buffer == AML_MULTI_NAME_PREFIX) {
531 }
else if (*Buffer == 0) {
544 Buffer += AML_NAME_SEG_SIZE;
545 for (Index = 0; Index < SegCount - 1; Index++) {
546 DEBUG ((DEBUG_ERROR,
"."));
548 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)