TianoCore EDK2 master
Loading...
Searching...
No Matches
HiiUtilityLib.h
Go to the documentation of this file.
1
12#ifndef HII_UTILITY_LIB_
13#define HII_UTILITY_LIB_
14
17
18//
19// IFR relative definition
20//
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
31
32#define EFI_HII_VARSTORE_BUFFER 0
33#define EFI_HII_VARSTORE_NAME_VALUE 1
34#define EFI_HII_VARSTORE_EFI_VARIABLE 2 // EFI Varstore type follow UEFI spec before 2.3.1.
35#define EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER 3 // EFI varstore type follow UEFI spec 2.3.1 and later.
36
40typedef struct {
41 UINTN Signature;
42 LIST_ENTRY Link;
43 CHAR16 *Name;
44 CHAR16 *Value;
46
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)
49
53typedef union {
54 EFI_STRING_ID VarName;
55 UINT16 VarOffset;
57
61typedef struct {
62 UINTN Signature;
63 LIST_ENTRY Link;
64
65 UINT8 Type;
66 EFI_HII_HANDLE HiiHandle;
67
71 UINT16 VarStoreId;
72 EFI_GUID Guid;
73
77 CHAR16 *Name;
78 UINT16 Size;
79 UINT8 *Buffer;
80 UINT8 *EditBuffer;
81
85 UINT32 Attributes;
86
91
92 CHAR16 *ConfigHdr;
93 CHAR16 *ConfigRequest;
97
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)
100
104typedef enum {
105 ExpressFalse = 0,
106 ExpressGrayOut,
107 ExpressSuppress,
108 ExpressDisable
110
114typedef enum {
115 ExpressNone = 0,
116 ExpressForm,
117 ExpressStatement,
118 ExpressOption
120
124typedef union {
126 UINT8 Format;
127 UINT8 Flags;
128 UINT8 RuleId;
130
131 struct {
132 EFI_QUESTION_ID QuestionId;
133 EFI_HII_VALUE Value;
134 } EqIdValData;
135
136 struct {
137 EFI_QUESTION_ID QuestionId1;
138 EFI_QUESTION_ID QuestionId2;
139 } EqIdIdData;
140
141 struct {
142 EFI_QUESTION_ID QuestionId;
143 UINT16 ListLength;
144 UINT16 *ValueList;
145 } EqIdListData;
146
147 struct {
148 EFI_QUESTION_ID QuestionId;
149 } QuestionRef1Data;
150
151 struct {
152 EFI_STRING_ID DevicePath;
153 EFI_GUID Guid;
154 } QuestionRef3Data;
155
156 struct {
157 HII_FORMSET_STORAGE *VarStorage;
158 HII_VAR_STORE_INFO VarStoreInfo;
159 UINT8 ValueType;
160 UINT8 ValueWidth;
161 CHAR16 *ValueName;
162 } GetSetData;
164
166
184typedef struct {
185 UINT8 Operand;
186 EFI_HII_VALUE Value;
188
192typedef struct {
193 UINT8 Operand;
195
199typedef struct {
200 UINT8 Operand;
201 EFI_QUESTION_ID QuestionId;
202 EFI_HII_VALUE Value;
204
208typedef struct {
209 UINT8 Operand;
210 EFI_QUESTION_ID QuestionId1;
211 EFI_QUESTION_ID QuestionId2;
213
217typedef struct {
218 UINT8 Operand;
219 EFI_QUESTION_ID QuestionId;
220 UINT16 ListLength;
221 UINT16 *ValueList;
223
227typedef struct {
228 UINT8 Operand;
229 EFI_QUESTION_ID QuestionId;
231
235typedef struct {
236 UINT8 Operand;
237 UINT8 RuleId;
239
243typedef struct {
244 UINT8 Operand;
245 EFI_HII_VALUE Value;
247
251typedef struct {
252 UINT8 Operand;
253 EFI_QUESTION_ID QuestionId;
255
259typedef struct {
260 UINT8 Operand;
261 EFI_GUID Permissions;
263
267typedef struct {
268 UINT8 Operand;
269 HII_FORMSET_STORAGE *VarStorage;
270 HII_VAR_STORE_INFO VarStoreInfo;
271 UINT8 ValueType;
272 UINT8 ValueWidth;
273 CHAR16 *ValueName;
275
279typedef struct {
280 UINT8 Operand;
281 HII_DEPENDENCY_EXPRESSION *SubExpression;
283
287typedef struct {
288 UINT8 Operand;
289 HII_DEPENDENCY_EXPRESSION *SubExpression;
291
295typedef struct {
296 UINT8 Operand;
297 HII_DEPENDENCY_EXPRESSION *SubExpression;
299
303typedef struct {
304 UINT8 Operand;
305 HII_DEPENDENCY_EXPRESSION *SubExpression;
307
311typedef struct {
312 UINT8 Operand;
313 EFI_STRING_ID DevicePath;
314 EFI_GUID Guid;
315 HII_DEPENDENCY_EXPRESSION *SubExpression;
317
321typedef struct {
322 UINT8 Operand;
323 HII_DEPENDENCY_EXPRESSION *SubExpression;
325
329typedef struct {
330 UINT8 Operand;
331 UINT8 Format;
332 HII_DEPENDENCY_EXPRESSION *SubExpression;
334
338typedef struct {
339 UINT8 Operand;
340 HII_DEPENDENCY_EXPRESSION *SubExpression;
342
346typedef struct {
347 UINT8 Operand;
348 HII_DEPENDENCY_EXPRESSION *SubExpression;
350
354typedef struct {
355 UINT8 Operand;
356 HII_DEPENDENCY_EXPRESSION *SubExpression;
358
362typedef struct {
363 UINT8 Operand;
364 HII_FORMSET_STORAGE *VarStorage;
365 HII_VAR_STORE_INFO VarStoreInfo;
366 UINT8 ValueType;
367 UINT8 ValueWidth;
368 CHAR16 *ValueName;
369 HII_DEPENDENCY_EXPRESSION *SubExpression;
371
375typedef struct {
376 UINT8 Operand;
377 HII_DEPENDENCY_EXPRESSION *SubExpression;
379
383typedef struct {
384 UINT8 Operand;
385 HII_DEPENDENCY_EXPRESSION *LeftStringExp;
386 HII_DEPENDENCY_EXPRESSION *RightStringExp;
388
392typedef struct {
393 UINT8 Operand;
394 HII_DEPENDENCY_EXPRESSION *StringExp;
395 HII_DEPENDENCY_EXPRESSION *PatternExp;
397
401typedef struct {
402 UINT8 Operand;
403 EFI_GUID SyntaxType;
404 HII_DEPENDENCY_EXPRESSION *StringExp;
405 HII_DEPENDENCY_EXPRESSION *PatternExp;
407
411typedef struct {
412 UINT8 Operand;
413 HII_DEPENDENCY_EXPRESSION *RightHandExp;
414 HII_DEPENDENCY_EXPRESSION *LeftHandExp;
416
420typedef struct {
421 UINT8 Operand;
425
429typedef struct {
430 UINT8 Operand;
434
438typedef struct {
439 UINT8 Operand;
443
447typedef struct {
448 UINT8 Operand;
452
456typedef struct {
457 UINT8 Operand;
458 HII_DEPENDENCY_EXPRESSION *RightHandExp;
459 HII_DEPENDENCY_EXPRESSION *LeftHandExp;
461
465typedef struct {
466 UINT8 Operand;
467 HII_DEPENDENCY_EXPRESSION *RightHandExp;
468 HII_DEPENDENCY_EXPRESSION *LeftHandExp;
470
474typedef struct {
475 UINT8 Operand;
476 HII_DEPENDENCY_EXPRESSION *RightHandExp;
477 HII_DEPENDENCY_EXPRESSION *LeftHandExp;
479
483typedef struct {
484 UINT8 Operand;
485 HII_DEPENDENCY_EXPRESSION *RightHandExp;
486 HII_DEPENDENCY_EXPRESSION *LeftHandExp;
488
492typedef struct {
493 UINT8 Operand;
494 HII_DEPENDENCY_EXPRESSION *RightHandExp;
495 HII_DEPENDENCY_EXPRESSION *LeftHandExp;
497
501typedef struct {
502 UINT8 Operand;
503 HII_DEPENDENCY_EXPRESSION *RightHandExp;
504 HII_DEPENDENCY_EXPRESSION *LeftHandExp;
506
510typedef struct {
511 UINT8 Operand;
512 HII_DEPENDENCY_EXPRESSION *SubExpression1;
513 HII_DEPENDENCY_EXPRESSION *SubExpression2;
515
519typedef struct {
520 UINT8 Operand;
521 HII_DEPENDENCY_EXPRESSION *SubExpression1;
522 HII_DEPENDENCY_EXPRESSION *SubExpression2;
524
528typedef struct {
529 UINT8 Operand;
530 HII_DEPENDENCY_EXPRESSION *SubExpression1;
531 HII_DEPENDENCY_EXPRESSION *SubExpression2;
533
537typedef struct {
538 UINT8 Operand;
539 HII_DEPENDENCY_EXPRESSION *SubExpression1;
540 HII_DEPENDENCY_EXPRESSION *SubExpression2;
542
546typedef struct {
547 UINT8 Operand;
548 HII_DEPENDENCY_EXPRESSION *SubExpression1;
549 HII_DEPENDENCY_EXPRESSION *SubExpression2;
551
555typedef struct {
556 UINT8 Operand;
557 HII_DEPENDENCY_EXPRESSION *SubExpression1;
558 HII_DEPENDENCY_EXPRESSION *SubExpression2;
560
566typedef struct {
567 UINT8 Operand;
572
576typedef struct {
577 UINT8 Operand;
578 UINT8 Format;
583
587typedef struct {
588 UINT8 Operand;
593
597typedef struct {
598 UINT8 Operand;
603
607typedef struct {
608 UINT8 Operand;
609 UINT8 Flags;
614
618typedef struct {
620 HII_DEPENDENCY_EXPRESSION *ReturnExp;
622
626typedef struct {
627 UINT8 Operand;
630 UINT8 ExpPairNo;
632
645 HII_DEPENDENCY_EQ_ID_VAL EqIdValExp;
646 HII_DEPENDENCY_EQ_ID_ID EqIdIdExp;
648 HII_DEPENDENCY_QUESTION_REF1 QuestionRef1Exp;
649 HII_DEPENDENCY_RULE_REF RuleRefExp;
650 HII_DEPENDENCY_STRING_REF1 StringRef1Exp;
651 HII_DEPENDENCY_THIS ThisExp;
652 HII_DEPENDENCY_SECURITY SecurityExp;
653 HII_DEPENDENCY_GET GetExp;
654
659 HII_DEPENDENCY_BITWISE_NOT BitWiseNotExp;
660 HII_DEPENDENCY_STRING_REF2 StringRef2Exp;
661 HII_DEPENDENCY_QUESTION_REF2 QuestionRef2Exp;
662 HII_DEPENDENCY_QUESTION_REF3 QuestionRef3Exp;
663 HII_DEPENDENCY_TO_BOOLEAN ToBooleanExp;
664 HII_DEPENDENCY_TO_STRING ToStringExp;
665 HII_DEPENDENCY_TO_UINT ToUintExp;
666 HII_DEPENDENCY_TO_UPPER ToUpperExp;
667 HII_DEPENDENCY_TO_LOWER ToLowerExp;
668 HII_DEPENDENCY_SET SetExp;
669 HII_DEPENDENCY_NOT NotExp;
670
675 HII_DEPENDENCY_MATCH MatchExp;
676 HII_DEPENDENCY_MATCH2 Match2Exp;
677 HII_DEPENDENCY_MULT MultExp;
678 HII_DEPENDENCY_DIV DivExp;
679 HII_DEPENDENCY_MOD ModExp;
680 HII_DEPENDENCY_ADD AddExp;
681 HII_DEPENDENCY_SUBTRACT SubtractExp;
682 HII_DEPENDENCY_SHIFT_LEFT ShiftLeftExp;
683 HII_DEPENDENCY_SHIFT_RIGHT ShiftRightExp;
684 HII_DEPENDENCY_GREATER_THAN GreaterThanExp;
685 HII_DEPENDENCY_GREATER_EQUAL GreaterEqualExp;
686 HII_DEPENDENCY_LESS_THAN LessThanExp;
687 HII_DEPENDENCY_LESS_EQUAL LessEqualExp;
688 HII_DEPENDENCY_EQUAL EqualExp;
689 HII_DEPENDENCY_NOT_EQUAL NotEqualExp;
690 HII_DEPENDENCY_BITWISE_AND BitwiseAndExp;
691 HII_DEPENDENCY_BITWISE_OR BitwiseOrExp;
692 HII_DEPENDENCY_AND AndExp;
693 HII_DEPENDENCY_OR OrExp;
694
699 HII_DEPENDENCY_FIND FindExp;
700 HII_DEPENDENCY_MID MidExp;
701 HII_DEPENDENCY_TOKEN TokenExp;
702 HII_DEPENDENCY_SPAN SpanExp;
703 HII_DEPENDENCY_MAP MapExp;
704};
705
709typedef struct {
710 UINTN Signature;
711 LIST_ENTRY Link;
712 UINT8 Operand;
716
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)
719
723typedef struct {
724 EFI_STRING_ID WarningIfError;
725 UINT8 TimeOut;
727
731typedef union {
732 UINT8 RuleId;
733 EFI_STRING_ID Error;
734 HII_WARNING_IF_DATA WarningIfData;
736
740typedef struct {
741 UINTN Signature;
742 LIST_ENTRY Link;
743 UINT8 Type;
747 HII_EXTRA_DATA ExtraData;
750
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)
753
757typedef struct {
758 UINTN Signature;
759 UINTN Count;
760 HII_EXPRESSION *Expression[1];
762
763#define HII_EXPRESSION_LIST_SIGNATURE SIGNATURE_32 ('F', 'E', 'X', 'R')
764
768typedef struct {
772 UINT8 Type;
773 EFI_IFR_TYPE_VALUE Value;
777 UINT8 *Buffer;
778 UINT16 BufferLen;
781
785typedef struct {
786 UINTN Signature;
787 LIST_ENTRY Link;
788
789 UINT16 DefaultId;
791
794
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)
797
798#define HII_QUESTION_OPTION_SIGNATURE SIGNATURE_32 ('Q', 'O', 'P', 'T')
799
803typedef struct {
804 UINTN Signature;
805 LIST_ENTRY Link;
806
808
809 EFI_STRING_ID Text;
810 UINT8 Flags;
812 EFI_IMAGE_ID ImageId;
813
816
817#define HII_QUESTION_OPTION_FROM_LINK(a) CR (a, HII_QUESTION_OPTION, Link, HII_QUESTION_OPTION_SIGNATURE)
818
822typedef struct {
823 UINTN Signature;
824 LIST_ENTRY Link;
825
826 UINT16 DefaultId;
827 EFI_STRING_ID DefaultName;
829
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)
832
836typedef union {
837 UINT8 Flags;
838 EFI_STRING_ID TextTwo;
839 EFI_DEFAULT_ID DefaultId;
840 EFI_STRING_ID QuestionConfig;
841 EFI_GUID Guid;
842
843 struct {
844 UINT8 Flags;
845 UINT64 Minimum;
846 UINT64 Maximum;
847 UINT64 Step;
848 EFI_GUID Guid;
849 } NumData;
850
851 struct {
852 UINT8 Flags;
854 } OrderListData;
855
856 struct {
857 UINT8 Flags;
858 UINT8 MinSize;
859 UINT8 MaxSize;
860 } StrData;
861
862 struct {
863 UINT16 MinSize;
864 UINT16 MaxSize;
865 } PwdData;
867
873 UINTN Signature;
874 LIST_ENTRY Link;
875
876 UINT8 Operand;
877 EFI_IFR_OP_HEADER *OpCode;
878
882 EFI_STRING_ID Prompt;
883 EFI_STRING_ID Help;
884
888 EFI_QUESTION_ID QuestionId;
889 EFI_VARSTORE_ID VarStoreId;
893
898 CHAR16 *VariableName;
899 CHAR16 *BlockName;
900
902 HII_STATEMENT_EXTRA ExtraData;
903
904 BOOLEAN Locked;
905
907
911
915
916 EFI_IMAGE_ID ImageId;
918
924
927};
928
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)
931
935#define STANDARD_MAP_FORM_TYPE 0x01
936
937typedef struct {
938 UINTN Signature;
939 LIST_ENTRY Link;
940
941 UINT16 FormId;
942 EFI_STRING_ID FormTitle;
943 UINT16 FormType;
944
945 EFI_IMAGE_ID ImageId;
946
947 BOOLEAN ModalForm;
948 BOOLEAN Locked;
950
955} HII_FORM;
956
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)
959
963typedef struct {
964 UINTN Signature;
965 LIST_ENTRY Link;
966
970 EFI_DEVICE_PATH_PROTOCOL *DevicePath;
971
974
976 EFI_STRING_ID FormSetTitle;
977 EFI_STRING_ID Help;
978
980 EFI_GUID ClassGuid[3];
981
982 EFI_IMAGE_ID ImageId;
983
989
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)
992
996typedef enum {
1002
1020 IN EFI_HII_HANDLE Handle,
1021 IN OUT EFI_GUID *FormSetGuid,
1022 OUT HII_FORMSET *FormSet
1023 );
1024
1031VOID
1033 IN OUT HII_FORMSET *FormSet
1034 );
1035
1042VOID
1044 IN OUT HII_FORMSET *FormSet
1045 );
1046
1061 IN HII_FORMSET *FormSet,
1062 IN HII_FORM *Form,
1063 IN OUT HII_STATEMENT *Question,
1064 IN HII_STATEMENT_VALUE *QuestionValue
1065 );
1066
1080 IN HII_FORMSET *FormSet,
1081 IN HII_FORM *Form,
1082 IN OUT HII_STATEMENT *Question
1083 );
1084
1099 IN HII_FORMSET *FormSet,
1100 IN HII_FORM *Form,
1101 IN OUT HII_STATEMENT *Question,
1102 IN GET_SET_QUESTION_VALUE_WITH GetValueFrom
1103 );
1104
1116SubmitForm (
1117 IN HII_FORMSET *FormSet,
1118 IN HII_FORM *Form
1119 );
1120
1141 IN HII_FORMSET *FormSet,
1142 IN HII_FORM *Form,
1143 IN OUT HII_EXPRESSION *Expression
1144 );
1145
1158 IN HII_EXPRESSION *Expression
1159 );
1160
1175 IN HII_FORMSET *FormSet,
1176 IN HII_FORM *Form,
1177 IN HII_STATEMENT *Question,
1178 IN UINT16 DefaultId,
1179 OUT HII_STATEMENT_VALUE *DefaultValue
1180 );
1181
1196EXPRESS_RESULT
1198 IN HII_EXPRESSION_LIST *ExpList,
1199 IN BOOLEAN Evaluate,
1200 IN HII_FORMSET *FormSet OPTIONAL,
1201 IN HII_FORM *Form OPTIONAL
1202 );
1203
1204#endif // HII_UTILITY_LIB_
UINT64 UINTN
EFI_STATUS EvaluateHiiExpression(IN HII_FORMSET *FormSet, IN HII_FORM *Form, IN OUT HII_EXPRESSION *Expression)
EXPRESS_LEVEL
EXPRESS_RESULT
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)
Definition: HiiUtilityLib.c:30
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)
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
GET_SET_QUESTION_VALUE_WITH
Definition: Setup.h:560
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
VOID * EFI_HANDLE
Definition: UefiBaseType.h:33
VOID * EFI_HII_HANDLE
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
EFI_STRING_ID Prompt
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)
Definition: Base.h:213
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.
Definition: HiiUtilityLib.h:71
UINT8 * Buffer
Buffer storage.
Definition: HiiUtilityLib.h:79
UINT8 * EditBuffer
Edit copy for Buffer Storage.
Definition: HiiUtilityLib.h:80
LIST_ENTRY NameValueList
List of NAME_VALUE_NODE.
Definition: HiiUtilityLib.h:90
UINTN ElementCount
Number of <RequestElement> in the <ConfigRequest>
Definition: HiiUtilityLib.h:94
UINTN SpareStrLen
Spare length of ConfigRequest string buffer.
Definition: HiiUtilityLib.h:95
CHAR16 * ConfigRequest
<ConfigRequest> = <ConfigHdr> + <RequestElement>
Definition: HiiUtilityLib.h:93
CHAR16 * ConfigHdr
<ConfigHdr>
Definition: HiiUtilityLib.h:92
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