#define BITMAP_LEN_8_BIT(Width, Height) ((Width) * (Height))\r
#define BITMAP_LEN_24_BIT(Width, Height) ((Width) * (Height) * 3)\r
\r
+//\r
+// IFR data structure\r
+//\r
+// BASE_CR (a, IFR_DEFAULT_VALUE_DATA, Entry) to get the whole structure.\r
+\r
+typedef struct {\r
+ LIST_ENTRY Entry; // Link to VarStorage\r
+ EFI_GUID Guid;\r
+ CHAR16 *Name;\r
+ EFI_VARSTORE_ID VarStoreId;\r
+ UINT16 Size;\r
+ LIST_ENTRY BlockEntry; // Link to its Block array\r
+} IFR_VARSTORAGE_DATA;\r
+\r
+typedef struct {\r
+ LIST_ENTRY Entry; // Link to Block array\r
+ UINT16 Offset;\r
+ UINT16 Width;\r
+ EFI_QUESTION_ID QuestionId;\r
+ UINT8 OpCode;\r
+ UINT8 Scope;\r
+ LIST_ENTRY DefaultValueEntry; // Link to its default value array\r
+} IFR_BLOCK_DATA;\r
+\r
+typedef struct {\r
+ LIST_ENTRY Entry;\r
+ UINT8 OpCode;\r
+ EFI_STRING_ID DefaultName;\r
+ UINT16 DefaultId;\r
+ UINT64 Value;\r
+} IFR_DEFAULT_DATA;\r
+\r
//\r
// Storage types\r
//\r
UINT16 Size;\r
} HII_FORMSET_STORAGE;\r
\r
-#define HII_FORMSET_STORAGE_FROM_LINK(a) CR (a, HII_FORMSET_STORAGE, Link, HII_FORMSET_STORAGE_SIGNATURE)\r
-\r
\r
//\r
// String Package definitions\r
OUT UINTN *GlyphBufferLen OPTIONAL\r
);\r
\r
+/**\r
+ This function exports Form packages to a buffer.\r
+ This is a internal function.\r
+\r
+ @param Private Hii database private structure.\r
+ @param Handle Identification of a package list.\r
+ @param PackageList Pointer to a package list which will be exported.\r
+ @param UsedSize The length of buffer be used.\r
+ @param BufferSize Length of the Buffer.\r
+ @param Buffer Allocated space for storing exported data.\r
+ @param ResultSize The size of the already exported content of this\r
+ package list.\r
+\r
+ @retval EFI_SUCCESS Form Packages are exported successfully.\r
+ @retval EFI_INVALID_PARAMETER Any input parameter is invalid.\r
+\r
+**/\r
+EFI_STATUS\r
+ExportFormPackages (\r
+ IN HII_DATABASE_PRIVATE_DATA *Private,\r
+ IN EFI_HII_HANDLE Handle,\r
+ IN HII_DATABASE_PACKAGE_LIST_INSTANCE *PackageList,\r
+ IN UINTN UsedSize,\r
+ IN UINTN BufferSize,\r
+ IN OUT VOID *Buffer,\r
+ IN OUT UINTN *ResultSize\r
+ );\r
+\r
//\r
// EFI_HII_FONT_PROTOCOL protocol interfaces\r
//\r