\r
**/\r
\r
-\r
#include "HiiDatabase.h"\r
\r
-extern HII_DATABASE_PRIVATE_DATA mPrivate;\r
+extern HII_DATABASE_PRIVATE_DATA mPrivate;\r
\r
/**\r
Convert the hex UNICODE %02x encoding of a UEFI device path to binary\r
**/\r
EFI_STATUS\r
ExtractDevicePath (\r
- IN EFI_STRING String,\r
- OUT UINT8 **DevicePathData,\r
- OUT EFI_STRING *NextString\r
+ IN EFI_STRING String,\r
+ OUT UINT8 **DevicePathData,\r
+ OUT EFI_STRING *NextString\r
)\r
{\r
- UINTN Length;\r
- EFI_STRING PathHdr;\r
- UINT8 *DevicePathBuffer;\r
- CHAR16 TemStr[2];\r
- UINTN Index;\r
- UINT8 DigitUint8;\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
+ UINTN Length;\r
+ EFI_STRING PathHdr;\r
+ UINT8 *DevicePathBuffer;\r
+ CHAR16 TemStr[2];\r
+ UINTN Index;\r
+ UINT8 DigitUint8;\r
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
\r
ASSERT (NextString != NULL && DevicePathData != NULL);\r
\r
//\r
if (String == NULL) {\r
*DevicePathData = NULL;\r
- *NextString = NULL;\r
+ *NextString = NULL;\r
return EFI_SUCCESS;\r
}\r
\r
// Skip '&' if exist.\r
//\r
if (*String == L'&') {\r
- String ++;\r
+ String++;\r
}\r
\r
//\r
// Not include PathHdr, return success and DevicePath = NULL.\r
//\r
*DevicePathData = NULL;\r
- *NextString = String;\r
+ *NextString = String;\r
return EFI_SUCCESS;\r
}\r
}\r
if (*String == 0) {\r
return EFI_INVALID_PARAMETER;\r
}\r
+\r
PathHdr = String;\r
\r
//\r
// or '\0' (end of configuration string) is the UNICODE %02x bytes encoding\r
// of UEFI device path.\r
//\r
- for (Length = 0; *String != 0 && *String != L'&'; String++, Length++);\r
+ for (Length = 0; *String != 0 && *String != L'&'; String++, Length++) {\r
+ }\r
\r
//\r
// Save the return next keyword string value.\r
// as the device path resides in RAM memory.\r
// Translate the data into binary.\r
//\r
- DevicePathBuffer = (UINT8 *) AllocateZeroPool ((Length + 1) / 2);\r
+ DevicePathBuffer = (UINT8 *)AllocateZeroPool ((Length + 1) / 2);\r
if (DevicePathBuffer == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
// Convert DevicePath\r
//\r
ZeroMem (TemStr, sizeof (TemStr));\r
- for (Index = 0; Index < Length; Index ++) {\r
- TemStr[0] = PathHdr[Index];\r
- DigitUint8 = (UINT8) StrHexToUint64 (TemStr);\r
+ for (Index = 0; Index < Length; Index++) {\r
+ TemStr[0] = PathHdr[Index];\r
+ DigitUint8 = (UINT8)StrHexToUint64 (TemStr);\r
if ((Index & 1) == 0) {\r
- DevicePathBuffer [Index/2] = DigitUint8;\r
+ DevicePathBuffer[Index/2] = DigitUint8;\r
} else {\r
- DevicePathBuffer [Index/2] = (UINT8) ((DevicePathBuffer [Index/2] << 4) + DigitUint8);\r
+ DevicePathBuffer[Index/2] = (UINT8)((DevicePathBuffer[Index/2] << 4) + DigitUint8);\r
}\r
}\r
\r
//\r
// Validate DevicePath\r
//\r
- DevicePath = (EFI_DEVICE_PATH_PROTOCOL *) DevicePathBuffer;\r
+ DevicePath = (EFI_DEVICE_PATH_PROTOCOL *)DevicePathBuffer;\r
while (!IsDevicePathEnd (DevicePath)) {\r
if ((DevicePath->Type == 0) || (DevicePath->SubType == 0) || (DevicePathNodeLength (DevicePath) < sizeof (EFI_DEVICE_PATH_PROTOCOL))) {\r
//\r
FreePool (DevicePathBuffer);\r
return EFI_INVALID_PARAMETER;\r
}\r
+\r
DevicePath = NextDevicePathNode (DevicePath);\r
}\r
\r
**/\r
EFI_STATUS\r
ExtractNameSpace (\r
- IN EFI_STRING String,\r
- OUT CHAR8 **NameSpace,\r
- OUT EFI_STRING *NextString\r
+ IN EFI_STRING String,\r
+ OUT CHAR8 **NameSpace,\r
+ OUT EFI_STRING *NextString\r
)\r
{\r
- CHAR16 *TmpPtr;\r
- UINTN NameSpaceSize;\r
+ CHAR16 *TmpPtr;\r
+ UINTN NameSpaceSize;\r
\r
ASSERT (NameSpace != NULL);\r
\r
if (NextString != NULL) {\r
*NextString = NULL;\r
}\r
+\r
return EFI_SUCCESS;\r
}\r
\r
if (StrnCmp (String, L"NAMESPACE=", StrLen (L"NAMESPACE=")) != 0) {\r
return EFI_INVALID_PARAMETER;\r
}\r
+\r
String += StrLen (L"NAMESPACE=");\r
\r
TmpPtr = StrStr (String, L"&");\r
if (TmpPtr != NULL) {\r
*TmpPtr = 0;\r
}\r
+\r
if (NextString != NULL) {\r
*NextString = String + StrLen (String);\r
}\r
// Here will convert the unicode string to ascii and save it.\r
//\r
NameSpaceSize = StrLen (String) + 1;\r
- *NameSpace = AllocatePool (NameSpaceSize);\r
+ *NameSpace = AllocatePool (NameSpaceSize);\r
if (*NameSpace == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
+\r
UnicodeStrToAsciiStrS (String, *NameSpace, NameSpaceSize);\r
\r
if (TmpPtr != NULL) {\r
**/\r
EFI_STATUS\r
ExtractKeyword (\r
- IN EFI_STRING String,\r
- OUT EFI_STRING *Keyword,\r
- OUT EFI_STRING *NextString\r
+ IN EFI_STRING String,\r
+ OUT EFI_STRING *Keyword,\r
+ OUT EFI_STRING *NextString\r
)\r
{\r
EFI_STRING TmpPtr;\r
// KeywordRequest == NULL case.\r
//\r
if (String == NULL) {\r
- *Keyword = NULL;\r
+ *Keyword = NULL;\r
*NextString = NULL;\r
return EFI_SUCCESS;\r
}\r
if (TmpPtr != NULL) {\r
*TmpPtr = 0;\r
}\r
+\r
*NextString = String + StrLen (String);\r
\r
*Keyword = AllocateCopyPool (StrSize (String), String);\r
**/\r
EFI_STATUS\r
ExtractValue (\r
- IN EFI_STRING String,\r
- OUT EFI_STRING *Value,\r
- OUT EFI_STRING *NextString\r
+ IN EFI_STRING String,\r
+ OUT EFI_STRING *Value,\r
+ OUT EFI_STRING *NextString\r
)\r
{\r
EFI_STRING TmpPtr;\r
if (TmpPtr != NULL) {\r
*TmpPtr = 0;\r
}\r
+\r
*NextString = String + StrLen (String);\r
\r
*Value = AllocateCopyPool (StrSize (String), String);\r
**/\r
BOOLEAN\r
ExtractFilter (\r
- IN EFI_STRING String,\r
- OUT UINT8 *FilterFlags,\r
- OUT EFI_STRING *NextString\r
+ IN EFI_STRING String,\r
+ OUT UINT8 *FilterFlags,\r
+ OUT EFI_STRING *NextString\r
)\r
{\r
- CHAR16 *PathPtr;\r
- CHAR16 *KeywordPtr;\r
- BOOLEAN RetVal;\r
+ CHAR16 *PathPtr;\r
+ CHAR16 *KeywordPtr;\r
+ BOOLEAN RetVal;\r
\r
ASSERT ((FilterFlags != NULL) && (NextString != NULL));\r
\r
}\r
\r
*FilterFlags = 0;\r
- RetVal = TRUE;\r
+ RetVal = TRUE;\r
\r
//\r
// Skip '&' if exist.\r
// Find ReadOnly filter.\r
//\r
*FilterFlags |= EFI_KEYWORD_FILTER_READONY;\r
- String += StrLen (L"ReadOnly");\r
+ String += StrLen (L"ReadOnly");\r
} else if (StrnCmp (String, L"ReadWrite", StrLen (L"ReadWrite")) == 0) {\r
//\r
// Find ReadWrite filter.\r
//\r
*FilterFlags |= EFI_KEYWORD_FILTER_REAWRITE;\r
- String += StrLen (L"ReadWrite");\r
+ String += StrLen (L"ReadWrite");\r
} else if (StrnCmp (String, L"Buffer", StrLen (L"Buffer")) == 0) {\r
//\r
// Find Buffer Filter.\r
//\r
*FilterFlags |= EFI_KEYWORD_FILTER_BUFFER;\r
- String += StrLen (L"Buffer");\r
+ String += StrLen (L"Buffer");\r
} else if (StrnCmp (String, L"Numeric", StrLen (L"Numeric")) == 0) {\r
//\r
// Find Numeric Filter\r
} else {\r
String++;\r
switch (*String) {\r
- case L'1':\r
- *FilterFlags |= EFI_KEYWORD_FILTER_NUMERIC_1;\r
- break;\r
- case L'2':\r
- *FilterFlags |= EFI_KEYWORD_FILTER_NUMERIC_2;\r
- break;\r
- case L'4':\r
- *FilterFlags |= EFI_KEYWORD_FILTER_NUMERIC_4;\r
- break;\r
- case L'8':\r
- *FilterFlags |= EFI_KEYWORD_FILTER_NUMERIC_8;\r
- break;\r
- default:\r
- ASSERT (FALSE);\r
- break;\r
+ case L'1':\r
+ *FilterFlags |= EFI_KEYWORD_FILTER_NUMERIC_1;\r
+ break;\r
+ case L'2':\r
+ *FilterFlags |= EFI_KEYWORD_FILTER_NUMERIC_2;\r
+ break;\r
+ case L'4':\r
+ *FilterFlags |= EFI_KEYWORD_FILTER_NUMERIC_4;\r
+ break;\r
+ case L'8':\r
+ *FilterFlags |= EFI_KEYWORD_FILTER_NUMERIC_8;\r
+ break;\r
+ default:\r
+ ASSERT (FALSE);\r
+ break;\r
}\r
+\r
String++;\r
}\r
} else {\r
// Check whether other filter item defined by Platform.\r
//\r
if ((StrnCmp (String, L"&PATH", StrLen (L"&PATH")) == 0) ||\r
- (StrnCmp (String, L"&KEYWORD", StrLen (L"&KEYWORD")) == 0)) {\r
+ (StrnCmp (String, L"&KEYWORD", StrLen (L"&KEYWORD")) == 0))\r
+ {\r
//\r
// New KeywordRequest start, no platform defined filter.\r
//\r
// Platform defined filter rule.\r
// Just skip platform defined filter rule, return success.\r
//\r
- PathPtr = StrStr(String, L"&PATH");\r
- KeywordPtr = StrStr(String, L"&KEYWORD");\r
- if (PathPtr != NULL && KeywordPtr != NULL) {\r
+ PathPtr = StrStr (String, L"&PATH");\r
+ KeywordPtr = StrStr (String, L"&KEYWORD");\r
+ if ((PathPtr != NULL) && (KeywordPtr != NULL)) {\r
//\r
// If both sections exist, return the first follow string.\r
//\r
String += StrLen (String);\r
}\r
}\r
+\r
RetVal = FALSE;\r
}\r
\r
**/\r
BOOLEAN\r
ExtractReadOnlyFromOpCode (\r
- IN UINT8 *OpCodeData\r
+ IN UINT8 *OpCodeData\r
)\r
{\r
- EFI_IFR_QUESTION_HEADER *QuestionHdr;\r
+ EFI_IFR_QUESTION_HEADER *QuestionHdr;\r
\r
ASSERT (OpCodeData != NULL);\r
\r
- QuestionHdr = (EFI_IFR_QUESTION_HEADER *) (OpCodeData + sizeof (EFI_IFR_OP_HEADER));\r
+ QuestionHdr = (EFI_IFR_QUESTION_HEADER *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER));\r
\r
return (QuestionHdr->Flags & EFI_IFR_FLAG_READ_ONLY) != 0;\r
}\r
**/\r
UINT32\r
ValidateFilter (\r
- IN UINT8 *OpCodeData,\r
- IN CHAR16 *KeywordRequest,\r
- OUT CHAR16 **NextString,\r
- OUT BOOLEAN *ReadOnly\r
+ IN UINT8 *OpCodeData,\r
+ IN CHAR16 *KeywordRequest,\r
+ OUT CHAR16 **NextString,\r
+ OUT BOOLEAN *ReadOnly\r
)\r
{\r
- CHAR16 *NextFilter;\r
- CHAR16 *StringPtr;\r
- UINT8 FilterFlags;\r
- EFI_IFR_QUESTION_HEADER *QuestionHdr;\r
- EFI_IFR_OP_HEADER *OpCodeHdr;\r
- UINT8 Flags;\r
- UINT32 RetVal;\r
-\r
- RetVal = KEYWORD_HANDLER_NO_ERROR;\r
+ CHAR16 *NextFilter;\r
+ CHAR16 *StringPtr;\r
+ UINT8 FilterFlags;\r
+ EFI_IFR_QUESTION_HEADER *QuestionHdr;\r
+ EFI_IFR_OP_HEADER *OpCodeHdr;\r
+ UINT8 Flags;\r
+ UINT32 RetVal;\r
+\r
+ RetVal = KEYWORD_HANDLER_NO_ERROR;\r
StringPtr = KeywordRequest;\r
\r
- OpCodeHdr = (EFI_IFR_OP_HEADER *) OpCodeData;\r
- QuestionHdr = (EFI_IFR_QUESTION_HEADER *) (OpCodeData + sizeof (EFI_IFR_OP_HEADER));\r
- if (OpCodeHdr->OpCode == EFI_IFR_ONE_OF_OP || OpCodeHdr->OpCode == EFI_IFR_NUMERIC_OP) {\r
+ OpCodeHdr = (EFI_IFR_OP_HEADER *)OpCodeData;\r
+ QuestionHdr = (EFI_IFR_QUESTION_HEADER *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER));\r
+ if ((OpCodeHdr->OpCode == EFI_IFR_ONE_OF_OP) || (OpCodeHdr->OpCode == EFI_IFR_NUMERIC_OP)) {\r
Flags = *(OpCodeData + sizeof (EFI_IFR_OP_HEADER) + sizeof (EFI_IFR_QUESTION_HEADER));\r
} else {\r
Flags = 0;\r
//\r
// Get ReadOnly flag from Question.\r
//\r
- *ReadOnly = ExtractReadOnlyFromOpCode(OpCodeData);\r
+ *ReadOnly = ExtractReadOnlyFromOpCode (OpCodeData);\r
\r
while (ExtractFilter (StringPtr, &FilterFlags, &NextFilter)) {\r
switch (FilterFlags) {\r
- case EFI_KEYWORD_FILTER_READONY:\r
- if ((QuestionHdr->Flags & EFI_IFR_FLAG_READ_ONLY) == 0) {\r
- RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
- goto Done;\r
- }\r
- break;\r
+ case EFI_KEYWORD_FILTER_READONY:\r
+ if ((QuestionHdr->Flags & EFI_IFR_FLAG_READ_ONLY) == 0) {\r
+ RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
+ goto Done;\r
+ }\r
\r
- case EFI_KEYWORD_FILTER_REAWRITE:\r
- if ((QuestionHdr->Flags & EFI_IFR_FLAG_READ_ONLY) != 0) {\r
- RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
- goto Done;\r
- }\r
- break;\r
+ break;\r
\r
- case EFI_KEYWORD_FILTER_BUFFER:\r
- //\r
- // Only these three opcode use numeric value type.\r
- //\r
- if (OpCodeHdr->OpCode == EFI_IFR_ONE_OF_OP || OpCodeHdr->OpCode == EFI_IFR_NUMERIC_OP || OpCodeHdr->OpCode == EFI_IFR_CHECKBOX_OP) {\r
- RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
- goto Done;\r
- }\r
- break;\r
+ case EFI_KEYWORD_FILTER_REAWRITE:\r
+ if ((QuestionHdr->Flags & EFI_IFR_FLAG_READ_ONLY) != 0) {\r
+ RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
+ goto Done;\r
+ }\r
\r
- case EFI_KEYWORD_FILTER_NUMERIC:\r
- if (OpCodeHdr->OpCode != EFI_IFR_ONE_OF_OP && OpCodeHdr->OpCode != EFI_IFR_NUMERIC_OP && OpCodeHdr->OpCode != EFI_IFR_CHECKBOX_OP) {\r
- RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
- goto Done;\r
- }\r
- break;\r
+ break;\r
\r
- case EFI_KEYWORD_FILTER_NUMERIC_1:\r
- case EFI_KEYWORD_FILTER_NUMERIC_2:\r
- case EFI_KEYWORD_FILTER_NUMERIC_4:\r
- case EFI_KEYWORD_FILTER_NUMERIC_8:\r
- if (OpCodeHdr->OpCode != EFI_IFR_ONE_OF_OP && OpCodeHdr->OpCode != EFI_IFR_NUMERIC_OP && OpCodeHdr->OpCode != EFI_IFR_CHECKBOX_OP) {\r
- RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
- goto Done;\r
- }\r
+ case EFI_KEYWORD_FILTER_BUFFER:\r
+ //\r
+ // Only these three opcode use numeric value type.\r
+ //\r
+ if ((OpCodeHdr->OpCode == EFI_IFR_ONE_OF_OP) || (OpCodeHdr->OpCode == EFI_IFR_NUMERIC_OP) || (OpCodeHdr->OpCode == EFI_IFR_CHECKBOX_OP)) {\r
+ RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
+ goto Done;\r
+ }\r
\r
- //\r
- // For numeric and oneof, it has flags field to specify the detail numeric type.\r
- //\r
- if (OpCodeHdr->OpCode == EFI_IFR_ONE_OF_OP || OpCodeHdr->OpCode == EFI_IFR_NUMERIC_OP) {\r
- switch (Flags & EFI_IFR_NUMERIC_SIZE) {\r
- case EFI_IFR_NUMERIC_SIZE_1:\r
- if (FilterFlags != EFI_KEYWORD_FILTER_NUMERIC_1) {\r
- RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
- goto Done;\r
- }\r
- break;\r
+ break;\r
\r
- case EFI_IFR_NUMERIC_SIZE_2:\r
- if (FilterFlags != EFI_KEYWORD_FILTER_NUMERIC_2) {\r
- RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
- goto Done;\r
- }\r
- break;\r
+ case EFI_KEYWORD_FILTER_NUMERIC:\r
+ if ((OpCodeHdr->OpCode != EFI_IFR_ONE_OF_OP) && (OpCodeHdr->OpCode != EFI_IFR_NUMERIC_OP) && (OpCodeHdr->OpCode != EFI_IFR_CHECKBOX_OP)) {\r
+ RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
+ goto Done;\r
+ }\r
\r
- case EFI_IFR_NUMERIC_SIZE_4:\r
- if (FilterFlags != EFI_KEYWORD_FILTER_NUMERIC_4) {\r
- RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
- goto Done;\r
- }\r
- break;\r
+ break;\r
\r
- case EFI_IFR_NUMERIC_SIZE_8:\r
- if (FilterFlags != EFI_KEYWORD_FILTER_NUMERIC_8) {\r
- RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
- goto Done;\r
- }\r
- break;\r
+ case EFI_KEYWORD_FILTER_NUMERIC_1:\r
+ case EFI_KEYWORD_FILTER_NUMERIC_2:\r
+ case EFI_KEYWORD_FILTER_NUMERIC_4:\r
+ case EFI_KEYWORD_FILTER_NUMERIC_8:\r
+ if ((OpCodeHdr->OpCode != EFI_IFR_ONE_OF_OP) && (OpCodeHdr->OpCode != EFI_IFR_NUMERIC_OP) && (OpCodeHdr->OpCode != EFI_IFR_CHECKBOX_OP)) {\r
+ RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
+ goto Done;\r
+ }\r
\r
- default:\r
- ASSERT (FALSE);\r
- break;\r
+ //\r
+ // For numeric and oneof, it has flags field to specify the detail numeric type.\r
+ //\r
+ if ((OpCodeHdr->OpCode == EFI_IFR_ONE_OF_OP) || (OpCodeHdr->OpCode == EFI_IFR_NUMERIC_OP)) {\r
+ switch (Flags & EFI_IFR_NUMERIC_SIZE) {\r
+ case EFI_IFR_NUMERIC_SIZE_1:\r
+ if (FilterFlags != EFI_KEYWORD_FILTER_NUMERIC_1) {\r
+ RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
+ goto Done;\r
+ }\r
+\r
+ break;\r
+\r
+ case EFI_IFR_NUMERIC_SIZE_2:\r
+ if (FilterFlags != EFI_KEYWORD_FILTER_NUMERIC_2) {\r
+ RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
+ goto Done;\r
+ }\r
+\r
+ break;\r
+\r
+ case EFI_IFR_NUMERIC_SIZE_4:\r
+ if (FilterFlags != EFI_KEYWORD_FILTER_NUMERIC_4) {\r
+ RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
+ goto Done;\r
+ }\r
+\r
+ break;\r
+\r
+ case EFI_IFR_NUMERIC_SIZE_8:\r
+ if (FilterFlags != EFI_KEYWORD_FILTER_NUMERIC_8) {\r
+ RetVal = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
+ goto Done;\r
+ }\r
+\r
+ break;\r
+\r
+ default:\r
+ ASSERT (FALSE);\r
+ break;\r
+ }\r
}\r
- }\r
- break;\r
\r
- default:\r
- ASSERT (FALSE);\r
- break;\r
+ break;\r
+\r
+ default:\r
+ ASSERT (FALSE);\r
+ break;\r
}\r
\r
//\r
**/\r
HII_DATABASE_RECORD *\r
GetRecordFromDevicePath (\r
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
)\r
{\r
- LIST_ENTRY *Link;\r
- UINT8 *DevicePathPkg;\r
- UINT8 *CurrentDevicePath;\r
- UINTN DevicePathSize;\r
- HII_DATABASE_RECORD *TempDatabase;\r
+ LIST_ENTRY *Link;\r
+ UINT8 *DevicePathPkg;\r
+ UINT8 *CurrentDevicePath;\r
+ UINTN DevicePathSize;\r
+ HII_DATABASE_RECORD *TempDatabase;\r
\r
ASSERT (DevicePath != NULL);\r
\r
for (Link = mPrivate.DatabaseList.ForwardLink; Link != &mPrivate.DatabaseList; Link = Link->ForwardLink) {\r
- TempDatabase = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);\r
+ TempDatabase = CR (Link, HII_DATABASE_RECORD, DatabaseEntry, HII_DATABASE_RECORD_SIGNATURE);\r
DevicePathPkg = TempDatabase->PackageList->DevicePathPkg;\r
if (DevicePathPkg != NULL) {\r
CurrentDevicePath = DevicePathPkg + sizeof (EFI_HII_PACKAGE_HEADER);\r
- DevicePathSize = GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) CurrentDevicePath);\r
+ DevicePathSize = GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *)CurrentDevicePath);\r
if ((CompareMem (DevicePath, CurrentDevicePath, DevicePathSize) == 0)) {\r
return TempDatabase;\r
}\r
**/\r
EFI_STATUS\r
GetUnicodeStringTextAndSize (\r
- IN UINT8 *StringSrc,\r
- OUT UINTN *BufferSize,\r
- OUT EFI_STRING *StringDest\r
+ IN UINT8 *StringSrc,\r
+ OUT UINTN *BufferSize,\r
+ OUT EFI_STRING *StringDest\r
)\r
{\r
UINTN StringSize;\r
\r
StringSize = sizeof (CHAR16);\r
StringPtr = StringSrc;\r
- while (ReadUnaligned16 ((UINT16 *) StringPtr) != 0) {\r
+ while (ReadUnaligned16 ((UINT16 *)StringPtr) != 0) {\r
StringSize += sizeof (CHAR16);\r
- StringPtr += sizeof (CHAR16);\r
+ StringPtr += sizeof (CHAR16);\r
}\r
\r
*StringDest = AllocatePool (StringSize);\r
**/\r
EFI_STATUS\r
GetStringIdFromString (\r
- IN HII_STRING_PACKAGE_INSTANCE *StringPackage,\r
- IN CHAR16 *KeywordValue,\r
- OUT EFI_STRING_ID *StringId\r
+ IN HII_STRING_PACKAGE_INSTANCE *StringPackage,\r
+ IN CHAR16 *KeywordValue,\r
+ OUT EFI_STRING_ID *StringId\r
)\r
{\r
- UINT8 *BlockHdr;\r
- EFI_STRING_ID CurrentStringId;\r
- UINTN BlockSize;\r
- UINTN Index;\r
- UINT8 *StringTextPtr;\r
- UINTN Offset;\r
- UINT16 StringCount;\r
- UINT16 SkipCount;\r
- UINT8 Length8;\r
- EFI_HII_SIBT_EXT2_BLOCK Ext2;\r
- UINT32 Length32;\r
- UINTN StringSize;\r
- CHAR16 *String;\r
- CHAR8 *AsciiKeywordValue;\r
- UINTN KeywordValueSize;\r
- EFI_STATUS Status;\r
+ UINT8 *BlockHdr;\r
+ EFI_STRING_ID CurrentStringId;\r
+ UINTN BlockSize;\r
+ UINTN Index;\r
+ UINT8 *StringTextPtr;\r
+ UINTN Offset;\r
+ UINT16 StringCount;\r
+ UINT16 SkipCount;\r
+ UINT8 Length8;\r
+ EFI_HII_SIBT_EXT2_BLOCK Ext2;\r
+ UINT32 Length32;\r
+ UINTN StringSize;\r
+ CHAR16 *String;\r
+ CHAR8 *AsciiKeywordValue;\r
+ UINTN KeywordValueSize;\r
+ EFI_STATUS Status;\r
\r
ASSERT (StringPackage != NULL && KeywordValue != NULL && StringId != NULL);\r
ASSERT (StringPackage->Signature == HII_STRING_PACKAGE_SIGNATURE);\r
\r
CurrentStringId = 1;\r
- Status = EFI_SUCCESS;\r
- String = NULL;\r
- BlockHdr = StringPackage->StringBlock;\r
- BlockSize = 0;\r
- Offset = 0;\r
+ Status = EFI_SUCCESS;\r
+ String = NULL;\r
+ BlockHdr = StringPackage->StringBlock;\r
+ BlockSize = 0;\r
+ Offset = 0;\r
\r
//\r
// Make a ascii keyword value for later use.\r
//\r
- KeywordValueSize = StrLen (KeywordValue) + 1;\r
+ KeywordValueSize = StrLen (KeywordValue) + 1;\r
AsciiKeywordValue = AllocatePool (KeywordValueSize);\r
if (AsciiKeywordValue == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
+\r
UnicodeStrToAsciiStrS (KeywordValue, AsciiKeywordValue, KeywordValueSize);\r
\r
while (*BlockHdr != EFI_HII_SIBT_END) {\r
switch (*BlockHdr) {\r
- case EFI_HII_SIBT_STRING_SCSU:\r
- Offset = sizeof (EFI_HII_STRING_BLOCK);\r
- StringTextPtr = BlockHdr + Offset;\r
- BlockSize += Offset + AsciiStrSize ((CHAR8 *) StringTextPtr);\r
- if (AsciiStrCmp(AsciiKeywordValue, (CHAR8 *) StringTextPtr) == 0) {\r
- *StringId = CurrentStringId;\r
- goto Done;\r
- }\r
- CurrentStringId++;\r
- break;\r
-\r
- case EFI_HII_SIBT_STRING_SCSU_FONT:\r
- Offset = sizeof (EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK) - sizeof (UINT8);\r
- StringTextPtr = BlockHdr + Offset;\r
- if (AsciiStrCmp(AsciiKeywordValue, (CHAR8 *) StringTextPtr) == 0) {\r
- *StringId = CurrentStringId;\r
- goto Done;\r
- }\r
- BlockSize += Offset + AsciiStrSize ((CHAR8 *) StringTextPtr);\r
- CurrentStringId++;\r
- break;\r
-\r
- case EFI_HII_SIBT_STRINGS_SCSU:\r
- CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));\r
- StringTextPtr = (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_BLOCK) - sizeof (UINT8));\r
- BlockSize += StringTextPtr - BlockHdr;\r
-\r
- for (Index = 0; Index < StringCount; Index++) {\r
- BlockSize += AsciiStrSize ((CHAR8 *) StringTextPtr);\r
- if (AsciiStrCmp(AsciiKeywordValue, (CHAR8 *) StringTextPtr) == 0) {\r
+ case EFI_HII_SIBT_STRING_SCSU:\r
+ Offset = sizeof (EFI_HII_STRING_BLOCK);\r
+ StringTextPtr = BlockHdr + Offset;\r
+ BlockSize += Offset + AsciiStrSize ((CHAR8 *)StringTextPtr);\r
+ if (AsciiStrCmp (AsciiKeywordValue, (CHAR8 *)StringTextPtr) == 0) {\r
*StringId = CurrentStringId;\r
goto Done;\r
}\r
- StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *) StringTextPtr);\r
- CurrentStringId++;\r
- }\r
- break;\r
\r
- case EFI_HII_SIBT_STRINGS_SCSU_FONT:\r
- CopyMem (\r
- &StringCount,\r
- (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
- sizeof (UINT16)\r
- );\r
- StringTextPtr = (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK) - sizeof (UINT8));\r
- BlockSize += StringTextPtr - BlockHdr;\r
+ CurrentStringId++;\r
+ break;\r
\r
- for (Index = 0; Index < StringCount; Index++) {\r
- BlockSize += AsciiStrSize ((CHAR8 *) StringTextPtr);\r
- if (AsciiStrCmp(AsciiKeywordValue, (CHAR8 *) StringTextPtr) == 0) {\r
+ case EFI_HII_SIBT_STRING_SCSU_FONT:\r
+ Offset = sizeof (EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK) - sizeof (UINT8);\r
+ StringTextPtr = BlockHdr + Offset;\r
+ if (AsciiStrCmp (AsciiKeywordValue, (CHAR8 *)StringTextPtr) == 0) {\r
*StringId = CurrentStringId;\r
goto Done;\r
}\r
- StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *) StringTextPtr);\r
+\r
+ BlockSize += Offset + AsciiStrSize ((CHAR8 *)StringTextPtr);\r
CurrentStringId++;\r
- }\r
- break;\r
+ break;\r
\r
- case EFI_HII_SIBT_STRING_UCS2:\r
- Offset = sizeof (EFI_HII_STRING_BLOCK);\r
- StringTextPtr = BlockHdr + Offset;\r
- //\r
- // Use StringSize to store the size of the specified string, including the NULL\r
- // terminator.\r
- //\r
- Status = GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
- if (EFI_ERROR (Status)) {\r
- goto Done;\r
- }\r
- ASSERT (String != NULL);\r
- if (StrCmp(KeywordValue, String) == 0) {\r
- *StringId = CurrentStringId;\r
- goto Done;\r
- }\r
- BlockSize += Offset + StringSize;\r
- CurrentStringId++;\r
- break;\r
+ case EFI_HII_SIBT_STRINGS_SCSU:\r
+ CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));\r
+ StringTextPtr = (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_BLOCK) - sizeof (UINT8));\r
+ BlockSize += StringTextPtr - BlockHdr;\r
\r
- case EFI_HII_SIBT_STRING_UCS2_FONT:\r
- Offset = sizeof (EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK) - sizeof (CHAR16);\r
- StringTextPtr = BlockHdr + Offset;\r
- //\r
- // Use StringSize to store the size of the specified string, including the NULL\r
- // terminator.\r
- //\r
- Status = GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
- if (EFI_ERROR (Status)) {\r
- goto Done;\r
- }\r
- ASSERT (String != NULL);\r
- if (StrCmp(KeywordValue, String) == 0) {\r
- *StringId = CurrentStringId;\r
- goto Done;\r
- }\r
- BlockSize += Offset + StringSize;\r
- CurrentStringId++;\r
- break;\r
+ for (Index = 0; Index < StringCount; Index++) {\r
+ BlockSize += AsciiStrSize ((CHAR8 *)StringTextPtr);\r
+ if (AsciiStrCmp (AsciiKeywordValue, (CHAR8 *)StringTextPtr) == 0) {\r
+ *StringId = CurrentStringId;\r
+ goto Done;\r
+ }\r
\r
- case EFI_HII_SIBT_STRINGS_UCS2:\r
- Offset = sizeof (EFI_HII_SIBT_STRINGS_UCS2_BLOCK) - sizeof (CHAR16);\r
- StringTextPtr = BlockHdr + Offset;\r
- BlockSize += Offset;\r
- CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));\r
- for (Index = 0; Index < StringCount; Index++) {\r
+ StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *)StringTextPtr);\r
+ CurrentStringId++;\r
+ }\r
+\r
+ break;\r
+\r
+ case EFI_HII_SIBT_STRINGS_SCSU_FONT:\r
+ CopyMem (\r
+ &StringCount,\r
+ (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
+ sizeof (UINT16)\r
+ );\r
+ StringTextPtr = (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK) - sizeof (UINT8));\r
+ BlockSize += StringTextPtr - BlockHdr;\r
+\r
+ for (Index = 0; Index < StringCount; Index++) {\r
+ BlockSize += AsciiStrSize ((CHAR8 *)StringTextPtr);\r
+ if (AsciiStrCmp (AsciiKeywordValue, (CHAR8 *)StringTextPtr) == 0) {\r
+ *StringId = CurrentStringId;\r
+ goto Done;\r
+ }\r
+\r
+ StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *)StringTextPtr);\r
+ CurrentStringId++;\r
+ }\r
+\r
+ break;\r
+\r
+ case EFI_HII_SIBT_STRING_UCS2:\r
+ Offset = sizeof (EFI_HII_STRING_BLOCK);\r
+ StringTextPtr = BlockHdr + Offset;\r
+ //\r
+ // Use StringSize to store the size of the specified string, including the NULL\r
+ // terminator.\r
+ //\r
Status = GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
if (EFI_ERROR (Status)) {\r
goto Done;\r
}\r
+\r
ASSERT (String != NULL);\r
- BlockSize += StringSize;\r
- if (StrCmp(KeywordValue, String) == 0) {\r
+ if (StrCmp (KeywordValue, String) == 0) {\r
*StringId = CurrentStringId;\r
goto Done;\r
}\r
- StringTextPtr = StringTextPtr + StringSize;\r
+\r
+ BlockSize += Offset + StringSize;\r
CurrentStringId++;\r
- }\r
- break;\r
+ break;\r
\r
- case EFI_HII_SIBT_STRINGS_UCS2_FONT:\r
- Offset = sizeof (EFI_HII_SIBT_STRINGS_UCS2_FONT_BLOCK) - sizeof (CHAR16);\r
- StringTextPtr = BlockHdr + Offset;\r
- BlockSize += Offset;\r
- CopyMem (\r
- &StringCount,\r
- (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
- sizeof (UINT16)\r
- );\r
- for (Index = 0; Index < StringCount; Index++) {\r
+ case EFI_HII_SIBT_STRING_UCS2_FONT:\r
+ Offset = sizeof (EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK) - sizeof (CHAR16);\r
+ StringTextPtr = BlockHdr + Offset;\r
+ //\r
+ // Use StringSize to store the size of the specified string, including the NULL\r
+ // terminator.\r
+ //\r
Status = GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
if (EFI_ERROR (Status)) {\r
goto Done;\r
}\r
+\r
ASSERT (String != NULL);\r
- BlockSize += StringSize;\r
- if (StrCmp(KeywordValue, String) == 0) {\r
+ if (StrCmp (KeywordValue, String) == 0) {\r
*StringId = CurrentStringId;\r
goto Done;\r
}\r
- StringTextPtr = StringTextPtr + StringSize;\r
+\r
+ BlockSize += Offset + StringSize;\r
CurrentStringId++;\r
- }\r
- break;\r
+ break;\r
\r
- case EFI_HII_SIBT_DUPLICATE:\r
- BlockSize += sizeof (EFI_HII_SIBT_DUPLICATE_BLOCK);\r
- CurrentStringId++;\r
- break;\r
+ case EFI_HII_SIBT_STRINGS_UCS2:\r
+ Offset = sizeof (EFI_HII_SIBT_STRINGS_UCS2_BLOCK) - sizeof (CHAR16);\r
+ StringTextPtr = BlockHdr + Offset;\r
+ BlockSize += Offset;\r
+ CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));\r
+ for (Index = 0; Index < StringCount; Index++) {\r
+ Status = GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
+ if (EFI_ERROR (Status)) {\r
+ goto Done;\r
+ }\r
\r
- case EFI_HII_SIBT_SKIP1:\r
- SkipCount = (UINT16) (*(UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK)));\r
- CurrentStringId = (UINT16) (CurrentStringId + SkipCount);\r
- BlockSize += sizeof (EFI_HII_SIBT_SKIP1_BLOCK);\r
- break;\r
+ ASSERT (String != NULL);\r
+ BlockSize += StringSize;\r
+ if (StrCmp (KeywordValue, String) == 0) {\r
+ *StringId = CurrentStringId;\r
+ goto Done;\r
+ }\r
\r
- case EFI_HII_SIBT_SKIP2:\r
- CopyMem (&SkipCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));\r
- CurrentStringId = (UINT16) (CurrentStringId + SkipCount);\r
- BlockSize += sizeof (EFI_HII_SIBT_SKIP2_BLOCK);\r
- break;\r
+ StringTextPtr = StringTextPtr + StringSize;\r
+ CurrentStringId++;\r
+ }\r
\r
- case EFI_HII_SIBT_EXT1:\r
- CopyMem (\r
- &Length8,\r
- (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
- sizeof (UINT8)\r
- );\r
- BlockSize += Length8;\r
- break;\r
+ break;\r
\r
- case EFI_HII_SIBT_EXT2:\r
- CopyMem (&Ext2, BlockHdr, sizeof (EFI_HII_SIBT_EXT2_BLOCK));\r
- BlockSize += Ext2.Length;\r
- break;\r
+ case EFI_HII_SIBT_STRINGS_UCS2_FONT:\r
+ Offset = sizeof (EFI_HII_SIBT_STRINGS_UCS2_FONT_BLOCK) - sizeof (CHAR16);\r
+ StringTextPtr = BlockHdr + Offset;\r
+ BlockSize += Offset;\r
+ CopyMem (\r
+ &StringCount,\r
+ (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
+ sizeof (UINT16)\r
+ );\r
+ for (Index = 0; Index < StringCount; Index++) {\r
+ Status = GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
+ if (EFI_ERROR (Status)) {\r
+ goto Done;\r
+ }\r
\r
- case EFI_HII_SIBT_EXT4:\r
- CopyMem (\r
- &Length32,\r
- (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
- sizeof (UINT32)\r
- );\r
+ ASSERT (String != NULL);\r
+ BlockSize += StringSize;\r
+ if (StrCmp (KeywordValue, String) == 0) {\r
+ *StringId = CurrentStringId;\r
+ goto Done;\r
+ }\r
\r
- BlockSize += Length32;\r
- break;\r
+ StringTextPtr = StringTextPtr + StringSize;\r
+ CurrentStringId++;\r
+ }\r
\r
- default:\r
- break;\r
+ break;\r
+\r
+ case EFI_HII_SIBT_DUPLICATE:\r
+ BlockSize += sizeof (EFI_HII_SIBT_DUPLICATE_BLOCK);\r
+ CurrentStringId++;\r
+ break;\r
+\r
+ case EFI_HII_SIBT_SKIP1:\r
+ SkipCount = (UINT16)(*(UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK)));\r
+ CurrentStringId = (UINT16)(CurrentStringId + SkipCount);\r
+ BlockSize += sizeof (EFI_HII_SIBT_SKIP1_BLOCK);\r
+ break;\r
+\r
+ case EFI_HII_SIBT_SKIP2:\r
+ CopyMem (&SkipCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));\r
+ CurrentStringId = (UINT16)(CurrentStringId + SkipCount);\r
+ BlockSize += sizeof (EFI_HII_SIBT_SKIP2_BLOCK);\r
+ break;\r
+\r
+ case EFI_HII_SIBT_EXT1:\r
+ CopyMem (\r
+ &Length8,\r
+ (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
+ sizeof (UINT8)\r
+ );\r
+ BlockSize += Length8;\r
+ break;\r
+\r
+ case EFI_HII_SIBT_EXT2:\r
+ CopyMem (&Ext2, BlockHdr, sizeof (EFI_HII_SIBT_EXT2_BLOCK));\r
+ BlockSize += Ext2.Length;\r
+ break;\r
+\r
+ case EFI_HII_SIBT_EXT4:\r
+ CopyMem (\r
+ &Length32,\r
+ (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
+ sizeof (UINT32)\r
+ );\r
+\r
+ BlockSize += Length32;\r
+ break;\r
+\r
+ default:\r
+ break;\r
}\r
\r
if (String != NULL) {\r
String = NULL;\r
}\r
\r
- BlockHdr = StringPackage->StringBlock + BlockSize;\r
+ BlockHdr = StringPackage->StringBlock + BlockSize;\r
}\r
\r
Status = EFI_NOT_FOUND;\r
if (AsciiKeywordValue != NULL) {\r
FreePool (AsciiKeywordValue);\r
}\r
+\r
if (String != NULL) {\r
FreePool (String);\r
}\r
+\r
return Status;\r
}\r
\r
**/\r
EFI_STRING_ID\r
GetNextStringId (\r
- IN HII_STRING_PACKAGE_INSTANCE *StringPackage,\r
- IN EFI_STRING_ID StringId,\r
- OUT EFI_STRING *KeywordValue\r
+ IN HII_STRING_PACKAGE_INSTANCE *StringPackage,\r
+ IN EFI_STRING_ID StringId,\r
+ OUT EFI_STRING *KeywordValue\r
)\r
{\r
- UINT8 *BlockHdr;\r
- EFI_STRING_ID CurrentStringId;\r
- UINTN BlockSize;\r
- UINTN Index;\r
- UINT8 *StringTextPtr;\r
- UINTN Offset;\r
- UINT16 StringCount;\r
- UINT16 SkipCount;\r
- UINT8 Length8;\r
- EFI_HII_SIBT_EXT2_BLOCK Ext2;\r
- UINT32 Length32;\r
- BOOLEAN FindString;\r
- UINTN StringSize;\r
- CHAR16 *String;\r
+ UINT8 *BlockHdr;\r
+ EFI_STRING_ID CurrentStringId;\r
+ UINTN BlockSize;\r
+ UINTN Index;\r
+ UINT8 *StringTextPtr;\r
+ UINTN Offset;\r
+ UINT16 StringCount;\r
+ UINT16 SkipCount;\r
+ UINT8 Length8;\r
+ EFI_HII_SIBT_EXT2_BLOCK Ext2;\r
+ UINT32 Length32;\r
+ BOOLEAN FindString;\r
+ UINTN StringSize;\r
+ CHAR16 *String;\r
\r
ASSERT (StringPackage != NULL);\r
ASSERT (StringPackage->Signature == HII_STRING_PACKAGE_SIGNATURE);\r
\r
CurrentStringId = 1;\r
- FindString = FALSE;\r
- String = NULL;\r
+ FindString = FALSE;\r
+ String = NULL;\r
\r
//\r
// Parse the string blocks to get the string text and font.\r
Offset = 0;\r
while (*BlockHdr != EFI_HII_SIBT_END) {\r
switch (*BlockHdr) {\r
- case EFI_HII_SIBT_STRING_SCSU:\r
- Offset = sizeof (EFI_HII_STRING_BLOCK);\r
- StringTextPtr = BlockHdr + Offset;\r
-\r
- if (FindString) {\r
- StringSize = AsciiStrSize ((CHAR8 *) StringTextPtr);\r
- *KeywordValue = AllocatePool (StringSize * sizeof (CHAR16));\r
- if (*KeywordValue == NULL) {\r
- return 0;\r
- }\r
- AsciiStrToUnicodeStrS ((CHAR8 *) StringTextPtr, *KeywordValue, StringSize);\r
- return CurrentStringId;\r
- } else if (CurrentStringId == StringId) {\r
- FindString = TRUE;\r
- }\r
-\r
- BlockSize += Offset + AsciiStrSize ((CHAR8 *) StringTextPtr);\r
- CurrentStringId++;\r
- break;\r
-\r
- case EFI_HII_SIBT_STRING_SCSU_FONT:\r
- Offset = sizeof (EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK) - sizeof (UINT8);\r
- StringTextPtr = BlockHdr + Offset;\r
-\r
- if (FindString) {\r
- StringSize = AsciiStrSize ((CHAR8 *) StringTextPtr);\r
- *KeywordValue = AllocatePool (StringSize * sizeof (CHAR16));\r
- if (*KeywordValue == NULL) {\r
- return 0;\r
- }\r
- AsciiStrToUnicodeStrS ((CHAR8 *) StringTextPtr, *KeywordValue, StringSize);\r
- return CurrentStringId;\r
- } else if (CurrentStringId == StringId) {\r
- FindString = TRUE;\r
- }\r
-\r
- BlockSize += Offset + AsciiStrSize ((CHAR8 *) StringTextPtr);\r
- CurrentStringId++;\r
- break;\r
-\r
- case EFI_HII_SIBT_STRINGS_SCSU:\r
- CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));\r
- StringTextPtr = (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_BLOCK) - sizeof (UINT8));\r
- BlockSize += StringTextPtr - BlockHdr;\r
+ case EFI_HII_SIBT_STRING_SCSU:\r
+ Offset = sizeof (EFI_HII_STRING_BLOCK);\r
+ StringTextPtr = BlockHdr + Offset;\r
\r
- for (Index = 0; Index < StringCount; Index++) {\r
if (FindString) {\r
- StringSize = AsciiStrSize ((CHAR8 *) StringTextPtr);\r
+ StringSize = AsciiStrSize ((CHAR8 *)StringTextPtr);\r
*KeywordValue = AllocatePool (StringSize * sizeof (CHAR16));\r
if (*KeywordValue == NULL) {\r
return 0;\r
}\r
- AsciiStrToUnicodeStrS ((CHAR8 *) StringTextPtr, *KeywordValue, StringSize);\r
+\r
+ AsciiStrToUnicodeStrS ((CHAR8 *)StringTextPtr, *KeywordValue, StringSize);\r
return CurrentStringId;\r
} else if (CurrentStringId == StringId) {\r
FindString = TRUE;\r
}\r
\r
- BlockSize += AsciiStrSize ((CHAR8 *) StringTextPtr);\r
- StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *) StringTextPtr);\r
+ BlockSize += Offset + AsciiStrSize ((CHAR8 *)StringTextPtr);\r
CurrentStringId++;\r
- }\r
- break;\r
+ break;\r
\r
- case EFI_HII_SIBT_STRINGS_SCSU_FONT:\r
- CopyMem (\r
- &StringCount,\r
- (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
- sizeof (UINT16)\r
- );\r
- StringTextPtr = (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK) - sizeof (UINT8));\r
- BlockSize += StringTextPtr - BlockHdr;\r
+ case EFI_HII_SIBT_STRING_SCSU_FONT:\r
+ Offset = sizeof (EFI_HII_SIBT_STRING_SCSU_FONT_BLOCK) - sizeof (UINT8);\r
+ StringTextPtr = BlockHdr + Offset;\r
\r
- for (Index = 0; Index < StringCount; Index++) {\r
if (FindString) {\r
- StringSize = AsciiStrSize ((CHAR8 *) StringTextPtr);\r
+ StringSize = AsciiStrSize ((CHAR8 *)StringTextPtr);\r
*KeywordValue = AllocatePool (StringSize * sizeof (CHAR16));\r
if (*KeywordValue == NULL) {\r
return 0;\r
}\r
- AsciiStrToUnicodeStrS ((CHAR8 *) StringTextPtr, *KeywordValue, StringSize);\r
+\r
+ AsciiStrToUnicodeStrS ((CHAR8 *)StringTextPtr, *KeywordValue, StringSize);\r
return CurrentStringId;\r
} else if (CurrentStringId == StringId) {\r
FindString = TRUE;\r
}\r
\r
- BlockSize += AsciiStrSize ((CHAR8 *) StringTextPtr);\r
- StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *) StringTextPtr);\r
+ BlockSize += Offset + AsciiStrSize ((CHAR8 *)StringTextPtr);\r
CurrentStringId++;\r
- }\r
- break;\r
+ break;\r
\r
- case EFI_HII_SIBT_STRING_UCS2:\r
- Offset = sizeof (EFI_HII_STRING_BLOCK);\r
- StringTextPtr = BlockHdr + Offset;\r
- //\r
- // Use StringSize to store the size of the specified string, including the NULL\r
- // terminator.\r
- //\r
- GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
- if (FindString && (String != NULL) && (*String != L'\0')) {\r
- //\r
- // String protocol use this type for the string id which has value for other package.\r
- // It will allocate an empty string block for this string id. so here we also check\r
- // *String != L'\0' to prohibit this case.\r
- //\r
- *KeywordValue = String;\r
- return CurrentStringId;\r
- } else if (CurrentStringId == StringId) {\r
- FindString = TRUE;\r
- }\r
+ case EFI_HII_SIBT_STRINGS_SCSU:\r
+ CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));\r
+ StringTextPtr = (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_BLOCK) - sizeof (UINT8));\r
+ BlockSize += StringTextPtr - BlockHdr;\r
+\r
+ for (Index = 0; Index < StringCount; Index++) {\r
+ if (FindString) {\r
+ StringSize = AsciiStrSize ((CHAR8 *)StringTextPtr);\r
+ *KeywordValue = AllocatePool (StringSize * sizeof (CHAR16));\r
+ if (*KeywordValue == NULL) {\r
+ return 0;\r
+ }\r
\r
- BlockSize += Offset + StringSize;\r
- CurrentStringId++;\r
- break;\r
+ AsciiStrToUnicodeStrS ((CHAR8 *)StringTextPtr, *KeywordValue, StringSize);\r
+ return CurrentStringId;\r
+ } else if (CurrentStringId == StringId) {\r
+ FindString = TRUE;\r
+ }\r
\r
- case EFI_HII_SIBT_STRING_UCS2_FONT:\r
- Offset = sizeof (EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK) - sizeof (CHAR16);\r
- StringTextPtr = BlockHdr + Offset;\r
- //\r
- // Use StringSize to store the size of the specified string, including the NULL\r
- // terminator.\r
- //\r
- GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
- if (FindString) {\r
- *KeywordValue = String;\r
- return CurrentStringId;\r
- } else if (CurrentStringId == StringId) {\r
- FindString = TRUE;\r
- }\r
+ BlockSize += AsciiStrSize ((CHAR8 *)StringTextPtr);\r
+ StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *)StringTextPtr);\r
+ CurrentStringId++;\r
+ }\r
\r
- BlockSize += Offset + StringSize;\r
- CurrentStringId++;\r
- break;\r
+ break;\r
\r
- case EFI_HII_SIBT_STRINGS_UCS2:\r
- Offset = sizeof (EFI_HII_SIBT_STRINGS_UCS2_BLOCK) - sizeof (CHAR16);\r
- StringTextPtr = BlockHdr + Offset;\r
- BlockSize += Offset;\r
- CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));\r
- for (Index = 0; Index < StringCount; Index++) {\r
- GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
+ case EFI_HII_SIBT_STRINGS_SCSU_FONT:\r
+ CopyMem (\r
+ &StringCount,\r
+ (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
+ sizeof (UINT16)\r
+ );\r
+ StringTextPtr = (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_SIBT_STRINGS_SCSU_FONT_BLOCK) - sizeof (UINT8));\r
+ BlockSize += StringTextPtr - BlockHdr;\r
+\r
+ for (Index = 0; Index < StringCount; Index++) {\r
+ if (FindString) {\r
+ StringSize = AsciiStrSize ((CHAR8 *)StringTextPtr);\r
+ *KeywordValue = AllocatePool (StringSize * sizeof (CHAR16));\r
+ if (*KeywordValue == NULL) {\r
+ return 0;\r
+ }\r
\r
- if (FindString) {\r
+ AsciiStrToUnicodeStrS ((CHAR8 *)StringTextPtr, *KeywordValue, StringSize);\r
+ return CurrentStringId;\r
+ } else if (CurrentStringId == StringId) {\r
+ FindString = TRUE;\r
+ }\r
+\r
+ BlockSize += AsciiStrSize ((CHAR8 *)StringTextPtr);\r
+ StringTextPtr = StringTextPtr + AsciiStrSize ((CHAR8 *)StringTextPtr);\r
+ CurrentStringId++;\r
+ }\r
+\r
+ break;\r
+\r
+ case EFI_HII_SIBT_STRING_UCS2:\r
+ Offset = sizeof (EFI_HII_STRING_BLOCK);\r
+ StringTextPtr = BlockHdr + Offset;\r
+ //\r
+ // Use StringSize to store the size of the specified string, including the NULL\r
+ // terminator.\r
+ //\r
+ GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
+ if (FindString && (String != NULL) && (*String != L'\0')) {\r
+ //\r
+ // String protocol use this type for the string id which has value for other package.\r
+ // It will allocate an empty string block for this string id. so here we also check\r
+ // *String != L'\0' to prohibit this case.\r
+ //\r
*KeywordValue = String;\r
return CurrentStringId;\r
} else if (CurrentStringId == StringId) {\r
FindString = TRUE;\r
}\r
\r
- BlockSize += StringSize;\r
- StringTextPtr = StringTextPtr + StringSize;\r
+ BlockSize += Offset + StringSize;\r
CurrentStringId++;\r
- }\r
- break;\r
+ break;\r
\r
- case EFI_HII_SIBT_STRINGS_UCS2_FONT:\r
- Offset = sizeof (EFI_HII_SIBT_STRINGS_UCS2_FONT_BLOCK) - sizeof (CHAR16);\r
- StringTextPtr = BlockHdr + Offset;\r
- BlockSize += Offset;\r
- CopyMem (\r
- &StringCount,\r
- (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
- sizeof (UINT16)\r
- );\r
- for (Index = 0; Index < StringCount; Index++) {\r
+ case EFI_HII_SIBT_STRING_UCS2_FONT:\r
+ Offset = sizeof (EFI_HII_SIBT_STRING_UCS2_FONT_BLOCK) - sizeof (CHAR16);\r
+ StringTextPtr = BlockHdr + Offset;\r
+ //\r
+ // Use StringSize to store the size of the specified string, including the NULL\r
+ // terminator.\r
+ //\r
GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
if (FindString) {\r
*KeywordValue = String;\r
FindString = TRUE;\r
}\r
\r
- BlockSize += StringSize;\r
- StringTextPtr = StringTextPtr + StringSize;\r
+ BlockSize += Offset + StringSize;\r
CurrentStringId++;\r
- }\r
- break;\r
+ break;\r
\r
- case EFI_HII_SIBT_DUPLICATE:\r
- BlockSize += sizeof (EFI_HII_SIBT_DUPLICATE_BLOCK);\r
- CurrentStringId++;\r
- break;\r
+ case EFI_HII_SIBT_STRINGS_UCS2:\r
+ Offset = sizeof (EFI_HII_SIBT_STRINGS_UCS2_BLOCK) - sizeof (CHAR16);\r
+ StringTextPtr = BlockHdr + Offset;\r
+ BlockSize += Offset;\r
+ CopyMem (&StringCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));\r
+ for (Index = 0; Index < StringCount; Index++) {\r
+ GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
+\r
+ if (FindString) {\r
+ *KeywordValue = String;\r
+ return CurrentStringId;\r
+ } else if (CurrentStringId == StringId) {\r
+ FindString = TRUE;\r
+ }\r
\r
- case EFI_HII_SIBT_SKIP1:\r
- SkipCount = (UINT16) (*(UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK)));\r
- CurrentStringId = (UINT16) (CurrentStringId + SkipCount);\r
- BlockSize += sizeof (EFI_HII_SIBT_SKIP1_BLOCK);\r
- break;\r
+ BlockSize += StringSize;\r
+ StringTextPtr = StringTextPtr + StringSize;\r
+ CurrentStringId++;\r
+ }\r
\r
- case EFI_HII_SIBT_SKIP2:\r
- CopyMem (&SkipCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));\r
- CurrentStringId = (UINT16) (CurrentStringId + SkipCount);\r
- BlockSize += sizeof (EFI_HII_SIBT_SKIP2_BLOCK);\r
- break;\r
+ break;\r
\r
- case EFI_HII_SIBT_EXT1:\r
- CopyMem (\r
- &Length8,\r
- (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
- sizeof (UINT8)\r
- );\r
- BlockSize += Length8;\r
- break;\r
+ case EFI_HII_SIBT_STRINGS_UCS2_FONT:\r
+ Offset = sizeof (EFI_HII_SIBT_STRINGS_UCS2_FONT_BLOCK) - sizeof (CHAR16);\r
+ StringTextPtr = BlockHdr + Offset;\r
+ BlockSize += Offset;\r
+ CopyMem (\r
+ &StringCount,\r
+ (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
+ sizeof (UINT16)\r
+ );\r
+ for (Index = 0; Index < StringCount; Index++) {\r
+ GetUnicodeStringTextAndSize (StringTextPtr, &StringSize, &String);\r
+ if (FindString) {\r
+ *KeywordValue = String;\r
+ return CurrentStringId;\r
+ } else if (CurrentStringId == StringId) {\r
+ FindString = TRUE;\r
+ }\r
\r
- case EFI_HII_SIBT_EXT2:\r
- CopyMem (&Ext2, BlockHdr, sizeof (EFI_HII_SIBT_EXT2_BLOCK));\r
- BlockSize += Ext2.Length;\r
- break;\r
+ BlockSize += StringSize;\r
+ StringTextPtr = StringTextPtr + StringSize;\r
+ CurrentStringId++;\r
+ }\r
\r
- case EFI_HII_SIBT_EXT4:\r
- CopyMem (\r
- &Length32,\r
- (UINT8*)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
- sizeof (UINT32)\r
- );\r
+ break;\r
\r
- BlockSize += Length32;\r
- break;\r
+ case EFI_HII_SIBT_DUPLICATE:\r
+ BlockSize += sizeof (EFI_HII_SIBT_DUPLICATE_BLOCK);\r
+ CurrentStringId++;\r
+ break;\r
\r
- default:\r
- break;\r
+ case EFI_HII_SIBT_SKIP1:\r
+ SkipCount = (UINT16)(*(UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK)));\r
+ CurrentStringId = (UINT16)(CurrentStringId + SkipCount);\r
+ BlockSize += sizeof (EFI_HII_SIBT_SKIP1_BLOCK);\r
+ break;\r
+\r
+ case EFI_HII_SIBT_SKIP2:\r
+ CopyMem (&SkipCount, BlockHdr + sizeof (EFI_HII_STRING_BLOCK), sizeof (UINT16));\r
+ CurrentStringId = (UINT16)(CurrentStringId + SkipCount);\r
+ BlockSize += sizeof (EFI_HII_SIBT_SKIP2_BLOCK);\r
+ break;\r
+\r
+ case EFI_HII_SIBT_EXT1:\r
+ CopyMem (\r
+ &Length8,\r
+ (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
+ sizeof (UINT8)\r
+ );\r
+ BlockSize += Length8;\r
+ break;\r
+\r
+ case EFI_HII_SIBT_EXT2:\r
+ CopyMem (&Ext2, BlockHdr, sizeof (EFI_HII_SIBT_EXT2_BLOCK));\r
+ BlockSize += Ext2.Length;\r
+ break;\r
+\r
+ case EFI_HII_SIBT_EXT4:\r
+ CopyMem (\r
+ &Length32,\r
+ (UINT8 *)((UINTN)BlockHdr + sizeof (EFI_HII_STRING_BLOCK) + sizeof (UINT8)),\r
+ sizeof (UINT32)\r
+ );\r
+\r
+ BlockSize += Length32;\r
+ break;\r
+\r
+ default:\r
+ break;\r
}\r
\r
if (String != NULL) {\r
String = NULL;\r
}\r
\r
- BlockHdr = StringPackage->StringBlock + BlockSize;\r
+ BlockHdr = StringPackage->StringBlock + BlockSize;\r
}\r
\r
return 0;\r
**/\r
UINT32\r
GetStringIdFromRecord (\r
- IN HII_DATABASE_RECORD *DatabaseRecord,\r
- IN CHAR8 **NameSpace,\r
- IN CHAR16 *KeywordValue,\r
- OUT EFI_STRING_ID *StringId\r
+ IN HII_DATABASE_RECORD *DatabaseRecord,\r
+ IN CHAR8 **NameSpace,\r
+ IN CHAR16 *KeywordValue,\r
+ OUT EFI_STRING_ID *StringId\r
)\r
{\r
LIST_ENTRY *Link;\r
ASSERT (DatabaseRecord != NULL && NameSpace != NULL && KeywordValue != NULL);\r
\r
PackageListNode = DatabaseRecord->PackageList;\r
- RetVal = KEYWORD_HANDLER_NAMESPACE_ID_NOT_FOUND;\r
+ RetVal = KEYWORD_HANDLER_NAMESPACE_ID_NOT_FOUND;\r
\r
if (*NameSpace != NULL) {\r
Name = *NameSpace;\r
for (Link = PackageListNode->StringPkgHdr.ForwardLink; Link != &PackageListNode->StringPkgHdr; Link = Link->ForwardLink) {\r
StringPackage = CR (Link, HII_STRING_PACKAGE_INSTANCE, StringEntry, HII_STRING_PACKAGE_SIGNATURE);\r
\r
- if (AsciiStrnCmp(Name, StringPackage->StringPkgHdr->Language, AsciiStrLen (Name)) == 0) {\r
+ if (AsciiStrnCmp (Name, StringPackage->StringPkgHdr->Language, AsciiStrLen (Name)) == 0) {\r
Status = GetStringIdFromString (StringPackage, KeywordValue, StringId);\r
if (EFI_ERROR (Status)) {\r
return KEYWORD_HANDLER_KEYWORD_NOT_FOUND;\r
return KEYWORD_HANDLER_UNDEFINED_PROCESSING_ERROR;\r
}\r
}\r
+\r
return KEYWORD_HANDLER_NO_ERROR;\r
}\r
}\r
**/\r
BOOLEAN\r
IsStatementOpCode (\r
- IN UINT8 Operand\r
+ IN UINT8 Operand\r
)\r
{\r
if ((Operand == EFI_IFR_SUBTITLE_OP) ||\r
(Operand == EFI_IFR_DATE_OP) ||\r
(Operand == EFI_IFR_TIME_OP) ||\r
(Operand == EFI_IFR_GUID_OP) ||\r
- (Operand == EFI_IFR_ONE_OF_OP)) {\r
+ (Operand == EFI_IFR_ONE_OF_OP))\r
+ {\r
return TRUE;\r
}\r
\r
**/\r
BOOLEAN\r
IsStorageOpCode (\r
- IN UINT8 Operand\r
+ IN UINT8 Operand\r
)\r
{\r
if ((Operand == EFI_IFR_VARSTORE_OP) ||\r
(Operand == EFI_IFR_VARSTORE_NAME_VALUE_OP) ||\r
- (Operand == EFI_IFR_VARSTORE_EFI_OP)) {\r
+ (Operand == EFI_IFR_VARSTORE_EFI_OP))\r
+ {\r
return TRUE;\r
}\r
\r
**/\r
UINT8 *\r
FindQuestionFromStringId (\r
- IN HII_IFR_PACKAGE_INSTANCE *FormPackage,\r
- IN EFI_STRING_ID KeywordStrId\r
+ IN HII_IFR_PACKAGE_INSTANCE *FormPackage,\r
+ IN EFI_STRING_ID KeywordStrId\r
)\r
{\r
- UINT8 *OpCodeData;\r
- UINT32 Offset;\r
- EFI_IFR_STATEMENT_HEADER *StatementHeader;\r
- EFI_IFR_OP_HEADER *OpCodeHeader;\r
- UINT32 FormDataLen;\r
+ UINT8 *OpCodeData;\r
+ UINT32 Offset;\r
+ EFI_IFR_STATEMENT_HEADER *StatementHeader;\r
+ EFI_IFR_OP_HEADER *OpCodeHeader;\r
+ UINT32 FormDataLen;\r
\r
ASSERT (FormPackage != NULL);\r
\r
FormDataLen = FormPackage->FormPkgHdr.Length - sizeof (EFI_HII_PACKAGE_HEADER);\r
- Offset = 0;\r
+ Offset = 0;\r
while (Offset < FormDataLen) {\r
- OpCodeData = FormPackage->IfrData + Offset;\r
- OpCodeHeader = (EFI_IFR_OP_HEADER *) OpCodeData;\r
+ OpCodeData = FormPackage->IfrData + Offset;\r
+ OpCodeHeader = (EFI_IFR_OP_HEADER *)OpCodeData;\r
\r
- if (IsStatementOpCode(OpCodeHeader->OpCode)) {\r
- StatementHeader = (EFI_IFR_STATEMENT_HEADER *) (OpCodeData + sizeof (EFI_IFR_OP_HEADER));\r
+ if (IsStatementOpCode (OpCodeHeader->OpCode)) {\r
+ StatementHeader = (EFI_IFR_STATEMENT_HEADER *)(OpCodeData + sizeof (EFI_IFR_OP_HEADER));\r
if (StatementHeader->Prompt == KeywordStrId) {\r
return OpCodeData;\r
}\r
**/\r
UINT8 *\r
FindStorageFromVarId (\r
- IN HII_IFR_PACKAGE_INSTANCE *FormPackage,\r
- IN EFI_VARSTORE_ID VarStoreId\r
+ IN HII_IFR_PACKAGE_INSTANCE *FormPackage,\r
+ IN EFI_VARSTORE_ID VarStoreId\r
)\r
{\r
- UINT8 *OpCodeData;\r
- UINT32 Offset;\r
- EFI_IFR_OP_HEADER *OpCodeHeader;\r
- UINT32 FormDataLen;\r
+ UINT8 *OpCodeData;\r
+ UINT32 Offset;\r
+ EFI_IFR_OP_HEADER *OpCodeHeader;\r
+ UINT32 FormDataLen;\r
\r
ASSERT (FormPackage != NULL);\r
\r
FormDataLen = FormPackage->FormPkgHdr.Length - sizeof (EFI_HII_PACKAGE_HEADER);\r
- Offset = 0;\r
+ Offset = 0;\r
while (Offset < FormDataLen) {\r
- OpCodeData = FormPackage->IfrData + Offset;\r
- OpCodeHeader = (EFI_IFR_OP_HEADER *) OpCodeData;\r
+ OpCodeData = FormPackage->IfrData + Offset;\r
+ OpCodeHeader = (EFI_IFR_OP_HEADER *)OpCodeData;\r
\r
- if (IsStorageOpCode(OpCodeHeader->OpCode)) {\r
+ if (IsStorageOpCode (OpCodeHeader->OpCode)) {\r
switch (OpCodeHeader->OpCode) {\r
- case EFI_IFR_VARSTORE_OP:\r
- if (VarStoreId == ((EFI_IFR_VARSTORE *) OpCodeData)->VarStoreId) {\r
- return OpCodeData;\r
- }\r
- break;\r
+ case EFI_IFR_VARSTORE_OP:\r
+ if (VarStoreId == ((EFI_IFR_VARSTORE *)OpCodeData)->VarStoreId) {\r
+ return OpCodeData;\r
+ }\r
\r
- case EFI_IFR_VARSTORE_NAME_VALUE_OP:\r
- if (VarStoreId == ((EFI_IFR_VARSTORE_NAME_VALUE *) OpCodeData)->VarStoreId) {\r
- return OpCodeData;\r
- }\r
- break;\r
+ break;\r
\r
- case EFI_IFR_VARSTORE_EFI_OP:\r
- if (VarStoreId == ((EFI_IFR_VARSTORE_EFI *) OpCodeData)->VarStoreId) {\r
- return OpCodeData;\r
- }\r
- break;\r
+ case EFI_IFR_VARSTORE_NAME_VALUE_OP:\r
+ if (VarStoreId == ((EFI_IFR_VARSTORE_NAME_VALUE *)OpCodeData)->VarStoreId) {\r
+ return OpCodeData;\r
+ }\r
\r
- default:\r
- break;\r
+ break;\r
+\r
+ case EFI_IFR_VARSTORE_EFI_OP:\r
+ if (VarStoreId == ((EFI_IFR_VARSTORE_EFI *)OpCodeData)->VarStoreId) {\r
+ return OpCodeData;\r
+ }\r
+\r
+ break;\r
+\r
+ default:\r
+ break;\r
}\r
}\r
\r
**/\r
UINT16\r
GetWidth (\r
- IN UINT8 *OpCodeData\r
+ IN UINT8 *OpCodeData\r
)\r
{\r
- UINT8 *NextOpCodeData;\r
+ UINT8 *NextOpCodeData;\r
\r
ASSERT (OpCodeData != NULL);\r
\r
- switch (((EFI_IFR_OP_HEADER *) OpCodeData)->OpCode) {\r
- case EFI_IFR_REF_OP:\r
- return (UINT16) sizeof (EFI_HII_REF);\r
+ switch (((EFI_IFR_OP_HEADER *)OpCodeData)->OpCode) {\r
+ case EFI_IFR_REF_OP:\r
+ return (UINT16)sizeof (EFI_HII_REF);\r
\r
- case EFI_IFR_ONE_OF_OP:\r
- case EFI_IFR_NUMERIC_OP:\r
- switch (((EFI_IFR_ONE_OF *) OpCodeData)->Flags & EFI_IFR_NUMERIC_SIZE) {\r
- case EFI_IFR_NUMERIC_SIZE_1:\r
- return (UINT16) sizeof (UINT8);\r
+ case EFI_IFR_ONE_OF_OP:\r
+ case EFI_IFR_NUMERIC_OP:\r
+ switch (((EFI_IFR_ONE_OF *)OpCodeData)->Flags & EFI_IFR_NUMERIC_SIZE) {\r
+ case EFI_IFR_NUMERIC_SIZE_1:\r
+ return (UINT16)sizeof (UINT8);\r
\r
- case EFI_IFR_NUMERIC_SIZE_2:\r
- return (UINT16) sizeof (UINT16);\r
+ case EFI_IFR_NUMERIC_SIZE_2:\r
+ return (UINT16)sizeof (UINT16);\r
\r
- case EFI_IFR_NUMERIC_SIZE_4:\r
- return (UINT16) sizeof (UINT32);\r
+ case EFI_IFR_NUMERIC_SIZE_4:\r
+ return (UINT16)sizeof (UINT32);\r
\r
- case EFI_IFR_NUMERIC_SIZE_8:\r
- return (UINT16) sizeof (UINT64);\r
+ case EFI_IFR_NUMERIC_SIZE_8:\r
+ return (UINT16)sizeof (UINT64);\r
\r
- default:\r
- ASSERT (FALSE);\r
- return 0;\r
- }\r
+ default:\r
+ ASSERT (FALSE);\r
+ return 0;\r
+ }\r
\r
- case EFI_IFR_ORDERED_LIST_OP:\r
- NextOpCodeData = OpCodeData + ((EFI_IFR_ORDERED_LIST *) OpCodeData)->Header.Length;\r
- //\r
- // OneOfOption must follow the orderedlist opcode.\r
- //\r
- ASSERT (((EFI_IFR_OP_HEADER *) NextOpCodeData)->OpCode == EFI_IFR_ONE_OF_OPTION_OP);\r
- switch (((EFI_IFR_ONE_OF_OPTION *) NextOpCodeData)->Type) {\r
- case EFI_IFR_TYPE_NUM_SIZE_8:\r
- return (UINT16) sizeof (UINT8) * ((EFI_IFR_ORDERED_LIST *) OpCodeData)->MaxContainers;\r
+ case EFI_IFR_ORDERED_LIST_OP:\r
+ NextOpCodeData = OpCodeData + ((EFI_IFR_ORDERED_LIST *)OpCodeData)->Header.Length;\r
+ //\r
+ // OneOfOption must follow the orderedlist opcode.\r
+ //\r
+ ASSERT (((EFI_IFR_OP_HEADER *)NextOpCodeData)->OpCode == EFI_IFR_ONE_OF_OPTION_OP);\r
+ switch (((EFI_IFR_ONE_OF_OPTION *)NextOpCodeData)->Type) {\r
+ case EFI_IFR_TYPE_NUM_SIZE_8:\r
+ return (UINT16)sizeof (UINT8) * ((EFI_IFR_ORDERED_LIST *)OpCodeData)->MaxContainers;\r
\r
- case EFI_IFR_TYPE_NUM_SIZE_16:\r
- return (UINT16) sizeof (UINT16) * ((EFI_IFR_ORDERED_LIST *) OpCodeData)->MaxContainers ;\r
+ case EFI_IFR_TYPE_NUM_SIZE_16:\r
+ return (UINT16)sizeof (UINT16) * ((EFI_IFR_ORDERED_LIST *)OpCodeData)->MaxContainers;\r
\r
- case EFI_IFR_TYPE_NUM_SIZE_32:\r
- return (UINT16) sizeof (UINT32) * ((EFI_IFR_ORDERED_LIST *) OpCodeData)->MaxContainers;\r
+ case EFI_IFR_TYPE_NUM_SIZE_32:\r
+ return (UINT16)sizeof (UINT32) * ((EFI_IFR_ORDERED_LIST *)OpCodeData)->MaxContainers;\r
\r
- case EFI_IFR_TYPE_NUM_SIZE_64:\r
- return (UINT16) sizeof (UINT64) * ((EFI_IFR_ORDERED_LIST *) OpCodeData)->MaxContainers;\r
+ case EFI_IFR_TYPE_NUM_SIZE_64:\r
+ return (UINT16)sizeof (UINT64) * ((EFI_IFR_ORDERED_LIST *)OpCodeData)->MaxContainers;\r
\r
- default:\r
- ASSERT (FALSE);\r
- return 0;\r
- }\r
+ default:\r
+ ASSERT (FALSE);\r
+ return 0;\r
+ }\r
\r
- case EFI_IFR_CHECKBOX_OP:\r
- return (UINT16) sizeof (BOOLEAN);\r
+ case EFI_IFR_CHECKBOX_OP:\r
+ return (UINT16)sizeof (BOOLEAN);\r
\r
- case EFI_IFR_PASSWORD_OP:\r
- return (UINT16)((UINTN) ((EFI_IFR_PASSWORD *) OpCodeData)->MaxSize * sizeof (CHAR16));\r
+ case EFI_IFR_PASSWORD_OP:\r
+ return (UINT16)((UINTN)((EFI_IFR_PASSWORD *)OpCodeData)->MaxSize * sizeof (CHAR16));\r
\r
- case EFI_IFR_STRING_OP:\r
- return (UINT16)((UINTN) ((EFI_IFR_STRING *) OpCodeData)->MaxSize * sizeof (CHAR16));\r
+ case EFI_IFR_STRING_OP:\r
+ return (UINT16)((UINTN)((EFI_IFR_STRING *)OpCodeData)->MaxSize * sizeof (CHAR16));\r
\r
- case EFI_IFR_DATE_OP:\r
- return (UINT16) sizeof (EFI_HII_DATE);\r
+ case EFI_IFR_DATE_OP:\r
+ return (UINT16)sizeof (EFI_HII_DATE);\r
\r
- case EFI_IFR_TIME_OP:\r
- return (UINT16) sizeof (EFI_HII_TIME);\r
+ case EFI_IFR_TIME_OP:\r
+ return (UINT16)sizeof (EFI_HII_TIME);\r
\r
- default:\r
- ASSERT (FALSE);\r
- return 0;\r
+ default:\r
+ ASSERT (FALSE);\r
+ return 0;\r
}\r
}\r
\r
Lower = TRUE;\r
} else if (*String == L'&') {\r
Lower = FALSE;\r
- } else if (Lower && *String >= L'A' && *String <= L'F') {\r
- *String = (CHAR16) (*String - L'A' + L'a');\r
+ } else if (Lower && (*String >= L'A') && (*String <= L'F')) {\r
+ *String = (CHAR16)(*String - L'A' + L'a');\r
}\r
}\r
\r
**/\r
EFI_STRING\r
ConstructConfigHdr (\r
- IN UINT8 *OpCodeData,\r
- IN EFI_HANDLE DriverHandle\r
+ IN UINT8 *OpCodeData,\r
+ IN EFI_HANDLE DriverHandle\r
)\r
{\r
UINTN NameLength;\r
ASSERT (OpCodeData != NULL);\r
\r
switch (((EFI_IFR_OP_HEADER *)OpCodeData)->OpCode) {\r
- case EFI_IFR_VARSTORE_OP:\r
- Guid = (EFI_GUID *)(UINTN *)&((EFI_IFR_VARSTORE *) OpCodeData)->Guid;\r
- AsciiName = (CHAR8 *) ((EFI_IFR_VARSTORE *) OpCodeData)->Name;\r
- break;\r
+ case EFI_IFR_VARSTORE_OP:\r
+ Guid = (EFI_GUID *)(UINTN *)&((EFI_IFR_VARSTORE *)OpCodeData)->Guid;\r
+ AsciiName = (CHAR8 *)((EFI_IFR_VARSTORE *)OpCodeData)->Name;\r
+ break;\r
\r
- case EFI_IFR_VARSTORE_NAME_VALUE_OP:\r
- Guid = (EFI_GUID *)(UINTN *)&((EFI_IFR_VARSTORE_NAME_VALUE *) OpCodeData)->Guid;\r
- AsciiName = NULL;\r
- break;\r
+ case EFI_IFR_VARSTORE_NAME_VALUE_OP:\r
+ Guid = (EFI_GUID *)(UINTN *)&((EFI_IFR_VARSTORE_NAME_VALUE *)OpCodeData)->Guid;\r
+ AsciiName = NULL;\r
+ break;\r
\r
- case EFI_IFR_VARSTORE_EFI_OP:\r
- Guid = (EFI_GUID *)(UINTN *)&((EFI_IFR_VARSTORE_EFI *) OpCodeData)->Guid;\r
- AsciiName = (CHAR8 *) ((EFI_IFR_VARSTORE_EFI *) OpCodeData)->Name;\r
- break;\r
+ case EFI_IFR_VARSTORE_EFI_OP:\r
+ Guid = (EFI_GUID *)(UINTN *)&((EFI_IFR_VARSTORE_EFI *)OpCodeData)->Guid;\r
+ AsciiName = (CHAR8 *)((EFI_IFR_VARSTORE_EFI *)OpCodeData)->Name;\r
+ break;\r
\r
- default:\r
- ASSERT (FALSE);\r
- Guid = NULL;\r
- AsciiName = NULL;\r
- break;\r
+ default:\r
+ ASSERT (FALSE);\r
+ Guid = NULL;\r
+ AsciiName = NULL;\r
+ break;\r
}\r
\r
if (AsciiName != NULL) {\r
NameSize = AsciiStrSize (AsciiName);\r
- Name = AllocateZeroPool (NameSize * sizeof (CHAR16));\r
+ Name = AllocateZeroPool (NameSize * sizeof (CHAR16));\r
ASSERT (Name != NULL);\r
AsciiStrToUnicodeStrS (AsciiName, Name, NameSize);\r
} else {\r
NameLength = StrLen (Name);\r
}\r
\r
- DevicePath = NULL;\r
+ DevicePath = NULL;\r
DevicePathSize = 0;\r
//\r
// Retrieve DevicePath Protocol associated with DriverHandle\r
if (DevicePath == NULL) {\r
return NULL;\r
}\r
+\r
//\r
// Compute the size of the device path in bytes\r
//\r
//\r
StrCpyS (String, MaxLen, L"GUID=");\r
ReturnString = String;\r
- String += StrLen (String);\r
+ String += StrLen (String);\r
\r
if (Guid != NULL) {\r
//\r
//\r
// Append Name converted to <Char>NameLength\r
//\r
- for (; *Name != L'\0'; Name++) {\r
+ for ( ; *Name != L'\0'; Name++) {\r
UnicodeValueToStringS (\r
String,\r
MaxLen * sizeof (CHAR16) - ((UINTN)String - (UINTN)ReturnString),\r
**/\r
EFI_STRING\r
ConstructRequestElement (\r
- IN CHAR16 *Name,\r
- IN UINT16 Offset,\r
- IN UINT16 Width\r
+ IN CHAR16 *Name,\r
+ IN UINT16 Offset,\r
+ IN UINT16 Width\r
)\r
{\r
- CHAR16 *StringPtr;\r
- UINTN Length;\r
+ CHAR16 *StringPtr;\r
+ UINTN Length;\r
\r
if (Name != NULL) {\r
//\r
(StrLen (Name) + 1) * sizeof (CHAR16),\r
L"%s",\r
Name\r
- );\r
+ );\r
} else {\r
//\r
// Append OFFSET=XXXX&WIDTH=YYYY\0\r
L"OFFSET=%04X&WIDTH=%04X",\r
Offset,\r
Width\r
- );\r
+ );\r
}\r
\r
return StringPtr;\r
**/\r
CHAR16 *\r
GetNameFromId (\r
- IN HII_DATABASE_RECORD *DatabaseRecord,\r
- IN EFI_STRING_ID NameId\r
+ IN HII_DATABASE_RECORD *DatabaseRecord,\r
+ IN EFI_STRING_ID NameId\r
)\r
{\r
CHAR16 *Name;\r
CHAR16 TempString;\r
EFI_STATUS Status;\r
\r
- Name = NULL;\r
- BestLanguage = NULL;\r
- PlatformLanguage = NULL;\r
+ Name = NULL;\r
+ BestLanguage = NULL;\r
+ PlatformLanguage = NULL;\r
SupportedLanguages = NULL;\r
\r
- GetEfiGlobalVariable2 (L"PlatformLang", (VOID**)&PlatformLanguage, NULL);\r
- SupportedLanguages = GetSupportedLanguages(DatabaseRecord->Handle);\r
+ GetEfiGlobalVariable2 (L"PlatformLang", (VOID **)&PlatformLanguage, NULL);\r
+ SupportedLanguages = GetSupportedLanguages (DatabaseRecord->Handle);\r
\r
//\r
// Get the best matching language from SupportedLanguages\r
}\r
\r
StringSize = 0;\r
- Status = mPrivate.HiiString.GetString (\r
- &mPrivate.HiiString,\r
- BestLanguage,\r
- DatabaseRecord->Handle,\r
- NameId,\r
- &TempString,\r
- &StringSize,\r
- NULL\r
- );\r
+ Status = mPrivate.HiiString.GetString (\r
+ &mPrivate.HiiString,\r
+ BestLanguage,\r
+ DatabaseRecord->Handle,\r
+ NameId,\r
+ &TempString,\r
+ &StringSize,\r
+ NULL\r
+ );\r
if (Status != EFI_BUFFER_TOO_SMALL) {\r
goto Done;\r
}\r
}\r
\r
Status = mPrivate.HiiString.GetString (\r
- &mPrivate.HiiString,\r
- BestLanguage,\r
- DatabaseRecord->Handle,\r
- NameId,\r
- Name,\r
- &StringSize,\r
- NULL\r
- );\r
+ &mPrivate.HiiString,\r
+ BestLanguage,\r
+ DatabaseRecord->Handle,\r
+ NameId,\r
+ Name,\r
+ &StringSize,\r
+ NULL\r
+ );\r
\r
if (EFI_ERROR (Status)) {\r
FreePool (Name);\r
\r
Done:\r
if (SupportedLanguages != NULL) {\r
- FreePool(SupportedLanguages);\r
+ FreePool (SupportedLanguages);\r
}\r
+\r
if (BestLanguage != NULL) {\r
FreePool (BestLanguage);\r
}\r
+\r
if (PlatformLanguage != NULL) {\r
FreePool (PlatformLanguage);\r
}\r
**/\r
EFI_STATUS\r
ExtractConfigRequest (\r
- IN HII_DATABASE_RECORD *DatabaseRecord,\r
- IN EFI_STRING_ID KeywordStrId,\r
- OUT UINT8 **OpCodeData,\r
- OUT EFI_STRING *ConfigRequest\r
+ IN HII_DATABASE_RECORD *DatabaseRecord,\r
+ IN EFI_STRING_ID KeywordStrId,\r
+ OUT UINT8 **OpCodeData,\r
+ OUT EFI_STRING *ConfigRequest\r
)\r
{\r
LIST_ENTRY *Link;\r
OpCode = FindQuestionFromStringId (FormPackage, KeywordStrId);\r
if (OpCode != NULL) {\r
*OpCodeData = OpCode;\r
- Header = (EFI_IFR_QUESTION_HEADER *) (OpCode + sizeof (EFI_IFR_OP_HEADER));\r
+ Header = (EFI_IFR_QUESTION_HEADER *)(OpCode + sizeof (EFI_IFR_OP_HEADER));\r
//\r
// Header->VarStoreId == 0 means no storage for this question.\r
//\r
Storage = FindStorageFromVarId (FormPackage, Header->VarStoreId);\r
ASSERT (Storage != NULL);\r
\r
- if (((EFI_IFR_OP_HEADER *) Storage)->OpCode == EFI_IFR_VARSTORE_NAME_VALUE_OP) {\r
+ if (((EFI_IFR_OP_HEADER *)Storage)->OpCode == EFI_IFR_VARSTORE_NAME_VALUE_OP) {\r
Name = GetNameFromId (DatabaseRecord, Header->VarStoreInfo.VarName);\r
} else {\r
Offset = Header->VarStoreInfo.VarOffset;\r
- Width = GetWidth (OpCode);\r
+ Width = GetWidth (OpCode);\r
}\r
- RequestElement = ConstructRequestElement(Name, Offset, Width);\r
- ConfigHdr = ConstructConfigHdr(Storage, DatabaseRecord->DriverHandle);\r
+\r
+ RequestElement = ConstructRequestElement (Name, Offset, Width);\r
+ ConfigHdr = ConstructConfigHdr (Storage, DatabaseRecord->DriverHandle);\r
ASSERT (ConfigHdr != NULL);\r
\r
- MaxLen = StrLen (ConfigHdr) + 1 + StrLen(RequestElement) + 1;\r
+ MaxLen = StrLen (ConfigHdr) + 1 + StrLen (RequestElement) + 1;\r
*ConfigRequest = AllocatePool (MaxLen * sizeof (CHAR16));\r
if (*ConfigRequest == NULL) {\r
FreePool (ConfigHdr);\r
FreePool (RequestElement);\r
return EFI_OUT_OF_RESOURCES;\r
}\r
+\r
StringPtr = *ConfigRequest;\r
\r
StrCpyS (StringPtr, MaxLen, ConfigHdr);\r
**/\r
EFI_STATUS\r
ExtractConfigResp (\r
- IN HII_DATABASE_RECORD *DatabaseRecord,\r
- IN EFI_STRING_ID KeywordStrId,\r
- IN EFI_STRING ValueElement,\r
- OUT UINT8 **OpCodeData,\r
- OUT EFI_STRING *ConfigResp\r
+ IN HII_DATABASE_RECORD *DatabaseRecord,\r
+ IN EFI_STRING_ID KeywordStrId,\r
+ IN EFI_STRING ValueElement,\r
+ OUT UINT8 **OpCodeData,\r
+ OUT EFI_STRING *ConfigResp\r
)\r
{\r
LIST_ENTRY *Link;\r
OpCode = FindQuestionFromStringId (FormPackage, KeywordStrId);\r
if (OpCode != NULL) {\r
*OpCodeData = OpCode;\r
- Header = (EFI_IFR_QUESTION_HEADER *) (OpCode + sizeof (EFI_IFR_OP_HEADER));\r
+ Header = (EFI_IFR_QUESTION_HEADER *)(OpCode + sizeof (EFI_IFR_OP_HEADER));\r
//\r
// Header->VarStoreId == 0 means no storage for this question.\r
//\r
Storage = FindStorageFromVarId (FormPackage, Header->VarStoreId);\r
ASSERT (Storage != NULL);\r
\r
- if (((EFI_IFR_OP_HEADER *) Storage)->OpCode == EFI_IFR_VARSTORE_NAME_VALUE_OP) {\r
+ if (((EFI_IFR_OP_HEADER *)Storage)->OpCode == EFI_IFR_VARSTORE_NAME_VALUE_OP) {\r
Name = GetNameFromId (DatabaseRecord, Header->VarStoreInfo.VarName);\r
} else {\r
Offset = Header->VarStoreInfo.VarOffset;\r
Width = GetWidth (OpCode);\r
}\r
- RequestElement = ConstructRequestElement(Name, Offset, Width);\r
\r
- ConfigHdr = ConstructConfigHdr(Storage, DatabaseRecord->DriverHandle);\r
+ RequestElement = ConstructRequestElement (Name, Offset, Width);\r
+\r
+ ConfigHdr = ConstructConfigHdr (Storage, DatabaseRecord->DriverHandle);\r
ASSERT (ConfigHdr != NULL);\r
\r
- MaxLen = StrLen (ConfigHdr) + 1 + StrLen(RequestElement) + 1 + StrLen (L"VALUE=") + StrLen(ValueElement) + 1;\r
+ MaxLen = StrLen (ConfigHdr) + 1 + StrLen (RequestElement) + 1 + StrLen (L"VALUE=") + StrLen (ValueElement) + 1;\r
*ConfigResp = AllocatePool (MaxLen * sizeof (CHAR16));\r
if (*ConfigResp == NULL) {\r
FreePool (ConfigHdr);\r
FreePool (RequestElement);\r
return EFI_OUT_OF_RESOURCES;\r
}\r
+\r
StringPtr = *ConfigResp;\r
\r
StrCpyS (StringPtr, MaxLen, ConfigHdr);\r
\r
StrCatS (StringPtr, MaxLen, L"&");\r
\r
-\r
StrCatS (StringPtr, MaxLen, RequestElement);\r
\r
StrCatS (StringPtr, MaxLen, L"&");\r
**/\r
EFI_STATUS\r
ExtractValueFromDriver (\r
- IN CHAR16 *ConfigRequest,\r
- OUT CHAR16 **ValueElement\r
+ IN CHAR16 *ConfigRequest,\r
+ OUT CHAR16 **ValueElement\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_STRING Result;\r
- EFI_STRING Progress;\r
- CHAR16 *StringPtr;\r
- CHAR16 *StringEnd;\r
+ EFI_STATUS Status;\r
+ EFI_STRING Result;\r
+ EFI_STRING Progress;\r
+ CHAR16 *StringPtr;\r
+ CHAR16 *StringEnd;\r
\r
ASSERT ((ConfigRequest != NULL) && (ValueElement != NULL));\r
\r
Status = mPrivate.ConfigRouting.ExtractConfig (\r
- &mPrivate.ConfigRouting,\r
- (EFI_STRING) ConfigRequest,\r
- &Progress,\r
- &Result\r
- );\r
+ &mPrivate.ConfigRouting,\r
+ (EFI_STRING)ConfigRequest,\r
+ &Progress,\r
+ &Result\r
+ );\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
if (StringEnd != NULL) {\r
*StringEnd = L'&';\r
}\r
+\r
FreePool (Result);\r
\r
return EFI_SUCCESS;\r
**/\r
EFI_STATUS\r
GetStringIdFromDatabase (\r
- IN EFI_DEVICE_PATH_PROTOCOL **DevicePath,\r
- IN CHAR8 **NameSpace,\r
- IN CHAR16 *KeywordData,\r
- OUT UINT32 *ProgressErr,\r
- OUT EFI_STRING_ID *KeywordStringId,\r
- OUT HII_DATABASE_RECORD **DataBaseRecord\r
- )\r
+ IN EFI_DEVICE_PATH_PROTOCOL **DevicePath,\r
+ IN CHAR8 **NameSpace,\r
+ IN CHAR16 *KeywordData,\r
+ OUT UINT32 *ProgressErr,\r
+ OUT EFI_STRING_ID *KeywordStringId,\r
+ OUT HII_DATABASE_RECORD **DataBaseRecord\r
+ )\r
{\r
- HII_DATABASE_RECORD *Record;\r
- LIST_ENTRY *Link;\r
- BOOLEAN FindNameSpace;\r
- EFI_DEVICE_PATH_PROTOCOL *DestDevicePath;\r
- UINT8 *DevicePathPkg;\r
- UINTN DevicePathSize;\r
+ HII_DATABASE_RECORD *Record;\r
+ LIST_ENTRY *Link;\r
+ BOOLEAN FindNameSpace;\r
+ EFI_DEVICE_PATH_PROTOCOL *DestDevicePath;\r
+ UINT8 *DevicePathPkg;\r
+ UINTN DevicePathSize;\r
\r
ASSERT ((NameSpace != NULL) && (KeywordData != NULL) && (ProgressErr != NULL) && (KeywordStringId != NULL) && (DataBaseRecord != NULL));\r
\r
//\r
// Get DataBaseRecord from device path protocol.\r
//\r
- Record = GetRecordFromDevicePath(*DevicePath);\r
+ Record = GetRecordFromDevicePath (*DevicePath);\r
if (Record == NULL) {\r
//\r
// Can't find the DatabaseRecord base on the input device path info.\r
//\r
*ProgressErr = GetStringIdFromRecord (Record, NameSpace, KeywordData, KeywordStringId);\r
switch (*ProgressErr) {\r
- case KEYWORD_HANDLER_NO_ERROR:\r
- *DataBaseRecord = Record;\r
- return EFI_SUCCESS;\r
+ case KEYWORD_HANDLER_NO_ERROR:\r
+ *DataBaseRecord = Record;\r
+ return EFI_SUCCESS;\r
\r
- case KEYWORD_HANDLER_NAMESPACE_ID_NOT_FOUND:\r
- return EFI_INVALID_PARAMETER;\r
+ case KEYWORD_HANDLER_NAMESPACE_ID_NOT_FOUND:\r
+ return EFI_INVALID_PARAMETER;\r
\r
- default:\r
- ASSERT (*ProgressErr == KEYWORD_HANDLER_KEYWORD_NOT_FOUND);\r
- return EFI_NOT_FOUND;\r
+ default:\r
+ ASSERT (*ProgressErr == KEYWORD_HANDLER_KEYWORD_NOT_FOUND);\r
+ return EFI_NOT_FOUND;\r
}\r
} else {\r
//\r
*DataBaseRecord = Record;\r
\r
if ((DevicePathPkg = Record->PackageList->DevicePathPkg) != NULL) {\r
- DestDevicePath = (EFI_DEVICE_PATH_PROTOCOL *) (DevicePathPkg + sizeof (EFI_HII_PACKAGE_HEADER));\r
- DevicePathSize = GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) DestDevicePath);\r
- *DevicePath = AllocateCopyPool (DevicePathSize, DestDevicePath);\r
+ DestDevicePath = (EFI_DEVICE_PATH_PROTOCOL *)(DevicePathPkg + sizeof (EFI_HII_PACKAGE_HEADER));\r
+ DevicePathSize = GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *)DestDevicePath);\r
+ *DevicePath = AllocateCopyPool (DevicePathSize, DestDevicePath);\r
if (*DevicePath == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
**/\r
EFI_STATUS\r
GenerateKeywordResp (\r
- IN CHAR8 *NameSpace,\r
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,\r
- IN EFI_STRING KeywordData,\r
- IN EFI_STRING ValueStr,\r
- IN BOOLEAN ReadOnly,\r
- OUT EFI_STRING *KeywordResp\r
+ IN CHAR8 *NameSpace,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,\r
+ IN EFI_STRING KeywordData,\r
+ IN EFI_STRING ValueStr,\r
+ IN BOOLEAN ReadOnly,\r
+ OUT EFI_STRING *KeywordResp\r
)\r
{\r
- UINTN RespStrLen;\r
- CHAR16 *RespStr;\r
- CHAR16 *PathHdr;\r
- CHAR16 *UnicodeNameSpace;\r
- UINTN NameSpaceLength;\r
+ UINTN RespStrLen;\r
+ CHAR16 *RespStr;\r
+ CHAR16 *PathHdr;\r
+ CHAR16 *UnicodeNameSpace;\r
+ UINTN NameSpaceLength;\r
\r
ASSERT ((NameSpace != NULL) && (DevicePath != NULL) && (KeywordData != NULL) && (ValueStr != NULL) && (KeywordResp != NULL));\r
\r
// 1.1 NameSpaceId size.\r
// 'NAMESPACE='<String>\r
//\r
- NameSpaceLength = AsciiStrLen (NameSpace);\r
- RespStrLen = 10 + NameSpaceLength;\r
+ NameSpaceLength = AsciiStrLen (NameSpace);\r
+ RespStrLen = 10 + NameSpaceLength;\r
UnicodeNameSpace = AllocatePool ((NameSpaceLength + 1) * sizeof (CHAR16));\r
if (UnicodeNameSpace == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
+\r
AsciiStrToUnicodeStrS (NameSpace, UnicodeNameSpace, NameSpaceLength + 1);\r
\r
//\r
//\r
GenerateSubStr (\r
L"&PATH=",\r
- GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *) DevicePath),\r
- (VOID *) DevicePath,\r
+ GetDevicePathSize ((EFI_DEVICE_PATH_PROTOCOL *)DevicePath),\r
+ (VOID *)DevicePath,\r
1,\r
&PathHdr\r
);\r
//\r
// 2. Allocate the buffer and create the KeywordResp string include '\0'.\r
//\r
- RespStrLen += 1;\r
+ RespStrLen += 1;\r
*KeywordResp = AllocatePool (RespStrLen * sizeof (CHAR16));\r
if (*KeywordResp == NULL) {\r
if (UnicodeNameSpace != NULL) {\r
\r
return EFI_OUT_OF_RESOURCES;\r
}\r
+\r
RespStr = *KeywordResp;\r
\r
//\r
if (UnicodeNameSpace != NULL) {\r
FreePool (UnicodeNameSpace);\r
}\r
+\r
if (PathHdr != NULL) {\r
FreePool (PathHdr);\r
}\r
**/\r
EFI_STATUS\r
MergeToMultiKeywordResp (\r
- IN OUT EFI_STRING *MultiKeywordResp,\r
- IN EFI_STRING *KeywordResp\r
+ IN OUT EFI_STRING *MultiKeywordResp,\r
+ IN EFI_STRING *KeywordResp\r
)\r
{\r
UINTN MultiKeywordRespLen;\r
\r
if (*MultiKeywordResp == NULL) {\r
*MultiKeywordResp = *KeywordResp;\r
- *KeywordResp = NULL;\r
+ *KeywordResp = NULL;\r
return EFI_SUCCESS;\r
}\r
\r
**/\r
EFI_STATUS\r
EnumerateAllKeywords (\r
- IN CHAR8 *NameSpace,\r
- OUT EFI_STRING *MultiResp,\r
- OUT UINT32 *ProgressErr\r
+ IN CHAR8 *NameSpace,\r
+ OUT EFI_STRING *MultiResp,\r
+ OUT UINT32 *ProgressErr\r
)\r
{\r
LIST_ENTRY *Link;\r
BOOLEAN ReadOnly;\r
BOOLEAN FindKeywordPackages;\r
\r
- DataBaseRecord = NULL;\r
- Status = EFI_SUCCESS;\r
- MultiKeywordResp = NULL;\r
- DevicePath = NULL;\r
- LocalNameSpace = NULL;\r
- ConfigRequest = NULL;\r
- ValueElement = NULL;\r
- KeywordResp = NULL;\r
+ DataBaseRecord = NULL;\r
+ Status = EFI_SUCCESS;\r
+ MultiKeywordResp = NULL;\r
+ DevicePath = NULL;\r
+ LocalNameSpace = NULL;\r
+ ConfigRequest = NULL;\r
+ ValueElement = NULL;\r
+ KeywordResp = NULL;\r
FindKeywordPackages = FALSE;\r
\r
if (NameSpace == NULL) {\r
if ((DevicePathPkg = DataBaseRecord->PackageList->DevicePathPkg) != NULL) {\r
DevicePath = DevicePathPkg + sizeof (EFI_HII_PACKAGE_HEADER);\r
}\r
+\r
PackageListNode = DataBaseRecord->PackageList;\r
\r
for (StringLink = PackageListNode->StringPkgHdr.ForwardLink; StringLink != &PackageListNode->StringPkgHdr; StringLink = StringLink->ForwardLink) {\r
//\r
// Check whether has keyword string package.\r
//\r
- if (AsciiStrnCmp(NameSpace, StringPackage->StringPkgHdr->Language, AsciiStrLen (NameSpace)) == 0) {\r
+ if (AsciiStrnCmp (NameSpace, StringPackage->StringPkgHdr->Language, AsciiStrLen (NameSpace)) == 0) {\r
FindKeywordPackages = TRUE;\r
//\r
// Keep the NameSpace string.\r
//\r
// 3.4 Extract Value for the input keyword.\r
//\r
- Status = ExtractValueFromDriver(ConfigRequest, &ValueElement);\r
+ Status = ExtractValueFromDriver (ConfigRequest, &ValueElement);\r
if (EFI_ERROR (Status)) {\r
if (Status != EFI_OUT_OF_RESOURCES) {\r
//\r
//\r
goto Error;\r
}\r
+\r
//\r
// If EFI_OUT_OF_RESOURCES error occur, no need to continue.\r
//\r
//\r
// Extract readonly flag from opcode.\r
//\r
- ReadOnly = ExtractReadOnlyFromOpCode(OpCode);\r
+ ReadOnly = ExtractReadOnlyFromOpCode (OpCode);\r
\r
//\r
// 5. Generate KeywordResp string.\r
//\r
ASSERT (DevicePath != NULL);\r
- Status = GenerateKeywordResp(LocalNameSpace, (EFI_DEVICE_PATH_PROTOCOL *)DevicePath, KeywordData, ValueElement, ReadOnly, &KeywordResp);\r
+ Status = GenerateKeywordResp (LocalNameSpace, (EFI_DEVICE_PATH_PROTOCOL *)DevicePath, KeywordData, ValueElement, ReadOnly, &KeywordResp);\r
if (Status != EFI_SUCCESS) {\r
//\r
// If EFI_OUT_OF_RESOURCES error occur, no need to continue.\r
//\r
// 6. Merge to the MultiKeywordResp string.\r
//\r
- Status = MergeToMultiKeywordResp(&MultiKeywordResp, &KeywordResp);\r
+ Status = MergeToMultiKeywordResp (&MultiKeywordResp, &KeywordResp);\r
if (EFI_ERROR (Status)) {\r
goto Done;\r
}\r
+\r
Error:\r
//\r
// Clean the temp buffer to later use again.\r
FreePool (ConfigRequest);\r
ConfigRequest = NULL;\r
}\r
+\r
if (ValueElement != NULL) {\r
FreePool (ValueElement);\r
ValueElement = NULL;\r
}\r
+\r
if (KeywordResp != NULL) {\r
FreePool (KeywordResp);\r
KeywordResp = NULL;\r
} else {\r
Status = EFI_SUCCESS;\r
}\r
+\r
*MultiResp = MultiKeywordResp;\r
\r
Done:\r
if (LocalNameSpace != NULL) {\r
FreePool (LocalNameSpace);\r
}\r
+\r
if (ConfigRequest != NULL) {\r
FreePool (ConfigRequest);\r
}\r
+\r
if (ValueElement != NULL) {\r
FreePool (ValueElement);\r
}\r
EFI_STATUS\r
EFIAPI\r
EfiConfigKeywordHandlerSetData (\r
- IN EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL *This,\r
- IN CONST EFI_STRING KeywordString,\r
- OUT EFI_STRING *Progress,\r
- OUT UINT32 *ProgressErr\r
+ IN EFI_CONFIG_KEYWORD_HANDLER_PROTOCOL *This,\r
+ IN CONST EFI_STRING KeywordString,\r
+ OUT EFI_STRING *Progress,\r
+ OUT UINT32 *ProgressErr\r
)\r
{\r
- CHAR8 *NameSpace;\r
- EFI_STATUS Status;\r
- CHAR16 *StringPtr;\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
- CHAR16 *NextStringPtr;\r
- CHAR16 *KeywordData;\r
- EFI_STRING_ID KeywordStringId;\r
- UINT32 RetVal;\r
- HII_DATABASE_RECORD *DataBaseRecord;\r
- UINT8 *OpCode;\r
- CHAR16 *ConfigResp;\r
- CHAR16 *MultiConfigResp;\r
- CHAR16 *ValueElement;\r
- BOOLEAN ReadOnly;\r
- EFI_STRING InternalProgress;\r
- CHAR16 *TempString;\r
- CHAR16 *KeywordStartPos;\r
-\r
- if (This == NULL || Progress == NULL || ProgressErr == NULL || KeywordString == NULL) {\r
+ CHAR8 *NameSpace;\r
+ EFI_STATUS Status;\r
+ CHAR16 *StringPtr;\r
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
+ CHAR16 *NextStringPtr;\r
+ CHAR16 *KeywordData;\r
+ EFI_STRING_ID KeywordStringId;\r
+ UINT32 RetVal;\r
+ HII_DATABASE_RECORD *DataBaseRecord;\r
+ UINT8 *OpCode;\r
+ CHAR16 *ConfigResp;\r
+ CHAR16 *MultiConfigResp;\r
+ CHAR16 *ValueElement;\r
+ BOOLEAN ReadOnly;\r
+ EFI_STRING InternalProgress;\r
+ CHAR16 *TempString;\r
+ CHAR16 *KeywordStartPos;\r
+\r
+ if ((This == NULL) || (Progress == NULL) || (ProgressErr == NULL) || (KeywordString == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- *Progress = KeywordString;\r
- *ProgressErr = KEYWORD_HANDLER_UNDEFINED_PROCESSING_ERROR;\r
- Status = EFI_SUCCESS;\r
+ *Progress = KeywordString;\r
+ *ProgressErr = KEYWORD_HANDLER_UNDEFINED_PROCESSING_ERROR;\r
+ Status = EFI_SUCCESS;\r
MultiConfigResp = NULL;\r
NameSpace = NULL;\r
DevicePath = NULL;\r
*ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;\r
goto Done;\r
}\r
+\r
ASSERT (NameSpace != NULL);\r
//\r
// 1.1 Check whether the input namespace is valid.\r
//\r
- if (AsciiStrnCmp(NameSpace, UEFI_CONFIG_LANG, AsciiStrLen (UEFI_CONFIG_LANG)) != 0) {\r
+ if (AsciiStrnCmp (NameSpace, UEFI_CONFIG_LANG, AsciiStrLen (UEFI_CONFIG_LANG)) != 0) {\r
*ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;\r
- Status = EFI_INVALID_PARAMETER;\r
+ Status = EFI_INVALID_PARAMETER;\r
goto Done;\r
}\r
\r
*ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;\r
goto Done;\r
}\r
+\r
StringPtr = NextStringPtr;\r
\r
//\r
// 3. Extract keyword from the KeywordRequest string.\r
//\r
KeywordStartPos = StringPtr;\r
- Status = ExtractKeyword(StringPtr, &KeywordData, &NextStringPtr);\r
+ Status = ExtractKeyword (StringPtr, &KeywordData, &NextStringPtr);\r
if (EFI_ERROR (Status)) {\r
//\r
// Can't find Keyword base on the input device path info.\r
//\r
*ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;\r
- Status = EFI_INVALID_PARAMETER;\r
+ Status = EFI_INVALID_PARAMETER;\r
goto Done;\r
}\r
+\r
StringPtr = NextStringPtr;\r
\r
//\r
// Can't find Value base on the input device path info.\r
//\r
*ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;\r
- Status = EFI_INVALID_PARAMETER;\r
+ Status = EFI_INVALID_PARAMETER;\r
goto Done;\r
}\r
+\r
StringPtr = NextStringPtr;\r
\r
//\r
// 5. Find READONLY tag.\r
//\r
- if ((StringPtr != NULL) && StrnCmp (StringPtr, L"&READONLY", StrLen (L"&READONLY")) == 0) {\r
- ReadOnly = TRUE;\r
+ if ((StringPtr != NULL) && (StrnCmp (StringPtr, L"&READONLY", StrLen (L"&READONLY")) == 0)) {\r
+ ReadOnly = TRUE;\r
StringPtr += StrLen (L"&READONLY");\r
} else {\r
ReadOnly = FALSE;\r
// If not, the input KeywordString must be incorrect, return the error status to caller.\r
//\r
*ProgressErr = KEYWORD_HANDLER_INCOMPATIBLE_VALUE_DETECTED;\r
- Status = EFI_INVALID_PARAMETER;\r
+ Status = EFI_INVALID_PARAMETER;\r
goto Done;\r
}\r
+\r
if (ReadOnly) {\r
*ProgressErr = KEYWORD_HANDLER_ACCESS_NOT_PERMITTED;\r
- Status = EFI_ACCESS_DENIED;\r
+ Status = EFI_ACCESS_DENIED;\r
goto Done;\r
}\r
\r
//\r
// 9. Merge to the MultiKeywordResp string.\r
//\r
- Status = MergeToMultiKeywordResp(&MultiConfigResp, &ConfigResp);\r
+ Status = MergeToMultiKeywordResp (&MultiConfigResp, &ConfigResp);\r
if (EFI_ERROR (Status)) {\r
goto Done;\r
}\r
FreePool (DevicePath);\r
FreePool (KeywordData);\r
FreePool (ValueElement);\r
- NameSpace = NULL;\r
- DevicePath = NULL;\r
- KeywordData = NULL;\r
+ NameSpace = NULL;\r
+ DevicePath = NULL;\r
+ KeywordData = NULL;\r
ValueElement = NULL;\r
if (ConfigResp != NULL) {\r
FreePool (ConfigResp);\r
ConfigResp = NULL;\r
}\r
+\r
KeywordStartPos = NULL;\r
}\r
\r
//\r
// 11. Set value to driver.\r
//\r
- Status = mPrivate.ConfigRouting.RouteConfig(\r
- &mPrivate.ConfigRouting,\r
- (EFI_STRING) MultiConfigResp,\r
- &InternalProgress\r
- );\r
+ Status = mPrivate.ConfigRouting.RouteConfig (\r
+ &mPrivate.ConfigRouting,\r
+ (EFI_STRING)MultiConfigResp,\r
+ &InternalProgress\r
+ );\r
if (EFI_ERROR (Status)) {\r
Status = EFI_DEVICE_ERROR;\r
goto Done;\r
if (NameSpace != NULL) {\r
FreePool (NameSpace);\r
}\r
+\r
if (DevicePath != NULL) {\r
FreePool (DevicePath);\r
}\r
+\r
if (KeywordData != NULL) {\r
FreePool (KeywordData);\r
}\r
+\r
if (ValueElement != NULL) {\r
FreePool (ValueElement);\r
}\r
+\r
if (ConfigResp != NULL) {\r
FreePool (ConfigResp);\r
}\r
- if (MultiConfigResp != NULL && MultiConfigResp != ConfigResp) {\r
+\r
+ if ((MultiConfigResp != NULL) && (MultiConfigResp != ConfigResp)) {\r
FreePool (MultiConfigResp);\r
}\r
\r
OUT EFI_STRING *Results\r
)\r
{\r
- CHAR8 *NameSpace;\r
- EFI_STATUS Status;\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
- HII_DATABASE_RECORD *DataBaseRecord;\r
- CHAR16 *StringPtr;\r
- CHAR16 *NextStringPtr;\r
- CHAR16 *KeywordData;\r
- EFI_STRING_ID KeywordStringId;\r
- UINT8 *OpCode;\r
- CHAR16 *ConfigRequest;\r
- CHAR16 *ValueElement;\r
- UINT32 RetVal;\r
- BOOLEAN ReadOnly;\r
- CHAR16 *KeywordResp;\r
- CHAR16 *MultiKeywordResp;\r
- CHAR16 *TempString;\r
+ CHAR8 *NameSpace;\r
+ EFI_STATUS Status;\r
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
+ HII_DATABASE_RECORD *DataBaseRecord;\r
+ CHAR16 *StringPtr;\r
+ CHAR16 *NextStringPtr;\r
+ CHAR16 *KeywordData;\r
+ EFI_STRING_ID KeywordStringId;\r
+ UINT8 *OpCode;\r
+ CHAR16 *ConfigRequest;\r
+ CHAR16 *ValueElement;\r
+ UINT32 RetVal;\r
+ BOOLEAN ReadOnly;\r
+ CHAR16 *KeywordResp;\r
+ CHAR16 *MultiKeywordResp;\r
+ CHAR16 *TempString;\r
\r
- if (This == NULL || Progress == NULL || ProgressErr == NULL || Results == NULL) {\r
+ if ((This == NULL) || (Progress == NULL) || (ProgressErr == NULL) || (Results == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- *ProgressErr = KEYWORD_HANDLER_UNDEFINED_PROCESSING_ERROR;\r
- Status = EFI_SUCCESS;\r
- DevicePath = NULL;\r
- NameSpace = NULL;\r
- KeywordData = NULL;\r
- ConfigRequest= NULL;\r
- StringPtr = KeywordString;\r
- ReadOnly = FALSE;\r
+ *ProgressErr = KEYWORD_HANDLER_UNDEFINED_PROCESSING_ERROR;\r
+ Status = EFI_SUCCESS;\r
+ DevicePath = NULL;\r
+ NameSpace = NULL;\r
+ KeywordData = NULL;\r
+ ConfigRequest = NULL;\r
+ StringPtr = KeywordString;\r
+ ReadOnly = FALSE;\r
MultiKeywordResp = NULL;\r
KeywordStringId = 0;\r
- TempString = NULL;\r
+ TempString = NULL;\r
\r
//\r
// Use temp string to avoid changing input string buffer.\r
TempString = AllocateCopyPool (StrSize (NameSpaceId), NameSpaceId);\r
ASSERT (TempString != NULL);\r
}\r
+\r
//\r
// 1. Get NameSpace from NameSpaceId keyword.\r
//\r
FreePool (TempString);\r
TempString = NULL;\r
}\r
+\r
if (EFI_ERROR (Status)) {\r
*ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;\r
return Status;\r
}\r
+\r
//\r
// 1.1 Check whether the input namespace is valid.\r
//\r
- if (NameSpace != NULL){\r
- if (AsciiStrnCmp(NameSpace, UEFI_CONFIG_LANG, AsciiStrLen (UEFI_CONFIG_LANG)) != 0) {\r
+ if (NameSpace != NULL) {\r
+ if (AsciiStrnCmp (NameSpace, UEFI_CONFIG_LANG, AsciiStrLen (UEFI_CONFIG_LANG)) != 0) {\r
*ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;\r
return EFI_INVALID_PARAMETER;\r
}\r
*ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;\r
goto Done;\r
}\r
- StringPtr = NextStringPtr;\r
\r
+ StringPtr = NextStringPtr;\r
\r
//\r
// 3. Process Keyword section from the input keywordRequest string.\r
//\r
// 3.1 Extract keyword from the KeywordRequest string.\r
//\r
- Status = ExtractKeyword(StringPtr, &KeywordData, &NextStringPtr);\r
+ Status = ExtractKeyword (StringPtr, &KeywordData, &NextStringPtr);\r
if (EFI_ERROR (Status)) {\r
//\r
// Can't find Keyword base on the input device path info.\r
//\r
*ProgressErr = KEYWORD_HANDLER_MALFORMED_STRING;\r
- Status = EFI_INVALID_PARAMETER;\r
+ Status = EFI_INVALID_PARAMETER;\r
goto Done;\r
}\r
\r
//\r
// 3.4 Extract Value for the input keyword.\r
//\r
- Status = ExtractValueFromDriver(ConfigRequest, &ValueElement);\r
+ Status = ExtractValueFromDriver (ConfigRequest, &ValueElement);\r
if (EFI_ERROR (Status)) {\r
if (Status != EFI_OUT_OF_RESOURCES) {\r
Status = EFI_DEVICE_ERROR;\r
}\r
+\r
goto Done;\r
}\r
+\r
StringPtr = NextStringPtr;\r
\r
//\r
RetVal = ValidateFilter (OpCode, StringPtr, &NextStringPtr, &ReadOnly);\r
if (RetVal != KEYWORD_HANDLER_NO_ERROR) {\r
*ProgressErr = RetVal;\r
- Status = EFI_INVALID_PARAMETER;\r
+ Status = EFI_INVALID_PARAMETER;\r
goto Done;\r
}\r
- StringPtr = NextStringPtr;\r
\r
+ StringPtr = NextStringPtr;\r
\r
//\r
// 5. Generate KeywordResp string.\r
//\r
- Status = GenerateKeywordResp(NameSpace, DevicePath, KeywordData, ValueElement, ReadOnly, &KeywordResp);\r
+ Status = GenerateKeywordResp (NameSpace, DevicePath, KeywordData, ValueElement, ReadOnly, &KeywordResp);\r
if (Status != EFI_SUCCESS) {\r
goto Done;\r
}\r
//\r
// 6. Merge to the MultiKeywordResp string.\r
//\r
- Status = MergeToMultiKeywordResp(&MultiKeywordResp, &KeywordResp);\r
+ Status = MergeToMultiKeywordResp (&MultiKeywordResp, &KeywordResp);\r
if (EFI_ERROR (Status)) {\r
goto Done;\r
}\r
FreePool (KeywordData);\r
FreePool (ValueElement);\r
FreePool (ConfigRequest);\r
- DevicePath = NULL;\r
- KeywordData = NULL;\r
- ValueElement = NULL;\r
+ DevicePath = NULL;\r
+ KeywordData = NULL;\r
+ ValueElement = NULL;\r
ConfigRequest = NULL;\r
if (KeywordResp != NULL) {\r
FreePool (KeywordResp);\r
//\r
// Enumerate all keyword in the system.\r
//\r
- Status = EnumerateAllKeywords(NameSpace, &MultiKeywordResp, ProgressErr);\r
+ Status = EnumerateAllKeywords (NameSpace, &MultiKeywordResp, ProgressErr);\r
if (EFI_ERROR (Status)) {\r
goto Done;\r
}\r
+\r
*Results = MultiKeywordResp;\r
}\r
\r
if (TempString != NULL) {\r
FreePool (TempString);\r
}\r
+\r
if (NameSpace != NULL) {\r
FreePool (NameSpace);\r
}\r
+\r
if (DevicePath != NULL) {\r
FreePool (DevicePath);\r
}\r
+\r
if (KeywordData != NULL) {\r
FreePool (KeywordData);\r
}\r