#include <Library/UefiBootServicesTableLib.h>\r
#include <Library/UefiLib.h>\r
\r
-\r
#include <Protocol/UnicodeCollation.h>\r
#include <Protocol/PiPcd.h>\r
#include <Protocol/Pcd.h>\r
#include <Protocol/ShellParameters.h>\r
#include <Protocol/Shell.h>\r
\r
-\r
//\r
// String token ID of help message text.\r
// Shell supports to find help message in the resource section of an application image if\r
// the resource section. Thus the application can use '-?' option to show help message in\r
// Shell.\r
//\r
-GLOBAL_REMOVE_IF_UNREFERENCED EFI_STRING_ID mStrDumpDynPcdHelpTokenId = STRING_TOKEN (STR_DUMP_DYN_PCD_HELP_INFORMATION);\r
-\r
-#define MAJOR_VERSION 1\r
-#define MINOR_VERSION 0\r
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_STRING_ID mStrDumpDynPcdHelpTokenId = STRING_TOKEN (STR_DUMP_DYN_PCD_HELP_INFORMATION);\r
\r
-static EFI_UNICODE_COLLATION_PROTOCOL *mUnicodeCollation = NULL;\r
-static EFI_PCD_PROTOCOL *mPiPcd = NULL;\r
-static PCD_PROTOCOL *mPcd = NULL;\r
-static EFI_GET_PCD_INFO_PROTOCOL *mPiPcdInfo = NULL;\r
-static GET_PCD_INFO_PROTOCOL *mPcdInfo = NULL;\r
-static CHAR16 *mTempPcdNameBuffer = NULL;\r
-static UINTN mTempPcdNameBufferSize = 0;\r
+#define MAJOR_VERSION 1\r
+#define MINOR_VERSION 0\r
\r
-static CONST CHAR8 mHex[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};\r
+static EFI_UNICODE_COLLATION_PROTOCOL *mUnicodeCollation = NULL;\r
+static EFI_PCD_PROTOCOL *mPiPcd = NULL;\r
+static PCD_PROTOCOL *mPcd = NULL;\r
+static EFI_GET_PCD_INFO_PROTOCOL *mPiPcdInfo = NULL;\r
+static GET_PCD_INFO_PROTOCOL *mPcdInfo = NULL;\r
+static CHAR16 *mTempPcdNameBuffer = NULL;\r
+static UINTN mTempPcdNameBufferSize = 0;\r
\r
-static UINTN Argc;\r
-static CHAR16 **Argv;\r
+static CONST CHAR8 mHex[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };\r
\r
+static UINTN Argc;\r
+static CHAR16 **Argv;\r
\r
/**\r
\r
VOID\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_SHELL_PARAMETERS_PROTOCOL *ShellParameters;\r
+ EFI_STATUS Status;\r
+ EFI_SHELL_PARAMETERS_PROTOCOL *ShellParameters;\r
\r
Status = gBS->HandleProtocol (\r
gImageHandle,\r
&gEfiShellParametersProtocolGuid,\r
- (VOID**)&ShellParameters\r
+ (VOID **)&ShellParameters\r
);\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
\r
static\r
VOID\r
DumpHex (\r
- IN UINTN Indent,\r
- IN UINTN Offset,\r
- IN UINTN DataSize,\r
- IN VOID *UserData\r
+ IN UINTN Indent,\r
+ IN UINTN Offset,\r
+ IN UINTN DataSize,\r
+ IN VOID *UserData\r
)\r
{\r
- UINT8 *Data;\r
+ UINT8 *Data;\r
\r
- CHAR8 Val[50];\r
+ CHAR8 Val[50];\r
\r
- CHAR8 Str[20];\r
+ CHAR8 Str[20];\r
\r
- UINT8 TempByte;\r
- UINTN Size;\r
- UINTN Index;\r
+ UINT8 TempByte;\r
+ UINTN Size;\r
+ UINTN Index;\r
\r
Data = UserData;\r
while (DataSize != 0) {\r
}\r
\r
for (Index = 0; Index < Size; Index += 1) {\r
- TempByte = Data[Index];\r
- Val[Index * 3 + 0] = mHex[TempByte >> 4];\r
- Val[Index * 3 + 1] = mHex[TempByte & 0xF];\r
- Val[Index * 3 + 2] = (CHAR8) ((Index == 7) ? '-' : ' ');\r
- Str[Index] = (CHAR8) ((TempByte < ' ' || TempByte > 'z') ? '.' : TempByte);\r
+ TempByte = Data[Index];\r
+ Val[Index * 3 + 0] = mHex[TempByte >> 4];\r
+ Val[Index * 3 + 1] = mHex[TempByte & 0xF];\r
+ Val[Index * 3 + 2] = (CHAR8)((Index == 7) ? '-' : ' ');\r
+ Str[Index] = (CHAR8)((TempByte < ' ' || TempByte > 'z') ? '.' : TempByte);\r
}\r
\r
- Val[Index * 3] = 0;\r
- Str[Index] = 0;\r
+ Val[Index * 3] = 0;\r
+ Str[Index] = 0;\r
Print (L"%*a%08X: %-48a *%a*\r\n", Indent, "", Offset, Val, Str);\r
\r
- Data += Size;\r
- Offset += Size;\r
+ Data += Size;\r
+ Offset += Size;\r
DataSize -= Size;\r
}\r
}\r
\r
-\r
/**\r
Safely append with automatic string resizing given length of Destination and\r
desired length of copy from Source.\r
@return Destination return the resultant string.\r
**/\r
static\r
-CHAR16*\r
+CHAR16 *\r
InternalStrnCatGrow (\r
- IN OUT CHAR16 **Destination,\r
- IN OUT UINTN *CurrentSize,\r
- IN CONST CHAR16 *Source\r
+ IN OUT CHAR16 **Destination,\r
+ IN OUT UINTN *CurrentSize,\r
+ IN CONST CHAR16 *Source\r
)\r
{\r
- UINTN DestinationStartSize;\r
- UINTN NewSize;\r
- UINTN SourceLen;\r
+ UINTN DestinationStartSize;\r
+ UINTN NewSize;\r
+ UINTN SourceLen;\r
\r
- SourceLen = StrLen(Source);\r
+ SourceLen = StrLen (Source);\r
\r
//\r
// ASSERTs\r
//\r
- ASSERT(Destination != NULL);\r
+ ASSERT (Destination != NULL);\r
\r
//\r
// If there's nothing to do then just return Destination\r
//\r
// allow for un-initialized pointers, based on size being 0\r
//\r
- if (CurrentSize != NULL && *CurrentSize == 0) {\r
+ if ((CurrentSize != NULL) && (*CurrentSize == 0)) {\r
*Destination = NULL;\r
}\r
\r
// allow for NULL pointers address as Destination\r
//\r
if (*Destination != NULL) {\r
- ASSERT(CurrentSize != 0);\r
- DestinationStartSize = StrSize(*Destination);\r
- ASSERT(DestinationStartSize <= *CurrentSize);\r
+ ASSERT (CurrentSize != 0);\r
+ DestinationStartSize = StrSize (*Destination);\r
+ ASSERT (DestinationStartSize <= *CurrentSize);\r
} else {\r
DestinationStartSize = 0;\r
}\r
//\r
if (CurrentSize != NULL) {\r
NewSize = *CurrentSize;\r
- if (NewSize < DestinationStartSize + (SourceLen * sizeof(CHAR16))) {\r
- while (NewSize < (DestinationStartSize + (SourceLen*sizeof(CHAR16)))) {\r
- NewSize += 2 * SourceLen * sizeof(CHAR16);\r
+ if (NewSize < DestinationStartSize + (SourceLen * sizeof (CHAR16))) {\r
+ while (NewSize < (DestinationStartSize + (SourceLen*sizeof (CHAR16)))) {\r
+ NewSize += 2 * SourceLen * sizeof (CHAR16);\r
}\r
- *Destination = ReallocatePool(*CurrentSize, NewSize, *Destination);\r
+\r
+ *Destination = ReallocatePool (*CurrentSize, NewSize, *Destination);\r
*CurrentSize = NewSize;\r
}\r
} else {\r
- NewSize = (SourceLen + 1)*sizeof(CHAR16);\r
- *Destination = AllocateZeroPool(NewSize);\r
+ NewSize = (SourceLen + 1)*sizeof (CHAR16);\r
+ *Destination = AllocateZeroPool (NewSize);\r
}\r
\r
//\r
return (NULL);\r
}\r
\r
- StrnCatS(*Destination, NewSize/sizeof(CHAR16), Source, SourceLen);\r
+ StrnCatS (*Destination, NewSize/sizeof (CHAR16), Source, SourceLen);\r
return *Destination;\r
}\r
\r
static\r
CHAR16 *\r
GetPcdTypeString (\r
- IN CONST EFI_GUID *TokenSpace,\r
- IN EFI_PCD_TYPE PcdType\r
+ IN CONST EFI_GUID *TokenSpace,\r
+ IN EFI_PCD_TYPE PcdType\r
)\r
{\r
- UINTN BufLen;\r
- CHAR16 *RetString;\r
+ UINTN BufLen;\r
+ CHAR16 *RetString;\r
\r
- BufLen = 0;\r
- RetString = NULL;\r
+ BufLen = 0;\r
+ RetString = NULL;\r
\r
switch (PcdType) {\r
case EFI_PCD_TYPE_8:\r
static\r
VOID\r
DumpPcdInfo (\r
- IN CONST EFI_GUID *TokenSpace,\r
- IN UINTN TokenNumber,\r
- IN EFI_PCD_INFO *PcdInfo\r
+ IN CONST EFI_GUID *TokenSpace,\r
+ IN UINTN TokenNumber,\r
+ IN EFI_PCD_INFO *PcdInfo\r
)\r
{\r
- CHAR16 *RetString;\r
- UINT8 Uint8;\r
- UINT16 Uint16;\r
- UINT32 Uint32;\r
- UINT64 Uint64;\r
- BOOLEAN Boolean;\r
- VOID *PcdData;\r
+ CHAR16 *RetString;\r
+ UINT8 Uint8;\r
+ UINT16 Uint16;\r
+ UINT32 Uint32;\r
+ UINT64 Uint64;\r
+ BOOLEAN Boolean;\r
+ VOID *PcdData;\r
\r
RetString = NULL;\r
\r
} else {\r
Uint8 = mPiPcd->Get8 (TokenSpace, TokenNumber);\r
}\r
+\r
Print (L" Token = 0x%08x - Type = %H%-17s%N - Size = 0x%x - Value = 0x%x\n", TokenNumber, RetString, PcdInfo->PcdSize, Uint8);\r
break;\r
case EFI_PCD_TYPE_16:\r
} else {\r
Uint16 = mPiPcd->Get16 (TokenSpace, TokenNumber);\r
}\r
+\r
Print (L" Token = 0x%08x - Type = %H%-17s%N - Size = 0x%x - Value = 0x%x\n", TokenNumber, RetString, PcdInfo->PcdSize, Uint16);\r
break;\r
case EFI_PCD_TYPE_32:\r
} else {\r
Uint32 = mPiPcd->Get32 (TokenSpace, TokenNumber);\r
}\r
+\r
Print (L" Token = 0x%08x - Type = %H%-17s%N - Size = 0x%x - Value = 0x%x\n", TokenNumber, RetString, PcdInfo->PcdSize, Uint32);\r
break;\r
case EFI_PCD_TYPE_64:\r
} else {\r
Uint64 = mPiPcd->Get64 (TokenSpace, TokenNumber);\r
}\r
+\r
Print (L" Token = 0x%08x - Type = %H%-17s%N - Size = 0x%x - Value = 0x%lx\n", TokenNumber, RetString, PcdInfo->PcdSize, Uint64);\r
break;\r
case EFI_PCD_TYPE_BOOL:\r
} else {\r
Boolean = mPiPcd->GetBool (TokenSpace, TokenNumber);\r
}\r
+\r
Print (L" Token = 0x%08x - Type = %H%-17s%N - Size = 0x%x - Value = %a\n", TokenNumber, RetString, PcdInfo->PcdSize, Boolean ? "TRUE" : "FALSE");\r
break;\r
case EFI_PCD_TYPE_PTR:\r
} else {\r
PcdData = mPiPcd->GetPtr (TokenSpace, TokenNumber);\r
}\r
+\r
Print (L" Token = 0x%08x - Type = %H%-17s%N - Size = 0x%x\n", TokenNumber, RetString, PcdInfo->PcdSize);\r
DumpHex (2, 0, PcdInfo->PcdSize, PcdData);\r
break;\r
if (RetString != NULL) {\r
FreePool (RetString);\r
}\r
+\r
Print (L"\n");\r
}\r
\r
static\r
EFI_STATUS\r
ProcessPcd (\r
- IN CHAR16 *InputPcdName\r
+ IN CHAR16 *InputPcdName\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_GUID *TokenSpace;\r
- UINTN TokenNumber;\r
- EFI_PCD_INFO PcdInfo;\r
- BOOLEAN Found;\r
- UINTN PcdNameSize;\r
+ EFI_STATUS Status;\r
+ EFI_GUID *TokenSpace;\r
+ UINTN TokenNumber;\r
+ EFI_PCD_INFO PcdInfo;\r
+ BOOLEAN Found;\r
+ UINTN PcdNameSize;\r
\r
PcdInfo.PcdName = NULL;\r
PcdInfo.PcdSize = 0;\r
PcdInfo.PcdType = 0xFF;\r
- Found = FALSE;\r
+ Found = FALSE;\r
\r
Print (L"Current system SKU ID: 0x%x\n\n", mPiPcdInfo->GetSku ());\r
\r
TokenNumber = 0;\r
do {\r
Status = mPiPcd->GetNextToken (TokenSpace, &TokenNumber);\r
- if (!EFI_ERROR (Status) && TokenNumber != 0) {\r
+ if (!EFI_ERROR (Status) && (TokenNumber != 0)) {\r
if (TokenSpace == NULL) {\r
//\r
// PCD in default Token Space.\r
} else {\r
mPiPcdInfo->GetInfo (TokenSpace, TokenNumber, &PcdInfo);\r
}\r
+\r
if (InputPcdName != NULL) {\r
if (PcdInfo.PcdName == NULL) {\r
continue;\r
}\r
+\r
PcdNameSize = AsciiStrSize (PcdInfo.PcdName) * sizeof (CHAR16);\r
if (mTempPcdNameBuffer == NULL) {\r
mTempPcdNameBufferSize = PcdNameSize;\r
- mTempPcdNameBuffer = AllocatePool (mTempPcdNameBufferSize);\r
+ mTempPcdNameBuffer = AllocatePool (mTempPcdNameBufferSize);\r
} else if (mTempPcdNameBufferSize < PcdNameSize) {\r
- mTempPcdNameBuffer = ReallocatePool (mTempPcdNameBufferSize, PcdNameSize, mTempPcdNameBuffer);\r
+ mTempPcdNameBuffer = ReallocatePool (mTempPcdNameBufferSize, PcdNameSize, mTempPcdNameBuffer);\r
mTempPcdNameBufferSize = PcdNameSize;\r
}\r
+\r
if (mTempPcdNameBuffer == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
+\r
AsciiStrToUnicodeStrS (PcdInfo.PcdName, mTempPcdNameBuffer, mTempPcdNameBufferSize / sizeof (CHAR16));\r
//\r
// Compare the input PCD name with the PCD name in PCD database.\r
//\r
if ((StrStr (mTempPcdNameBuffer, InputPcdName) != NULL) ||\r
- (mUnicodeCollation != NULL && mUnicodeCollation->MetaiMatch (mUnicodeCollation, mTempPcdNameBuffer, InputPcdName))) {\r
+ ((mUnicodeCollation != NULL) && mUnicodeCollation->MetaiMatch (mUnicodeCollation, mTempPcdNameBuffer, InputPcdName)))\r
+ {\r
//\r
// Found matched PCD.\r
//\r
}\r
} while (!EFI_ERROR (Status) && TokenNumber != 0);\r
\r
- Status = mPiPcd->GetNextTokenSpace ((CONST EFI_GUID **) &TokenSpace);\r
+ Status = mPiPcd->GetNextTokenSpace ((CONST EFI_GUID **)&TokenSpace);\r
} while (!EFI_ERROR (Status) && TokenSpace != NULL);\r
\r
if ((InputPcdName != NULL) && !Found) {\r
Print (L"%EError. %NNo matching PCD found: %s.\n", InputPcdName);\r
return EFI_NOT_FOUND;\r
}\r
+\r
return EFI_SUCCESS;\r
}\r
\r
IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
- EFI_STATUS Status;\r
- CHAR16 *InputPcdName;\r
+ EFI_STATUS Status;\r
+ CHAR16 *InputPcdName;\r
\r
- InputPcdName = NULL;\r
+ InputPcdName = NULL;\r
\r
- Status = gBS->LocateProtocol(&gEfiUnicodeCollation2ProtocolGuid, NULL, (VOID **) &mUnicodeCollation);\r
+ Status = gBS->LocateProtocol (&gEfiUnicodeCollation2ProtocolGuid, NULL, (VOID **)&mUnicodeCollation);\r
if (EFI_ERROR (Status)) {\r
mUnicodeCollation = NULL;\r
}\r
\r
- Status = gBS->LocateProtocol (&gEfiPcdProtocolGuid, NULL, (VOID **) &mPiPcd);\r
+ Status = gBS->LocateProtocol (&gEfiPcdProtocolGuid, NULL, (VOID **)&mPiPcd);\r
if (EFI_ERROR (Status)) {\r
Print (L"DumpDynPcd: %EError. %NPI PCD protocol is not present.\n");\r
return Status;\r
}\r
\r
- Status = gBS->LocateProtocol (&gEfiGetPcdInfoProtocolGuid, NULL, (VOID **) &mPiPcdInfo);\r
+ Status = gBS->LocateProtocol (&gEfiGetPcdInfoProtocolGuid, NULL, (VOID **)&mPiPcdInfo);\r
if (EFI_ERROR (Status)) {\r
Print (L"DumpDynPcd: %EError. %NPI PCD info protocol is not present.\n");\r
return Status;\r
}\r
\r
- Status = gBS->LocateProtocol (&gPcdProtocolGuid, NULL, (VOID **) &mPcd);\r
+ Status = gBS->LocateProtocol (&gPcdProtocolGuid, NULL, (VOID **)&mPcd);\r
if (EFI_ERROR (Status)) {\r
Print (L"DumpDynPcd: %EError. %NPCD protocol is not present.\n");\r
return Status;\r
}\r
\r
- Status = gBS->LocateProtocol (&gGetPcdInfoProtocolGuid, NULL, (VOID **) &mPcdInfo);\r
+ Status = gBS->LocateProtocol (&gGetPcdInfoProtocolGuid, NULL, (VOID **)&mPcdInfo);\r
if (EFI_ERROR (Status)) {\r
Print (L"DumpDynPcd: %EError. %NPCD info protocol is not present.\n");\r
return Status;\r
//\r
// get the command line arguments\r
//\r
- Status = GetArg();\r
- if (EFI_ERROR(Status)){\r
+ Status = GetArg ();\r
+ if (EFI_ERROR (Status)) {\r
Print (L"DumpDynPcd: %EError. %NThe input parameters are not recognized.\n");\r
Status = EFI_INVALID_PARAMETER;\r
return Status;\r
}\r
\r
- if (Argc > 2){\r
+ if (Argc > 2) {\r
Print (L"DumpDynPcd: %EError. %NToo many arguments specified.\n");\r
Status = EFI_INVALID_PARAMETER;\r
return Status;\r
}\r
\r
- if (Argc == 1){\r
+ if (Argc == 1) {\r
Status = ProcessPcd (InputPcdName);\r
goto Done;\r
}\r
\r
- if ((StrCmp(Argv[1], L"-?") == 0)||(StrCmp(Argv[1], L"-h") == 0)||(StrCmp(Argv[1], L"-H") == 0)){\r
+ if ((StrCmp (Argv[1], L"-?") == 0) || (StrCmp (Argv[1], L"-h") == 0) || (StrCmp (Argv[1], L"-H") == 0)) {\r
ShowHelp ();\r
goto Done;\r
} else {\r
- if ((StrCmp(Argv[1], L"-v") == 0)||(StrCmp(Argv[1], L"-V") == 0)){\r
+ if ((StrCmp (Argv[1], L"-v") == 0) || (StrCmp (Argv[1], L"-V") == 0)) {\r
ShowVersion ();\r
goto Done;\r
} else {\r
- if (StrStr(Argv[1], L"-") != NULL){\r
+ if (StrStr (Argv[1], L"-") != NULL) {\r
Print (L"DumpDynPcd: %EError. %NThe argument '%B%s%N' is invalid.\n", Argv[1]);\r
goto Done;\r
}\r
}\r
\r
InputPcdName = Argv[1];\r
- Status = ProcessPcd (InputPcdName);\r
+ Status = ProcessPcd (InputPcdName);\r
\r
- Done:\r
+Done:\r
\r
if (mTempPcdNameBuffer != NULL) {\r
FreePool (mTempPcdNameBuffer);\r
\r
return Status;\r
}\r
-\r