]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Nt32Pkg/PlatformBdsDxe/Generic/FrontPage.c
Merger trackers #7807 and #8372.
[mirror_edk2.git] / Nt32Pkg / PlatformBdsDxe / Generic / FrontPage.c
index 4b4caf2460a64c448921cbb957cc05003e1c2741..2ab8bb85971ad55eece599db4ac60a2f13a65f5e 100644 (file)
@@ -18,16 +18,10 @@ Abstract:
   FrontPage routines to handle the callbacks and browser calls\r
 \r
 --*/\r
-\r
-//\r
-// Include common header file for this module.\r
-//\r
-#include "CommonHeader.h"\r
-\r
 #include "Bds.h"\r
 #include "BdsPlatform.h"\r
 #include "FrontPage.h"\r
-#include "String.h"\r
+#include "BdsString.h"\r
 \r
 EFI_GUID                    mProcessorSubClass  = EFI_PROCESSOR_SUBCLASS_GUID;\r
 EFI_GUID                    mMemorySubClass     = EFI_MEMORY_SUBCLASS_GUID;\r
@@ -42,7 +36,6 @@ UINTN                       gCallbackKey;
 BOOLEAN                     gConnectAllHappened = FALSE;\r
 \r
 extern EFI_HII_HANDLE       gFrontPageHandle;\r
-extern EFI_GUID             gBdsStringPackGuid;\r
 \r
 EFI_STATUS\r
 EFIAPI\r
@@ -72,13 +65,13 @@ Returns:
 \r
 --*/\r
 {\r
-  CHAR16        *LanguageString;\r
-  UINTN         Count;\r
-  CHAR16        UnicodeLang[3];\r
-  CHAR8         Lang[3];\r
-  EFI_STATUS    Status;\r
-  UINTN         Index;\r
-  CHAR16        *TmpStr;\r
+  CHAR16                        *LanguageString;\r
+  UINTN                         Count;\r
+  CHAR16                        UnicodeLang[3];\r
+  CHAR8                         Lang[3];\r
+  EFI_STATUS                    Status;\r
+  UINTN                         Index;\r
+  CHAR16                        *TmpStr;\r
   EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground;\r
   EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background;\r
   EFI_GRAPHICS_OUTPUT_BLT_PIXEL Color;\r
@@ -106,7 +99,7 @@ Returns:
     //\r
     // Collect the languages from what our current Language support is based on our VFR\r
     //\r
-    Hii->GetPrimaryLanguages (Hii, gFrontPageHandle, &LanguageString);\r
+    gHii->GetPrimaryLanguages (gHii, gFrontPageHandle, &LanguageString);\r
 \r
     //\r
     // Based on the DataArray->Data->Data value, we can determine\r
@@ -255,9 +248,9 @@ Returns:
 \r
   gCallbackKey  = 0;\r
 \r
-  PackageList   = PreparePackages (1, &gBdsStringPackGuid, FrontPageVfrBin);\r
+  PackageList   = PreparePackages (1, &gEfiCallerIdGuid, FrontPageVfrBin);\r
 \r
-  Status        = Hii->NewPack (Hii, PackageList, &gFrontPageHandle);\r
+  Status        = gHii->NewPack (gHii, PackageList, &gFrontPageHandle);\r
 \r
   FreePool (PackageList);\r
 \r
@@ -335,21 +328,10 @@ ReInitStrings:
   //\r
   // Collect the languages from what our current Language support is based on our VFR\r
   //\r
-  Hii->GetPrimaryLanguages (Hii, gFrontPageHandle, &LanguageString);\r
+  gHii->GetPrimaryLanguages (gHii, gFrontPageHandle, &LanguageString);\r
 \r
   OptionCount = 0;\r
 \r
-  //\r
-  // Try for a 512 byte Buffer\r
-  //\r
-  BufferSize = 0x200;\r
-\r
-  //\r
-  // Allocate memory for our Form binary\r
-  //\r
-  StringBuffer = AllocateZeroPool (BufferSize);\r
-  ASSERT (StringBuffer != NULL);\r
-\r
   for (Index = 0; LanguageString[Index] != 0; Index += 3) {\r
     Token = 0;\r
     CopyMem (Lang, &LanguageString[Index], 6);\r
@@ -359,8 +341,15 @@ ReInitStrings:
       mLastSelection = (UINT16) OptionCount;\r
     }\r
 \r
-    Status = Hii->GetString (Hii, gStringPackHandle, 1, TRUE, Lang, &BufferSize, StringBuffer);\r
-    Hii->NewString (Hii, NULL, gStringPackHandle, &Token, StringBuffer);\r
+    BufferSize = 0;\r
+    Status = gHii->GetString (gHii, gStringPackHandle, 1, TRUE, Lang, &BufferSize, NULL);\r
+    ASSERT (Status == EFI_BUFFER_TOO_SMALL);\r
+    StringBuffer = AllocateZeroPool (BufferSize);\r
+    ASSERT (StringBuffer != NULL);\r
+    Status = gHii->GetString (gHii, gStringPackHandle, 1, TRUE, Lang, &BufferSize, StringBuffer);\r
+    ASSERT_EFI_ERROR (Status);\r
+    gHii->NewString (gHii, NULL, gStringPackHandle, &Token, StringBuffer);\r
+    FreePool (StringBuffer);\r
     CopyMem (&OptionList[OptionCount].StringToken, &Token, sizeof (UINT16));\r
     CopyMem (&OptionList[OptionCount].Value, &OptionCount, sizeof (UINT16));\r
     Key = 0x1234;\r
@@ -372,7 +361,6 @@ ReInitStrings:
   FreePool (LanguageString);\r
 \r
   if (ReInitializeStrings) {\r
-    FreePool (StringBuffer);\r
     FreePool (OptionList);\r
     return EFI_SUCCESS;\r
   }\r
@@ -392,13 +380,10 @@ ReInitStrings:
   //\r
   UpdateData->DataCount = (UINT8) (OptionCount + 2);\r
 \r
-  Hii->UpdateForm (Hii, gFrontPageHandle, (EFI_FORM_LABEL) 0x0002, TRUE, UpdateData);\r
+  gHii->UpdateForm (gHii, gFrontPageHandle, (EFI_FORM_LABEL) 0x0002, TRUE, UpdateData);\r
 \r
   FreePool (UpdateData);\r
-  //\r
-  // FreePool (OptionList);\r
-  //\r
-  FreePool (StringBuffer);\r
+  FreePool (OptionList);\r
   return Status;\r
 }\r
 \r
@@ -452,7 +437,7 @@ Returns:
     EnableResetRequired ();\r
   }\r
 \r
-  Hii->ResetStrings (Hii, gFrontPageHandle);\r
+  gHii->ResetStrings (gHii, gFrontPageHandle);\r
 \r
   return Status;\r
 }\r
@@ -499,11 +484,11 @@ Returns:
   //\r
   // Get all the Hii handles\r
   //\r
-  Status = BdsLibGetHiiHandles (Hii, &HandleBufferLength, &HiiHandleBuffer);\r
+  Status = BdsLibGetHiiHandles (gHii, &HandleBufferLength, &HiiHandleBuffer);\r
   ASSERT_EFI_ERROR (Status);\r
 \r
   //\r
-  // Get the Hii Handle that matches the StructureNode->ProducerName\r
+  // Get the gHii Handle that matches the StructureNode->ProducerName\r
   //\r
   NumberOfHiiHandles = HandleBufferLength / sizeof (EFI_HII_HANDLE);\r
   for (Index = 0; Index < NumberOfHiiHandles; Index++) {\r
@@ -523,8 +508,8 @@ Returns:
   //\r
   StringBufferLength  = 0x100;\r
   *String             = AllocateZeroPool (0x100);\r
-  Status = Hii->GetString (\r
-                  Hii,\r
+  Status = gHii->GetString (\r
+                  gHii,\r
                   HiiHandleBuffer[Index],\r
                   Token,\r
                   FALSE,\r
@@ -693,7 +678,7 @@ Returns:
         BiosVendor = (EFI_MISC_BIOS_VENDOR_DATA *) (DataHeader + 1);\r
         GetStringFromToken (&Record->ProducerName, BiosVendor->BiosVersion, &NewString);\r
         TokenToUpdate = (STRING_REF) STR_FRONT_PAGE_BIOS_VERSION;\r
-        Hii->NewString (Hii, Lang, gFrontPageHandle, &TokenToUpdate, NewString);\r
+        gHii->NewString (gHii, Lang, gFrontPageHandle, &TokenToUpdate, NewString);\r
         FreePool (NewString);\r
         Find[0] = TRUE;\r
       }\r
@@ -704,7 +689,7 @@ Returns:
         SystemManufacturer = (EFI_MISC_SYSTEM_MANUFACTURER_DATA *) (DataHeader + 1);\r
         GetStringFromToken (&Record->ProducerName, SystemManufacturer->SystemProductName, &NewString);\r
         TokenToUpdate = (STRING_REF) STR_FRONT_PAGE_COMPUTER_MODEL;\r
-        Hii->NewString (Hii, Lang, gFrontPageHandle, &TokenToUpdate, NewString);\r
+        gHii->NewString (gHii, Lang, gFrontPageHandle, &TokenToUpdate, NewString);\r
         FreePool (NewString);\r
         Find[1] = TRUE;\r
       }\r
@@ -715,7 +700,7 @@ Returns:
         ProcessorVersion = (EFI_PROCESSOR_VERSION_DATA *) (DataHeader + 1);\r
         GetStringFromToken (&Record->ProducerName, *ProcessorVersion, &NewString);\r
         TokenToUpdate = (STRING_REF) STR_FRONT_PAGE_CPU_MODEL;\r
-        Hii->NewString (Hii, Lang, gFrontPageHandle, &TokenToUpdate, NewString);\r
+        gHii->NewString (gHii, Lang, gFrontPageHandle, &TokenToUpdate, NewString);\r
         FreePool (NewString);\r
         Find[2] = TRUE;\r
       }\r
@@ -726,7 +711,7 @@ Returns:
         ProcessorFrequency = (EFI_PROCESSOR_CORE_FREQUENCY_DATA *) (DataHeader + 1);\r
         ConvertProcessorToString (ProcessorFrequency, &NewString);\r
         TokenToUpdate = (STRING_REF) STR_FRONT_PAGE_CPU_SPEED;\r
-        Hii->NewString (Hii, Lang, gFrontPageHandle, &TokenToUpdate, NewString);\r
+        gHii->NewString (gHii, Lang, gFrontPageHandle, &TokenToUpdate, NewString);\r
         FreePool (NewString);\r
         Find[3] = TRUE;\r
       }\r
@@ -739,7 +724,7 @@ Returns:
                                   MemoryArray->MemoryArrayStartAddress + 1), 20)),\r
                                   &NewString);\r
         TokenToUpdate = (STRING_REF) STR_FRONT_PAGE_MEMORY_SIZE;\r
-        Hii->NewString (Hii, Lang, gFrontPageHandle, &TokenToUpdate, NewString);\r
+        gHii->NewString (gHii, Lang, gFrontPageHandle, &TokenToUpdate, NewString);\r
         FreePool (NewString);\r
         Find[4] = TRUE;\r
       }\r
@@ -797,7 +782,7 @@ Returns:
   //\r
   // Remove Banner Op-code if any at this label\r
   //\r
-  Hii->UpdateForm (Hii, gFrontPageHandle, (EFI_FORM_LABEL) 0xFFFF, FALSE, UpdateData);\r
+  gHii->UpdateForm (gHii, gFrontPageHandle, (EFI_FORM_LABEL) 0xFFFF, FALSE, UpdateData);\r
 \r
   //\r
   // Create Banner Op-code which reflects correct timeout value\r
@@ -812,7 +797,7 @@ Returns:
   //\r
   // Add Banner Op-code at this label\r
   //\r
-  Hii->UpdateForm (Hii, gFrontPageHandle, (EFI_FORM_LABEL) 0xFFFF, TRUE, UpdateData);\r
+  gHii->UpdateForm (gHii, gFrontPageHandle, (EFI_FORM_LABEL) 0xFFFF, TRUE, UpdateData);\r
 \r
   do {\r
 \r