#define WIDE_CHAR 0xFFF1\r
#define NON_BREAKING_CHAR 0xFFF2\r
\r
-//\r
-// State defined for password statemachine \r
-//\r
+///\r
+/// State defined for password statemachine \r
+///\r
#define BROWSER_STATE_VALIDATE_PASSWORD 0\r
#define BROWSER_STATE_SET_PASSWORD 1\r
\r
\r
-//\r
-// Tiano Implementation specific Device Path definition.\r
-//\r
+///\r
+/// HII specific Vendor Device Path Node definition.\r
+///\r
+#pragma pack(1)\r
typedef struct {\r
VENDOR_DEVICE_PATH VendorDevicePath;\r
- UINT32 MonotonicCount;\r
+ UINT32 Reserved;\r
+ UINT64 UniqueId;\r
} HII_VENDOR_DEVICE_PATH_NODE;\r
+#pragma pack()\r
\r
+///\r
+/// HII specific Vendor Device Path definition.\r
+///\r
typedef struct {\r
HII_VENDOR_DEVICE_PATH_NODE Node;\r
EFI_DEVICE_PATH_PROTOCOL End;\r
} HII_VENDOR_DEVICE_PATH;\r
\r
-\r
-//\r
-// GUIDed opcodes defined for Tiano\r
-//\r
+///\r
+/// GUIDed opcodes defined for EDKII implementation\r
+///\r
#define EFI_IFR_TIANO_GUID \\r
{ 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce} }\r
\r
-\r
#pragma pack(1)\r
\r
+///\r
+/// EDKII implementation extension opcodes, new extension can be added here later.\r
+///\r
#define EFI_IFR_EXTEND_OP_LABEL 0x0\r
#define EFI_IFR_EXTEND_OP_BANNER 0x1\r
#define EFI_IFR_EXTEND_OP_TIMEOUT 0x2\r
#define EFI_IFR_EXTEND_OP_CLASS 0x3\r
#define EFI_IFR_EXTEND_OP_SUBCLASS 0x4\r
\r
+///\r
+/// Label opcode\r
+///\r
typedef struct _EFI_IFR_GUID_LABEL {\r
EFI_IFR_OP_HEADER Header;\r
+ ///\r
+ /// EFI_IFR_TIANO_GUID\r
+ ///\r
EFI_GUID Guid;\r
+ ///\r
+ /// EFI_IFR_EXTEND_OP_LABEL\r
+ ///\r
UINT8 ExtendOpCode;\r
+ ///\r
+ /// Label Number\r
+ ///\r
UINT16 Number;\r
} EFI_IFR_GUID_LABEL;\r
\r
#define EFI_IFR_BANNER_ALIGN_CENTER 1\r
#define EFI_IFR_BANNER_ALIGN_RIGHT 2\r
\r
+///\r
+/// Banner opcode\r
+///\r
typedef struct _EFI_IFR_GUID_BANNER {\r
EFI_IFR_OP_HEADER Header;\r
+ ///\r
+ /// EFI_IFR_TIANO_GUID\r
+ ///\r
EFI_GUID Guid;\r
- UINT8 ExtendOpCode; // Extended opcode is EFI_IFR_EXTEND_OP_BANNER\r
- EFI_STRING_ID Title; // The string token for the banner title\r
- UINT16 LineNumber; // 1-based line number\r
- UINT8 Alignment; // left, center, or right-aligned\r
+ ///\r
+ /// EFI_IFR_EXTEND_OP_BANNER\r
+ ///\r
+ UINT8 ExtendOpCode;\r
+ EFI_STRING_ID 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_GUID_BANNER;\r
\r
+///\r
+/// Timeout opcode\r
+///\r
typedef struct _EFI_IFR_GUID_TIMEOUT {\r
EFI_IFR_OP_HEADER Header;\r
+ ///\r
+ /// EFI_IFR_TIANO_GUID\r
+ ///\r
EFI_GUID Guid;\r
+ ///\r
+ /// EFI_IFR_EXTEND_OP_TIMEOUT\r
+ ///\r
UINT8 ExtendOpCode;\r
- UINT16 TimeOut;\r
+ UINT16 TimeOut; /// TimeOut Value\r
} EFI_IFR_GUID_TIMEOUT;\r
\r
#define EFI_NON_DEVICE_CLASS 0x00\r
#define EFI_ON_BOARD_DEVICE_CLASS 0x10\r
#define EFI_OTHER_DEVICE_CLASS 0x20\r
\r
+///\r
+/// Device Class opcode\r
+///\r
typedef struct _EFI_IFR_GUID_CLASS {\r
EFI_IFR_OP_HEADER Header;\r
+ ///\r
+ /// EFI_IFR_TIANO_GUID\r
+ ///\r
EFI_GUID Guid;\r
+ ///\r
+ /// EFI_IFR_EXTEND_OP_CLASS\r
+ ///\r
UINT8 ExtendOpCode;\r
- UINT16 Class;\r
+ UINT16 Class; /// Device Class from the above\r
} EFI_IFR_GUID_CLASS;\r
\r
#define EFI_SETUP_APPLICATION_SUBCLASS 0x00\r
#define EFI_FRONT_PAGE_SUBCLASS 0x02\r
#define EFI_SINGLE_USE_SUBCLASS 0x03\r
\r
+///\r
+/// SubClass opcode\r
+///\r
typedef struct _EFI_IFR_GUID_SUBCLASS {\r
EFI_IFR_OP_HEADER Header;\r
+ ///\r
+ /// EFI_IFR_TIANO_GUID\r
+ ///\r
EFI_GUID Guid;\r
+ ///\r
+ /// EFI_IFR_EXTEND_OP_SUBCLASS\r
+ ///\r
UINT8 ExtendOpCode;\r
- UINT16 SubClass;\r
+ UINT16 SubClass; ///Sub Class type from the above\r
} EFI_IFR_GUID_SUBCLASS;\r
\r
+///\r
+/// GUIDed opcodes support for framework vfr.\r
+///\r
+#define EFI_IFR_FRAMEWORK_GUID \\r
+ { 0x31ca5d1a, 0xd511, 0x4931, { 0xb7, 0x82, 0xae, 0x6b, 0x2b, 0x17, 0x8c, 0xd7 } }\r
+\r
+///\r
+/// Two extended opcode are added, new extension can be added here later.\r
+/// One is for framework OneOf question Option Key value,\r
+/// Another is for framework vareqval.\r
+///\r
+#define EFI_IFR_EXTEND_OP_OPTIONKEY 0x0\r
+#define EFI_IFR_EXTEND_OP_VAREQNAME 0x1\r
+\r
+///\r
+/// Store the framework vfr option key value\r
+///\r
+typedef struct _EFI_IFR_GUID_OPTIONKEY {\r
+ EFI_IFR_OP_HEADER Header;\r
+ ///\r
+ /// EFI_IFR_FRAMEWORK_GUID\r
+ ///\r
+ EFI_GUID Guid;\r
+ ///\r
+ /// EFI_IFR_EXTEND_OP_OPTIONKEY\r
+ ///\r
+ UINT8 ExtendOpCode;\r
+ ///\r
+ /// OneOf Questiond ID binded by OneOf Option\r
+ ///\r
+ EFI_QUESTION_ID QuestionId;\r
+ ///\r
+ /// The OneOf Option Value.\r
+ ///\r
+ EFI_IFR_TYPE_VALUE OptionValue;\r
+ ///\r
+ /// The Framework OneOf Option Key Value.\r
+ ///\r
+ UINT16 KeyValue;\r
+} EFI_IFR_GUID_OPTIONKEY;\r
+\r
+///\r
+/// Store the framework vfr vareqval name number\r
+///\r
+typedef struct _EFI_IFR_GUID_VAREQNAME {\r
+ EFI_IFR_OP_HEADER Header;\r
+ ///\r
+ /// EFI_IFR_FRAMEWORK_GUID\r
+ ///\r
+ EFI_GUID Guid;\r
+ ///\r
+ /// EFI_IFR_EXTEND_OP_VAREQNAME\r
+ ///\r
+ UINT8 ExtendOpCode;\r
+ ///\r
+ /// Question ID of the Numeric Opcode created.\r
+ ///\r
+ EFI_QUESTION_ID QuestionId;\r
+ ///\r
+ /// For vareqval (0x100), NameId is 0x100.\r
+ /// This value will converte to a Unicode String following this rule.\r
+ /// sprintf(StringBuffer, "%d", NameId)\r
+ /// The the Unicode String will be used as a EFI Variable Name.\r
+ ///\r
+ UINT16 NameId;\r
+} EFI_IFR_GUID_VAREQNAME;\r
+\r
#pragma pack()\r
\r
#endif\r