summaryrefslogtreecommitdiffstats
path: root/MdeModulePkg/Universal/HiiDatabaseDxe
diff options
context:
space:
mode:
authorqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>2008-07-16 09:36:33 +0000
committerqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>2008-07-16 09:36:33 +0000
commite94358a3fe824986cfaa777690170f26aa5a8200 (patch)
treee87305565825360c34a23bce67b84dc4c6274c0b /MdeModulePkg/Universal/HiiDatabaseDxe
parent63e4dba96ab826bfcd51a98f551c103bc3d3ba3b (diff)
downloadedk2-e94358a3fe824986cfaa777690170f26aa5a8200.tar.gz
edk2-e94358a3fe824986cfaa777690170f26aa5a8200.tar.bz2
edk2-e94358a3fe824986cfaa777690170f26aa5a8200.zip
Use two PCDs to replace _DISABLE_UNUSED_HII_PROTOCOLS_ macro.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5498 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdeModulePkg/Universal/HiiDatabaseDxe')
-rw-r--r--MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c61
-rw-r--r--MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h3
-rw-r--r--MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf5
-rw-r--r--MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseEntry.c66
-rw-r--r--MdeModulePkg/Universal/HiiDatabaseDxe/Image.c3
5 files changed, 84 insertions, 54 deletions
diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c b/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
index d7ae310573..73c4e0f362 100644
--- a/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
+++ b/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
@@ -25,8 +25,6 @@ Revision History
#include "HiiDatabase.h"
-#ifndef _DISABLE_UNUSED_HII_PROTOCOLS_
-
/**
Calculate the number of Unicode characters of the incoming Configuration string,
not including NULL terminator.
@@ -447,8 +445,6 @@ OutputConfigBody (
}
-#endif
-
/**
Adjusts the size of a previously allocated buffer.
@@ -660,8 +656,6 @@ HiiConfigRoutingExtractConfig (
OUT EFI_STRING *Results
)
{
-#ifndef _DISABLE_UNUSED_HII_PROTOCOLS_
-
HII_DATABASE_PRIVATE_DATA *Private;
EFI_STRING StringPtr;
EFI_STRING ConfigRequest;
@@ -678,6 +672,15 @@ HiiConfigRoutingExtractConfig (
UINTN RemainSize;
EFI_STRING TmpPtr;
+ //
+ // For size reduction, please define PcdSupportFullConfigRoutingProtocol
+ // as FALSE. But this renders the system to not 100% compliant with
+ // UEFI 2.1. Use this with caution.
+ //
+ if (!FeaturePcdGet (PcdSupportFullConfigRoutingProtocol)) {
+ return EFI_UNSUPPORTED;
+ }
+
if (This == NULL || Progress == NULL || Results == NULL) {
return EFI_INVALID_PARAMETER;
}
@@ -826,9 +829,6 @@ HiiConfigRoutingExtractConfig (
}
return EFI_SUCCESS;
-#else
- return EFI_UNSUPPORTED;
-#endif
}
@@ -862,8 +862,6 @@ HiiConfigRoutingExportConfig (
OUT EFI_STRING *Results
)
{
-#ifndef _DISABLE_UNUSED_HII_PROTOCOLS_
-
EFI_STATUS Status;
HII_DATABASE_PRIVATE_DATA *Private;
LIST_ENTRY StorageListHdr;
@@ -881,6 +879,15 @@ HiiConfigRoutingExportConfig (
EFI_STRING AccessResults;
UINTN TmpSize;
+ //
+ // For size reduction, please define PcdSupportFullConfigRoutingProtocol
+ // as FALSE. But this renders the system to not 100% compliant with
+ // UEFI 2.1. Use this with caution.
+ //
+ if (!FeaturePcdGet (PcdSupportFullConfigRoutingProtocol)) {
+ return EFI_UNSUPPORTED;
+ }
+
if (This == NULL || Results == NULL) {
return EFI_INVALID_PARAMETER;
}
@@ -1050,9 +1057,6 @@ HiiConfigRoutingExportConfig (
}
return EFI_SUCCESS;
-#else
- return EFI_UNSUPPORTED;
-#endif
}
@@ -1089,8 +1093,6 @@ HiiConfigRoutingRouteConfig (
OUT EFI_STRING *Progress
)
{
-#ifndef _DISABLE_UNUSED_HII_PROTOCOLS_
-
HII_DATABASE_PRIVATE_DATA *Private;
EFI_STRING StringPtr;
EFI_STRING ConfigResp;
@@ -1106,6 +1108,15 @@ HiiConfigRoutingRouteConfig (
UINTN RemainSize;
EFI_STRING TmpPtr;
+ //
+ // For size reduction, please define PcdSupportFullConfigRoutingProtocol
+ // as FALSE. But this renders the system to not 100% compliant with
+ // UEFI 2.1. Use this with caution.
+ //
+ if (!FeaturePcdGet (PcdSupportFullConfigRoutingProtocol)) {
+ return EFI_UNSUPPORTED;
+ }
+
if (This == NULL || Progress == NULL) {
return EFI_INVALID_PARAMETER;
}
@@ -1240,9 +1251,6 @@ HiiConfigRoutingRouteConfig (
}
return EFI_SUCCESS;
-#else
- return EFI_UNSUPPORTED;
-#endif
}
@@ -1761,8 +1769,6 @@ HiiGetAltCfg (
OUT EFI_STRING *AltCfgResp
)
{
-#ifndef _DISABLE_UNUSED_HII_PROTOCOLS_
-
EFI_STATUS Status;
EFI_STRING StringPtr;
EFI_STRING HdrStart;
@@ -1778,6 +1784,15 @@ HiiGetAltCfg (
BOOLEAN NameFlag;
BOOLEAN PathFlag;
+ //
+ // For size reduction, please define PcdSupportFullConfigRoutingProtocol
+ // as FALSE. But this renders the system to not 100% compliant with
+ // UEFI 2.1. Use this with caution.
+ //
+ if (!FeaturePcdGet (PcdSupportFullConfigRoutingProtocol)) {
+ return EFI_UNSUPPORTED;
+ }
+
HdrStart = NULL;
HdrEnd = NULL;
GuidStr = NULL;
@@ -1945,10 +1960,6 @@ Exit:
return Status;
-#else
- return EFI_UNSUPPORTED;
-#endif
-
}
diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h
index ac88b86d07..ad016c3d44 100644
--- a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h
+++ b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabase.h
@@ -39,6 +39,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#include <Library/MemoryAllocationLib.h>
#include <Library/IfrSupportLib.h>
#include <Library/HiiLib.h>
+#include <Library/PcdLib.h>
#define HII_DATABASE_NOTIFY_GUID \
{ \
@@ -241,9 +242,7 @@ typedef struct _HII_DATABASE_PRIVATE_DATA {
LIST_ENTRY DatabaseList;
LIST_ENTRY DatabaseNotifyList;
EFI_HII_FONT_PROTOCOL HiiFont;
-#ifndef _DISABLE_UNUSED_HII_PROTOCOLS_
EFI_HII_IMAGE_PROTOCOL HiiImage;
-#endif
EFI_HII_STRING_PROTOCOL HiiString;
EFI_HII_DATABASE_PROTOCOL HiiDatabase;
EFI_HII_CONFIG_ROUTING_PROTOCOL ConfigRouting;
diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
index 5bdc604700..29cd5b4cc7 100644
--- a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
+++ b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
@@ -70,7 +70,10 @@
gEfiHiiFontProtocolGuid
gEfiHiiConfigAccessProtocolGuid
-
+[FeaturePcd.common]
+ gEfiMdeModulePkgTokenSpaceGuid.PcdSupportHiiImageProtocol
+ gEfiMdeModulePkgTokenSpaceGuid.PcdSupportFullConfigRoutingProtocol
+
[Depex]
TRUE
diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseEntry.c b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseEntry.c
index c7ffdfe77c..b55898de5a 100644
--- a/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseEntry.c
+++ b/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseEntry.c
@@ -48,15 +48,13 @@ STATIC HII_DATABASE_PRIVATE_DATA mPrivate = {
HiiGetGlyph,
HiiGetFontInfo
},
-#ifndef _DISABLE_UNUSED_HII_PROTOCOLS_
{
- HiiNewImage,
- HiiGetImage,
- HiiSetImage,
- HiiDrawImage,
- HiiDrawImageId
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
},
-#endif
{
HiiNewString,
HiiGetString,
@@ -104,6 +102,14 @@ STATIC HII_DATABASE_PRIVATE_DATA mPrivate = {
NULL
};
+GLOBAL_REMOVE_IF_UNREFERENCED CONST EFI_HII_IMAGE_PROTOCOL mImageProtocol = {
+ HiiNewImage,
+ HiiGetImage,
+ HiiSetImage,
+ HiiDrawImage,
+ HiiDrawImageId
+};
+
/**
The default event handler for gHiiKeyboardLayoutChanged
event group.
@@ -180,21 +186,35 @@ InitializeHiiDatabase (
}
Handle = NULL;
- return gBS->InstallMultipleProtocolInterfaces (
- &Handle,
- &gEfiHiiFontProtocolGuid,
- &mPrivate.HiiFont,
-#ifndef _DISABLE_UNUSED_HII_PROTOCOLS_
- &gEfiHiiImageProtocolGuid,
- &mPrivate.HiiImage,
-#endif
- &gEfiHiiStringProtocolGuid,
- &mPrivate.HiiString,
- &gEfiHiiDatabaseProtocolGuid,
- &mPrivate.HiiDatabase,
- &gEfiHiiConfigRoutingProtocolGuid,
- &mPrivate.ConfigRouting,
- NULL
- );
+ Status = gBS->InstallMultipleProtocolInterfaces (
+ &Handle,
+ &gEfiHiiFontProtocolGuid,
+ &mPrivate.HiiFont,
+ &gEfiHiiStringProtocolGuid,
+ &mPrivate.HiiString,
+ &gEfiHiiDatabaseProtocolGuid,
+ &mPrivate.HiiDatabase,
+ &gEfiHiiConfigRoutingProtocolGuid,
+ &mPrivate.ConfigRouting,
+ NULL
+ );
+
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
+ if (FeaturePcdGet (PcdSupportHiiImageProtocol)) {
+ CopyMem (&mPrivate.HiiImage, &mImageProtocol, sizeof (mImageProtocol));
+
+ Status = gBS->InstallMultipleProtocolInterfaces (
+ &Handle,
+ &gEfiHiiImageProtocolGuid,
+ &mPrivate.HiiImage,
+ NULL
+ );
+
+ }
+
+ return Status;
}
diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/Image.c b/MdeModulePkg/Universal/HiiDatabaseDxe/Image.c
index 8bba0fc21f..e570913c6f 100644
--- a/MdeModulePkg/Universal/HiiDatabaseDxe/Image.c
+++ b/MdeModulePkg/Universal/HiiDatabaseDxe/Image.c
@@ -16,7 +16,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#include "HiiDatabase.h"
-#ifndef _DISABLE_UNUSED_HII_PROTOCOLS_
/**
Get the imageid of last image block: EFI_HII_IIBT_END_BLOCK when input
@@ -1499,5 +1498,3 @@ HiiDrawImageId (
return Status;
}
-#endif
-