#include "UefiHandleParsingLib.h"\r
#include "IndustryStandard/Acpi10.h"\r
\r
-EFI_HANDLE mHandleParsingHiiHandle;\r
+EFI_HANDLE mHandleParsingHiiHandle = NULL;\r
HANDLE_INDEX_LIST mHandleList = {{{NULL,NULL},0,0},0};\r
GUID_INFO_BLOCK *GuidList;\r
UINTN GuidListCount;\r
GuidListCount = 0;\r
GuidList = NULL;\r
\r
- mHandleParsingHiiHandle = HiiAddPackages (&gHandleParsingHiiGuid, gImageHandle, UefiHandleParsingLibStrings, NULL);\r
+ //\r
+ // Do nothing with mHandleParsingHiiHandle. Initialize HII as needed.\r
+ //\r
+ return (EFI_SUCCESS);\r
+}\r
+\r
+/** \r
+ Initialization function for HII packages.\r
+ \r
+**/\r
+VOID\r
+HandleParsingHiiInit (VOID)\r
+{\r
if (mHandleParsingHiiHandle == NULL) {\r
- return (EFI_DEVICE_ERROR);\r
+ mHandleParsingHiiHandle = HiiAddPackages (&gHandleParsingHiiGuid, gImageHandle, UefiHandleParsingLibStrings, NULL);\r
+ ASSERT (mHandleParsingHiiHandle != NULL);\r
}\r
-\r
- return (EFI_SUCCESS);\r
}\r
\r
/**\r
return (CatSPrint(NULL, L"LoadedImage"));\r
}\r
\r
+ HandleParsingHiiInit();\r
+\r
Temp = HiiGetString(mHandleParsingHiiHandle, STRING_TOKEN(STR_LI_DUMP_MAIN), NULL);\r
RetVal = AllocateZeroPool (PcdGet16 (PcdShellPrintBufferSize));\r
if (Temp == NULL || RetVal == NULL) {\r
return (CatSPrint(NULL, L"GraphicsOutput"));\r
}\r
\r
+ HandleParsingHiiInit();\r
+\r
Temp = HiiGetString(mHandleParsingHiiHandle, STRING_TOKEN(STR_GOP_DUMP_MAIN), NULL);\r
RetVal = AllocateZeroPool (PcdGet16 (PcdShellPrintBufferSize));\r
if (Temp == NULL || RetVal == NULL) {\r
return (CatSPrint(NULL, L"PciRootBridgeIo"));\r
}\r
\r
+ HandleParsingHiiInit();\r
+\r
Status = gBS->HandleProtocol(\r
TheHandle,\r
&gEfiPciRootBridgeIoProtocolGuid,\r
return (NULL);\r
}\r
\r
+ HandleParsingHiiInit();\r
+\r
RetVal = NULL;\r
Size = 0;\r
\r
CONST GUID_INFO_BLOCK *Temp;\r
EFI_STRING_ID NameID;\r
\r
+ HandleParsingHiiInit();\r
+\r
if (Guid == NULL || TheName == NULL){\r
return (EFI_INVALID_PARAMETER);\r
}\r
{\r
CONST GUID_INFO_BLOCK *Id;\r
\r
+ HandleParsingHiiInit();\r
+\r
Id = InternalShellGetNodeFromGuid(Guid);\r
return (HiiGetString(mHandleParsingHiiHandle, Id==NULL?STRING_TOKEN(STR_UNKNOWN_DEVICE):Id->StringId, Lang));\r
}\r
CHAR16 *String;\r
UINTN LoopCount;\r
\r
+ HandleParsingHiiInit();\r
+\r
ASSERT(Guid != NULL);\r
if (Guid == NULL) {\r
return (EFI_INVALID_PARAMETER);\r