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 - 2008, Intel Corporation All rights reserved.\r
+ @par Revision Reference:\r
+ These definitions are from UEFI2.1.\r
+\r
+ Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<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
- distribution. The full text of the license may be found at:\r
+ 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
\r
- File Name: UefiInternalFormRepresentation.h\r
-\r
- @par Revision Reference:\r
- These definitions are from UEFI2.1.\r
-\r
**/\r
\r
#ifndef __UEFI_INTERNAL_FORMREPRESENTATION_H__\r
// String Package\r
//\r
\r
-#define UEFI_CONFIG_LANG L"x-UEFI"\r
-#define UEFI_CONFIG_LANG2 L"x-i-UEFI" // BUGBUG, spec need to be updated.\r
+#define UEFI_CONFIG_LANG "x-UEFI"\r
+#define UEFI_CONFIG_LANG2 "x-i-UEFI"\r
\r
typedef struct _EFI_HII_STRING_PACKAGE_HDR {\r
EFI_HII_PACKAGE_HEADER Header;\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;\r
+ EFI_HII_REF ref;\r
} EFI_IFR_TYPE_VALUE;\r
\r
#define EFI_IFR_FORM_OP 0x01\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_DISABLE_IF_OP 0x1E\r
#define EFI_IFR_TO_LOWER_OP 0x20\r
#define EFI_IFR_TO_UPPER_OP 0x21\r
+#define EFI_IFR_MAP_OP 0x22\r
#define EFI_IFR_ORDERED_LIST_OP 0x23\r
#define EFI_IFR_VARSTORE_OP 0x24\r
#define EFI_IFR_VARSTORE_NAME_VALUE_OP 0x25\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_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_NOT_EQUAL_OP 0x30\r
#define EFI_IFR_GREATER_THAN_OP 0x31\r
#define EFI_IFR_VALUE_OP 0x5A\r
#define EFI_IFR_DEFAULT_OP 0x5B\r
#define EFI_IFR_DEFAULTSTORE_OP 0x5C\r
+#define EFI_IFR_FORM_MAP_OP 0x5D\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
\r
\r
typedef struct _EFI_IFR_OP_HEADER {\r
\r
typedef struct _EFI_IFR_VARSTORE_EFI {\r
EFI_IFR_OP_HEADER Header;\r
- UINT16 VarStoreId;\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_IFR_OP_HEADER Header;\r
- UINT16 VarStoreId;\r
+ EFI_VARSTORE_ID VarStoreId;\r
EFI_GUID Guid;\r
} EFI_IFR_VARSTORE_NAME_VALUE;\r
\r
EFI_STRING_ID FormSetTitle;\r
EFI_STRING_ID Help;\r
UINT8 Flags;\r
- EFI_GUID ClassGuid[1];\r
+ // EFI_GUID ClassGuid[];\r
} EFI_IFR_FORM_SET;\r
\r
typedef struct _EFI_IFR_END {\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_RESET_BUTTON {\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_DEFAULT_ID DefaultId;\r
} EFI_IFR_RESET_BUTTON;\r
\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
} EFI_IFR_REFRESH;\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_VARSTORE_DEVICE {\r
EFI_IFR_OP_HEADER Header;\r
EFI_STRING_ID DevicePath;\r
#define EFI_IFR_TYPE_DATE 0x06\r
#define EFI_IFR_TYPE_STRING 0x07\r
#define EFI_IFR_TYPE_OTHER 0x08\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
UINT16 Value;\r
} EFI_IFR_EQ_ID_VAL;\r
\r
-typedef struct _EFI_IFR_EQ_ID_LIST {\r
+typedef struct _EFI_IFR_EQ_ID_VAL_LIST {\r
EFI_IFR_OP_HEADER Header;\r
EFI_QUESTION_ID QuestionId;\r
UINT16 ListLength;\r
UINT16 ValueList[1];\r
-} EFI_IFR_EQ_ID_LIST;\r
+} EFI_IFR_EQ_ID_VAL_LIST;\r
\r
typedef struct _EFI_IFR_QUESTION_REF1 {\r
EFI_IFR_OP_HEADER Header;\r
UINT8 Flags;\r
} EFI_IFR_SPAN;\r
\r
+typedef struct _EFI_IFR_SECURITY {\r
+ ///\r
+ /// Standard opcode header, where Header.Op = EFI_IFR_SECURITY_OP.\r
+ ///\r
+ EFI_IFR_OP_HEADER Header;\r
+ ///\r
+ /// Security permission level.\r
+ ///\r
+ EFI_GUID Permissions;\r
+} EFI_IFR_SECURITY;\r
+\r
+typedef struct _EFI_IFR_FORM_MAP_METHOD {\r
+ ///\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
+ /// associated with this standards map form.\r
+ ///\r
+ EFI_GUID MethodIdentifier;\r
+} EFI_IFR_FORM_MAP_METHOD;\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
+ ///\r
+ EFI_IFR_OP_HEADER Header;\r
+ ///\r
+ /// The unique identifier for this particular form.\r
+ ///\r
+ EFI_FORM_ID FormId;\r
+ ///\r
+ /// One or more configuration method's name and unique identifier.\r
+ ///\r
+ // EFI_IFR_FORM_MAP_METHOD Methods[];\r
+} EFI_IFR_FORM_MAP;\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
+ ///\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
+ ///\r
+ EFI_VARSTORE_ID VarStoreId;\r
+ union {\r
+ ///\r
+ /// A 16-bit Buffer Storage offset.\r
+ ///\r
+ EFI_STRING_ID VarName;\r
+ ///\r
+ /// A Name Value or EFI Variable name (VarName).\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
+ ///\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
+ ///\r
+ EFI_VARSTORE_ID VarStoreId;\r
+ union {\r
+ ///\r
+ /// A 16-bit Buffer Storage offset.\r
+ ///\r
+ EFI_STRING_ID VarName;\r
+ ///\r
+ /// A Name Value or EFI Variable name (VarName).\r
+ ///\r
+ UINT16 VarOffset;\r
+ } VarStoreInfo;\r
+ ///\r
+ /// Specifies the type used for storage. \r
+ ///\r
+ UINT8 VarStoreType;\r
+} EFI_IFR_GET;\r
+\r
+typedef struct _EFI_IFR_READ {\r
+ EFI_IFR_OP_HEADER Header;\r
+} EFI_IFR_READ;\r
+\r
+typedef struct _EFI_IFR_WRITE {\r
+ EFI_IFR_OP_HEADER Header;\r
+} EFI_IFR_WRITE;\r
+\r
+typedef struct _EFI_IFR_MAP {\r
+ EFI_IFR_OP_HEADER Header;\r
+} EFI_IFR_MAP;\r
//\r
// Keyboard Package\r
//\r