summaryrefslogtreecommitdiffstats
path: root/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseEntry.c
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/HiiDatabaseEntry.c
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/HiiDatabaseEntry.c')
-rw-r--r--MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseEntry.c66
1 files changed, 43 insertions, 23 deletions
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;
}