]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Compatibility/FrameworkHiiToUefiHiiThunk/HiiDatabase.c
Add compatibility logic to handle framework fvhob and install FvInfo ppi. And remove...
[mirror_edk2.git] / EdkCompatibilityPkg / Compatibility / FrameworkHiiToUefiHiiThunk / HiiDatabase.c
index 50b902a952cd08b01b8cb3eb79c2a36b06df983b..3fc839ae89ea6bccf67e8c3900230b1cbfebf5ea 100644 (file)
@@ -14,6 +14,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 **/\r
 \r
 #include "HiiDatabase.h"\r
+#include "HiiHandle.h"\r
 \r
 HII_THUNK_PRIVATE_DATA *mHiiThunkPrivateData;\r
 \r
@@ -43,20 +44,6 @@ HII_THUNK_PRIVATE_DATA mHiiThunkPrivateDataTempate = {
     HiiGetKeyboardLayout\r
   },\r
 \r
-  //\r
-  //StaticHiiHandle\r
-  //The FRAMEWORK_EFI_HII_HANDLE starts from 1 \r
-  // and increase upwords untill reach the value of StaticPureUefiHiiHandle. \r
-  // The code will assert to prevent overflow.\r
-  (FRAMEWORK_EFI_HII_HANDLE) 1,\r
-\r
-  //\r
-  //StaticPureUefiHiiHandle\r
-  //The Static FRAMEWORK_EFI_HII_HANDLE starts from 0xFFFF \r
-  // and decrease downwords untill reach the value of StaticHiiHandle. \r
-  // The code will assert to prevent overflow.\r
-  //\r
-  (FRAMEWORK_EFI_HII_HANDLE) 0xFFFF,\r
   {\r
     NULL, NULL                  //HiiHandleLinkList\r
   },\r
@@ -76,6 +63,7 @@ EFI_FORMBROWSER_THUNK_PRIVATE_DATA mBrowserThunkPrivateDataTemplate = {
 CONST EFI_HII_DATABASE_PROTOCOL            *mHiiDatabase;\r
 CONST EFI_HII_IMAGE_PROTOCOL               *mHiiImageProtocol;\r
 CONST EFI_HII_STRING_PROTOCOL              *mHiiStringProtocol;\r
+CONST EFI_HII_FONT_PROTOCOL                *mHiiFontProtocol;\r
 CONST EFI_HII_CONFIG_ROUTING_PROTOCOL      *mHiiConfigRoutingProtocol;\r
 CONST EFI_FORM_BROWSER2_PROTOCOL           *mFormBrowser2Protocol;\r
 \r
@@ -110,6 +98,7 @@ Returns:
   UINTN                   BufferLength;\r
   EFI_HII_HANDLE          *Buffer;\r
   UINTN                   Index;\r
+  HII_THUNK_CONTEXT       *ThunkContext;\r
   \r
 \r
   ASSERT_PROTOCOL_ALREADY_INSTALLED (NULL, &gEfiHiiProtocolGuid);\r
@@ -118,6 +107,8 @@ Returns:
   ASSERT (Private != NULL);\r
   InitializeListHead (&Private->ThunkContextListHead);\r
 \r
+  InitHiiHandleDatabase ();\r
+\r
   mHiiThunkPrivateData = Private;\r
 \r
   Status = gBS->LocateProtocol (\r
@@ -134,6 +125,13 @@ Returns:
                   );\r
   ASSERT_EFI_ERROR (Status);\r
 \r
+  Status = gBS->LocateProtocol (\r
+                  &gEfiHiiFontProtocolGuid,\r
+                  NULL,\r
+                  (VOID **) &mHiiFontProtocol\r
+                  );\r
+  ASSERT_EFI_ERROR (Status);\r
+\r
   Status = gBS->LocateProtocol (\r
                   &gEfiHiiConfigRoutingProtocolGuid,\r
                   NULL,\r
@@ -166,8 +164,10 @@ Returns:
   Status = HiiLibListPackageLists (EFI_HII_PACKAGE_STRINGS, NULL, &BufferLength, &Buffer);\r
   if (Status == EFI_SUCCESS) {\r
     for (Index = 0; Index < BufferLength / sizeof (EFI_HII_HANDLE); Index++) {\r
-      CreateThunkContextForUefiHiiHandle (Private, Buffer[Index]);\r
-      ASSERT_EFI_ERROR (Status);\r
+      ThunkContext = CreateThunkContextForUefiHiiHandle (Buffer[Index]);\r
+      ASSERT (ThunkContext!= NULL);\r
+      \r
+      InsertTailList (&Private->ThunkContextListHead, &ThunkContext->Link);\r
     }\r
 \r
     FreePool (Buffer);\r