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
- Copyright (c) 2006 - 2010, 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
- http://opensource.org/licenses/bsd-license.php \r
-\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
+Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>\r
+(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>\r
+This program and the accompanying materials are licensed and made available under \r
+the terms and conditions of the BSD License that accompanies this distribution. \r
+The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php. \r
+ \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.1 and 2.2.\r
//\r
\r
///\r
-/// Contents of EFI_NARROW_GLYPH.Attributes\r
+/// Contents of EFI_NARROW_GLYPH.Attributes.\r
///@{\r
#define EFI_GLYPH_NON_SPACING 0x01\r
#define EFI_GLYPH_WIDE 0x02\r
} EFI_HII_GLYPH_INFO;\r
\r
///\r
-/// The fixed header consists of a standard record header and\r
+/// The fixed header consists of a standard record header,\r
/// then the character values in this section, the flags\r
/// (including the encoding method) and the offsets of the glyph\r
/// information, the glyph bitmaps and the character map.\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
UINT8 BitmapData[1];\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 Day;\r
} EFI_HII_DATE;\r
\r
+typedef struct {\r
+ EFI_QUESTION_ID QuestionId;\r
+ EFI_FORM_ID FormId;\r
+ EFI_GUID FormSetGuid;\r
+ EFI_STRING_ID DevicePath;\r
+} EFI_HII_REF;\r
+\r
typedef union {\r
UINT8 u8;\r
UINT16 u16;\r
EFI_HII_TIME time;\r
EFI_HII_DATE date;\r
EFI_STRING_ID string; ///< EFI_IFR_TYPE_STRING, EFI_IFR_TYPE_ACTION\r
- // UINT8 buffer[]; ///< EFI_IFR_TYPE_ORDERED_LIST\r
+ EFI_HII_REF ref; ///< EFI_IFR_TYPE_REF\r
+ // UINT8 buffer[]; ///< EFI_IFR_TYPE_BUFFER\r
} EFI_IFR_TYPE_VALUE;\r
\r
//\r
#define EFI_IFR_INCONSISTENT_IF_OP 0x11\r
#define EFI_IFR_EQ_ID_VAL_OP 0x12\r
#define EFI_IFR_EQ_ID_ID_OP 0x13\r
-#define EFI_IFR_EQ_ID_LIST_OP 0x14\r
+#define EFI_IFR_EQ_ID_VAL_LIST_OP 0x14\r
#define EFI_IFR_AND_OP 0x15\r
#define EFI_IFR_OR_OP 0x16\r
#define EFI_IFR_NOT_OP 0x17\r
#define EFI_IFR_VERSION_OP 0x28\r
#define EFI_IFR_END_OP 0x29\r
#define EFI_IFR_MATCH_OP 0x2A\r
-#define EFI_IFR_SET_OP 0x2C\r
#define EFI_IFR_GET_OP 0x2B\r
+#define EFI_IFR_SET_OP 0x2C\r
#define EFI_IFR_READ_OP 0x2D\r
#define EFI_IFR_WRITE_OP 0x2E\r
#define EFI_IFR_EQUAL_OP 0x2F\r
#define EFI_IFR_CATENATE_OP 0x5E\r
#define EFI_IFR_GUID_OP 0x5F\r
#define EFI_IFR_SECURITY_OP 0x60\r
+#define EFI_IFR_MODAL_TAG_OP 0x61\r
+#define EFI_IFR_REFRESH_ID_OP 0x62\r
+#define EFI_IFR_WARNING_IF_OP 0x63\r
+#define EFI_IFR_MATCH2_OP 0x64\r
\r
//\r
// Definitions of IFR Standard Headers\r
//\r
// Flag values of 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
//\r
// Definition for Opcode Reference\r
EFI_VARSTORE_ID VarStoreId;\r
EFI_GUID Guid;\r
UINT32 Attributes;\r
+ UINT16 Size;\r
+ UINT8 Name[1];\r
} EFI_IFR_VARSTORE_EFI;\r
\r
typedef struct _EFI_IFR_VARSTORE_NAME_VALUE {\r
EFI_IMAGE_ID Id;\r
} EFI_IFR_IMAGE;\r
\r
+typedef struct _EFI_IFR_MODAL_TAG {\r
+ EFI_IFR_OP_HEADER Header;\r
+} EFI_IFR_MODAL_TAG;\r
+\r
typedef struct _EFI_IFR_LOCKED {\r
EFI_IFR_OP_HEADER Header;\r
} EFI_IFR_LOCKED;\r
EFI_IFR_TYPE_VALUE Value;\r
} EFI_IFR_DEFAULT;\r
\r
+typedef struct _EFI_IFR_DEFAULT_2 {\r
+ EFI_IFR_OP_HEADER Header;\r
+ UINT16 DefaultId;\r
+ UINT8 Type;\r
+} EFI_IFR_DEFAULT_2;\r
+\r
typedef struct _EFI_IFR_VALUE {\r
EFI_IFR_OP_HEADER Header;\r
} EFI_IFR_VALUE;\r
EFI_STRING_ID DevicePath;\r
} EFI_IFR_REF4;\r
\r
+typedef struct _EFI_IFR_REF5 {\r
+ EFI_IFR_OP_HEADER Header;\r
+ EFI_IFR_QUESTION_HEADER Question;\r
+} EFI_IFR_REF5;\r
+\r
typedef struct _EFI_IFR_RESET_BUTTON {\r
EFI_IFR_OP_HEADER Header;\r
EFI_IFR_STATEMENT_HEADER Statement;\r
EFI_STRING_ID Error;\r
} EFI_IFR_NO_SUBMIT_IF;\r
\r
+typedef struct _EFI_IFR_WARNING_IF {\r
+ EFI_IFR_OP_HEADER Header;\r
+ EFI_STRING_ID Warning;\r
+ UINT8 TimeOut;\r
+} EFI_IFR_WARNING_IF;\r
+\r
typedef struct _EFI_IFR_REFRESH {\r
EFI_IFR_OP_HEADER Header;\r
UINT8 RefreshInterval;\r
#define EFI_IFR_TYPE_UNDEFINED 0x09\r
#define EFI_IFR_TYPE_ACTION 0x0A\r
#define EFI_IFR_TYPE_BUFFER 0x0B\r
+#define EFI_IFR_TYPE_REF 0x0C\r
\r
#define EFI_IFR_OPTION_DEFAULT 0x10\r
#define EFI_IFR_OPTION_DEFAULT_MFG 0x20\r
//Optional Data Follows\r
} EFI_IFR_GUID;\r
\r
+typedef struct _EFI_IFR_REFRESH_ID {\r
+ EFI_IFR_OP_HEADER Header;\r
+ EFI_GUID RefreshEventGroupId;\r
+} EFI_IFR_REFRESH_ID;\r
+\r
typedef struct _EFI_IFR_DUP {\r
EFI_IFR_OP_HEADER Header;\r
} EFI_IFR_DUP;\r
///\r
/// For EFI_IFR_TO_STRING, when converting from\r
/// unsigned integers, these flags control the format:\r
-/// 0 = unsigned decimal\r
-/// 1 = signed decimal\r
-/// 2 = hexadecimal (lower-case alpha)\r
-/// 3 = hexadecimal (upper-case alpha)\r
+/// 0 = unsigned decimal.\r
+/// 1 = signed decimal.\r
+/// 2 = hexadecimal (lower-case alpha).\r
+/// 3 = hexadecimal (upper-case alpha).\r
///@{\r
#define EFI_IFR_STRING_UNSIGNED_DEC 0\r
#define EFI_IFR_STRING_SIGNED_DEC 1\r
\r
///\r
/// When converting from a buffer, these flags control the format:\r
-/// 0 = ASCII\r
-/// 8 = Unicode\r
+/// 0 = ASCII.\r
+/// 8 = Unicode.\r
///@{\r
#define EFI_IFR_STRING_ASCII 0\r
#define EFI_IFR_STRING_UNICODE 8\r
EFI_IFR_OP_HEADER Header;\r
} EFI_IFR_MATCH;\r
\r
+typedef struct _EFI_IFR_MATCH2 {\r
+ EFI_IFR_OP_HEADER Header;\r
+ EFI_GUID SyntaxType;\r
+} EFI_IFR_MATCH2;\r
+\r
typedef struct _EFI_IFR_MULTIPLY {\r
EFI_IFR_OP_HEADER Header;\r
} EFI_IFR_MULTIPLY;\r
///\r
/// One or more configuration method's name and unique identifier.\r
///\r
- EFI_IFR_FORM_MAP_METHOD Methods[1];\r
+ // EFI_IFR_FORM_MAP_METHOD Methods[];\r
} EFI_IFR_FORM_MAP;\r
\r
typedef struct _EFI_IFR_SET {\r
///\r
UINT16 VarOffset;\r
} VarStoreInfo;\r
+ ///\r
+ /// Specifies the type used for storage. \r
+ ///\r
+ UINT8 VarStoreType;\r
} EFI_IFR_SET;\r
\r
typedef struct _EFI_IFR_GET {\r
} EFI_IFR_ANIMATION;\r
\r
///\r
-/// HII animation package header\r
+/// HII animation package header.\r
///\r
typedef struct _EFI_HII_ANIMATION_PACKAGE_HDR {\r
///\r
\r
///\r
/// Animation information is encoded as a series of blocks,\r
-/// with each block prefixed by a single byte header EFI_HII_ANIMATION_BLOCK\r
+/// with each block prefixed by a single byte header EFI_HII_ANIMATION_BLOCK.\r
///\r
typedef struct _EFI_HII_ANIMATION_BLOCK {\r
UINT8 BlockType;\r
} EFI_HII_ANIMATION_BLOCK;\r
\r
///\r
-/// Animation block types\r
+/// Animation block types.\r
///\r
#define EFI_HII_AIBT_END 0x00\r
#define EFI_HII_AIBT_OVERLAY_IMAGES 0x10\r
\r
typedef struct _EFI_HII_AIBT_EXT1_BLOCK {\r
///\r
- /// Standard animation header, where Header.BlockType = EFI_HII_AIBT_EXT1\r
+ /// Standard animation header, where Header.BlockType = EFI_HII_AIBT_EXT1.\r
///\r
EFI_HII_ANIMATION_BLOCK Header;\r
///\r
- /// The block type\r
+ /// The block type.\r
///\r
UINT8 BlockType2;\r
///\r
\r
typedef struct _EFI_HII_AIBT_EXT2_BLOCK {\r
///\r
- /// Standard animation header, where Header.BlockType = EFI_HII_AIBT_EXT2\r
+ /// Standard animation header, where Header.BlockType = EFI_HII_AIBT_EXT2.\r
///\r
EFI_HII_ANIMATION_BLOCK Header;\r
///\r
\r
typedef struct _EFI_HII_AIBT_EXT4_BLOCK {\r
///\r
- /// Standard animation header, where Header.BlockType = EFI_HII_AIBT_EXT4\r
+ /// Standard animation header, where Header.BlockType = EFI_HII_AIBT_EXT4.\r
///\r
EFI_HII_ANIMATION_BLOCK Header;\r
///\r
///\r
#define STRING_TOKEN(t) t\r
\r
+///\r
+/// IMAGE_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 IMAGE_TOKEN(t) t\r
+\r
#endif\r