]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Update DxeCore to support to install gEfiHiiPackageListProtocolGuid in LoadImage...
authorqhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 22 Apr 2009 02:06:58 +0000 (02:06 +0000)
committerqhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 22 Apr 2009 02:06:58 +0000 (02:06 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8142 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Core/Dxe/DxeMain.h
MdeModulePkg/Core/Dxe/DxeMain.inf
MdeModulePkg/Core/Dxe/Image/Image.c

index d499ab48500dfd04f1a81a21b1d9a295e1beb373..4f57b7257f5c575deb1126c448003f2a6fa2a2ad 100644 (file)
@@ -49,6 +49,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Protocol/Capsule.h>\r
 #include <Protocol/BusSpecificDriverOverride.h>\r
 #include <Protocol/TcgService.h>\r
+#include <Protocol/HiiPackageList.h>\r
 #include <Guid/MemoryTypeInformation.h>\r
 #include <Guid/FirmwareFileSystem2.h>\r
 #include <Guid/HobList.h>\r
index 9baef70b7e1e2c570f2b4ca5e372832253c78c4d..1cec93fadc7e7c104befd60de7c5f6502540c086 100644 (file)
   gEfiCpuArchProtocolGuid                       ## CONSUMES\r
   gEfiDevicePathProtocolGuid                    ## CONSUMES\r
   gEfiLoadedImageProtocolGuid                   ## PRODUCES\r
+  gEfiHiiPackageListProtocolGuid                ## SOMETIMES_PRODUCES\r
   gEfiEbcProtocolGuid                           ## SOMETIMES_CONSUMES\r
   gEfiLoadedImageDevicePathProtocolGuid         ## PRODUCES\r
 \r
index 5502c7ab189261f038384e6a9c8072ad2b35ea5e..8ec6793966c8d3338cf471a0ee0c66003d78516f 100644 (file)
@@ -641,6 +641,14 @@ CoreUnloadAndCloseImage (
                &Image->Info\r
                );\r
 \r
+    if (Image->ImageContext.HiiResourceData != 0) {\r
+      Status = CoreUninstallProtocolInterface (\r
+                 Image->Handle,\r
+                 &gEfiHiiPackageListProtocolGuid,\r
+                 (VOID *) (UINTN) Image->ImageContext.HiiResourceData\r
+                 );\r
+    }\r
+\r
   }\r
 \r
   if (Image->RuntimeData != NULL) {\r
@@ -903,6 +911,21 @@ CoreLoadImageCommon (
     goto Done;\r
   }\r
 \r
+  //\r
+  // Install HII Package List Protocol onto the image handle\r
+  //\r
+  if (Image->ImageContext.HiiResourceData != 0) {\r
+    Status = CoreInstallProtocolInterface (\r
+               &Image->Handle,\r
+               &gEfiHiiPackageListProtocolGuid,\r
+               EFI_NATIVE_INTERFACE,\r
+               (VOID *) (UINTN) Image->ImageContext.HiiResourceData\r
+               );\r
+    if (EFI_ERROR (Status)) {\r
+      goto Done;\r
+    }\r
+  }\r
+\r
   //\r
   // Success.  Return the image handle\r
   //\r