return Status;\r
}\r
\r
+BUFFER_STORAGE_ENTRY *\r
+GetBufferStorageEntry (\r
+ IN CONFIG_ACCESS_PRIVATE *ConfigAccess,\r
+ IN UINT16 VarStoreId\r
+ )\r
+{\r
+ LIST_ENTRY *Link;\r
+ BUFFER_STORAGE_ENTRY *BufferStorage;\r
+\r
+ Link = GetFirstNode (&ConfigAccess->BufferStorageListHead);\r
+\r
+ while (!IsNull (&ConfigAccess->BufferStorageListHead, Link)) {\r
+ BufferStorage = BUFFER_STORAGE_ENTRY_FROM_LINK (Link);\r
+\r
+ if (BufferStorage->VarStoreId == VarStoreId) {\r
+ return BufferStorage;\r
+ }\r
+\r
+ Link = GetNextNode (&ConfigAccess->BufferStorageListHead, Link);\r
+ }\r
+\r
+ return NULL;\r
+}\r
+\r
+\r
/**\r
\r
This function implement the EFI_HII_CONFIG_ACCESS_PROTOCOL.ExtractConfig\r
{\r
EFI_STATUS Status;\r
CONFIG_ACCESS_PRIVATE *ConfigAccess;\r
- LIST_ENTRY *Link;\r
BUFFER_STORAGE_ENTRY *BufferStorage;\r
VOID *Data;\r
UINTN DataSize;\r
//\r
// For now, only one var varstore is supported so that we don't need to parse the Configuration string.\r
//\r
- Link = GetFirstNode (&ConfigAccess->BufferStorageListHead);\r
- if (Link == NULL) {\r
- ASSERT (FALSE);\r
- return EFI_INVALID_PARAMETER;\r
- }\r
- \r
- BufferStorage = BUFFER_STORAGE_ENTRY_FROM_LINK (Link);\r
+ BufferStorage = GetBufferStorageEntry (ConfigAccess, (UINT16) RESERVED_VARSTORE_ID);\r
\r
if (ConfigAccess->ThunkContext->NvMapOverride == NULL) {\r
if (ConfigAccess->FormCallbackProtocol == NULL ||\r
{\r
EFI_STATUS Status;\r
CONFIG_ACCESS_PRIVATE *ConfigAccess;\r
- LIST_ENTRY *Link;\r
BUFFER_STORAGE_ENTRY *BufferStorage;\r
UINT8 *Data;\r
UINTN DataSize;\r
//\r
// For now, only one var varstore is supported so that we don't need to parse the Configuration string.\r
//\r
- Link = GetFirstNode (&ConfigAccess->BufferStorageListHead);\r
- if (Link == NULL) {\r
- ASSERT (FALSE);\r
- return EFI_INVALID_PARAMETER;\r
- }\r
+ BufferStorage = GetBufferStorageEntry (ConfigAccess, (UINT16) RESERVED_VARSTORE_ID);\r
\r
- BufferStorage = BUFFER_STORAGE_ENTRY_FROM_LINK (Link);\r
DataSize2 = BufferStorage->Size;\r
if (ConfigAccess->ThunkContext->NvMapOverride == NULL) {\r
DataAllocated = TRUE;\r
//\r
if (EFI_ERROR (Status)) {\r
if (Packet != NULL) {\r
- //\r
- // BUGBUG: need to restore the changing question to default value\r
- //\r
-\r
do {\r
IfrLibCreatePopUp (1, &Key, Packet->String);\r
-\r
} while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);\r
- \r
}\r
-\r
//\r
// Error Code in Status is discarded.\r
//\r
NotifyHandle\r
);\r
//\r
- // UEFI SetupBrowser handles scenario differently with Framework SetupBrowser when call back function \r
+ // UEFI SetupBrowser behaves differently with Framework SetupBrowser when call back function \r
// update any forms in HII database. UEFI SetupBrowser will re-parse the displaying form package and load\r
// the values from variable storages. Framework SetupBrowser will only re-parse the displaying form packages.\r
// To make sure customer's previous changes is saved and the changing question behaves as expected, we\r
/**@file\r
\r
This file contains global defines and prototype definitions\r
- for the HII database.\r
+ for the Framework HII to Uefi HII Thunk Module.\r
\r
Copyright (c) 2006 - 2008, Intel Corporation\r
All rights reserved. This program and the accompanying materials\r
\r
#include <MdeModuleHii.h>\r
\r
+\r
+//\r
+// VARSTORE ID of 0 for Buffer Storage Type Storage is reserved in UEFI IFR form. But VARSTORE ID\r
+// 0 in Framework IFR is the default VarStore ID for storage without explicit declaration. So we have\r
+// to reseved 0x0001 in UEFI VARSTORE ID to represetn default storage id in Framework IFR.\r
+// Framework VFR has to be ported or pre-processed to change the default VARSTORE to a VARSTORE\r
+// with ID equal to 0x0001.\r
+//\r
+#define RESERVED_VARSTORE_ID 0x0001\r
+\r
+\r
#pragma pack (push, 1)\r
typedef struct {\r
UINT32 BinaryLength;\r
#define ONE_OF_OPTION_MAP_ENTRY_FROM_LINK(Record) CR(Record, ONE_OF_OPTION_MAP_ENTRY, Link, ONE_OF_OPTION_MAP_ENTRY_SIGNATURE)\r
#define ONE_OF_OPTION_MAP_ENTRY_SIGNATURE EFI_SIGNATURE_32 ('O', 'O', 'M', 'E')\r
typedef struct {\r
- UINT32 Signature;\r
- LIST_ENTRY Link;\r
+ UINT32 Signature;\r
+ LIST_ENTRY Link;\r
\r
- UINT16 FwKey;\r
- EFI_IFR_TYPE_VALUE Value;\r
+ UINT16 FwKey;\r
+ EFI_IFR_TYPE_VALUE Value;\r
\r
} ONE_OF_OPTION_MAP_ENTRY;\r
\r
#define ONE_OF_OPTION_MAP_FROM_LINK(Record) CR(Record, ONE_OF_OPTION_MAP, Link, ONE_OF_OPTION_MAP_SIGNATURE)\r
#define ONE_OF_OPTION_MAP_SIGNATURE EFI_SIGNATURE_32 ('O', 'O', 'O', 'M')\r
typedef struct {\r
- UINT32 Signature;\r
- LIST_ENTRY Link; \r
+ UINT32 Signature;\r
+ LIST_ENTRY Link; \r
\r
- UINT8 ValueType; //EFI_IFR_TYPE_NUM_* \r
+ UINT8 ValueType; //EFI_IFR_TYPE_NUM_* \r
\r
- EFI_QUESTION_ID QuestionId;\r
+ EFI_QUESTION_ID QuestionId;\r
\r
- LIST_ENTRY OneOfOptionMapEntryListHead; //ONE_OF_OPTION_MAP_ENTRY\r
+ LIST_ENTRY OneOfOptionMapEntryListHead; //ONE_OF_OPTION_MAP_ENTRY\r
} ONE_OF_OPTION_MAP;\r
\r
\r
extern BOOLEAN mInFrameworkUpdatePakcage;\r
\r
\r
-//\r
-// Prototypes\r
-//\r
-\r
-//\r
-// Public Interface Prototypes\r
-//\r
-EFI_STATUS\r
-EFIAPI\r
-InitializeHiiDatabase (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- )\r
-;\r
-\r
EFI_STATUS\r
EFIAPI\r
HiiNewPack (\r
- IN EFI_HII_PROTOCOL *This,\r
- IN EFI_HII_PACKAGES *PackageList,\r
- OUT FRAMEWORK_EFI_HII_HANDLE *Handle\r
+ IN EFI_HII_PROTOCOL *This,\r
+ IN EFI_HII_PACKAGES *PackageList,\r
+ OUT FRAMEWORK_EFI_HII_HANDLE *Handle\r
)\r
;\r
\r
EFI_STATUS\r
EFIAPI\r
HiiRemovePack (\r
- IN EFI_HII_PROTOCOL *This,\r
+ IN EFI_HII_PROTOCOL *This,\r
IN FRAMEWORK_EFI_HII_HANDLE Handle\r
)\r
;\r
EFI_STATUS\r
EFIAPI\r
HiiFindHandles (\r
- IN EFI_HII_PROTOCOL *This,\r
- IN OUT UINT16 *HandleBufferLength,\r
- OUT FRAMEWORK_EFI_HII_HANDLE *Handle\r
+ IN EFI_HII_PROTOCOL *This,\r
+ IN OUT UINT16 *HandleBufferLength,\r
+ OUT FRAMEWORK_EFI_HII_HANDLE *Handle\r
)\r
;\r
\r
EFI_STATUS\r
EFIAPI\r
HiiExportDatabase (\r
- IN EFI_HII_PROTOCOL *This,\r
- IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
- IN OUT UINTN *BufferSize,\r
- OUT VOID *Buffer\r
+ IN EFI_HII_PROTOCOL *This,\r
+ IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
+ IN OUT UINTN *BufferSize,\r
+ OUT VOID *Buffer\r
)\r
;\r
\r
EFI_STATUS\r
EFIAPI\r
HiiGetGlyph (\r
- IN EFI_HII_PROTOCOL *This,\r
- IN CHAR16 *Source,\r
- IN OUT UINT16 *Index,\r
- OUT UINT8 **GlyphBuffer,\r
- OUT UINT16 *BitWidth,\r
- IN OUT UINT32 *InternalStatus\r
+ IN EFI_HII_PROTOCOL *This,\r
+ IN CHAR16 *Source,\r
+ IN OUT UINT16 *Index,\r
+ OUT UINT8 **GlyphBuffer,\r
+ OUT UINT16 *BitWidth,\r
+ IN OUT UINT32 *InternalStatus\r
)\r
;\r
\r
EFI_STATUS\r
EFIAPI\r
HiiGetString (\r
- IN EFI_HII_PROTOCOL *This,\r
- IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
- IN STRING_REF Token,\r
- IN BOOLEAN Raw,\r
- IN CHAR16 *LanguageString,\r
- IN OUT UINTN *BufferLength,\r
- OUT EFI_STRING StringBuffer\r
+ IN EFI_HII_PROTOCOL *This,\r
+ IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
+ IN STRING_REF Token,\r
+ IN BOOLEAN Raw,\r
+ IN CHAR16 *LanguageString,\r
+ IN OUT UINTN *BufferLength,\r
+ OUT EFI_STRING StringBuffer\r
)\r
;\r
\r
EFI_STATUS\r
EFIAPI\r
HiiResetStrings (\r
- IN EFI_HII_PROTOCOL *This,\r
- IN FRAMEWORK_EFI_HII_HANDLE Handle\r
+ IN EFI_HII_PROTOCOL *This,\r
+ IN FRAMEWORK_EFI_HII_HANDLE Handle\r
)\r
;\r
\r
EFI_STATUS\r
EFIAPI\r
HiiTestString (\r
- IN EFI_HII_PROTOCOL *This,\r
- IN CHAR16 *StringToTest,\r
- IN OUT UINT32 *FirstMissing,\r
- OUT UINT32 *GlyphBufferSize\r
+ IN EFI_HII_PROTOCOL *This,\r
+ IN CHAR16 *StringToTest,\r
+ IN OUT UINT32 *FirstMissing,\r
+ OUT UINT32 *GlyphBufferSize\r
)\r
;\r
\r
EFI_STATUS\r
EFIAPI\r
HiiGetPrimaryLanguages (\r
- IN EFI_HII_PROTOCOL *This,\r
- IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
- OUT EFI_STRING *LanguageString\r
+ IN EFI_HII_PROTOCOL *This,\r
+ IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
+ OUT EFI_STRING *LanguageString\r
)\r
;\r
\r
EFI_STATUS\r
EFIAPI\r
HiiGetSecondaryLanguages (\r
- IN EFI_HII_PROTOCOL *This,\r
- IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
- IN CHAR16 *PrimaryLanguage,\r
- OUT EFI_STRING *LanguageString\r
+ IN EFI_HII_PROTOCOL *This,\r
+ IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
+ IN CHAR16 *PrimaryLanguage,\r
+ OUT EFI_STRING *LanguageString\r
)\r
;\r
\r
EFI_STATUS\r
EFIAPI\r
HiiGetLine (\r
- IN EFI_HII_PROTOCOL *This,\r
+ IN EFI_HII_PROTOCOL *This,\r
IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
- IN STRING_REF Token,\r
- IN OUT UINT16 *Index,\r
- IN UINT16 LineWidth,\r
- IN CHAR16 *LanguageString,\r
- IN OUT UINT16 *BufferLength,\r
- OUT EFI_STRING StringBuffer\r
+ IN STRING_REF Token,\r
+ IN OUT UINT16 *Index,\r
+ IN UINT16 LineWidth,\r
+ IN CHAR16 *LanguageString,\r
+ IN OUT UINT16 *BufferLength,\r
+ OUT EFI_STRING StringBuffer\r
)\r
;\r
\r
EFI_STATUS\r
EFIAPI\r
HiiGetForms (\r
- IN EFI_HII_PROTOCOL *This,\r
+ IN EFI_HII_PROTOCOL *This,\r
IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
- IN EFI_FORM_ID FormId,\r
- IN OUT UINTN *BufferLength,\r
- OUT UINT8 *Buffer\r
+ IN EFI_FORM_ID FormId,\r
+ IN OUT UINTN *BufferLength,\r
+ OUT UINT8 *Buffer\r
)\r
;\r
\r
EFI_STATUS\r
EFIAPI\r
HiiGetDefaultImage (\r
- IN EFI_HII_PROTOCOL *This,\r
- IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
- IN UINTN DefaultMask,\r
- OUT EFI_HII_VARIABLE_PACK_LIST **VariablePackList\r
+ IN EFI_HII_PROTOCOL *This,\r
+ IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
+ IN UINTN DefaultMask,\r
+ OUT EFI_HII_VARIABLE_PACK_LIST **VariablePackList\r
)\r
;\r
\r
EFI_STATUS\r
EFIAPI\r
HiiUpdateForm (\r
- IN EFI_HII_PROTOCOL *This,\r
- IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
- IN EFI_FORM_LABEL Label,\r
- IN BOOLEAN AddData,\r
- IN FRAMEWORK_EFI_HII_UPDATE_DATA *Data\r
+ IN EFI_HII_PROTOCOL *This,\r
+ IN FRAMEWORK_EFI_HII_HANDLE Handle,\r
+ IN EFI_FORM_LABEL Label,\r
+ IN BOOLEAN AddData,\r
+ IN FRAMEWORK_EFI_HII_UPDATE_DATA *Data\r
)\r
;\r
\r
EFI_STATUS\r
EFIAPI\r
HiiGetKeyboardLayout (\r
- IN EFI_HII_PROTOCOL *This,\r
- OUT UINT16 *DescriptorCount,\r
- OUT FRAMEWORK_EFI_KEY_DESCRIPTOR *Descriptor\r
+ IN EFI_HII_PROTOCOL *This,\r
+ OUT UINT16 *DescriptorCount,\r
+ OUT FRAMEWORK_EFI_KEY_DESCRIPTOR *Descriptor\r
)\r
;\r
\r
-EFI_STATUS\r
-HiiCompareLanguage (\r
- IN CHAR16 *LanguageStringLocation,\r
- IN CHAR16 *Language\r
- )\r
-;\r
-\r
-\r
-\r
EFI_STATUS\r
EFIAPI \r
ThunkSendForm (\r
IN BOOLEAN UseDatabase,\r
IN FRAMEWORK_EFI_HII_HANDLE *Handle,\r
IN UINTN HandleCount,\r
- IN FRAMEWORK_EFI_IFR_PACKET *Packet, OPTIONAL\r
+ IN FRAMEWORK_EFI_IFR_PACKET *Packet, OPTIONAL\r
IN EFI_HANDLE CallbackHandle, OPTIONAL\r
IN UINT8 *NvMapOverride, OPTIONAL\r
- IN FRAMEWORK_EFI_SCREEN_DESCRIPTOR *ScreenDimensions, OPTIONAL\r
+ IN FRAMEWORK_EFI_SCREEN_DESCRIPTOR *ScreenDimensions, OPTIONAL\r
OUT BOOLEAN *ResetRequired OPTIONAL\r
- );\r
+ )\r
+;\r
\r
EFI_STATUS\r
EFIAPI \r
OUT EFI_INPUT_KEY *KeyValue,\r
IN CHAR16 *String,\r
...\r
- );\r
+ )\r
+;\r
\r
EFI_STATUS\r
EFIAPI\r