/** @file\r
Private structures definitions in HiiDatabase.\r
\r
-Copyright (c) 2007 - 2008, Intel Corporation\r
+Copyright (c) 2007 - 2009, Intel Corporation\r
All rights reserved. This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
which accompanies this distribution. The full text of the license may be found at\r
\r
#include <Uefi.h>\r
\r
-#include <Protocol/ConsoleControl.h>\r
#include <Protocol/DevicePath.h>\r
#include <Protocol/HiiFont.h>\r
#include <Protocol/HiiImage.h>\r
#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/BaseLib.h>\r
#include <Library/DevicePathLib.h>\r
#include <Library/MemoryAllocationLib.h>\r
-#include <Library/IfrSupportLib.h>\r
#include <Library/UefiLib.h>\r
#include <Library/PcdLib.h>\r
+#include <Library/UefiRuntimeServicesTableLib.h>\r
+#include <Library/PrintLib.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
OUT EFI_STRING *AltCfgResp\r
);\r
\r
-\r
//\r
// Global variables\r
//\r
extern EFI_EVENT gHiiKeyboardLayoutChanged;\r
-\r
-#include "R8Lib.h"\r
-\r
#endif\r