Framework 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) 2007 - 2009, 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) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
@par Revision Reference:\r
- These definitions are from Framework Specification HII 0.92.\r
+ These definitions are from the Framework Specification HII 0.92.\r
\r
**/\r
\r
#define FRAMEWORK_EFI_IFR_FORM_OP 0x01\r
#define FRAMEWORK_EFI_IFR_SUBTITLE_OP 0x02\r
#define FRAMEWORK_EFI_IFR_TEXT_OP 0x03\r
-#define EFI_IFR_GRAPHIC_OP 0x04\r
+#define EFI_IFR_GRAPHIC_OP 0x04\r
#define FRAMEWORK_EFI_IFR_ONE_OF_OP 0x05\r
#define FRAMEWORK_EFI_IFR_CHECKBOX_OP 0x06\r
#define FRAMEWORK_EFI_IFR_NUMERIC_OP 0x07\r
#define FRAMEWORK_EFI_IFR_PASSWORD_OP 0x08\r
-#define FRAMEWORK_EFI_IFR_ONE_OF_OPTION_OP 0x09 ///< ONEOF OPTION field\r
+#define FRAMEWORK_EFI_IFR_ONE_OF_OPTION_OP 0x09 ///< ONEOF OPTION field.\r
#define FRAMEWORK_EFI_IFR_SUPPRESS_IF_OP 0x0A\r
-#define EFI_IFR_END_FORM_OP 0x0B\r
-#define EFI_IFR_HIDDEN_OP 0x0C\r
-#define EFI_IFR_END_FORM_SET_OP 0x0D\r
+#define EFI_IFR_END_FORM_OP 0x0B\r
+#define EFI_IFR_HIDDEN_OP 0x0C\r
+#define EFI_IFR_END_FORM_SET_OP 0x0D\r
#define FRAMEWORK_EFI_IFR_FORM_SET_OP 0x0E\r
#define FRAMEWORK_EFI_IFR_REF_OP 0x0F\r
-#define EFI_IFR_END_ONE_OF_OP 0x10\r
+#define EFI_IFR_END_ONE_OF_OP 0x10\r
#define FRAMEWORK_EFI_IFR_END_OP EFI_IFR_END_ONE_OF_OP\r
#define FRAMEWORK_EFI_IFR_INCONSISTENT_IF_OP 0x11\r
#define FRAMEWORK_EFI_IFR_EQ_ID_VAL_OP 0x12\r
#define FRAMEWORK_EFI_IFR_AND_OP 0x15\r
#define FRAMEWORK_EFI_IFR_OR_OP 0x16\r
#define FRAMEWORK_EFI_IFR_NOT_OP 0x17\r
-#define EFI_IFR_END_IF_OP 0x18 ///< for endif of inconsistentif, suppressif, grayoutif\r
-#define EFI_IFR_GRAYOUT_IF_OP 0x19\r
+#define EFI_IFR_END_IF_OP 0x18 ///< For endif of inconsistentif, suppressif, grayoutif.\r
+#define EFI_IFR_GRAYOUT_IF_OP 0x19\r
#define FRAMEWORK_EFI_IFR_DATE_OP 0x1A\r
#define FRAMEWORK_EFI_IFR_TIME_OP 0x1B\r
#define FRAMEWORK_EFI_IFR_STRING_OP 0x1C\r
-#define EFI_IFR_LABEL_OP 0x1D\r
-#define EFI_IFR_SAVE_DEFAULTS_OP 0x1E\r
-#define EFI_IFR_RESTORE_DEFAULTS_OP 0x1F\r
-#define EFI_IFR_BANNER_OP 0x20\r
-#define EFI_IFR_INVENTORY_OP 0x21\r
-#define EFI_IFR_EQ_VAR_VAL_OP 0x22\r
+#define EFI_IFR_LABEL_OP 0x1D\r
+#define EFI_IFR_SAVE_DEFAULTS_OP 0x1E\r
+#define EFI_IFR_RESTORE_DEFAULTS_OP 0x1F\r
+#define EFI_IFR_BANNER_OP 0x20\r
+#define EFI_IFR_INVENTORY_OP 0x21\r
+#define EFI_IFR_EQ_VAR_VAL_OP 0x22\r
#define FRAMEWORK_EFI_IFR_ORDERED_LIST_OP 0x23\r
#define FRAMEWORK_EFI_IFR_VARSTORE_OP 0x24\r
-#define EFI_IFR_VARSTORE_SELECT_OP 0x25\r
-#define EFI_IFR_VARSTORE_SELECT_PAIR_OP 0x26\r
-#define EFI_IFR_LAST_OPCODE EFI_IFR_VARSTORE_SELECT_PAIR_OP\r
-#define EFI_IFR_OEM_OP 0xFE\r
-#define EFI_IFR_NV_ACCESS_COMMAND 0xFF\r
+#define EFI_IFR_VARSTORE_SELECT_OP 0x25\r
+#define EFI_IFR_VARSTORE_SELECT_PAIR_OP 0x26\r
+#define EFI_IFR_LAST_OPCODE EFI_IFR_VARSTORE_SELECT_PAIR_OP\r
+#define EFI_IFR_OEM_OP 0xFE\r
+#define EFI_IFR_NV_ACCESS_COMMAND 0xFF\r
\r
//\r
// Define values for the flags fields in some VFR opcodes. These are\r
#define EFI_IFR_FLAG_RESET_REQUIRED 0x10\r
#define EFI_IFR_FLAG_LATE_CHECK 0x20\r
\r
-#define EFI_NON_DEVICE_CLASS 0x00 ///< Useful when you do not want something in the Device Manager\r
+#define EFI_NON_DEVICE_CLASS 0x00 ///< Useful when you do not want something in the Device Manager.\r
#define EFI_DISK_DEVICE_CLASS 0x01\r
#define EFI_VIDEO_DEVICE_CLASS 0x02\r
#define EFI_NETWORK_DEVICE_CLASS 0x04\r
#define EFI_SETUP_APPLICATION_SUBCLASS 0x00\r
#define EFI_GENERAL_APPLICATION_SUBCLASS 0x01\r
#define EFI_FRONT_PAGE_SUBCLASS 0x02\r
-#define EFI_SINGLE_USE_SUBCLASS 0x03 ///< Used to display a single entity and then exit\r
+#define EFI_SINGLE_USE_SUBCLASS 0x03 ///< Used to display a single entity ,and then exit.\r
\r
///\r
/// Used to flag dynamically created op-codes. This is meaningful to the IFR Library set\r
-/// and the browser since we need to distinguish between compiled NV map data and created data.\r
-/// We do not allow new entries to be created in the NV map dynamically however we still need\r
+/// and the browser because we need to distinguish between compiled NV map data and created data.\r
+/// We do not allow new entries to be created in the NV map dynamically, but we do need\r
/// to display this information correctly. To dynamically create op-codes and assume that their\r
/// data will be saved, ensure that the NV starting location they refer to is pre-defined in the\r
/// NV map.\r
EFI_PHYSICAL_ADDRESS CallbackHandle;\r
UINT16 Class;\r
UINT16 SubClass;\r
- UINT16 NvDataSize; ///< set once, size of the NV data as defined in the script\r
+ UINT16 NvDataSize; ///< Set once; the size of the NV data as defined in the script.\r
} FRAMEWORK_EFI_IFR_FORM_SET;\r
\r
typedef struct {\r
STRING_REF Text;\r
STRING_REF TextTwo;\r
UINT8 Flags; ///< This is included solely for purposes of interactive/dynamic support.\r
- UINT16 Key; ///< Value to be passed to caller to identify this particular op-code\r
+ UINT16 Key; ///< The value to be passed to the caller to identify this particular op-code.\r
} FRAMEWORK_EFI_IFR_TEXT;\r
\r
//\r
FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
UINT16 FormId;\r
STRING_REF Prompt;\r
- STRING_REF Help; ///< The string Token for the context-help\r
+ STRING_REF Help; ///< The string Token for the context-help.\r
UINT8 Flags; ///< This is included solely for purposes of interactive/dynamic support.\r
- UINT16 Key; ///< Value to be passed to caller to identify this particular op-code\r
+ UINT16 Key; ///< The value to be passed to the caller to identify this particular op-code.\r
} FRAMEWORK_EFI_IFR_REF;\r
\r
typedef struct {\r
typedef struct {\r
FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
UINT16 QuestionId; ///< The ID designating what the question is about...\r
- UINT8 Width; ///< The Size of the Data being saved\r
- STRING_REF Prompt; ///< The String Token for the Prompt\r
- STRING_REF Help; ///< The string Token for the context-help\r
+ UINT8 Width; ///< The Size of the Data being saved.\r
+ STRING_REF Prompt; ///< The String Token for the Prompt.\r
+ STRING_REF Help; ///< The string Token for the context-help.\r
} FRAMEWORK_EFI_IFR_ONE_OF;\r
\r
typedef struct {\r
FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
- UINT16 QuestionId; ///< The offset in NV for storage of the data\r
- UINT8 MaxEntries; ///< The maximum number of options in the ordered list (=size of NVStore)\r
- STRING_REF Prompt; ///< The string token for the prompt\r
- STRING_REF Help; ///< The string token for the context-help\r
+ UINT16 QuestionId; ///< The offset in NV for storage of the data.\r
+ UINT8 MaxEntries; ///< The maximum number of options in the ordered list (=size of NVStore).\r
+ STRING_REF Prompt; ///< The string token for the prompt.\r
+ STRING_REF Help; ///< The string token for the context-help.\r
} FRAMEWORK_EFI_IFR_ORDERED_LIST;\r
\r
typedef struct {\r
FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
UINT16 QuestionId; ///< The ID designating what the question is about...\r
- UINT8 Width; ///< The Size of the Data being saved\r
- STRING_REF Prompt; ///< The String Token for the Prompt\r
- STRING_REF Help; ///< The string Token for the context-help\r
- UINT8 Flags; ///< If non-zero, means that it is the default option\r
- UINT16 Key; ///< Value to be passed to caller to identify this particular op-code\r
+ UINT8 Width; ///< The Size of the Data being saved.\r
+ STRING_REF Prompt; ///< The String Token for the Prompt.\r
+ STRING_REF Help; ///< The string Token for the context-help.\r
+ UINT8 Flags; ///< If non-zero, it means that it is the default option.\r
+ UINT16 Key; ///< Value to be passed to caller to identify this particular op-code.\r
} FRAMEWORK_EFI_IFR_CHECKBOX, EFI_IFR_CHECK_BOX;\r
\r
typedef struct {\r
FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
- STRING_REF Option; ///< The string token describing the option\r
- UINT16 Value; ///< The value associated with this option that is stored in the NVRAM\r
- UINT8 Flags; ///< If non-zero, means that it is the default option\r
- UINT16 Key; ///< Value to be passed to caller to identify this particular op-code\r
+ STRING_REF Option; ///< The string token describing the option.\r
+ UINT16 Value; ///< The value associated with this option that is stored in the NVRAM.\r
+ UINT8 Flags; ///< If non-zero, it means that it is the default option.\r
+ UINT16 Key; ///< Value to be passed to caller to identify this particular op-code.\r
} FRAMEWORK_EFI_IFR_ONE_OF_OPTION;\r
\r
typedef struct {\r
FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
UINT16 QuestionId; ///< The ID designating what the question is about...\r
- UINT8 Width; ///< The Size of the Data being saved\r
- STRING_REF Prompt; ///< The String Token for the Prompt\r
- STRING_REF Help; ///< The string Token for the context-help\r
+ UINT8 Width; ///< The Size of the Data being saved.\r
+ STRING_REF Prompt; ///< The String Token for the Prompt.\r
+ STRING_REF Help; ///< The string Token for the context-help.\r
UINT8 Flags; ///< This is included solely for purposes of interactive/dynamic support.\r
- UINT16 Key; ///< Value to be passed to caller to identify this particular op-code\r
+ UINT16 Key; ///< The value to be passed to caller to identify this particular op-code.\r
UINT16 Minimum;\r
UINT16 Maximum;\r
- UINT16 Step; ///< Zero means manual input, otherwise, arrow selection is called for\r
+ UINT16 Step; ///< Zero means manual input. Otherwise, arrow selection is called for.\r
UINT16 Default;\r
} FRAMEWORK_EFI_IFR_NUMERIC;\r
\r
//\r
// There is an interesting twist with regards to Time and Date. This is one of the few items which can accept input\r
-// from a user, however may or may not need to use storage in the NVRAM space. The decided method for determining \r
-// if NVRAM space will be used (only for a TimeOp or DateOp) is: If .QuestionId == 0 && .Width == 0 (normally an \r
+// from a user, and may or may not need to use storage in the NVRAM space. The decided method for determining\r
+// if NVRAM space will be used (only for a TimeOp or DateOp) is: If .QuestionId == 0 && .Width == 0 (normally an\r
// impossibility) then use system resources to store the data away and not NV resources. In other words, the setup\r
// engine will call gRT->SetTime, and gRT->SetDate for the saving of data, and the values displayed will be from the\r
// gRT->GetXXXX series of calls.\r
typedef struct {\r
FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
UINT16 QuestionId;///< The ID designating what the question is about...\r
- UINT8 Width; ///< The Size of the Data being saved\r
- STRING_REF Prompt; ///< The String Token for the Prompt\r
- STRING_REF Help; ///< The string Token for the context-help\r
+ UINT8 Width; ///< The Size of the Data being saved.\r
+ STRING_REF Prompt; ///< The String Token for the Prompt.\r
+ STRING_REF Help; ///< The string Token for the context-help.\r
UINT8 Flags; ///< This is included solely for purposes of interactive/dynamic support.\r
- UINT16 Key; ///< Value to be passed to caller to identify this particular op-code\r
- UINT8 MinSize; ///< Minimum allowable sized password\r
- UINT8 MaxSize; ///< Maximum allowable sized password\r
+ UINT16 Key; ///< The value to be passed to caller to identify this particular op-code.\r
+ UINT8 MinSize; ///< Minimum allowable sized password.\r
+ UINT8 MaxSize; ///< Maximum allowable sized password.\r
UINT16 Encoding;\r
} FRAMEWORK_EFI_IFR_PASSWORD;\r
\r
typedef struct {\r
FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
UINT16 QuestionId; ///< The ID designating what the question is about...\r
- UINT8 Width; ///< The Size of the Data being saved \r
- STRING_REF Prompt; ///< The String Token for the Prompt\r
- STRING_REF Help; ///< The string Token for the context-help\r
+ UINT8 Width; ///< The Size of the Data being saved.\r
+ STRING_REF Prompt; ///< The String Token for the Prompt.\r
+ STRING_REF Help; ///< The string Token for the context-help.\r
UINT8 Flags; ///< This is included solely for purposes of interactive/dynamic support.\r
- UINT16 Key; ///< Value to be passed to caller to identify this particular op-code\r
- UINT8 MinSize; ///< Minimum allowable sized password\r
- UINT8 MaxSize; ///< Maximum allowable sized password\r
+ UINT16 Key; ///< The value to be passed to caller to identify this particular op-code.\r
+ UINT8 MinSize; ///< Minimum allowable sized password.\r
+ UINT8 MaxSize; ///< Maximum allowable sized password.\r
} FRAMEWORK_EFI_IFR_STRING;\r
\r
typedef struct {\r
\r
///\r
/// Inconsistent with specification here:\r
-/// Following defintion may not comply with Framework Specification HII 0.92. To \r
+/// The following defintion may not comply with Framework Specification HII 0.92. To\r
/// keep the inconsistant is for implementation needed.\r
-///\r
+///@{\r
typedef struct {\r
FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
UINT8 Flags;\r
\r
typedef struct {\r
FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
- UINT16 QuestionId; ///< offset into variable storage\r
- UINT8 Width; ///< size of variable storage\r
- UINT16 Value; ///< value to compare against\r
+ UINT16 QuestionId; ///< The offset into variable storage.\r
+ UINT8 Width; ///< The size of variable storage.\r
+ UINT16 Value; ///< The value to compare against.\r
} FRAMEWORK_EFI_IFR_EQ_ID_VAL;\r
\r
typedef struct {\r
FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
- UINT16 QuestionId; ///< offset into variable storage\r
- UINT8 Width; ///< size of variable storage\r
+ UINT16 QuestionId; ///< The offset into variable storage.\r
+ UINT8 Width; ///< The size of variable storage.\r
UINT16 ListLength;\r
UINT16 ValueList[1];\r
} FRAMEWORK_EFI_IFR_EQ_ID_LIST;\r
\r
typedef struct {\r
FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
- UINT16 QuestionId1; ///< offset into variable storage for first value to compare\r
- UINT8 Width; ///< size of variable storage (must be same for both)\r
- UINT16 QuestionId2; ///< offset into variable storage for second value to compare\r
+ UINT16 QuestionId1; ///< The offset into variable storage for first value to compare.\r
+ UINT8 Width; ///< The size of variable storage (must be same for both).\r
+ UINT16 QuestionId2; ///< The offset into variable storage for second value to compare.\r
} FRAMEWORK_EFI_IFR_EQ_ID_ID;\r
\r
typedef struct {\r
FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
- UINT16 VariableId; ///< offset into variable storage\r
- UINT16 Value; ///< value to compare against\r
+ UINT16 VariableId; ///< The offset into variable storage.\r
+ UINT16 Value; ///< The value to compare against.\r
} EFI_IFR_EQ_VAR_VAL;\r
+///@}\r
\r
typedef struct {\r
FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
STRING_REF Help;\r
STRING_REF Text;\r
- STRING_REF TextTwo; ///< optional text\r
+ STRING_REF TextTwo; ///< Optional text.\r
} EFI_IFR_INVENTORY;\r
\r
typedef struct {\r
FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
- EFI_GUID Guid; ///< GUID for the variable\r
- UINT16 VarId; ///< variable store ID, as referenced elsewhere in the form\r
- UINT16 Size; ///< size of the variable storage\r
+ EFI_GUID Guid; ///< GUID for the variable.\r
+ UINT16 VarId; ///< The variable store ID, as referenced elsewhere in the form.\r
+ UINT16 Size; ///< The size of the variable storage.\r
} FRAMEWORK_EFI_IFR_VARSTORE;\r
\r
typedef struct {\r
FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
- UINT16 VarId; ///< variable store ID, as referenced elsewhere in the form\r
+ UINT16 VarId; ///< The variable store ID, as referenced elsewhere in the form.\r
} EFI_IFR_VARSTORE_SELECT;\r
\r
///\r
///\r
typedef struct {\r
FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
- UINT16 VarId; ///< variable store ID, as referenced elsewhere in the form\r
- UINT16 SecondaryVarId; ///< variable store ID, as referenced elsewhere in the form\r
+ UINT16 VarId; ///< The variable store ID, as referenced elsewhere in the form.\r
+ UINT16 SecondaryVarId; ///< The variable store ID, as referenced elsewhere in the form.\r
} EFI_IFR_VARSTORE_SELECT_PAIR;\r
\r
///\r
-/// Save defaults and restore defaults have same structure\r
+/// Save defaults and restore defaults have same structure.\r
///\r
#define EFI_IFR_RESTORE_DEFAULTS EFI_IFR_SAVE_DEFAULTS\r
\r
typedef struct {\r
FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
- STRING_REF Title; ///< The string token for the banner title\r
- UINT16 LineNumber; ///< 1-based line number\r
- UINT8 Alignment; ///< left, center, or right-aligned\r
+ STRING_REF Title; ///< The string token for the banner title.\r
+ UINT16 LineNumber; ///< 1-based line number.\r
+ UINT8 Alignment; ///< Left, center, or right-aligned.\r
} EFI_IFR_BANNER;\r
\r
#define EFI_IFR_BANNER_ALIGN_LEFT 0\r