]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Use two PCDs to replace _DISABLE_UNUSED_HII_PROTOCOLS_ macro.
authorqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 16 Jul 2008 09:36:33 +0000 (09:36 +0000)
committerqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 16 Jul 2008 09:36:33 +0000 (09:36 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5498 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseEntry.c
MdeModulePkg/Universal/HiiDatabaseDxe/Image.c

index d7ae31057370135f9676dce8bcf1cad8dff5fc9b..73c4e0f362aafaece78cad2caf5fac4a8e7e5928 100644 (file)
@@ -25,8 +25,6 @@ Revision History
 \r
 #include "HiiDatabase.h"\r
 \r
-#ifndef _DISABLE_UNUSED_HII_PROTOCOLS_\r
-\r
 /**\r
   Calculate the number of Unicode characters of the incoming Configuration string,\r
   not including NULL terminator.\r
@@ -447,8 +445,6 @@ OutputConfigBody (
 }\r
 \r
 \r
-#endif\r
-\r
 /**\r
   Adjusts the size of a previously allocated buffer.\r
 \r
@@ -660,8 +656,6 @@ HiiConfigRoutingExtractConfig (
   OUT EFI_STRING                             *Results\r
   )\r
 {\r
-#ifndef _DISABLE_UNUSED_HII_PROTOCOLS_\r
-\r
   HII_DATABASE_PRIVATE_DATA           *Private;\r
   EFI_STRING                          StringPtr;\r
   EFI_STRING                          ConfigRequest;\r
@@ -678,6 +672,15 @@ HiiConfigRoutingExtractConfig (
   UINTN                               RemainSize;\r
   EFI_STRING                          TmpPtr;\r
 \r
+  //\r
+  // For size reduction, please define PcdSupportFullConfigRoutingProtocol \r
+  // as FALSE. But this renders the system to not 100% compliant with\r
+  // UEFI 2.1. Use this with caution.\r
+  //\r
+  if (!FeaturePcdGet (PcdSupportFullConfigRoutingProtocol)) {\r
+    return EFI_UNSUPPORTED;\r
+  }\r
+\r
   if (This == NULL || Progress == NULL || Results == NULL) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
@@ -826,9 +829,6 @@ HiiConfigRoutingExtractConfig (
   }\r
 \r
   return EFI_SUCCESS;\r
-#else\r
-  return EFI_UNSUPPORTED;\r
-#endif\r
 \r
 }\r
 \r
@@ -862,8 +862,6 @@ HiiConfigRoutingExportConfig (
   OUT EFI_STRING                             *Results\r
   )\r
 {\r
-#ifndef _DISABLE_UNUSED_HII_PROTOCOLS_\r
-\r
   EFI_STATUS                          Status;\r
   HII_DATABASE_PRIVATE_DATA           *Private;\r
   LIST_ENTRY                          StorageListHdr;\r
@@ -881,6 +879,15 @@ HiiConfigRoutingExportConfig (
   EFI_STRING                          AccessResults;\r
   UINTN                               TmpSize;\r
 \r
+  //\r
+  // For size reduction, please define PcdSupportFullConfigRoutingProtocol \r
+  // as FALSE. But this renders the system to not 100% compliant with\r
+  // UEFI 2.1. Use this with caution.\r
+  //\r
+  if (!FeaturePcdGet (PcdSupportFullConfigRoutingProtocol)) {\r
+    return EFI_UNSUPPORTED;\r
+  }\r
+\r
   if (This == NULL || Results == NULL) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
@@ -1050,9 +1057,6 @@ HiiConfigRoutingExportConfig (
   }\r
 \r
   return EFI_SUCCESS;\r
-#else\r
-  return EFI_UNSUPPORTED;\r
-#endif\r
 }\r
 \r
 \r
@@ -1089,8 +1093,6 @@ HiiConfigRoutingRouteConfig (
   OUT EFI_STRING                             *Progress\r
   )\r
 {\r
-#ifndef _DISABLE_UNUSED_HII_PROTOCOLS_\r
-\r
   HII_DATABASE_PRIVATE_DATA           *Private;\r
   EFI_STRING                          StringPtr;\r
   EFI_STRING                          ConfigResp;\r
@@ -1106,6 +1108,15 @@ HiiConfigRoutingRouteConfig (
   UINTN                               RemainSize;\r
   EFI_STRING                          TmpPtr;\r
 \r
+  //\r
+  // For size reduction, please define PcdSupportFullConfigRoutingProtocol \r
+  // as FALSE. But this renders the system to not 100% compliant with\r
+  // UEFI 2.1. Use this with caution.\r
+  //\r
+  if (!FeaturePcdGet (PcdSupportFullConfigRoutingProtocol)) {\r
+    return EFI_UNSUPPORTED;\r
+  }\r
+\r
   if (This == NULL || Progress == NULL) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
@@ -1240,9 +1251,6 @@ HiiConfigRoutingRouteConfig (
   }\r
 \r
   return EFI_SUCCESS;\r
-#else\r
-  return EFI_UNSUPPORTED;\r
-#endif\r
 }\r
 \r
 \r
@@ -1761,8 +1769,6 @@ HiiGetAltCfg (
   OUT EFI_STRING                               *AltCfgResp\r
   )\r
 {\r
-#ifndef _DISABLE_UNUSED_HII_PROTOCOLS_\r
-\r
   EFI_STATUS                          Status;\r
   EFI_STRING                          StringPtr;\r
   EFI_STRING                          HdrStart;\r
@@ -1778,6 +1784,15 @@ HiiGetAltCfg (
   BOOLEAN                             NameFlag;\r
   BOOLEAN                             PathFlag;\r
 \r
+  //\r
+  // For size reduction, please define PcdSupportFullConfigRoutingProtocol \r
+  // as FALSE. But this renders the system to not 100% compliant with\r
+  // UEFI 2.1. Use this with caution.\r
+  //\r
+  if (!FeaturePcdGet (PcdSupportFullConfigRoutingProtocol)) {\r
+    return EFI_UNSUPPORTED;\r
+  }\r
+\r
   HdrStart = NULL;\r
   HdrEnd   = NULL;\r
   GuidStr  = NULL;\r
@@ -1945,10 +1960,6 @@ Exit:
 \r
   return Status;\r
 \r
-#else\r
-  return EFI_UNSUPPORTED;\r
-#endif\r
-\r
 }\r
 \r
 \r
index ac88b86d077d68b2b1a14a4a8f13fe466ce7d461..ad016c3d44dde4b591a7036bd743da00e0158395 100644 (file)
@@ -39,6 +39,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Library/MemoryAllocationLib.h>\r
 #include <Library/IfrSupportLib.h>\r
 #include <Library/HiiLib.h>\r
+#include <Library/PcdLib.h>\r
 \r
 #define HII_DATABASE_NOTIFY_GUID \\r
   { \\r
@@ -241,9 +242,7 @@ typedef struct _HII_DATABASE_PRIVATE_DATA {
   LIST_ENTRY                            DatabaseList;\r
   LIST_ENTRY                            DatabaseNotifyList;\r
   EFI_HII_FONT_PROTOCOL                 HiiFont;\r
-#ifndef _DISABLE_UNUSED_HII_PROTOCOLS_\r
   EFI_HII_IMAGE_PROTOCOL                HiiImage;\r
-#endif\r
   EFI_HII_STRING_PROTOCOL               HiiString;\r
   EFI_HII_DATABASE_PROTOCOL             HiiDatabase;\r
   EFI_HII_CONFIG_ROUTING_PROTOCOL       ConfigRouting;\r
index 5bdc60470021583fafdeb3c2a9b29743f10da447..29cd5b4cc79403f242fe4112d03a84bdafd49070 100644 (file)
   gEfiHiiFontProtocolGuid\r
   gEfiHiiConfigAccessProtocolGuid\r
 \r
-\r
+[FeaturePcd.common]\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdSupportHiiImageProtocol\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdSupportFullConfigRoutingProtocol\r
+  \r
 [Depex]\r
   TRUE\r
 \r
index c7ffdfe77c0ab550ef8addb5f4b47c7c9830add5..b55898de5a23b40b7e7f6ad0ce5fb32087e80b70 100644 (file)
@@ -48,15 +48,13 @@ STATIC HII_DATABASE_PRIVATE_DATA mPrivate = {
     HiiGetGlyph,\r
     HiiGetFontInfo\r
   },\r
-#ifndef _DISABLE_UNUSED_HII_PROTOCOLS_\r
   {\r
-    HiiNewImage,\r
-    HiiGetImage,\r
-    HiiSetImage,\r
-    HiiDrawImage,\r
-    HiiDrawImageId\r
+    NULL,\r
+    NULL,\r
+    NULL,\r
+    NULL,\r
+    NULL\r
   },\r
-#endif\r
   {\r
     HiiNewString,\r
     HiiGetString,\r
@@ -104,6 +102,14 @@ STATIC HII_DATABASE_PRIVATE_DATA mPrivate = {
   NULL\r
 };\r
 \r
+GLOBAL_REMOVE_IF_UNREFERENCED CONST EFI_HII_IMAGE_PROTOCOL mImageProtocol = {\r
+  HiiNewImage,\r
+  HiiGetImage,\r
+  HiiSetImage,\r
+  HiiDrawImage,\r
+  HiiDrawImageId\r
+};\r
+\r
 /**\r
   The default event handler for gHiiKeyboardLayoutChanged\r
   event group.\r
@@ -180,21 +186,35 @@ InitializeHiiDatabase (
   }\r
 \r
   Handle = NULL;\r
-  return gBS->InstallMultipleProtocolInterfaces (\r
-                &Handle,\r
-                &gEfiHiiFontProtocolGuid,\r
-                &mPrivate.HiiFont,\r
-#ifndef _DISABLE_UNUSED_HII_PROTOCOLS_\r
-                &gEfiHiiImageProtocolGuid,\r
-                &mPrivate.HiiImage,\r
-#endif\r
-                &gEfiHiiStringProtocolGuid,\r
-                &mPrivate.HiiString,\r
-                &gEfiHiiDatabaseProtocolGuid,\r
-                &mPrivate.HiiDatabase,\r
-                &gEfiHiiConfigRoutingProtocolGuid,\r
-                &mPrivate.ConfigRouting,\r
-                NULL\r
-                );\r
+  Status = gBS->InstallMultipleProtocolInterfaces (\r
+                  &Handle,\r
+                  &gEfiHiiFontProtocolGuid,\r
+                  &mPrivate.HiiFont,\r
+                  &gEfiHiiStringProtocolGuid,\r
+                  &mPrivate.HiiString,\r
+                  &gEfiHiiDatabaseProtocolGuid,\r
+                  &mPrivate.HiiDatabase,\r
+                  &gEfiHiiConfigRoutingProtocolGuid,\r
+                  &mPrivate.ConfigRouting,\r
+                  NULL\r
+                  );\r
+\r
+  if (EFI_ERROR (Status)) {\r
+    return Status;\r
+  }\r
+\r
+  if (FeaturePcdGet (PcdSupportHiiImageProtocol)) {\r
+    CopyMem (&mPrivate.HiiImage, &mImageProtocol, sizeof (mImageProtocol));\r
+\r
+    Status = gBS->InstallMultipleProtocolInterfaces (\r
+                    &Handle,\r
+                    &gEfiHiiImageProtocolGuid,\r
+                    &mPrivate.HiiImage,\r
+                    NULL\r
+                    );\r
+\r
+  }\r
+\r
+  return Status;\r
 }\r
 \r
index 8bba0fc21f3750fd67b28956481feffee14b80c5..e570913c6ffdd2fba54fa10e7cb35c552097203f 100644 (file)
@@ -16,7 +16,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
 #include "HiiDatabase.h"\r
 \r
-#ifndef _DISABLE_UNUSED_HII_PROTOCOLS_\r
 \r
 /**\r
   Get the imageid of last image block: EFI_HII_IIBT_END_BLOCK when input\r
@@ -1499,5 +1498,3 @@ HiiDrawImageId (
   return Status;\r
 }\r
 \r
-#endif\r
-\r