IFR is primarily consumed by the EFI presentation engine, and produced by EFI\r
internal application and drivers as well as all add-in card option-ROM drivers\r
\r
- @par Revision Reference:\r
- These definitions are from UEFI2.1.\r
-\r
- Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+ (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>\r
\r
This program and the accompanying materials are licensed and made available\r
under the terms and conditions of the BSD License which accompanies this\r
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
+ @par Revision Reference:\r
+ These definitions are from UEFI 2.6\r
+\r
**/\r
\r
#ifndef __UEFI_INTERNAL_FORMREPRESENTATION_H__\r
} EFI_HII_PACKAGE_LIST_HEADER;\r
\r
/**\r
- \r
- Each package starts with a header, as defined above, which \r
- indicates the size and type of the package. When added to a \r
- pointer pointing to the start of the header, Length points at \r
- the next package. The package lists form a package list when \r
- concatenated together and terminated with an \r
- EFI_HII_PACKAGE_HEADER with a Type of EFI_HII_PACKAGE_END. The \r
- type EFI_HII_PACKAGE_TYPE_GUID is used for vendor-defined HII \r
- packages, whose contents are determined by the Guid. The range \r
- of package types starting with EFI_HII_PACKAGE_TYPE_SYSTEM_BEGIN \r
- through EFI_HII_PACKAGE_TYPE_SYSTEM_END are reserved for system \r
- firmware implementers. \r
- \r
+\r
+ Each package starts with a header, as defined above, which\r
+ indicates the size and type of the package. When added to a\r
+ pointer pointing to the start of the header, Length points at\r
+ the next package. The package lists form a package list when\r
+ concatenated together and terminated with an\r
+ EFI_HII_PACKAGE_HEADER with a Type of EFI_HII_PACKAGE_END. The\r
+ type EFI_HII_PACKAGE_TYPE_GUID is used for vendor-defined HII\r
+ packages, whose contents are determined by the Guid. The range\r
+ of package types starting with EFI_HII_PACKAGE_TYPE_SYSTEM_BEGIN\r
+ through EFI_HII_PACKAGE_TYPE_SYSTEM_END are reserved for system\r
+ firmware implementers.\r
+\r
@param Length The size of the package in bytes.\r
- \r
+\r
@param Type The package type. See EFI_HII_PACKAGE_TYPE_x,\r
below.\r
- \r
+\r
@param Data The package data, the format of which is\r
determined by Type.\r
- \r
+\r
**/\r
typedef struct {\r
UINT32 Length:24;\r
\r
//\r
// EFI_HII_PACKAGE_TYPE_x.\r
-// \r
+//\r
#define EFI_HII_PACKAGE_TYPE_ALL 0x00\r
#define EFI_HII_PACKAGE_TYPE_GUID 0x01\r
#define EFI_HII_PACKAGE_FORM 0x02\r
#define EFI_HII_GIBT_GLYPHS 0x11\r
#define EFI_HII_GIBT_GLYPH_DEFAULT 0x12\r
#define EFI_HII_GIBT_GLYPHS_DEFAULT 0x13\r
+#define EFI_HII_GIBT_GLYPH_VARIABILITY 0x14\r
#define EFI_HII_GIBT_DUPLICATE 0x20\r
#define EFI_HII_GIBT_SKIP2 0x21\r
#define EFI_HII_GIBT_SKIP1 0x22\r
typedef struct _EFI_HII_GIBT_GLYPHS_BLOCK {\r
EFI_HII_GLYPH_BLOCK Header;\r
EFI_HII_GLYPH_INFO Cell;\r
- UINT16 Count; \r
+ UINT16 Count;\r
UINT8 BitmapData[1]; // the number of bytes per bitmap can be calculated by ((Cell.Width+7)/8)*Cell.Height\r
} EFI_HII_GIBT_GLYPHS_BLOCK;\r
\r
UINT8 BitmapData[1]; // the number of bytes per bitmap can be calculated by ((Global.Cell.Width+7)/8)*Global.Cell.Height\r
} EFI_HII_GIBT_GLYPHS_DEFAULT_BLOCK;\r
\r
+typedef struct _EFI_HII_GIBT_VARIABILITY_BLOCK {\r
+ EFI_HII_GLYPH_BLOCK Header;\r
+ EFI_HII_GLYPH_INFO Cell;\r
+ UINT8 GlyphPackInBits;\r
+ UINT8 BitmapData [1];\r
+} EFI_HII_GIBT_VARIABILITY_BLOCK;\r
+\r
typedef struct _EFI_HII_GIBT_SKIP1_BLOCK {\r
EFI_HII_GLYPH_BLOCK Header;\r
UINT8 SkipCount;\r
#define EFI_HII_IIBT_IMAGE_24BIT 0x16\r
#define EFI_HII_IIBT_IMAGE_24BIT_TRANS 0x17\r
#define EFI_HII_IIBT_IMAGE_JPEG 0x18\r
+#define EFI_HII_IIBT_IMAGE_PNG 0x19\r
#define EFI_HII_IIBT_DUPLICATE 0x20\r
#define EFI_HII_IIBT_SKIP2 0x21\r
#define EFI_HII_IIBT_SKIP1 0x22\r
UINT8 Data[1];\r
} EFI_HII_IIBT_JPEG_BLOCK;\r
\r
+typedef struct _EFI_HII_IIBT_PNG_BLOCK {\r
+ EFI_HII_IMAGE_BLOCK Header;\r
+ UINT32 Size;\r
+ UINT8 Data[1];\r
+} EFI_HII_IIBT_PNG_BLOCK;\r
+\r
typedef struct _EFI_HII_IIBT_SKIP1_BLOCK {\r
EFI_HII_IMAGE_BLOCK Header;\r
UINT8 SkipCount;\r
UINT8 Flags;\r
} EFI_IFR_QUESTION_HEADER;\r
\r
-#define EFI_IFR_FLAG_READ_ONLY 0x01\r
-#define EFI_IFR_FLAG_CALLBACK 0x04\r
-#define EFI_IFR_FLAG_RESET_REQUIRED 0x10\r
-#define EFI_IFR_FLAG_OPTIONS_ONLY 0x80\r
+#define EFI_IFR_FLAG_READ_ONLY 0x01\r
+#define EFI_IFR_FLAG_CALLBACK 0x04\r
+#define EFI_IFR_FLAG_RESET_REQUIRED 0x10\r
+#define EFI_IFR_FLAG_RECONNECT_REQUIRED 0x40\r
+#define EFI_IFR_FLAG_OPTIONS_ONLY 0x80\r
\r
typedef struct _EFI_IFR_DEFAULTSTORE {\r
EFI_IFR_OP_HEADER Header;\r
\r
typedef struct _EFI_IFR_FORM_MAP_METHOD {\r
///\r
- /// The string identifier which provides the human-readable name of \r
+ /// The string identifier which provides the human-readable name of\r
/// the configuration method for this standards map form.\r
///\r
EFI_STRING_ID MethodTitle;\r
///\r
- /// Identifier which uniquely specifies the configuration methods \r
+ /// Identifier which uniquely specifies the configuration methods\r
/// associated with this standards map form.\r
///\r
EFI_GUID MethodIdentifier;\r
\r
typedef struct _EFI_IFR_FORM_MAP {\r
///\r
- /// The sequence that defines the type of opcode as well as the length \r
- /// of the opcode being defined. Header.OpCode = EFI_IFR_FORM_MAP_OP. \r
+ /// The sequence that defines the type of opcode as well as the length\r
+ /// of the opcode being defined. Header.OpCode = EFI_IFR_FORM_MAP_OP.\r
///\r
EFI_IFR_OP_HEADER Header;\r
///\r
\r
typedef struct _EFI_IFR_SET {\r
///\r
- /// The sequence that defines the type of opcode as well as the length \r
- /// of the opcode being defined. Header.OpCode = EFI_IFR_SET_OP. \r
+ /// The sequence that defines the type of opcode as well as the length\r
+ /// of the opcode being defined. Header.OpCode = EFI_IFR_SET_OP.\r
///\r
EFI_IFR_OP_HEADER Header;\r
///\r
- /// Specifies the identifier of a previously declared variable store to \r
- /// use when storing the question's value. \r
+ /// Specifies the identifier of a previously declared variable store to\r
+ /// use when storing the question's value.\r
///\r
EFI_VARSTORE_ID VarStoreId;\r
union {\r
UINT16 VarOffset;\r
} VarStoreInfo;\r
///\r
- /// Specifies the type used for storage. \r
+ /// Specifies the type used for storage.\r
///\r
UINT8 VarStoreType;\r
} EFI_IFR_SET;\r
\r
typedef struct _EFI_IFR_GET {\r
///\r
- /// The sequence that defines the type of opcode as well as the length \r
- /// of the opcode being defined. Header.OpCode = EFI_IFR_GET_OP. \r
+ /// The sequence that defines the type of opcode as well as the length\r
+ /// of the opcode being defined. Header.OpCode = EFI_IFR_GET_OP.\r
///\r
EFI_IFR_OP_HEADER Header;\r
///\r
- /// Specifies the identifier of a previously declared variable store to \r
- /// use when retrieving the value. \r
+ /// Specifies the identifier of a previously declared variable store to\r
+ /// use when retrieving the value.\r
///\r
EFI_VARSTORE_ID VarStoreId;\r
union {\r
UINT16 VarOffset;\r
} VarStoreInfo;\r
///\r
- /// Specifies the type used for storage. \r
+ /// Specifies the type used for storage.\r
///\r
UINT8 VarStoreType;\r
} EFI_IFR_GET;\r
// Keyboard Package\r
//\r
\r
-typedef enum { \r
+typedef enum {\r
EfiKeyLCtrl,\r
- EfiKeyA0, \r
+ EfiKeyA0,\r
EfiKeyLAlt,\r
EfiKeySpaceBar,\r
EfiKeyA2,\r
} EFI_KEY_DESCRIPTOR;\r
\r
//\r
-// A key which is affected by all the standard shift modifiers. \r
+// A key which is affected by all the standard shift modifiers.\r
// Most keys would be expected to have this bit active.\r
//\r
#define EFI_AFFECTED_BY_STANDARD_SHIFT 0x0001\r
// token usages.\r
//\r
//\r
-// STRING_TOKEN is not defined in UEFI specification. But it is placed \r
+// STRING_TOKEN is not defined in UEFI specification. But it is placed\r
// here for the easy access by C files and VFR source files.\r
//\r
#define STRING_TOKEN(t) t\r