#include <Protocol/SimpleTextOut.h>\r
\r
#include <Guid/HiiKeyBoardLayout.h>\r
+#include <Guid/GlobalVariable.h>\r
\r
\r
#include <Library/DebugLib.h>\r
#include <Library/IfrSupportLib.h>\r
#include <Library/UefiLib.h>\r
#include <Library/PcdLib.h>\r
+#include <Library/UefiRuntimeServicesTableLib.h>\r
+\r
\r
#define HII_DATABASE_NOTIFY_GUID \\r
{ \\r
#define EFI_HII_VARSTORE_NAME_VALUE 1\r
#define EFI_HII_VARSTORE_EFI_VARIABLE 2\r
\r
-#define HII_FORMSET_STORAGE_SIGNATURE EFI_SIGNATURE_32 ('H', 'S', 'T', 'G')\r
+#define HII_FORMSET_STORAGE_SIGNATURE SIGNATURE_32 ('H', 'S', 'T', 'G')\r
typedef struct {\r
UINTN Signature;\r
LIST_ENTRY Entry;\r
//\r
// String Package definitions\r
//\r
-#define HII_STRING_PACKAGE_SIGNATURE EFI_SIGNATURE_32 ('h','i','s','p')\r
+#define HII_STRING_PACKAGE_SIGNATURE SIGNATURE_32 ('h','i','s','p')\r
typedef struct _HII_STRING_PACKAGE_INSTANCE {\r
UINTN Signature;\r
EFI_HII_STRING_PACKAGE_HDR *StringPkgHdr;\r
//\r
// Form Package definitions\r
//\r
-#define HII_IFR_PACKAGE_SIGNATURE EFI_SIGNATURE_32 ('h','f','r','p')\r
+#define HII_IFR_PACKAGE_SIGNATURE SIGNATURE_32 ('h','f','r','p')\r
typedef struct _HII_IFR_PACKAGE_INSTANCE {\r
UINTN Signature;\r
EFI_HII_PACKAGE_HEADER FormPkgHdr;\r
//\r
// Simple Font Package definitions\r
//\r
-#define HII_S_FONT_PACKAGE_SIGNATURE EFI_SIGNATURE_32 ('h','s','f','p')\r
+#define HII_S_FONT_PACKAGE_SIGNATURE SIGNATURE_32 ('h','s','f','p')\r
typedef struct _HII_SIMPLE_FONT_PACKAGE_INSTANCE {\r
UINTN Signature;\r
EFI_HII_SIMPLE_FONT_PACKAGE_HDR *SimpleFontPkgHdr;\r
//\r
// Font Package definitions\r
//\r
-#define HII_FONT_PACKAGE_SIGNATURE EFI_SIGNATURE_32 ('h','i','f','p')\r
+#define HII_FONT_PACKAGE_SIGNATURE SIGNATURE_32 ('h','i','f','p')\r
typedef struct _HII_FONT_PACKAGE_INSTANCE {\r
UINTN Signature;\r
EFI_HII_FONT_PACKAGE_HDR *FontPkgHdr;\r
LIST_ENTRY GlyphInfoList;\r
} HII_FONT_PACKAGE_INSTANCE;\r
\r
-#define HII_GLYPH_INFO_SIGNATURE EFI_SIGNATURE_32 ('h','g','i','s')\r
+#define HII_GLYPH_INFO_SIGNATURE SIGNATURE_32 ('h','g','i','s')\r
typedef struct _HII_GLYPH_INFO {\r
UINTN Signature;\r
LIST_ENTRY Entry;\r
EFI_HII_GLYPH_INFO Cell;\r
} HII_GLYPH_INFO;\r
\r
-#define HII_FONT_INFO_SIGNATURE EFI_SIGNATURE_32 ('h','l','f','i')\r
+#define HII_FONT_INFO_SIGNATURE SIGNATURE_32 ('h','l','f','i')\r
typedef struct _HII_FONT_INFO {\r
UINTN Signature;\r
LIST_ENTRY Entry;\r
UINT8 FontId;\r
} HII_FONT_INFO;\r
\r
-#define HII_GLOBAL_FONT_INFO_SIGNATURE EFI_SIGNATURE_32 ('h','g','f','i')\r
+#define HII_GLOBAL_FONT_INFO_SIGNATURE SIGNATURE_32 ('h','g','f','i')\r
typedef struct _HII_GLOBAL_FONT_INFO {\r
UINTN Signature;\r
LIST_ENTRY Entry;\r
//\r
// Keyboard Layout Pacakge definitions\r
//\r
-#define HII_KB_LAYOUT_PACKAGE_SIGNATURE EFI_SIGNATURE_32 ('h','k','l','p')\r
+#define HII_KB_LAYOUT_PACKAGE_SIGNATURE SIGNATURE_32 ('h','k','l','p')\r
typedef struct _HII_KEYBOARD_LAYOUT_PACKAGE_INSTANCE {\r
UINTN Signature;\r
UINT8 *KeyboardPkg;\r
//\r
// Guid Package definitions\r
//\r
-#define HII_GUID_PACKAGE_SIGNATURE EFI_SIGNATURE_32 ('h','i','g','p')\r
+#define HII_GUID_PACKAGE_SIGNATURE SIGNATURE_32 ('h','i','g','p')\r
typedef struct _HII_GUID_PACKAGE_INSTANCE {\r
UINTN Signature;\r
UINT8 *GuidPkg;\r
UINT8 *DevicePathPkg;\r
} HII_DATABASE_PACKAGE_LIST_INSTANCE;\r
\r
-#define HII_HANDLE_SIGNATURE EFI_SIGNATURE_32 ('h','i','h','l')\r
+#define HII_HANDLE_SIGNATURE SIGNATURE_32 ('h','i','h','l')\r
\r
typedef struct {\r
UINTN Signature;\r
UINTN Key;\r
} HII_HANDLE;\r
\r
-#define HII_DATABASE_RECORD_SIGNATURE EFI_SIGNATURE_32 ('h','i','d','r')\r
+#define HII_DATABASE_RECORD_SIGNATURE SIGNATURE_32 ('h','i','d','r')\r
\r
typedef struct _HII_DATABASE_RECORD {\r
UINTN Signature;\r
LIST_ENTRY DatabaseEntry;\r
} HII_DATABASE_RECORD;\r
\r
-#define HII_DATABASE_NOTIFY_SIGNATURE EFI_SIGNATURE_32 ('h','i','d','n')\r
+#define HII_DATABASE_NOTIFY_SIGNATURE SIGNATURE_32 ('h','i','d','n')\r
\r
typedef struct _HII_DATABASE_NOTIFY {\r
UINTN Signature;\r
LIST_ENTRY DatabaseNotifyEntry;\r
} HII_DATABASE_NOTIFY;\r
\r
-#define HII_DATABASE_PRIVATE_DATA_SIGNATURE EFI_SIGNATURE_32 ('H', 'i', 'D', 'p')\r
+#define HII_DATABASE_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('H', 'i', 'D', 'p')\r
\r
typedef struct _HII_DATABASE_PRIVATE_DATA {\r
UINTN Signature;\r
OUT HII_GLOBAL_FONT_INFO **GlobalFontInfo OPTIONAL\r
);\r
\r
+/**\r
+\r
+ This function invokes the matching registered function.\r
+ \r
+ @param Private HII Database driver private structure.\r
+ @param NotifyType The type of change concerning the database.\r
+ @param PackageInstance Points to the package referred to by the notification.\r
+ @param PackageType Package type\r
+ @param Handle The handle of the package list which contains the specified package.\r
+ \r
+ @retval EFI_SUCCESS Already checked all registered function and invoked \r
+ if matched.\r
+ @retval EFI_INVALID_PARAMETER Any input parameter is not valid.\r
+ \r
+**/\r
+EFI_STATUS\r
+InvokeRegisteredFunction (\r
+ IN HII_DATABASE_PRIVATE_DATA *Private, \r
+ IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,\r
+ IN VOID *PackageInstance,\r
+ IN UINT8 PackageType,\r
+ IN EFI_HII_HANDLE Handle\r
+ )\r
+;\r
\r
/**\r
Retrieve system default font and color.\r