]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/HiiLib/HiiLib.c
Clean up HiiLib.
[mirror_edk2.git] / MdePkg / Library / HiiLib / HiiLib.c
index 749b004d9f641b7fdcda7dee71d1141401b1f22f..a178012b6e8917fb7837221d069e3639ae74aadb 100644 (file)
@@ -32,6 +32,9 @@ LocateHiiProtocols (
   EFI_STATUS  Status;\r
 \r
   if (mHiiProtocolsInitialized) {\r
+    //\r
+    // Only need to initialize the protocol instance once.\r
+    //\r
     return;\r
   }\r
 \r
@@ -52,6 +55,13 @@ LocateHiiProtocols (
   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
@@ -86,6 +96,9 @@ InternalHiiLibPreparePackages (
   \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
@@ -95,6 +108,7 @@ InternalHiiLibPreparePackages (
   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
@@ -127,11 +141,11 @@ InternalHiiLibPreparePackages (
   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
@@ -222,8 +236,6 @@ HiiLibAddPackages (
   @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
@@ -232,7 +244,7 @@ HiiLibRemovePackages (
   )\r
 {\r
   EFI_STATUS Status;\r
-  ASSERT (HiiHandle != NULL);\r
+  ASSERT (IsHiiHandleRegistered (HiiHandle));\r
 \r
   LocateHiiProtocols ();\r
 \r
@@ -328,6 +340,7 @@ HiiLibExtractGuidFromHiiHandle (
   EFI_HII_PACKAGE_LIST_HEADER  *HiiPackageList;\r
 \r
   ASSERT (Guid != NULL);\r
+  ASSERT (IsHiiHandleRegistered (Handle));\r
 \r
   //\r
   // Get HII PackageList\r
@@ -355,7 +368,7 @@ HiiLibExtractGuidFromHiiHandle (
   //\r
   CopyMem (Guid, &HiiPackageList->PackageListGuid, sizeof (EFI_GUID));\r
 \r
-  gBS->FreePool (HiiPackageList);\r
+  FreePool (HiiPackageList);\r
 \r
   return EFI_SUCCESS;\r
 }\r
@@ -425,7 +438,7 @@ HiiLibDevicePathToHiiHandle (
       break;\r
     }\r
   }\r
-  gBS->FreePool (Handles);\r
+  FreePool (Handles);\r
 \r
   if (DriverHandle == NULL) {\r
     return NULL;\r
@@ -447,7 +460,7 @@ HiiLibDevicePathToHiiHandle (
                           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
@@ -461,7 +474,7 @@ HiiLibDevicePathToHiiHandle (
   }\r
 \r
   if (EFI_ERROR (Status)) {\r
-    gBS->FreePool (HiiHandles);\r
+    FreePool (HiiHandles);\r
     return NULL;\r
   }\r
 \r
@@ -482,7 +495,7 @@ HiiLibDevicePathToHiiHandle (
     }\r
   }\r
 \r
-  gBS->FreePool (HiiHandles);\r
+  FreePool (HiiHandles);\r
   return HiiHandle;\r
 }\r
 \r