EFI_STATUS Status;\r
\r
if (mHiiProtocolsInitialized) {\r
+ //\r
+ // Only need to initialize the protocol instance once.\r
+ //\r
return;\r
}\r
\r
package header that defined by UEFI VFR compiler and StringGather\r
tool.\r
\r
+ #pragma pack (push, 1)\r
+ typedef struct {\r
+ UINT32 BinaryLength;\r
+ EFI_HII_PACKAGE_HEADER PackageHeader;\r
+ } TIANO_AUTOGEN_PACKAGES_HEADER;\r
+ #pragma pack (pop)\r
+\r
If there is not enough resource for the new package list,\r
the function will ASSERT.\r
\r
\r
for (Index = 0; Index < NumberOfPackages; Index++) {\r
CopyMem (&PackageLength, VA_ARG (Marker, VOID *), sizeof (UINT32));\r
+ //\r
+ // Do not count the BinaryLength field.\r
+ //\r
PackageListLength += (PackageLength - sizeof (UINT32));\r
}\r
\r
PackageListLength += sizeof (EFI_HII_PACKAGE_HEADER);\r
PackageListHeader = AllocateZeroPool (PackageListLength);\r
ASSERT (PackageListHeader != NULL);\r
+ \r
CopyMem (&PackageListHeader->PackageListGuid, GuidId, sizeof (EFI_GUID));\r
PackageListHeader->PackageLength = PackageListLength;\r
\r
If not enough resource to complete the operation, then ASSERT.\r
\r
@param NumberOfPackages Number of packages.\r
- @param GuidId Package GUID.\r
- @param ... Variable argument list for packages to be assembled.\r
+ @param GuidId Package GUID.\r
+ @param ... Variable argument list for packages to be assembled.\r
\r
@return EFI_HII_PACKAGE_LIST_HEADER Pointer of EFI_HII_PACKAGE_LIST_HEADER. The function will ASSERT if system has\r
- not enough resource to complete the operation.\r
+ not enough resource to complete the operation.\r
\r
**/\r
EFI_HII_PACKAGE_LIST_HEADER *\r
@param HiiHandle The handle that was previously registered to the data base that is requested for removal.\r
List later.\r
\r
- @return VOID\r
-\r
**/\r
VOID\r
EFIAPI\r
)\r
{\r
EFI_STATUS Status;\r
- ASSERT (HiiHandle != NULL);\r
+ ASSERT (IsHiiHandleRegistered (HiiHandle));\r
\r
LocateHiiProtocols ();\r
\r
EFI_HII_PACKAGE_LIST_HEADER *HiiPackageList;\r
\r
ASSERT (Guid != NULL);\r
+ ASSERT (IsHiiHandleRegistered (Handle));\r
\r
//\r
// Get HII PackageList\r
//\r
CopyMem (Guid, &HiiPackageList->PackageListGuid, sizeof (EFI_GUID));\r
\r
- gBS->FreePool (HiiPackageList);\r
+ FreePool (HiiPackageList);\r
\r
return EFI_SUCCESS;\r
}\r
break;\r
}\r
}\r
- gBS->FreePool (Handles);\r
+ FreePool (Handles);\r
\r
if (DriverHandle == NULL) {\r
return NULL;\r
HiiHandles\r
);\r
if (Status == EFI_BUFFER_TOO_SMALL) {\r
- gBS->FreePool (HiiHandles);\r
+ FreePool (HiiHandles);\r
HiiHandles = AllocatePool (BufferSize);\r
ASSERT (HiiHandles != NULL);\r
\r
}\r
\r
if (EFI_ERROR (Status)) {\r
- gBS->FreePool (HiiHandles);\r
+ FreePool (HiiHandles);\r
return NULL;\r
}\r
\r
}\r
}\r
\r
- gBS->FreePool (HiiHandles);\r
+ FreePool (HiiHandles);\r
return HiiHandle;\r
}\r
\r