TianoCore EDK2 master
Loading...
Searching...
No Matches
Setup.h
Go to the documentation of this file.
1
10#ifndef _SETUP_H_
11#define _SETUP_H_
12
13#include <PiDxe.h>
14
20#include <Protocol/DevicePath.h>
25#include <Protocol/HiiString.h>
29
30#include <Guid/MdeModuleHii.h>
33#include <Guid/ZeroGuid.h>
34
35#include <Library/PrintLib.h>
36#include <Library/DebugLib.h>
41#include <Library/BaseLib.h>
43#include <Library/HiiLib.h>
44#include <Library/PcdLib.h>
46#include <Library/UefiLib.h>
47
48//
49// This is the generated header file which includes whatever needs to be exported (strings + IFR)
50//
51
52#define UI_ACTION_NONE 0
53#define UI_ACTION_REFRESH_FORM 1
54#define UI_ACTION_REFRESH_FORMSET 2
55#define UI_ACTION_EXIT 3
56
57//
58//
59// Time definitions
60//
61#define ONE_SECOND 10000000
62
63// Incremental string lenght of ConfigRequest
64//
65#define CONFIG_REQUEST_STRING_INCREMENTAL 1024
66
67//
68// Incremental size of stack for expression
69//
70#define EXPRESSION_STACK_SIZE_INCREMENT 0x100
71
72#define EFI_IFR_SPECIFICATION_VERSION (UINT16) (((EFI_SYSTEM_TABLE_REVISION >> 16) << 8) | (((EFI_SYSTEM_TABLE_REVISION & 0xFFFF) / 10) << 4) | ((EFI_SYSTEM_TABLE_REVISION & 0xFFFF) % 10))
73
74#define SETUP_DRIVER_SIGNATURE SIGNATURE_32 ('F', 'B', 'D', 'V')
75typedef struct {
76 UINT32 Signature;
77
78 EFI_HANDLE Handle;
79
80 //
81 // Produced protocol
82 //
83 EFI_FORM_BROWSER2_PROTOCOL FormBrowser2;
85
88
89//
90// IFR relative definition
91//
92#define EFI_HII_EXPRESSION_INCONSISTENT_IF 0
93#define EFI_HII_EXPRESSION_NO_SUBMIT_IF 1
94#define EFI_HII_EXPRESSION_GRAY_OUT_IF 2
95#define EFI_HII_EXPRESSION_SUPPRESS_IF 3
96#define EFI_HII_EXPRESSION_DISABLE_IF 4
97#define EFI_HII_EXPRESSION_VALUE 5
98#define EFI_HII_EXPRESSION_RULE 6
99#define EFI_HII_EXPRESSION_READ 7
100#define EFI_HII_EXPRESSION_WRITE 8
101#define EFI_HII_EXPRESSION_WARNING_IF 9
102
103#define EFI_HII_VARSTORE_BUFFER 0
104#define EFI_HII_VARSTORE_NAME_VALUE 1
105#define EFI_HII_VARSTORE_EFI_VARIABLE 2 // EFI Varstore type follow UEFI spec before 2.3.1.
106#define EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER 3 // EFI varstore type follow UEFI spec 2.3.1 and later.
107
108#define FORM_INCONSISTENT_VALIDATION 0
109#define FORM_NO_SUBMIT_VALIDATION 1
110
111#define NAME_VALUE_NODE_SIGNATURE SIGNATURE_32 ('N', 'V', 'S', 'T')
112
113typedef struct {
114 UINTN Signature;
115 LIST_ENTRY Link;
116 CHAR16 *Name;
117 CHAR16 *Value;
118 CHAR16 *EditValue;
120
121#define NAME_VALUE_NODE_FROM_LINK(a) CR (a, NAME_VALUE_NODE, Link, NAME_VALUE_NODE_SIGNATURE)
122
123#define BROWSER_STORAGE_SIGNATURE SIGNATURE_32 ('B', 'S', 'T', 'G')
124
125typedef struct {
126 UINTN Signature;
127 LIST_ENTRY Link;
128
129 UINT8 Type; // Storage type
130
131 BOOLEAN Initialized; // Whether this varstore is initialized, efi varstore not used.
132
133 EFI_HII_HANDLE HiiHandle; // HiiHandle for this varstore, efi varstore not used.
134 EFI_GUID Guid;
135
136 CHAR16 *Name; // For EFI_IFR_VARSTORE
137 UINT16 Size;
138 UINT8 *Buffer;
139 UINT8 *EditBuffer; // Edit copy for Buffer Storage
140
141 LIST_ENTRY NameValueListHead; // List of NAME_VALUE_NODE
142
143 UINT32 Attributes; // For EFI_IFR_VARSTORE_EFI: EFI Variable attribute
144
145 CHAR16 *ConfigRequest; // <ConfigRequest> = <ConfigHdr> + <RequestElement>
146 // <RequestElement> includes all fields which is used by current form sets.
147 UINTN SpareStrLen; // Spare length of ConfigRequest string buffer
149
150#define BROWSER_STORAGE_FROM_LINK(a) CR (a, BROWSER_STORAGE, Link, BROWSER_STORAGE_SIGNATURE)
151
152#define FORMSET_STORAGE_SIGNATURE SIGNATURE_32 ('F', 'S', 'T', 'G')
153
154typedef struct {
155 UINTN Signature;
156 LIST_ENTRY Link;
157
158 LIST_ENTRY SaveFailLink;
159
160 UINT16 VarStoreId;
161
162 BROWSER_STORAGE *BrowserStorage;
163
164 CHAR16 *ConfigHdr; // <ConfigHdr>
165
166 CHAR16 *ConfigRequest; // <ConfigRequest> = <ConfigHdr> + <RequestElement>
167 CHAR16 *ConfigAltResp; // Alt config response string for this ConfigRequest.
168 BOOLEAN HasCallAltCfg; // Flag to show whether browser has call ExtractConfig to get Altcfg string.
169 UINTN ElementCount; // Number of <RequestElement> in the <ConfigRequest>
170 UINTN SpareStrLen; // Spare length of ConfigRequest string buffer
171 CHAR16 *RestoreConfigRequest; // When submit formset fail, the element need to be restored
172 CHAR16 *SyncConfigRequest; // When submit formset fail, the element need to be synced
174
175#define FORMSET_STORAGE_FROM_LINK(a) CR (a, FORMSET_STORAGE, Link, FORMSET_STORAGE_SIGNATURE)
176#define FORMSET_STORAGE_FROM_SAVE_FAIL_LINK(a) CR (a, FORMSET_STORAGE, SaveFailLink, FORMSET_STORAGE_SIGNATURE)
177
178typedef union {
179 EFI_STRING_ID VarName;
180 UINT16 VarOffset;
182
183#define EXPRESSION_OPCODE_SIGNATURE SIGNATURE_32 ('E', 'X', 'O', 'P')
184
185typedef struct {
186 UINTN Signature;
187 LIST_ENTRY Link;
188
189 UINT8 Operand;
190
191 UINT8 Format; // For EFI_IFR_TO_STRING, EFI_IFR_FIND
192 UINT8 Flags; // For EFI_IFR_SPAN
193 UINT8 RuleId; // For EFI_IFR_RULE_REF
194
195 EFI_HII_VALUE Value; // For EFI_IFR_EQ_ID_VAL, EFI_IFR_UINT64, EFI_IFR_UINT32, EFI_IFR_UINT16, EFI_IFR_UINT8, EFI_IFR_STRING_REF1
196
197 EFI_QUESTION_ID QuestionId; // For EFI_IFR_EQ_ID_ID, EFI_IFR_EQ_ID_VAL_LIST, EFI_IFR_QUESTION_REF1
198 EFI_QUESTION_ID QuestionId2;
199
200 UINT16 ListLength; // For EFI_IFR_EQ_ID_VAL_LIST
201 UINT16 *ValueList;
202
203 EFI_STRING_ID DevicePath; // For EFI_IFR_QUESTION_REF3_2, EFI_IFR_QUESTION_REF3_3
204 EFI_GUID Guid;
205
206 BROWSER_STORAGE *VarStorage; // For EFI_IFR_SET, EFI_IFR_GET
207 VAR_STORE_INFO VarStoreInfo; // For EFI_IFR_SET, EFI_IFR_GET
208 UINT8 ValueType; // For EFI_IFR_SET, EFI_IFR_GET
209 UINT8 ValueWidth; // For EFI_IFR_SET, EFI_IFR_GET
210 CHAR16 *ValueName; // For EFI_IFR_SET, EFI_IFR_GET
211 LIST_ENTRY MapExpressionList; // nested expressions inside of Map opcode.
213
214#define EXPRESSION_OPCODE_FROM_LINK(a) CR (a, EXPRESSION_OPCODE, Link, EXPRESSION_OPCODE_SIGNATURE)
215
216#define FORM_EXPRESSION_SIGNATURE SIGNATURE_32 ('F', 'E', 'X', 'P')
217
218typedef struct {
219 UINTN Signature;
220 LIST_ENTRY Link;
221
222 UINT8 Type; // Type for this expression
223
224 UINT8 RuleId; // For EFI_IFR_RULE only
225 EFI_STRING_ID Error; // For EFI_IFR_NO_SUBMIT_IF, EFI_IFR_INCONSISTENT_IF only
226
227 EFI_HII_VALUE Result; // Expression evaluation result
228
229 UINT8 TimeOut; // For EFI_IFR_WARNING_IF
230 EFI_IFR_OP_HEADER *OpCode; // Save the opcode buffer.
231
232 LIST_ENTRY OpCodeListHead; // OpCodes consist of this expression (EXPRESSION_OPCODE)
234
235#define FORM_EXPRESSION_FROM_LINK(a) CR (a, FORM_EXPRESSION, Link, FORM_EXPRESSION_SIGNATURE)
236
237#define FORM_EXPRESSION_LIST_SIGNATURE SIGNATURE_32 ('F', 'E', 'X', 'R')
238
239typedef struct {
240 UINTN Signature;
241 UINTN Count;
242 FORM_EXPRESSION *Expression[1]; // Array[Count] of expressions
244
245#define QUESTION_DEFAULT_SIGNATURE SIGNATURE_32 ('Q', 'D', 'F', 'T')
246
247typedef struct {
248 UINTN Signature;
249 LIST_ENTRY Link;
250
251 UINT16 DefaultId;
252 EFI_HII_VALUE Value; // Default value
253
254 FORM_EXPRESSION *ValueExpression; // Not-NULL indicates default value is provided by EFI_IFR_VALUE
256
257#define QUESTION_DEFAULT_FROM_LINK(a) CR (a, QUESTION_DEFAULT, Link, QUESTION_DEFAULT_SIGNATURE)
258
259#define QUESTION_OPTION_SIGNATURE SIGNATURE_32 ('Q', 'O', 'P', 'T')
260
261typedef struct {
262 UINTN Signature;
263 LIST_ENTRY Link;
264
265 EFI_IFR_ONE_OF_OPTION *OpCode; // OneOfOption Data
266
267 EFI_STRING_ID Text;
268 UINT8 Flags;
269 EFI_HII_VALUE Value;
270 EFI_IMAGE_ID ImageId;
271
272 FORM_EXPRESSION_LIST *SuppressExpression; // Non-NULL indicates nested inside of SuppressIf
274
275#define QUESTION_OPTION_FROM_LINK(a) CR (a, QUESTION_OPTION, Link, QUESTION_OPTION_SIGNATURE)
276
277typedef enum {
278 ExpressFalse = 0,
279 ExpressGrayOut,
280 ExpressSuppress,
281 ExpressDisable
282} EXPRESS_RESULT;
283
284typedef enum {
285 ExpressNone = 0,
286 ExpressForm,
287 ExpressStatement,
288 ExpressOption
289} EXPRESS_LEVEL;
290
292
293#define FORM_BROWSER_STATEMENT_SIGNATURE SIGNATURE_32 ('F', 'S', 'T', 'A')
294
296 UINTN Signature;
297 LIST_ENTRY Link;
298
299 UINT8 Operand; // The operand (first byte) of this Statement or Question
300 EFI_IFR_OP_HEADER *OpCode;
301
302 //
303 // Statement Header
304 //
305 EFI_STRING_ID Prompt;
306 EFI_STRING_ID Help;
307 EFI_STRING_ID TextTwo; // For EFI_IFR_TEXT
308
309 //
310 // Fake Question Id, used for statement not has true QuestionId.
311 //
312 EFI_QUESTION_ID FakeQuestionId;
313
314 //
315 // Question Header
316 //
317 EFI_QUESTION_ID QuestionId; // The value of zero is reserved
318 EFI_VARSTORE_ID VarStoreId; // A value of zero indicates no variable storage
319 BROWSER_STORAGE *Storage;
320 VAR_STORE_INFO VarStoreInfo;
321 UINT16 StorageWidth;
322 UINT16 BitStorageWidth;
323 UINT16 BitVarOffset;
324 UINT8 QuestionFlags;
325 BOOLEAN QuestionReferToBitField; // Whether the question is stored in a bit field.
326 CHAR16 *VariableName; // Name/Value or EFI Variable name
327 CHAR16 *BlockName; // Buffer storage block name: "OFFSET=...WIDTH=..."
328
329 EFI_HII_VALUE HiiValue; // Edit copy for checkbox, numberic, oneof
330 UINT8 *BufferValue; // Edit copy for string, password, orderedlist
331 UINT8 ValueType; // Data type for orderedlist value array
332
333 //
334 // OpCode specific members
335 //
336 UINT8 Flags; // for EFI_IFR_CHECKBOX, EFI_IFR_DATE, EFI_IFR_NUMERIC, EFI_IFR_ONE_OF,
337 // EFI_IFR_ORDERED_LIST, EFI_IFR_STRING,EFI_IFR_SUBTITLE,EFI_IFR_TIME, EFI_IFR_BANNER
338 UINT8 MaxContainers; // for EFI_IFR_ORDERED_LIST
339
340 UINT16 BannerLineNumber; // for EFI_IFR_BANNER, 1-based line number
341 EFI_STRING_ID QuestionConfig; // for EFI_IFR_ACTION, if 0 then no configuration string will be processed
342
343 UINT64 Minimum; // for EFI_IFR_ONE_OF/EFI_IFR_NUMERIC, it's Min/Max value
344 UINT64 Maximum; // for EFI_IFR_STRING/EFI_IFR_PASSWORD, it's Min/Max length
345 UINT64 Step;
346
347 EFI_DEFAULT_ID DefaultId; // for EFI_IFR_RESET_BUTTON
348 EFI_GUID RefreshGuid; // for EFI_IFR_REFRESH_ID
349 BOOLEAN Locked; // Whether this statement is locked.
350 BOOLEAN ValueChanged; // Whether this statement's value is changed.
351 //
352 // Get from IFR parsing
353 //
354 FORM_EXPRESSION *ValueExpression; // nested EFI_IFR_VALUE, provide Question value and indicate Question is ReadOnly
355 LIST_ENTRY DefaultListHead; // nested EFI_IFR_DEFAULT list (QUESTION_DEFAULT), provide default values
356 LIST_ENTRY OptionListHead; // nested EFI_IFR_ONE_OF_OPTION list (QUESTION_OPTION)
357
358 EFI_IMAGE_ID ImageId; // nested EFI_IFR_IMAGE
359 UINT8 RefreshInterval; // nested EFI_IFR_REFRESH, refresh interval(in seconds) for Question value, 0 means no refresh
360
361 FORM_BROWSER_STATEMENT *ParentStatement;
362
363 LIST_ENTRY InconsistentListHead; // nested inconsistent expression list (FORM_EXPRESSION)
364 LIST_ENTRY NoSubmitListHead; // nested nosubmit expression list (FORM_EXPRESSION)
365 LIST_ENTRY WarningListHead; // nested warning expression list (FORM_EXPRESSION)
366 FORM_EXPRESSION_LIST *Expression; // nesting inside of GrayOutIf/DisableIf/SuppressIf
367
368 FORM_EXPRESSION *ReadExpression; // nested EFI_IFR_READ, provide this question value by read expression.
369 FORM_EXPRESSION *WriteExpression; // nested EFI_IFR_WRITE, evaluate write expression after this question value is set.
370};
371
372#define FORM_BROWSER_STATEMENT_FROM_LINK(a) CR (a, FORM_BROWSER_STATEMENT, Link, FORM_BROWSER_STATEMENT_SIGNATURE)
373
374#define FORM_BROWSER_CONFIG_REQUEST_SIGNATURE SIGNATURE_32 ('F', 'C', 'R', 'S')
375typedef struct {
376 UINTN Signature;
377 LIST_ENTRY Link;
378
379 LIST_ENTRY SaveFailLink;
380
381 CHAR16 *ConfigRequest; // <ConfigRequest> = <ConfigHdr> + <RequestElement>
382 CHAR16 *ConfigAltResp; // Alt config response string for this ConfigRequest.
383 UINTN ElementCount; // Number of <RequestElement> in the <ConfigRequest>
384 UINTN SpareStrLen;
385 CHAR16 *RestoreConfigRequest; // When submit form fail, the element need to be restored
386 CHAR16 *SyncConfigRequest; // When submit form fail, the element need to be synced
387
388 BROWSER_STORAGE *Storage;
390#define FORM_BROWSER_CONFIG_REQUEST_FROM_LINK(a) CR (a, FORM_BROWSER_CONFIG_REQUEST, Link, FORM_BROWSER_CONFIG_REQUEST_SIGNATURE)
391#define FORM_BROWSER_CONFIG_REQUEST_FROM_SAVE_FAIL_LINK(a) CR (a, FORM_BROWSER_CONFIG_REQUEST, SaveFailLink, FORM_BROWSER_CONFIG_REQUEST_SIGNATURE)
392
393#define FORM_BROWSER_FORM_SIGNATURE SIGNATURE_32 ('F', 'F', 'R', 'M')
394#define STANDARD_MAP_FORM_TYPE 0x01
395
396typedef struct {
397 UINTN Signature;
398 LIST_ENTRY Link;
399
400 UINT16 FormId; // FormId of normal form or formmap form.
401 EFI_STRING_ID FormTitle; // FormTile of normal form, or FormMapMethod title of formmap form.
402 UINT16 FormType; // Specific form type for the different form.
403
404 EFI_IMAGE_ID ImageId;
405
406 BOOLEAN ModalForm; // Whether this is a modal form.
407 BOOLEAN Locked; // Whether this form is locked.
408 EFI_GUID RefreshGuid; // Form refresh event guid.
409
410 LIST_ENTRY FormViewListHead; // List of type FORMID_INFO is Browser View Form History List.
411 LIST_ENTRY ExpressionListHead; // List of Expressions (FORM_EXPRESSION)
412 LIST_ENTRY StatementListHead; // List of Statements and Questions (FORM_BROWSER_STATEMENT)
413 LIST_ENTRY ConfigRequestHead; // List of configreques for all storage.
414 FORM_EXPRESSION_LIST *SuppressExpression; // nesting inside of SuppressIf
416
417#define FORM_BROWSER_FORM_FROM_LINK(a) CR (a, FORM_BROWSER_FORM, Link, FORM_BROWSER_FORM_SIGNATURE)
418
419#define FORMSET_DEFAULTSTORE_SIGNATURE SIGNATURE_32 ('F', 'D', 'F', 'S')
420
421typedef struct {
422 UINTN Signature;
423 LIST_ENTRY Link;
424
425 UINT16 DefaultId;
426 EFI_STRING_ID DefaultName;
428
429#define FORMSET_DEFAULTSTORE_FROM_LINK(a) CR (a, FORMSET_DEFAULTSTORE, Link, FORMSET_DEFAULTSTORE_SIGNATURE)
430
431#define FORM_BROWSER_FORMSET_SIGNATURE SIGNATURE_32 ('F', 'B', 'F', 'S')
432
433typedef struct {
434 UINTN Signature;
435 LIST_ENTRY Link;
436 LIST_ENTRY SaveFailLink;
437
438 EFI_HII_HANDLE HiiHandle; // unique id for formset.
439 EFI_HANDLE DriverHandle;
440 EFI_HII_CONFIG_ACCESS_PROTOCOL *ConfigAccess;
441 EFI_DEVICE_PATH_PROTOCOL *DevicePath;
442
443 UINTN IfrBinaryLength;
444 UINT8 *IfrBinaryData;
445
446 BOOLEAN QuestionInited; // Have finished question initilization?
447 EFI_GUID Guid;
448 EFI_STRING_ID FormSetTitle;
449 EFI_STRING_ID Help;
450 UINT8 NumberOfClassGuid;
451 EFI_GUID ClassGuid[3]; // Up to three ClassGuid
452 UINT16 Class; // Tiano extended Class code
453 UINT16 SubClass; // Tiano extended Subclass code
454 EFI_IMAGE_ID ImageId;
455 EFI_IFR_OP_HEADER *OpCode; // mainly for formset op to get ClassGuid
456
457 FORM_BROWSER_STATEMENT *StatementBuffer; // Buffer for all Statements and Questions
458 EXPRESSION_OPCODE *ExpressionBuffer; // Buffer for all Expression OpCode
459 FORM_BROWSER_FORM *SaveFailForm; // The form which failed to save.
460 FORM_BROWSER_STATEMENT *SaveFailStatement; // The Statement which failed to save.
461
462 LIST_ENTRY StatementListOSF; // Statement list out side of the form.
463 LIST_ENTRY StorageListHead; // Storage list (FORMSET_STORAGE)
464 LIST_ENTRY SaveFailStorageListHead; // Storage list for the save fail storage.
465 LIST_ENTRY DefaultStoreListHead; // DefaultStore list (FORMSET_DEFAULTSTORE)
466 LIST_ENTRY FormListHead; // Form list (FORM_BROWSER_FORM)
467 LIST_ENTRY ExpressionListHead; // List of Expressions (FORM_EXPRESSION)
469#define FORM_BROWSER_FORMSET_FROM_LINK(a) CR (a, FORM_BROWSER_FORMSET, Link, FORM_BROWSER_FORMSET_SIGNATURE)
470
471#define FORM_BROWSER_FORMSET_FROM_SAVE_FAIL_LINK(a) CR (a, FORM_BROWSER_FORMSET, SaveFailLink, FORM_BROWSER_FORMSET_SIGNATURE)
472
473typedef struct {
474 LIST_ENTRY Link;
475 EFI_EVENT RefreshEvent;
477
478#define FORM_BROWSER_REFRESH_EVENT_FROM_LINK(a) BASE_CR (a, FORM_BROWSER_REFRESH_EVENT_NODE, Link)
479
480typedef struct {
481 EFI_HII_HANDLE Handle;
482
483 //
484 // Target formset/form/Question information
485 //
486 EFI_GUID FormSetGuid;
487 UINT16 FormId;
488 UINT16 QuestionId;
489 UINTN Sequence; // used for time/date only.
490
491 UINTN TopRow;
492 UINTN BottomRow;
493 UINTN PromptCol;
494 UINTN OptionCol;
495 UINTN CurrentRow;
496
497 //
498 // Ation for Browser to taken:
499 // UI_ACTION_NONE - navigation inside a form
500 // UI_ACTION_REFRESH_FORM - re-evaluate expressions and repaint form
501 // UI_ACTION_REFRESH_FORMSET - re-parse formset IFR binary
502 //
503 UINTN Action;
504
505 //
506 // Current selected fomset/form/Question
507 //
508 FORM_BROWSER_FORMSET *FormSet;
509 FORM_BROWSER_FORM *Form;
510 FORM_BROWSER_STATEMENT *Statement;
511
512 //
513 // Whether the Form is editable
514 //
515 BOOLEAN FormEditable;
516
517 FORM_ENTRY_INFO *CurrentMenu;
519
520#define BROWSER_CONTEXT_SIGNATURE SIGNATURE_32 ('B', 'C', 'T', 'X')
521
522typedef struct {
523 UINTN Signature;
524 LIST_ENTRY Link;
525
526 //
527 // Globals defined in Setup.c
528 //
529 BOOLEAN FlagReconnect;
530 BOOLEAN CallbackReconnect;
531 BOOLEAN ResetRequired;
532 BOOLEAN ExitRequired;
533 EFI_HII_HANDLE HiiHandle;
534 EFI_GUID FormSetGuid;
535 EFI_FORM_ID FormId;
536 UI_MENU_SELECTION *Selection;
537 FORM_BROWSER_FORMSET *SystemLevelFormSet;
538 EFI_QUESTION_ID CurFakeQestId;
539 BOOLEAN HiiPackageListUpdated;
540 BOOLEAN FinishRetrieveCall;
541 LIST_ENTRY FormHistoryList;
542 LIST_ENTRY FormSetList;
544
545#define BROWSER_CONTEXT_FROM_LINK(a) CR (a, BROWSER_CONTEXT, Link, BROWSER_CONTEXT_SIGNATURE)
546
547//
548// Scope for get defaut value. It may be GetDefaultForNoStorage, GetDefaultForStorage or GetDefaultForAll.
549//
550typedef enum {
551 GetDefaultForNoStorage, // Get default value for question which not has storage.
552 GetDefaultForStorage, // Get default value for question which has storage.
553 GetDefaultForAll, // Get default value for all questions.
554 GetDefaultForMax // Invalid value.
555} BROWSER_GET_DEFAULT_VALUE;
556
557//
558// Get/set question value from/to.
559//
560typedef enum {
561 GetSetValueWithEditBuffer = 0, // Get/Set question value from/to editbuffer in the storage.
562 GetSetValueWithBuffer, // Get/Set question value from/to buffer in the storage.
563 GetSetValueWithHiiDriver, // Get/Set question value from/to hii driver.
564 GetSetValueWithBothBuffer, // Compare the editbuffer with buffer for this question, not use the question value.
565 GetSetValueWithMax // Invalid value.
567
568extern EFI_HII_DATABASE_PROTOCOL *mHiiDatabase;
569extern EFI_HII_CONFIG_ROUTING_PROTOCOL *mHiiConfigRouting;
570extern EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL *mPathFromText;
571extern EDKII_FORM_DISPLAY_ENGINE_PROTOCOL *mFormDisplay;
572
573extern BOOLEAN gCallbackReconnect;
574extern BOOLEAN gFlagReconnect;
575extern BOOLEAN gResetRequiredFormLevel;
576extern BOOLEAN gResetRequiredSystemLevel;
577extern BOOLEAN gExitRequired;
578extern LIST_ENTRY gBrowserFormSetList;
579extern LIST_ENTRY gBrowserHotKeyList;
580extern BROWSER_SETTING_SCOPE gBrowserSettingScope;
581extern EXIT_HANDLER ExitHandlerFunction;
582extern EFI_HII_HANDLE mCurrentHiiHandle;
583extern SETUP_DRIVER_PRIVATE_DATA mPrivateData;
584//
585// Browser Global Strings
586//
587extern CHAR16 *gEmptyString;
588
589extern UI_MENU_SELECTION *gCurrentSelection;
590extern BOOLEAN mHiiPackageListUpdated;
591extern UINT16 mCurFakeQestId;
592extern BOOLEAN mFinishRetrieveCall;
593
594//
595// Global Procedure Defines
596//
597#include "Expression.h"
598
603VOID
605 VOID
606 );
607
619 IN FORM_BROWSER_FORMSET *FormSet
620 );
621
628VOID
631 );
632
643EFI_STRING_ID
644NewString (
645 IN CHAR16 *String,
646 IN EFI_HII_HANDLE HiiHandle
647 );
648
660 IN EFI_STRING_ID StringId,
661 IN EFI_HII_HANDLE HiiHandle
662 );
663
674CHAR16 *
675GetToken (
676 IN EFI_STRING_ID Token,
677 IN EFI_HII_HANDLE HiiHandle
678 );
679
694 IN BROWSER_STORAGE *Storage,
695 IN CHAR16 *Name,
696 IN OUT CHAR16 **Value,
698 );
699
715 IN BROWSER_STORAGE *Storage,
716 IN CHAR16 *Name,
717 IN CHAR16 *Value,
719 OUT NAME_VALUE_NODE **ReturnNode
720 );
721
734BOOLEAN
736 IN FORM_BROWSER_FORMSET *FormSet,
737 IN FORM_BROWSER_FORM *Form,
738 IN OUT FORM_BROWSER_STATEMENT *Question,
740 );
741
751BOOLEAN
753 FORM_BROWSER_FORMSET *FormSet
754 );
755
764VOID
766 IN FORM_BROWSER_FORMSET *FormSet,
767 IN FORM_BROWSER_FORM *Form,
768 IN BROWSER_SETTING_SCOPE SettingScope
769 );
770
784 IN FORM_BROWSER_FORMSET *FormSet,
785 IN FORM_BROWSER_FORM *Form,
786 IN OUT FORM_BROWSER_STATEMENT *Question,
788 );
789
803 IN FORM_BROWSER_FORMSET *FormSet,
804 IN FORM_BROWSER_FORM *Form,
805 IN OUT FORM_BROWSER_STATEMENT *Question,
807 );
808
823 IN FORM_BROWSER_FORMSET *FormSet,
824 IN FORM_BROWSER_FORM *Form,
825 IN FORM_BROWSER_STATEMENT *Question,
826 IN UINTN Type
827 );
828
842 IN FORM_BROWSER_FORMSET *FormSet,
843 IN FORM_BROWSER_FORM *Form,
844 IN BROWSER_SETTING_SCOPE SettingScope
845 );
846
860 IN FORM_BROWSER_FORMSET *FormSet,
861 IN FORM_BROWSER_FORM *Form,
862 IN BROWSER_SETTING_SCOPE SettingScope
863 );
864
878 IN FORM_BROWSER_FORMSET *FormSet,
879 IN FORM_BROWSER_FORM *Form,
880 IN FORM_BROWSER_STATEMENT *Question,
881 IN UINT16 DefaultId
882 );
883
890VOID
893 );
894
910 IN EFI_HII_HANDLE Handle,
911 IN OUT EFI_GUID *FormSetGuid,
913 );
914
938 IN FORM_BROWSER_FORMSET *FormSet,
939 IN FORM_BROWSER_FORM *Form,
940 IN UINT16 DefaultId,
941 IN BROWSER_SETTING_SCOPE SettingScope,
942 IN BROWSER_GET_DEFAULT_VALUE GetDefaultValueScope,
943 IN BROWSER_STORAGE *Storage,
944 IN BOOLEAN RetrieveValueFirst,
945 IN BOOLEAN SkipGetAltCfg
946 );
947
963 IN OUT UI_MENU_SELECTION *Selection,
964 IN FORM_BROWSER_FORMSET *FormSet,
966 );
967
982 IN OUT UI_MENU_SELECTION *Selection,
983 IN FORM_BROWSER_FORMSET *FormSet
984 );
985
1000 IN BROWSER_STORAGE *Storage,
1001 IN CHAR16 **ConfigResp,
1002 IN CHAR16 *ConfigRequest,
1003 IN BOOLEAN GetEditBuf
1004 );
1005
1018 IN BROWSER_STORAGE *Storage,
1019 IN CHAR16 *ConfigResp
1020 );
1021
1029VOID
1031 IN FORM_BROWSER_FORMSET *FormSet,
1032 IN FORMSET_STORAGE *Storage
1033 );
1034
1054 IN EFI_HII_HANDLE Handle,
1055 IN OUT EFI_GUID *FormSetGuid,
1056 OUT UINTN *BinaryLength,
1057 OUT UINT8 **BinaryData
1058 );
1059
1066VOID
1068 VOID
1069 );
1070
1075VOID
1077 VOID
1078 );
1079
1109EFIAPI
1110SendForm (
1112 IN EFI_HII_HANDLE *Handles,
1113 IN UINTN HandleCount,
1114 IN EFI_GUID *FormSetGuid OPTIONAL,
1115 IN UINT16 FormId OPTIONAL,
1116 IN CONST EFI_SCREEN_DESCRIPTOR *ScreenDimensions OPTIONAL,
1117 OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest OPTIONAL
1118 );
1119
1148EFIAPI
1151 IN OUT UINTN *ResultsDataSize,
1152 IN OUT EFI_STRING ResultsData,
1153 IN BOOLEAN RetrieveData,
1154 IN CONST EFI_GUID *VariableGuid OPTIONAL,
1155 IN CONST CHAR16 *VariableName OPTIONAL
1156 );
1157
1171BOOLEAN
1173 IN OUT UI_MENU_SELECTION *Selection,
1174 IN BROWSER_SETTING_SCOPE SettingLevel
1175 );
1176
1185BOOLEAN
1187 IN FORM_BROWSER_FORM *Form
1188 );
1189
1198BOOLEAN
1200 IN FORM_BROWSER_FORMSET *FormSet
1201 );
1202
1221 IN OUT UI_MENU_SELECTION *Selection,
1222 IN FORM_BROWSER_FORMSET *FormSet,
1223 IN FORM_BROWSER_FORM *Form,
1224 IN FORM_BROWSER_STATEMENT *Question,
1225 IN EFI_BROWSER_ACTION Action,
1226 IN BOOLEAN SkipSaveOrDiscard
1227 );
1228
1244 IN EFI_HII_CONFIG_ACCESS_PROTOCOL *ConfigAccess,
1245 IN FORM_BROWSER_STATEMENT *Statement,
1246 IN FORM_BROWSER_FORMSET *FormSet
1247 );
1248
1259 EFI_HII_HANDLE Handle
1260 );
1261
1271BOOLEAN
1273 EFI_HII_HANDLE Handle
1274 );
1275
1290EFIAPI
1291SetScope (
1292 IN BROWSER_SETTING_SCOPE Scope
1293 );
1294
1316EFIAPI
1318 IN EFI_INPUT_KEY *KeyData,
1319 IN UINT32 Action,
1320 IN UINT16 DefaultId,
1321 IN EFI_STRING HelpString OPTIONAL
1322 );
1323
1332VOID
1333EFIAPI
1335 IN EXIT_HANDLER Handler
1336 );
1337
1346BOOLEAN
1347EFIAPI
1349 VOID
1350 );
1351
1364EFIAPI
1366 IN UINT32 Action,
1367 IN UINT16 DefaultId
1368 );
1369
1380UINT32
1381EFIAPI
1383 VOID
1384 );
1385
1393BOOLEAN
1394EFIAPI
1396 VOID
1397 );
1398
1409 IN EFI_INPUT_KEY *KeyData
1410 );
1411
1423 IN FORM_DISPLAY_ENGINE_STATEMENT *DisplayStatement
1424 );
1425
1454 IN UI_MENU_SELECTION *Selection,
1455 IN FORM_BROWSER_STATEMENT *Question,
1456 IN CHAR16 *String
1457 );
1458
1463VOID
1465 VOID
1466 );
1467
1483 IN OUT UI_MENU_SELECTION *Selection
1484 );
1485
1491VOID
1493 VOID
1494 );
1495
1510 IN EFI_HII_HANDLE HiiHandle,
1511 IN EFI_GUID *FormSetGuid,
1512 IN UINT16 FormId,
1513 IN UINT16 QuestionId
1514 );
1515
1528 IN EFI_HII_HANDLE HiiHandle,
1529 IN EFI_GUID *FormSetGuid,
1530 IN UINT16 FormId
1531 );
1532
1539VOID
1541 LIST_ENTRY *MenuListHead
1542 );
1543
1557 IN FORM_ENTRY_INFO *CurrentMenu,
1558 IN BROWSER_SETTING_SCOPE SettingLevel
1559 );
1560
1570BOOLEAN
1572 EFI_HII_HANDLE HiiHandle
1573 );
1574
1582VOID
1584 OUT LIST_ENTRY *NewMenuListHead,
1585 IN LIST_ENTRY *CurrentMenuListHead
1586 );
1587
1600 IN FORM_BROWSER_STATEMENT *Question,
1601 IN EFI_HII_VALUE *OptionValue
1602 );
1603
1614UINT64
1616 IN VOID *Array,
1617 IN UINT8 Type,
1618 IN UINTN Index
1619 );
1620
1630VOID
1632 IN VOID *Array,
1633 IN UINT8 Type,
1634 IN UINTN Index,
1635 IN UINT64 Value
1636 );
1637
1655 IN EFI_HII_VALUE *Value1,
1656 IN EFI_HII_VALUE *Value2,
1657 OUT INTN *Result,
1658 IN EFI_HII_HANDLE HiiHandle OPTIONAL
1659 );
1660
1674EFIAPI
1678 IN EFI_STRING PasswordString OPTIONAL
1679 );
1680
1692 IN FORM_DISPLAY_ENGINE_STATEMENT *DisplayStatement
1693 );
1694
1700VOID
1702 VOID
1703 );
1704
1711VOID
1713 IN OUT FORM_BROWSER_FORMSET *FormSet
1714 );
1715
1732 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
1733 IN EFI_GUID *FormsetGuid
1734 );
1735
1747BOOLEAN
1749 IN BROWSER_STORAGE *Storage,
1750 IN CHAR16 *Request,
1751 IN BOOLEAN RespString
1752 );
1753
1769 IN FORM_BROWSER_FORMSET *FormSet,
1770 IN FORM_BROWSER_FORM *Form,
1771 IN FORM_BROWSER_STATEMENT *Question
1772 );
1773
1783UINT32
1785 IN UINT32 BrowserStatus,
1786 IN EFI_HII_HANDLE HiiHandle,
1787 IN EFI_IFR_OP_HEADER *OpCode OPTIONAL,
1788 IN CHAR16 *ErrorString
1789 );
1790
1803BOOLEAN
1804IsTrue (
1805 IN EFI_HII_VALUE *Result
1806 );
1807
1819 IN FORM_BROWSER_FORMSET *FormSet,
1820 IN EFI_VARSTORE_ID VarStoreId
1821 );
1822
1838 IN BROWSER_STORAGE *Storage
1839 );
1840
1850BOOLEAN
1852 IN EFI_HANDLE DriverHandle
1853 );
1854
1862VOID
1863EFIAPI
1864HiiToLower (
1865 IN EFI_STRING ConfigString
1866 );
1867
1868#endif
UINT64 UINTN
INT64 INTN
VOID(EFIAPI * EXIT_HANDLER)(VOID)
#define CONST
Definition: Base.h:259
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
EFI_STATUS SubmitForm(IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form, IN BROWSER_SETTING_SCOPE SettingScope)
Definition: Setup.c:3859
EFI_HII_HANDLE DevicePathToHiiHandle(IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, IN EFI_GUID *FormsetGuid)
FORMSET_STORAGE * GetFstStgFromBrsStg(IN BROWSER_STORAGE *Storage)
Definition: IfrParse.c:510
EFI_STATUS CompareHiiValue(IN EFI_HII_VALUE *Value1, IN EFI_HII_VALUE *Value2, OUT INTN *Result, IN EFI_HII_HANDLE HiiHandle OPTIONAL)
EFI_STATUS DiscardForm(IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form, IN BROWSER_SETTING_SCOPE SettingScope)
Definition: Setup.c:3208
VOID SaveBrowserContext(VOID)
Definition: Setup.c:6067
BOOLEAN ConfigRequestAdjust(IN BROWSER_STORAGE *Storage, IN CHAR16 *Request, IN BOOLEAN RespString)
Definition: Setup.c:5449
FORM_ENTRY_INFO * UiFindMenuList(IN EFI_HII_HANDLE HiiHandle, IN EFI_GUID *FormSetGuid, IN UINT16 FormId)
Definition: Setup.c:149
EFI_STATUS SetValueByName(IN BROWSER_STORAGE *Storage, IN CHAR16 *Name, IN CHAR16 *Value, IN GET_SET_QUESTION_VALUE_WITH SetValueTo, OUT NAME_VALUE_NODE **ReturnNode)
Definition: Setup.c:1163
FORM_BROWSER_STATEMENT * GetBrowserStatement(IN FORM_DISPLAY_ENGINE_STATEMENT *DisplayStatement)
Definition: Presentation.c:878
VOID InitializeCurrentSetting(IN OUT FORM_BROWSER_FORMSET *FormSet)
Definition: Setup.c:5784
BOOLEAN FindNextMenu(IN OUT UI_MENU_SELECTION *Selection, IN BROWSER_SETTING_SCOPE SettingLevel)
FORM_ENTRY_INFO * UiFindParentMenu(IN FORM_ENTRY_INFO *CurrentMenu, IN BROWSER_SETTING_SCOPE SettingLevel)
Definition: Setup.c:213
VOID InitializeDisplayFormData(VOID)
Definition: Presentation.c:727
BOOLEAN IsHiiHandleInBrowserContext(EFI_HII_HANDLE Handle)
Definition: Setup.c:6245
BOOLEAN IsNvUpdateRequiredForForm(IN FORM_BROWSER_FORM *Form)
EFI_STATUS LoadFormSetConfig(IN OUT UI_MENU_SELECTION *Selection, IN FORM_BROWSER_FORMSET *FormSet)
Definition: Setup.c:5181
EFI_STATUS EFIAPI SetScope(IN BROWSER_SETTING_SCOPE Scope)
Definition: Setup.c:6394
EFI_STATUS ValueChangedValidation(IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form, IN FORM_BROWSER_STATEMENT *Question)
Definition: Setup.c:2364
EFI_STATUS InitializeFormSet(IN EFI_HII_HANDLE Handle, IN OUT EFI_GUID *FormSetGuid, OUT FORM_BROWSER_FORMSET *FormSet)
Definition: Setup.c:6011
VOID UpdateStatementStatus(IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form, IN BROWSER_SETTING_SCOPE SettingScope)
Definition: Presentation.c:963
EFI_STATUS EFIAPI BrowserCallback(IN CONST EFI_FORM_BROWSER2_PROTOCOL *This, IN OUT UINTN *ResultsDataSize, IN OUT EFI_STRING ResultsData, IN BOOLEAN RetrieveData, IN CONST EFI_GUID *VariableGuid OPTIONAL, IN CONST CHAR16 *VariableName OPTIONAL)
Definition: Setup.c:728
UINT32 EFIAPI SaveReminder(VOID)
Definition: Setup.c:6682
EFI_STATUS ParseOpCodes(IN FORM_BROWSER_FORMSET *FormSet)
Definition: IfrParse.c:1161
VOID UiFreeMenuList(LIST_ENTRY *MenuListHead)
Definition: Setup.c:267
VOID LoadStorage(IN FORM_BROWSER_FORMSET *FormSet, IN FORMSET_STORAGE *Storage)
Definition: Setup.c:5567
VOID DestroyFormSet(IN OUT FORM_BROWSER_FORMSET *FormSet)
Definition: IfrParse.c:943
EFI_STATUS ConfigRespToStorage(IN BROWSER_STORAGE *Storage, IN CHAR16 *ConfigResp)
Definition: Setup.c:1304
BOOLEAN ValidateFormSet(FORM_BROWSER_FORMSET *FormSet)
Definition: Setup.c:2751
VOID InitializeBrowserStrings(VOID)
VOID PasswordInvalid(VOID)
EFI_STATUS PasswordCallback(IN UI_MENU_SELECTION *Selection, IN FORM_BROWSER_STATEMENT *Question, IN CHAR16 *String)
EFI_STATUS DeleteString(IN EFI_STRING_ID StringId, IN EFI_HII_HANDLE HiiHandle)
Definition: Setup.c:1004
EFI_STATUS ProcessRetrieveForQuestion(IN EFI_HII_CONFIG_ACCESS_PROTOCOL *ConfigAccess, IN FORM_BROWSER_STATEMENT *Statement, IN FORM_BROWSER_FORMSET *FormSet)
EFI_STATUS GetQuestionDefault(IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form, IN FORM_BROWSER_STATEMENT *Question, IN UINT16 DefaultId)
Definition: Setup.c:4233
BOOLEAN ReconnectController(IN EFI_HANDLE DriverHandle)
BOOLEAN EFIAPI IsResetRequired(VOID)
Definition: FrontPage.c:1072
CHAR16 * GetToken(IN EFI_STRING_ID Token, IN EFI_HII_HANDLE HiiHandle)
Definition: FormDisplay.c:191
EFI_STATUS SetupBrowser(IN OUT UI_MENU_SELECTION *Selection)
EFI_STATUS ValidateQuestion(IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form, IN FORM_BROWSER_STATEMENT *Question, IN UINTN Type)
Definition: Setup.c:2250
EFI_STATUS LoadFormConfig(IN OUT UI_MENU_SELECTION *Selection, IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form)
Definition: Setup.c:5131
BOOLEAN ValidateHiiHandle(EFI_HII_HANDLE HiiHandle)
Definition: Setup.c:2712
EFI_STATUS EFIAPI ExecuteAction(IN UINT32 Action, IN UINT16 DefaultId)
Definition: Setup.c:6592
BROWSER_HOT_KEY * GetHotKeyFromRegisterList(IN EFI_INPUT_KEY *KeyData)
Definition: FormDisplay.c:1360
VOID EFIAPI HiiToLower(IN EFI_STRING ConfigString)
EFI_STATUS GetIfrBinaryData(IN EFI_HII_HANDLE Handle, IN OUT EFI_GUID *FormSetGuid, OUT UINTN *BinaryLength, OUT UINT8 **BinaryData)
Definition: Setup.c:5843
EFI_STATUS EFIAPI SendForm(IN CONST EFI_FORM_BROWSER2_PROTOCOL *This, IN EFI_HII_HANDLE *Handles, IN UINTN HandleCount, IN EFI_GUID *FormSetGuid OPTIONAL, IN UINT16 FormId OPTIONAL, IN CONST EFI_SCREEN_DESCRIPTOR *ScreenDimensions OPTIONAL, OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest OPTIONAL)
Definition: Setup.c:468
FORM_BROWSER_FORMSET * GetFormSetFromHiiHandle(EFI_HII_HANDLE Handle)
Definition: Setup.c:6212
EFI_STATUS ProcessCallBackFunction(IN OUT UI_MENU_SELECTION *Selection, IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form, IN FORM_BROWSER_STATEMENT *Question, IN EFI_BROWSER_ACTION Action, IN BOOLEAN SkipSaveOrDiscard)
EFI_STATUS GetValueByName(IN BROWSER_STORAGE *Storage, IN CHAR16 *Name, IN OUT CHAR16 **Value, IN GET_SET_QUESTION_VALUE_WITH GetValueFrom)
Definition: Setup.c:1113
EFI_STATUS ExtractDefault(IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form, IN UINT16 DefaultId, IN BROWSER_SETTING_SCOPE SettingScope, IN BROWSER_GET_DEFAULT_VALUE GetDefaultValueScope, IN BROWSER_STORAGE *Storage, IN BOOLEAN RetrieveValueFirst, IN BOOLEAN SkipGetAltCfg)
UINT64 GetArrayData(IN VOID *Array, IN UINT8 Type, IN UINTN Index)
EFI_STATUS EFIAPI PasswordCheck(IN FORM_DISPLAY_ENGINE_FORM *Form, IN FORM_DISPLAY_ENGINE_STATEMENT *Statement, IN EFI_STRING PasswordString OPTIONAL)
Definition: Setup.c:6292
FORMSET_STORAGE * GetFstStgFromVarId(IN FORM_BROWSER_FORMSET *FormSet, IN EFI_VARSTORE_ID VarStoreId)
Definition: IfrParse.c:467
GET_SET_QUESTION_VALUE_WITH
Definition: Setup.h:560
UINT32 PopupErrorMessage(IN UINT32 BrowserStatus, IN EFI_HII_HANDLE HiiHandle, IN EFI_IFR_OP_HEADER *OpCode OPTIONAL, IN CHAR16 *ErrorString)
Definition: Setup.c:399
VOID SetArrayData(IN VOID *Array, IN UINT8 Type, IN UINTN Index, IN UINT64 Value)
QUESTION_OPTION * ValueToOption(IN FORM_BROWSER_STATEMENT *Question, IN EFI_HII_VALUE *OptionValue)
Definition: Setup.c:4191
FORM_ENTRY_INFO * UiAddMenuList(IN EFI_HII_HANDLE HiiHandle, IN EFI_GUID *FormSetGuid, IN UINT16 FormId, IN UINT16 QuestionId)
Definition: Setup.c:85
EFI_STATUS StorageToConfigResp(IN BROWSER_STORAGE *Storage, IN CHAR16 **ConfigResp, IN CHAR16 *ConfigRequest, IN BOOLEAN GetEditBuf)
Definition: Setup.c:1228
BOOLEAN EFIAPI IsBrowserDataModified(VOID)
Definition: Setup.c:6536
BOOLEAN IsNvUpdateRequiredForFormSet(IN FORM_BROWSER_FORMSET *FormSet)
VOID EFIAPI RegiserExitHandler(IN EXIT_HANDLER Handler)
Definition: Setup.c:6519
VOID CleanBrowserStorage(IN OUT FORM_BROWSER_FORMSET *FormSet)
Definition: Setup.c:5339
BOOLEAN IsQuestionValueChanged(IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form, IN OUT FORM_BROWSER_STATEMENT *Question, IN GET_SET_QUESTION_VALUE_WITH GetValueFrom)
Definition: Setup.c:5011
VOID FreeBrowserStrings(VOID)
EFI_STATUS SetQuestionValue(IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form, IN OUT FORM_BROWSER_STATEMENT *Question, IN GET_SET_QUESTION_VALUE_WITH SetValueTo)
Definition: Setup.c:1913
BOOLEAN IsTrue(IN EFI_HII_VALUE *Result)
Definition: Expression.c:3692
EFI_STATUS GetQuestionValue(IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form, IN OUT FORM_BROWSER_STATEMENT *Question, IN GET_SET_QUESTION_VALUE_WITH GetValueFrom)
Definition: Setup.c:1581
EFI_STRING_ID NewString(IN CHAR16 *String, IN EFI_HII_HANDLE HiiHandle)
Definition: Setup.c:981
VOID RestoreBrowserContext(VOID)
Definition: Setup.c:6137
EFI_STATUS EFIAPI RegisterHotKey(IN EFI_INPUT_KEY *KeyData, IN UINT32 Action, IN UINT16 DefaultId, IN EFI_STRING HelpString OPTIONAL)
Definition: Setup.c:6438
VOID UiCopyMenuList(OUT LIST_ENTRY *NewMenuListHead, IN LIST_ENTRY *CurrentMenuListHead)
Definition: Setup.c:289
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
VOID * EFI_EVENT
Definition: UefiBaseType.h:37
VOID * EFI_HANDLE
Definition: UefiBaseType.h:33
VOID * EFI_HII_HANDLE
Definition: Base.h:213