\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
}\r
\r
\r
-#endif\r
-\r
/**\r
Adjusts the size of a previously allocated buffer.\r
\r
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
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
}\r
\r
return EFI_SUCCESS;\r
-#else\r
- return EFI_UNSUPPORTED;\r
-#endif\r
\r
}\r
\r
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
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
}\r
\r
return EFI_SUCCESS;\r
-#else\r
- return EFI_UNSUPPORTED;\r
-#endif\r
}\r
\r
\r
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
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
}\r
\r
return EFI_SUCCESS;\r
-#else\r
- return EFI_UNSUPPORTED;\r
-#endif\r
}\r
\r
\r
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
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
\r
return Status;\r
\r
-#else\r
- return EFI_UNSUPPORTED;\r
-#endif\r
-\r
}\r
\r
\r
#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
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
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
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
}\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