]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/SetupBrowserDxe/Setup.h
1) Add BufToHexString, HexStringToBuf and IsHexDigit to BaseLib.
[mirror_edk2.git] / MdeModulePkg / Universal / SetupBrowserDxe / Setup.h
CommitLineData
93e3992d 1/** @file
2
3Copyright (c) 2007, Intel Corporation
4All rights reserved. This program and the accompanying materials
5are licensed and made available under the terms and conditions of the BSD License
6which accompanies this distribution. The full text of the license may be found at
7http://opensource.org/licenses/bsd-license.php
8
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12Module Name:
13
14 Setup.h
15
16Abstract:
17
18
19Revision History
20
21
22**/
23
24#ifndef _SETUP_H
25#define _SETUP_H
26
27
28#include <PiDxe.h>
29
30#include <Protocol/Print.h>
31#include <Protocol/SimpleTextOut.h>
32#include <Protocol/SimpleTextIn.h>
33#include <Protocol/FormBrowser2.h>
34#include <Protocol/DevicePath.h>
35#include <Protocol/UnicodeCollation.h>
36#include <Protocol/HiiConfigAccess.h>
37#include <Protocol/HiiConfigRouting.h>
38#include <Protocol/HiiDatabase.h>
39#include <Protocol/HiiString.h>
40
41#include <MdeModuleHii.h>
42
43#include <Library/GraphicsLib.h>
44#include <Library/PrintLib.h>
45#include <Library/DebugLib.h>
46#include <Library/BaseMemoryLib.h>
47#include <Library/UefiRuntimeServicesTableLib.h>
48#include <Library/UefiDriverEntryPoint.h>
49#include <Library/UefiBootServicesTableLib.h>
50#include <Library/BaseLib.h>
51#include <Library/MemoryAllocationLib.h>
52#include <Library/IfrSupportLib.h>
9226efe5 53#include <Library/ExtendedIfrSupportLib.h>
93e3992d 54#include <Library/HiiLib.h>
9226efe5 55#include <Library/ExtendedHiiLib.h>
93e3992d 56
93e3992d 57#include "Colors.h"
58
93e3992d 59//
60// This is the generated header file which includes whatever needs to be exported (strings + IFR)
61//
62
63extern UINT8 SetupBrowserStrings[];
64
65//
66// Screen definitions
67//
68#define BANNER_HEIGHT 6
69#define BANNER_COLUMNS 3
70
71#define FRONT_PAGE_HEADER_HEIGHT 6
72#define NONE_FRONT_PAGE_HEADER_HEIGHT 3
73#define LEFT_SKIPPED_COLUMNS 4
74#define FOOTER_HEIGHT 4
75#define STATUS_BAR_HEIGHT 1
76#define SCROLL_ARROW_HEIGHT 1
77#define POPUP_PAD_SPACE_COUNT 5
78#define POPUP_FRAME_WIDTH 2
79
80//
81// Definition for function key setting
82//
83#define NONE_FUNCTION_KEY_SETTING 0
84#define DEFAULT_FUNCTION_KEY_SETTING (FUNCTION_ONE | FUNCTION_TWO | FUNCTION_NINE | FUNCTION_TEN)
85
86#define FUNCTION_ONE (1 << 0)
87#define FUNCTION_TWO (1 << 1)
88#define FUNCTION_NINE (1 << 2)
89#define FUNCTION_TEN (1 << 3)
90
91typedef struct {
92 EFI_GUID FormSetGuid;
93 UINTN KeySetting;
94} FUNCTIION_KEY_SETTING;
95
96//
97// Character definitions
98//
99#define CHAR_SPACE 0x0020
100#define UPPER_LOWER_CASE_OFFSET 0x20
101
102//
103// Time definitions
104//
105#define ONE_SECOND 10000000
106
107//
108// Display definitions
109//
110#define LEFT_HYPER_DELIMITER L'<'
111#define RIGHT_HYPER_DELIMITER L'>'
112
113#define LEFT_ONEOF_DELIMITER L'<'
114#define RIGHT_ONEOF_DELIMITER L'>'
115
116#define LEFT_NUMERIC_DELIMITER L'['
117#define RIGHT_NUMERIC_DELIMITER L']'
118
119#define LEFT_CHECKBOX_DELIMITER L'['
120#define RIGHT_CHECKBOX_DELIMITER L']'
121
122#define CHECK_ON L'X'
123#define CHECK_OFF L' '
124
125#define TIME_SEPARATOR L':'
126#define DATE_SEPARATOR L'/'
127
128#define YES_ANSWER L'Y'
129#define NO_ANSWER L'N'
130
131//
132// This is the Input Error Message
133//
134#define INPUT_ERROR 1
135
136//
137// This is the NV RAM update required Message
138//
139#define NV_UPDATE_REQUIRED 2
140
141//
142// Refresh the Status Bar with flags
143//
144#define REFRESH_STATUS_BAR 0xff
145
146//
147// Incremental string lenght of ConfigRequest
148//
149#define CONFIG_REQUEST_STRING_INCREMENTAL 1024
150
151//
152// HII value compare result
153//
154#define HII_VALUE_UNDEFINED 0
155#define HII_VALUE_EQUAL 1
156#define HII_VALUE_LESS_THAN 2
157#define HII_VALUE_GREATER_THAN 3
158
159//
160// Incremental size of stack for expression
161//
162#define EXPRESSION_STACK_SIZE_INCREMENT 0x100
163
164
165#define EFI_SPECIFICATION_ERRATA_VERSION 0
166
167#define EFI_IFR_SPECIFICATION_VERSION \
168 ((((EFI_SPECIFICATION_VERSION) >> 8) & 0xff00) | \
169 (((EFI_SPECIFICATION_VERSION) & 0xf) << 4) | \
170 ((EFI_SPECIFICATION_ERRATA_VERSION) & 0xf))
171
172#define SETUP_DRIVER_SIGNATURE EFI_SIGNATURE_32 ('F', 'B', 'D', 'V')
173typedef struct {
174 UINT32 Signature;
175
176 EFI_HANDLE Handle;
177
178 //
179 // Produced protocol
180 //
181 EFI_FORM_BROWSER2_PROTOCOL FormBrowser2;
182 EFI_PRINT_PROTOCOL Print;
183
184} SETUP_DRIVER_PRIVATE_DATA;
185
186typedef struct {
187 EFI_STRING_ID Banner[BANNER_HEIGHT][BANNER_COLUMNS];
188} BANNER_DATA;
189
190//
191// IFR relative definition
192//
193#define EFI_HII_EXPRESSION_INCONSISTENT_IF 0
194#define EFI_HII_EXPRESSION_NO_SUBMIT_IF 1
195#define EFI_HII_EXPRESSION_GRAY_OUT_IF 2
196#define EFI_HII_EXPRESSION_SUPPRESS_IF 3
197#define EFI_HII_EXPRESSION_DISABLE_IF 4
198#define EFI_HII_EXPRESSION_VALUE 5
199#define EFI_HII_EXPRESSION_RULE 6
200
201#define EFI_HII_VARSTORE_BUFFER 0
202#define EFI_HII_VARSTORE_NAME_VALUE 1
203#define EFI_HII_VARSTORE_EFI_VARIABLE 2
204
205#define FORM_INCONSISTENT_VALIDATION 0
206#define FORM_NO_SUBMIT_VALIDATION 1
207
208typedef struct {
209 UINT8 Type;
210 EFI_IFR_TYPE_VALUE Value;
211} EFI_HII_VALUE;
212
213#define NAME_VALUE_NODE_SIGNATURE EFI_SIGNATURE_32 ('N', 'V', 'S', 'T')
214
215typedef struct {
216 UINTN Signature;
217 LIST_ENTRY Link;
218 CHAR16 *Name;
219 CHAR16 *Value;
220 CHAR16 *EditValue;
221} NAME_VALUE_NODE;
222
223#define NAME_VALUE_NODE_FROM_LINK(a) CR (a, NAME_VALUE_NODE, Link, NAME_VALUE_NODE_SIGNATURE)
224
225#define FORMSET_STORAGE_SIGNATURE EFI_SIGNATURE_32 ('F', 'S', 'T', 'G')
226
227typedef struct {
228 UINTN Signature;
229 LIST_ENTRY Link;
230
231 UINT8 Type; // Storage type
232
233 UINT16 VarStoreId;
234 EFI_GUID Guid;
235
236 CHAR16 *Name; // For EFI_IFR_VARSTORE
237 UINT16 Size;
238 UINT8 *Buffer;
239 UINT8 *EditBuffer; // Edit copy for Buffer Storage
240
241 LIST_ENTRY NameValueListHead; // List of NAME_VALUE_NODE
242
243 UINT32 Attributes; // For EFI_IFR_VARSTORE_EFI: EFI Variable attribute
244
245 CHAR16 *ConfigHdr; // <ConfigHdr>
246 CHAR16 *ConfigRequest; // <ConfigRequest> = <ConfigHdr> + <RequestElement>
247 UINTN ElementCount; // Number of <RequestElement> in the <ConfigRequest>
248 UINTN SpareStrLen; // Spare length of ConfigRequest string buffer
249} FORMSET_STORAGE;
250
251#define FORMSET_STORAGE_FROM_LINK(a) CR (a, FORMSET_STORAGE, Link, FORMSET_STORAGE_SIGNATURE)
252
253#define EXPRESSION_OPCODE_SIGNATURE EFI_SIGNATURE_32 ('E', 'X', 'O', 'P')
254
255typedef struct {
256 UINTN Signature;
257 LIST_ENTRY Link;
258
259 UINT8 Operand;
260
261 UINT8 Format; // For EFI_IFR_TO_STRING, EFI_IFR_FIND
262 UINT8 Flags; // For EFI_IFR_SPAN
263 UINT8 RuleId; // For EFI_IFR_RULE_REF
264
265 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
266
267 EFI_QUESTION_ID QuestionId; // For EFI_IFR_EQ_ID_ID, EFI_IFR_EQ_ID_LIST, EFI_IFR_QUESTION_REF1
268 EFI_QUESTION_ID QuestionId2;
269
270 UINT16 ListLength; // For EFI_IFR_EQ_ID_LIST
271 UINT16 *ValueList;
272
273 EFI_STRING_ID DevicePath; // For EFI_IFR_QUESTION_REF3_2, EFI_IFR_QUESTION_REF3_3
274 EFI_GUID Guid;
275} EXPRESSION_OPCODE;
276
277#define EXPRESSION_OPCODE_FROM_LINK(a) CR (a, EXPRESSION_OPCODE, Link, EXPRESSION_OPCODE_SIGNATURE)
278
279#define FORM_EXPRESSION_SIGNATURE EFI_SIGNATURE_32 ('F', 'E', 'X', 'P')
280
281typedef struct {
282 UINTN Signature;
283 LIST_ENTRY Link;
284
285 UINT8 Type; // Type for this expression
286
287 UINT8 RuleId; // For EFI_IFR_RULE only
288 EFI_STRING_ID Error; // For EFI_IFR_NO_SUBMIT_IF, EFI_IFR_INCONSISTENT_IF only
289
290 EFI_HII_VALUE Result; // Expression evaluation result
291
292 LIST_ENTRY OpCodeListHead; // OpCodes consist of this expression (EXPRESSION_OPCODE)
293} FORM_EXPRESSION;
294
295#define FORM_EXPRESSION_FROM_LINK(a) CR (a, FORM_EXPRESSION, Link, FORM_EXPRESSION_SIGNATURE)
296
297#define QUESTION_DEFAULT_SIGNATURE EFI_SIGNATURE_32 ('Q', 'D', 'F', 'T')
298
299typedef struct {
300 UINTN Signature;
301 LIST_ENTRY Link;
302
303 UINT16 DefaultId;
304 EFI_HII_VALUE Value; // Default value
305
306 FORM_EXPRESSION *ValueExpression; // Not-NULL indicates default value is provided by EFI_IFR_VALUE
307} QUESTION_DEFAULT;
308
309#define QUESTION_DEFAULT_FROM_LINK(a) CR (a, QUESTION_DEFAULT, Link, QUESTION_DEFAULT_SIGNATURE)
310
311#define QUESTION_OPTION_SIGNATURE EFI_SIGNATURE_32 ('Q', 'O', 'P', 'T')
312
313typedef struct {
314 UINTN Signature;
315 LIST_ENTRY Link;
316
317 EFI_STRING_ID Text;
318 UINT8 Flags;
319 EFI_HII_VALUE Value;
320 EFI_IMAGE_ID ImageId;
321
322 FORM_EXPRESSION *SuppressExpression; // Non-NULL indicates nested inside of SuppressIf
323} QUESTION_OPTION;
324
325#define QUESTION_OPTION_FROM_LINK(a) CR (a, QUESTION_OPTION, Link, QUESTION_OPTION_SIGNATURE)
326
327#define FORM_BROWSER_STATEMENT_SIGNATURE EFI_SIGNATURE_32 ('F', 'S', 'T', 'A')
328typedef struct {
329 UINTN Signature;
330 LIST_ENTRY Link;
331
332 UINT8 Operand; // The operand (first byte) of this Statement or Question
333
334 //
335 // Statement Header
336 //
337 EFI_STRING_ID Prompt;
338 EFI_STRING_ID Help;
339 EFI_STRING_ID TextTwo; // For EFI_IFR_TEXT
340
341 //
342 // Question Header
343 //
344 EFI_QUESTION_ID QuestionId; // The value of zero is reserved
345 EFI_VARSTORE_ID VarStoreId; // A value of zero indicates no variable storage
346 FORMSET_STORAGE *Storage;
347 union {
348 EFI_STRING_ID VarName;
349 UINT16 VarOffset;
350 } VarStoreInfo;
351 UINT16 StorageWidth;
352 UINT8 QuestionFlags;
353 CHAR16 *VariableName; // Name/Value or EFI Variable name
354 CHAR16 *BlockName; // Buffer storage block name: "OFFSET=...WIDTH=..."
355
356 EFI_HII_VALUE HiiValue; // Edit copy for checkbox, numberic, oneof
357 UINT8 *BufferValue; // Edit copy for string, password, orderedlist
358
359 //
360 // OpCode specific members
361 //
362 UINT8 Flags; // for EFI_IFR_CHECKBOX, EFI_IFR_DATE, EFI_IFR_NUMERIC, EFI_IFR_ONE_OF,
363 // EFI_IFR_ORDERED_LIST, EFI_IFR_STRING,EFI_IFR_SUBTITLE,EFI_IFR_TIME, EFI_IFR_BANNER
364 UINT8 MaxContainers; // for EFI_IFR_ORDERED_LIST
365
366 UINT16 BannerLineNumber; // for EFI_IFR_BANNER, 1-based line number
367 EFI_STRING_ID QuestionConfig; // for EFI_IFR_ACTION, if 0 then no configuration string will be processed
368
369 UINT64 Minimum; // for EFI_IFR_ONE_OF/EFI_IFR_NUMERIC, it's Min/Max value
370 UINT64 Maximum; // for EFI_IFR_STRING/EFI_IFR_PASSWORD, it's Min/Max length
371 UINT64 Step;
372
373 EFI_DEFAULT_ID DefaultId; // for EFI_IFR_RESET_BUTTON
374 EFI_FORM_ID RefFormId; // for EFI_IFR_REF
375 EFI_QUESTION_ID RefQuestionId; // for EFI_IFR_REF2
376 EFI_GUID RefFormSetId; // for EFI_IFR_REF3
377 EFI_STRING_ID RefDevicePath; // for EFI_IFR_REF4
378
379 //
380 // Get from IFR parsing
381 //
382 FORM_EXPRESSION *ValueExpression; // nested EFI_IFR_VALUE, provide Question value and indicate Question is ReadOnly
383 LIST_ENTRY DefaultListHead; // nested EFI_IFR_DEFAULT list (QUESTION_DEFAULT), provide default values
384 LIST_ENTRY OptionListHead; // nested EFI_IFR_ONE_OF_OPTION list (QUESTION_OPTION)
385
386 EFI_IMAGE_ID ImageId; // nested EFI_IFR_IMAGE
387 UINT8 RefreshInterval; // nested EFI_IFR_REFRESH, refresh interval(in seconds) for Question value, 0 means no refresh
388 BOOLEAN InSubtitle; // nesting inside of EFI_IFR_SUBTITLE
389
390 LIST_ENTRY InconsistentListHead;// nested inconsistent expression list (FORM_EXPRESSION)
391 LIST_ENTRY NoSubmitListHead; // nested nosubmit expression list (FORM_EXPRESSION)
392 FORM_EXPRESSION *GrayOutExpression; // nesting inside of GrayOutIf
393 FORM_EXPRESSION *SuppressExpression; // nesting inside of SuppressIf
394
395} FORM_BROWSER_STATEMENT;
396
397#define FORM_BROWSER_STATEMENT_FROM_LINK(a) CR (a, FORM_BROWSER_STATEMENT, Link, FORM_BROWSER_STATEMENT_SIGNATURE)
398
399#define FORM_BROWSER_FORM_SIGNATURE EFI_SIGNATURE_32 ('F', 'F', 'R', 'M')
400
401typedef struct {
402 UINTN Signature;
403 LIST_ENTRY Link;
404
405 UINT16 FormId;
406 EFI_STRING_ID FormTitle;
407
408 EFI_IMAGE_ID ImageId;
409
410 LIST_ENTRY ExpressionListHead; // List of Expressions (FORM_EXPRESSION)
411 LIST_ENTRY StatementListHead; // List of Statements and Questions (FORM_BROWSER_STATEMENT)
412} FORM_BROWSER_FORM;
413
414#define FORM_BROWSER_FORM_FROM_LINK(a) CR (a, FORM_BROWSER_FORM, Link, FORM_BROWSER_FORM_SIGNATURE)
415
416#define FORMSET_DEFAULTSTORE_SIGNATURE EFI_SIGNATURE_32 ('F', 'D', 'F', 'S')
417
418typedef struct {
419 UINTN Signature;
420 LIST_ENTRY Link;
421
422 UINT16 DefaultId;
423 EFI_STRING_ID DefaultName;
424} FORMSET_DEFAULTSTORE;
425
426#define FORMSET_DEFAULTSTORE_FROM_LINK(a) CR (a, FORMSET_DEFAULTSTORE, Link, FORMSET_DEFAULTSTORE_SIGNATURE)
427
428typedef struct {
429 EFI_HII_HANDLE HiiHandle;
430 EFI_HANDLE DriverHandle;
431 EFI_HII_CONFIG_ACCESS_PROTOCOL *ConfigAccess;
432 EFI_DEVICE_PATH_PROTOCOL *DevicePath;
433
434 UINTN IfrBinaryLength;
435 UINT8 *IfrBinaryData;
436
437 EFI_GUID Guid;
438 EFI_STRING_ID FormSetTitle;
439 EFI_STRING_ID Help;
440 UINT16 Class;
441 UINT16 SubClass;
442 EFI_IMAGE_ID ImageId;
443
444 FORM_BROWSER_STATEMENT *StatementBuffer; // Buffer for all Statements and Questions
445 EXPRESSION_OPCODE *ExpressionBuffer; // Buffer for all Expression OpCode
446
447 LIST_ENTRY StorageListHead; // Storage list (FORMSET_STORAGE)
448 LIST_ENTRY DefaultStoreListHead; // DefaultStore list (FORMSET_DEFAULTSTORE)
449 LIST_ENTRY FormListHead; // Form list (FORM_BROWSER_FORM)
450} FORM_BROWSER_FORMSET;
451
452
453extern EFI_HII_DATABASE_PROTOCOL *mHiiDatabase;
454extern EFI_HII_STRING_PROTOCOL *mHiiString;
455extern EFI_HII_CONFIG_ROUTING_PROTOCOL *mHiiConfigRouting;
456
457extern BANNER_DATA *BannerData;
458extern EFI_HII_HANDLE FrontPageHandle;
459extern UINTN gClassOfVfr;
460extern UINTN gFunctionKeySetting;
461extern BOOLEAN gResetRequired;
462extern BOOLEAN gNvUpdateRequired;
463extern EFI_HII_HANDLE gHiiHandle;
464extern BOOLEAN gFirstIn;
465extern UINT16 gDirection;
466extern EFI_SCREEN_DESCRIPTOR gScreenDimensions;
467extern BOOLEAN gUpArrow;
468extern BOOLEAN gDownArrow;
469
470//
471// Browser Global Strings
472//
473extern CHAR16 *gFunctionOneString;
474extern CHAR16 *gFunctionTwoString;
475extern CHAR16 *gFunctionNineString;
476extern CHAR16 *gFunctionTenString;
477extern CHAR16 *gEnterString;
478extern CHAR16 *gEnterCommitString;
479extern CHAR16 *gEscapeString;
480extern CHAR16 *gSaveFailed;
481extern CHAR16 *gMoveHighlight;
482extern CHAR16 *gMakeSelection;
483extern CHAR16 *gDecNumericInput;
484extern CHAR16 *gHexNumericInput;
485extern CHAR16 *gToggleCheckBox;
486extern CHAR16 *gPromptForData;
487extern CHAR16 *gPromptForPassword;
488extern CHAR16 *gPromptForNewPassword;
489extern CHAR16 *gConfirmPassword;
490extern CHAR16 *gConfirmError;
491extern CHAR16 *gPassowordInvalid;
492extern CHAR16 *gPressEnter;
493extern CHAR16 *gEmptyString;
494extern CHAR16 *gAreYouSure;
495extern CHAR16 *gYesResponse;
496extern CHAR16 *gNoResponse;
497extern CHAR16 *gMiniString;
498extern CHAR16 *gPlusString;
499extern CHAR16 *gMinusString;
500extern CHAR16 *gAdjustNumber;
501
502extern CHAR16 gPromptBlockWidth;
503extern CHAR16 gOptionBlockWidth;
504extern CHAR16 gHelpBlockWidth;
505
506extern EFI_GUID gZeroGuid;
507extern EFI_GUID gTianoHiiIfrGuid;
508
509//
510// Global Procedure Defines
511//
512VOID
513InitializeBrowserStrings (
514 VOID
515 )
516;
517
518UINTN
519_Print (
520 IN CHAR16 *fmt,
521 ...
522 )
523;
524
525UINTN
526PrintString (
527 CHAR16 *String
528 )
529;
530
531UINTN
532PrintChar (
533 CHAR16 Character
534 )
535;
536
537UINTN
538PrintAt (
539 IN UINTN Column,
540 IN UINTN Row,
541 IN CHAR16 *fmt,
542 ...
543 )
544;
545
546UINTN
547PrintStringAt (
548 IN UINTN Column,
549 IN UINTN Row,
550 CHAR16 *String
551 )
552;
553
554UINTN
555PrintCharAt (
556 IN UINTN Column,
557 IN UINTN Row,
558 CHAR16 Character
559 )
560;
561
562EFI_STATUS
563ParseOpCodes (
564 IN FORM_BROWSER_FORMSET *FormSet
565 )
566;
567
568VOID
569DestroyFormSet (
570 IN OUT FORM_BROWSER_FORMSET *FormSet
571 )
572;
573
574VOID
575DisplayPageFrame (
576 VOID
577 )
578;
579
580EFI_STRING_ID
581NewString (
582 IN CHAR16 *String,
583 IN EFI_HII_HANDLE HiiHandle
584 )
585;
586
587EFI_STATUS
588DeleteString (
589 IN EFI_STRING_ID StringId,
590 IN EFI_HII_HANDLE HiiHandle
591 )
592;
593CHAR16 *
594GetToken (
595 IN EFI_STRING_ID Token,
596 IN EFI_HII_HANDLE HiiHandle
597 )
598;
599
600VOID
601CreateSharedPopUp (
602 IN UINTN RequestedWidth,
603 IN UINTN NumberOfLines,
604 IN CHAR16 **ArrayOfStrings
605 )
606;
607
608EFI_STATUS
609CreateDialog (
610 IN UINTN NumberOfLines,
611 IN BOOLEAN HotKey,
612 IN UINTN MaximumStringSize,
613 OUT CHAR16 *StringBuffer,
614 OUT EFI_INPUT_KEY *KeyValue,
615 IN CHAR16 *String,
616 ...
617 )
618;
619
620EFI_STATUS
621GetQuestionValue (
622 IN FORM_BROWSER_FORMSET *FormSet,
623 IN FORM_BROWSER_FORM *Form,
624 IN OUT FORM_BROWSER_STATEMENT *Question,
625 IN BOOLEAN Cached
626 )
627;
628
629EFI_STATUS
630SetQuestionValue (
631 IN FORM_BROWSER_FORMSET *FormSet,
632 IN FORM_BROWSER_FORM *Form,
633 IN OUT FORM_BROWSER_STATEMENT *Question,
634 IN BOOLEAN Cached
635 )
636;
637
638EFI_STATUS
639ValidateQuestion (
640 IN FORM_BROWSER_FORMSET *FormSet,
641 IN FORM_BROWSER_FORM *Form,
642 IN FORM_BROWSER_STATEMENT *Question,
643 IN UINTN Type
644 )
645;
646
647EFI_STATUS
648SubmitForm (
649 IN FORM_BROWSER_FORMSET *FormSet,
650 IN FORM_BROWSER_FORM *Form
651 )
652;
653
654EFI_STATUS
655GetQuestionDefault (
656 IN FORM_BROWSER_FORMSET *FormSet,
657 IN FORM_BROWSER_FORM *Form,
658 IN FORM_BROWSER_STATEMENT *Question,
659 IN UINT16 DefaultId
660 )
661;
662
663EFI_STATUS
664InitializeCurrentSetting (
665 IN OUT FORM_BROWSER_FORMSET *FormSet
666 )
667;
668
669EFI_STATUS
670InitializeFormSet (
671 IN EFI_HII_HANDLE Handle,
672 IN OUT EFI_GUID *FormSetGuid,
673 OUT FORM_BROWSER_FORMSET *FormSet
674 )
675;
676
677EFI_STATUS
678ExtractFormDefault (
679 IN FORM_BROWSER_FORMSET *FormSet,
680 IN FORM_BROWSER_FORM *Form,
681 IN UINT16 DefaultId
682 )
683;
684
685EFI_STATUS
686LoadFormConfig (
687 IN FORM_BROWSER_FORMSET *FormSet,
688 IN FORM_BROWSER_FORM *Form
689 )
690;
691
692EFI_STATUS
693StorageToConfigResp (
694 IN FORMSET_STORAGE *Storage,
695 IN CHAR16 **ConfigResp
696 )
697;
698
699EFI_STATUS
700ConfigRespToStorage (
701 IN FORMSET_STORAGE *Storage,
702 IN CHAR16 *ConfigResp
703 )
704;
705
706EFI_STATUS
707LoadStorage (
708 IN FORM_BROWSER_FORMSET *FormSet,
709 IN FORMSET_STORAGE *Storage
710 )
711;
712
713EFI_STATUS
714GetIfrBinaryData (
715 IN EFI_HII_HANDLE Handle,
716 IN OUT EFI_GUID *FormSetGuid,
717 OUT UINTN *BinaryLength,
718 OUT UINT8 **BinaryData
719 )
720;
721
722EFI_STATUS
723EFIAPI
724SendForm (
725 IN CONST EFI_FORM_BROWSER2_PROTOCOL *This,
726 IN EFI_HII_HANDLE *Handles,
727 IN UINTN HandleCount,
728 IN EFI_GUID *FormSetGuid, OPTIONAL
729 IN UINT16 FormId, OPTIONAL
730 IN CONST EFI_SCREEN_DESCRIPTOR *ScreenDimensions, OPTIONAL
731 OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest OPTIONAL
732 )
733;
734
735EFI_STATUS
736EFIAPI
737BrowserCallback (
738 IN CONST EFI_FORM_BROWSER2_PROTOCOL *This,
739 IN OUT UINTN *ResultsDataSize,
740 IN OUT EFI_STRING ResultsData,
741 IN BOOLEAN RetrieveData,
742 IN CONST EFI_GUID *VariableGuid, OPTIONAL
743 IN CONST CHAR16 *VariableName OPTIONAL
744 )
745;
746
747#endif