12#ifndef HII_UTILITY_LIB_
13#define HII_UTILITY_LIB_
21#define EFI_HII_EXPRESSION_INCONSISTENT_IF 0
22#define EFI_HII_EXPRESSION_NO_SUBMIT_IF 1
23#define EFI_HII_EXPRESSION_GRAY_OUT_IF 2
24#define EFI_HII_EXPRESSION_SUPPRESS_IF 3
25#define EFI_HII_EXPRESSION_DISABLE_IF 4
26#define EFI_HII_EXPRESSION_VALUE 5
27#define EFI_HII_EXPRESSION_RULE 6
28#define EFI_HII_EXPRESSION_READ 7
29#define EFI_HII_EXPRESSION_WRITE 8
30#define EFI_HII_EXPRESSION_WARNING_IF 9
32#define EFI_HII_VARSTORE_BUFFER 0
33#define EFI_HII_VARSTORE_NAME_VALUE 1
34#define EFI_HII_VARSTORE_EFI_VARIABLE 2
35#define EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER 3
47#define HII_NAME_VALUE_NODE_SIGNATURE SIGNATURE_32 ('N', 'V', 'S', 'T')
48#define HII_NAME_VALUE_NODE_FROM_LINK(a) CR (a, HII_NAME_VALUE_NODE, Link, HII_NAME_VALUE_NODE_SIGNATURE)
54 EFI_STRING_ID VarName;
98#define HII_STORAGE_SIGNATURE SIGNATURE_32 ('B', 'S', 'T', 'G')
99#define HII_STORAGE_FROM_LINK(a) CR (a, HII_FORMSET_STORAGE, Link, HII_STORAGE_SIGNATURE)
137 EFI_QUESTION_ID QuestionId1;
138 EFI_QUESTION_ID QuestionId2;
142 EFI_QUESTION_ID QuestionId;
148 EFI_QUESTION_ID QuestionId;
201 EFI_QUESTION_ID QuestionId;
210 EFI_QUESTION_ID QuestionId1;
211 EFI_QUESTION_ID QuestionId2;
219 EFI_QUESTION_ID QuestionId;
229 EFI_QUESTION_ID QuestionId;
253 EFI_QUESTION_ID QuestionId;
313 EFI_STRING_ID DevicePath;
717#define HII_EXPRESSION_OPCODE_SIGNATURE SIGNATURE_32 ('E', 'X', 'O', 'P')
718#define HII_EXPRESSION_OPCODE_FROM_LINK(a) CR (a, HII_EXPRESSION_OPCODE, Link, HII_EXPRESSION_OPCODE_SIGNATURE)
724 EFI_STRING_ID WarningIfError;
751#define HII_EXPRESSION_SIGNATURE SIGNATURE_32 ('F', 'E', 'X', 'P')
752#define HII_EXPRESSION_FROM_LINK(a) CR (a, HII_EXPRESSION, Link, HII_EXPRESSION_SIGNATURE)
763#define HII_EXPRESSION_LIST_SIGNATURE SIGNATURE_32 ('F', 'E', 'X', 'R')
795#define HII_QUESTION_DEFAULT_SIGNATURE SIGNATURE_32 ('Q', 'D', 'F', 'T')
796#define HII_QUESTION_DEFAULT_FROM_LINK(a) CR (a, HII_QUESTION_DEFAULT, Link, HII_QUESTION_DEFAULT_SIGNATURE)
798#define HII_QUESTION_OPTION_SIGNATURE SIGNATURE_32 ('Q', 'O', 'P', 'T')
812 EFI_IMAGE_ID ImageId;
817#define HII_QUESTION_OPTION_FROM_LINK(a) CR (a, HII_QUESTION_OPTION, Link, HII_QUESTION_OPTION_SIGNATURE)
827 EFI_STRING_ID DefaultName;
830#define HII_FORMSET_DEFAULTSTORE_SIGNATURE SIGNATURE_32 ('F', 'D', 'F', 'S')
831#define HII_FORMSET_DEFAULTSTORE_FROM_LINK(a) CR (a, HII_FORMSET_DEFAULTSTORE, Link, HII_FORMSET_DEFAULTSTORE_SIGNATURE)
838 EFI_STRING_ID TextTwo;
839 EFI_DEFAULT_ID DefaultId;
840 EFI_STRING_ID QuestionConfig;
929#define HII_STATEMENT_SIGNATURE SIGNATURE_32 ('H', 'S', 'T', 'A')
930#define HII_STATEMENT_FROM_LINK(a) CR (a, HII_STATEMENT, Link, HII_STATEMENT_SIGNATURE)
935#define STANDARD_MAP_FORM_TYPE 0x01
957#define HII_FORM_SIGNATURE SIGNATURE_32 ('F', 'F', 'R', 'M')
958#define HII_FORM_FROM_LINK(a) CR (a, HII_FORM, Link, HII_FORM_SIGNATURE)
990#define HII_FORMSET_SIGNATURE SIGNATURE_32 ('H', 'I', 'F', 'S')
991#define HII_FORMSET_FROM_LINK(a) CR (a, HII_FORMSET, Link, HII_FORMSET_SIGNATURE)
1178 IN UINT16 DefaultId,
1199 IN BOOLEAN Evaluate,
EFI_STATUS EvaluateHiiExpression(IN HII_FORMSET *FormSet, IN HII_FORM *Form, IN OUT HII_EXPRESSION *Expression)
VOID DestroyFormSet(IN OUT HII_FORMSET *FormSet)
EFI_STATUS SetQuestionValue(IN HII_FORMSET *FormSet, IN HII_FORM *Form, IN OUT HII_STATEMENT *Question, IN HII_STATEMENT_VALUE *QuestionValue)
EFI_STATUS GetHiiExpressionDependency(IN HII_EXPRESSION *Expression)
EFI_STATUS CreateFormSetFromHiiHandle(IN EFI_HII_HANDLE Handle, IN OUT EFI_GUID *FormSetGuid, OUT HII_FORMSET *FormSet)
HII_STATEMENT_VALUE * RetrieveQuestion(IN HII_FORMSET *FormSet, IN HII_FORM *Form, IN OUT HII_STATEMENT *Question)
EFI_STATUS GetQuestionValue(IN HII_FORMSET *FormSet, IN HII_FORM *Form, IN OUT HII_STATEMENT *Question, IN GET_SET_QUESTION_VALUE_WITH GetValueFrom)
VOID InitializeFormSet(IN OUT HII_FORMSET *FormSet)
EXPRESS_RESULT EvaluateExpressionList(IN HII_EXPRESSION_LIST *ExpList, IN BOOLEAN Evaluate, IN HII_FORMSET *FormSet OPTIONAL, IN HII_FORM *Form OPTIONAL)
EFI_STATUS GetQuestionDefault(IN HII_FORMSET *FormSet, IN HII_FORM *Form, IN HII_STATEMENT *Question, IN UINT16 DefaultId, OUT HII_STATEMENT_VALUE *DefaultValue)
GET_SET_QUESTION_VALUE_WITH
@ GetSetValueWithMax
Invalid value.
@ GetSetValueWithBuffer
Get/Set question value from/to buffer in the storage.
@ GetSetValueWithHiiDriver
Get/Set question value from/to hii driver.
@ GetSetValueWithBoth
Compare the editbuffer with buffer for this question, not use the question value.
EFI_STATUS SubmitForm(IN HII_FORMSET *FormSet, IN HII_FORM *Form)
GET_SET_QUESTION_VALUE_WITH
UINT8 RefreshInterval
nested EFI_IFR_REFRESH, refresh interval(in seconds) for Question value, 0 means no refresh
CHAR16 * BlockName
Buffer storage block name: "OFFSET=...WIDTH=...".
HII_VAR_STORE_INFO VarStoreInfo
UINT8 QuestionFlags
The flag of this Question.(Readonly, reset required, callback attribute....)
HII_EXPRESSION * ReadExpression
nested EFI_IFR_READ, provide this question value by read expression.
LIST_ENTRY InconsistentListHead
nested inconsistent expression list (HII_EXPRESSION)
HII_FORMSET_STORAGE * Storage
Point to the storage that store this question.
HII_EXPRESSION_LIST * ExpressionList
nesting inside of GrayedOutIf/DisableIf/SuppressIf
EFI_QUESTION_ID QuestionId
Question id, the value of zero is reserved.
UINT8 Operand
The operand (first byte) of this Statement or Question.
BOOLEAN Locked
Whether this statement is locked.
UINT16 BitStorageWidth
The Storage width of this Question in bit level.
UINT16 BitVarOffset
The storage offset of this Question in bit level.
LIST_ENTRY WarningListHead
nested warning expression list (HII_EXPRESSION)
BOOLEAN QuestionReferToBitField
Whether the question is stored in a bit field.
HII_EXPRESSION * ValueExpression
nested EFI_IFR_VALUE, provide Question value and indicate Question is ReadOnly
EFI_VARSTORE_ID VarStoreId
VarStore id, a value of zero indicates no variable storage.
CHAR16 * VariableName
Name/Value or EFI Variable name.
HII_EXPRESSION * WriteExpression
nested EFI_IFR_WRITE, evaluate write expression after this question value is set.
LIST_ENTRY DefaultListHead
nested EFI_IFR_DEFAULT list (HII_QUESTION_DEFAULT), provide default values
LIST_ENTRY OptionListHead
nested EFI_IFR_ONE_OF_OPTION list (HII_QUESTION_OPTION)
HII_STATEMENT * ParentStatement
Parent Statement of current statement.
EFI_IMAGE_ID ImageId
nested EFI_IFR_IMAGE
UINT16 StorageWidth
The storage width of this Question.
LIST_ENTRY NoSubmitListHead
nested nosubmit expression list (HII_EXPRESSION)
HII_DEPENDENCY_EXPRESSION * LeftHandExp
left value
HII_DEPENDENCY_EXPRESSION * RightHandExp
right value
HII_DEPENDENCY_EXPRESSION * CondFalseValExp
middle value
HII_DEPENDENCY_EXPRESSION * ConditionExp
left value
HII_DEPENDENCY_EXPRESSION * CondTrueValExp
right value
HII_DEPENDENCY_EXPRESSION * RightHandExp
right value
HII_DEPENDENCY_EXPRESSION * LeftHandExp
left value
HII_DEPENDENCY_EXPRESSION * IndexExp
right value
HII_DEPENDENCY_EXPRESSION * StringToSearchExp
left value
HII_DEPENDENCY_EXPRESSION * StringToCompWithExp
middle value
HII_DEPENDENCY_EXPRESSION * IndexExp
middle value
HII_DEPENDENCY_EXPRESSION * LengthExp
right value
HII_DEPENDENCY_EXPRESSION * StringOrBufferExp
left value
HII_DEPENDENCY_EXPRESSION * RightHandExp
right value
HII_DEPENDENCY_EXPRESSION * LeftHandExp
left value
HII_DEPENDENCY_EXPRESSION * IndexExp
right value
HII_DEPENDENCY_EXPRESSION * StringToSearchExp
left value
HII_DEPENDENCY_EXPRESSION * CharsetExp
middle value
HII_DEPENDENCY_EXPRESSION * RightHandExp
right value
HII_DEPENDENCY_EXPRESSION * LeftHandExp
left value
HII_DEPENDENCY_EXPRESSION * IndexExp
right value
HII_DEPENDENCY_EXPRESSION * StringToSearchExp
left value
HII_DEPENDENCY_EXPRESSION * DelimiterExp
middle value
LIST_ENTRY MapExpressionList
nested expressions inside of Map opcode.
EFI_IFR_OP_HEADER * OpCode
Save the opcode buffer.
LIST_ENTRY OpCodeListHead
OpCodes consist of this expression (HII_EXPRESSION_OPCODE)
EFI_HII_VALUE Result
Expression evaluation result.
HII_DEPENDENCY_EXPRESSION * RootDependencyExp
Expression OpCodes tree layout to describe dependency of this expression.
UINT8 Type
Type for this expression.
LIST_ENTRY StatementListHead
List of Statements and Questions (HII_STATEMENT)
EFI_STRING_ID FormTitle
FormTile of normal form, or FormMapMethod title of formmap form.
HII_EXPRESSION_LIST * SuppressExpression
nesting inside of SuppressIf
EFI_IMAGE_ID ImageId
The image id.
UINT16 FormId
FormId of normal form or formmap form.
BOOLEAN ModalForm
Whether this is a modal form.
EFI_GUID RefreshGuid
Form refresh event guid.
LIST_ENTRY ConfigRequestHead
List of configrequest for all storage.
LIST_ENTRY RuleListHead
nested EFI_IFR_RULE list, pre-defined expressions attached to the form.
UINT16 FormType
Specific form type for the different form.
BOOLEAN Locked
Whether this form is locked.
UINT16 VarStoreId
VarStore ID.
UINT8 * Buffer
Buffer storage.
UINT8 * EditBuffer
Edit copy for Buffer Storage.
LIST_ENTRY NameValueList
List of NAME_VALUE_NODE.
UINTN ElementCount
Number of <RequestElement> in the <ConfigRequest>
UINTN SpareStrLen
Spare length of ConfigRequest string buffer.
CHAR16 * ConfigRequest
<ConfigRequest> = <ConfigHdr> + <RequestElement>
CHAR16 * ConfigHdr
<ConfigHdr>
UINT8 * IfrBinaryData
Point to the Ifr binary data.
EFI_HII_HANDLE HiiHandle
Unique id for formset, HII Handle of this FormSet package.
EFI_HANDLE DriverHandle
EFI_HANDLE which was registered with the package list in NewPackageList().
UINT8 NumberOfClassGuid
Class Guid name.
LIST_ENTRY StorageListHead
Storage list (HII_FORMSET_STORAGE)
LIST_ENTRY DefaultStoreListHead
DefaultStore list (HII_FORMSET_DEFAULTSTORE)
LIST_ENTRY StatementListOSF
Statement list out side of the form.
EFI_STRING_ID FormSetTitle
String Id of Formset title.
LIST_ENTRY FormListHead
Form list (HII_FORM_BROWSER_FORM)
EFI_GUID Guid
Formset Guid.
EFI_HII_CONFIG_ACCESS_PROTOCOL * ConfigAccess
ConfigAccess Protocol associated with this HiiPackageList.
EFI_IMAGE_ID ImageId
The image id.
UINTN IfrBinaryLength
Ifr binary data length of this formset.
EFI_STRING_ID Help
String Id of Formset title.
HII_EXPRESSION * ValueExpression
Not-NULL indicates default value is provided by EFI_IFR_VALUE.
HII_STATEMENT_VALUE Value
Default value.
EFI_IFR_ONE_OF_OPTION * OpCode
OneOfOption Data.
HII_EXPRESSION_LIST * SuppressExpression
Non-NULL indicates nested inside of SuppressIf.
UINT8 BufferValueType
Data type for buffer internal data, currently only for orderedlist.
HII_DEPENDENCY_DUP DupExp
HII_DEPENDENCY_CONDITIONAL ConditionalExp
HII_DEPENDENCY_CATENATE CatenateExp
HII_DEPENDENCY_LENGTH LengthExp
HII_EXPRESSION_CONSTANT ConstantExp
EFI_HII_VALUE Value
EFI_IFR_UINT64, EFI_IFR_UINT32, EFI_IFR_UINT16, EFI_IFR_UINT8, EFI_IFR_STRING_REF1.
EFI_GUID Guid
For EFI_IFR_SECURITY, EFI_IFR_MATCH2.
UINT8 RuleId
For EFI_IFR_RULE_REF.
UINT8 Flags
For EFI_IFR_SPAN.
EFI_STRING_ID DevicePath
For EFI_IFR_QUESTION_REF3_3.
EFI_QUESTION_ID QuestionId
For EFI_IFR_EQ_ID_VAL_LIST.
UINT8 Format
For EFI_IFR_TO_STRING, EFI_IFR_FIND.
UINT8 RuleId
For EFI_IFR_RULE only.
EFI_STRING_ID Error
For EFI_IFR_NO_SUBMIT_IF, EFI_IFR_INCONSISTENT_IF only.
UINT64 Maximum
for EFI_IFR_STRING/EFI_IFR_PASSWORD, it's Min/Max length
UINT8 MaxContainers
for EFI_IFR_ORDERED_LIST
UINT64 Minimum
for EFI_IFR_ONE_OF/EFI_IFR_NUMERIC, it's Min/Max value