2.11 VFR Form Definition
1
vfrFormDefinition ::=
2
"form" "formid" "=" Number ","
3
"title" "=" getStringId ";"
4
(
5
vfrStatementImage
6
| vfrStatementLocked
7
| vfrStatementRules
8
| vfrStatementDefault
9
| vfrStatementStat
10
| vfrStatementQuestions
11
| vfrStatementConditional
12
| vfrStatementLabel
13
| vfrStatementBanner
14
| vfrStatementExtension
15
| vfrStatementModal
16
)*
17
"endform" ";"
Copied!

BEHAVIORS AND RESTRICTIONS

Note: formid must be unique for each form statement in a given formset.

Example

None.

2.11.1 VFR Form Map Definition

1
vfrFormMapDefinition ::=
2
"formmap" "formid" "=" Number ","
3
(
4
"maptitle" "=" getStringId ";"
5
"mapguid" "=" guidDefinition ";"
6
)*
7
(
8
vfrStatementImage
9
| vfrStatementLocked
10
| vfrStatementRules
11
| vfrStatementDefault
12
| vfrStatementStat
13
| vfrStatementQuestions
14
| vfrStatementConditional
15
| vfrStatementLabel
16
| vfrStatementBanner
17
| vfrStatementExtension
18
| vfrStatementModal
19
)*
20
"endform" ";"
Copied!

BEHAVIORS AND RESTRICTIONS

Note: formid must be unique for each form statement in a given formset.

Example

None.

2.11.2 VFR Image Statement Definition

1
vfrStatementImage ::=
2
vfrImageTag ";"
Copied!
Note: There are no BEHAVIORS AND RESTRICTIONS or an Example for this section.

2.11.3 VFR Locked Statement Definition

1
vfrStatementLocked ::=
2
vfrLockedTag ";"
Copied!
Note: There are no BEHAVIORS AND RESTRICTIONS or an Example for this section.

2.11.4 VFR Rule Statement Definition

1
vfrStatementRules ::=
2
"rule" StringIdentifier ","
3
vfrStatementExpression
4
"endrule" ";"
Copied!

BEHAVIORS AND RESTRICTIONS:

StringIdentifier is the name that can be referenced by a question. It should be unique in the formset.

Example

1
rule MyRule, 1 + 2
2
endrule;
Copied!

2.11.5 VFR Statement Definition

1
vfrStatementStat ::=
2
vfrStatementSubTitle
3
| vfrStatementStaticText
4
| vfrStatementCrossReference
Copied!
Note: There are no BEHAVIORS AND RESTRICTIONS or an Example for this section.

2.11.5.1 VFR SubTitle Definition

1
vfrStatementSubTitle ::=
2
"subtitle"
3
"text" "=" getStringId
4
{ "," "flags" "=" vfrSubtitleFlags }
5
(
6
{ "," vfrStatementStatTagList } ";"
7
|
8
{ "," vfrStatementStatTagList }
9
{ "," (vfrStatementStat | vfrStatementQuestions)*}
10
"endsubtitle" ";"
11
)
12
13
vfrSubtitleFlags ::=
14
subtitleFlagsField ( "|" subtitleFlagsField )* ";"
15
16
subtitleFlagsField ::=
17
Number
18
| "HORIZONTAL"
Copied!

BEHAVIORS AND RESTRICTIONS

Note: flags is optional, and the default value is 0.

Example

1
subtitle
2
text = STRING_TOKEN(STR_SUBTITLE_TEXT),
3
flags = HORIZONTAL;
4
5
subtitle
6
text = STRING_TOKEN(STR_SUBTITLE_TEXT),
7
8
text
9
help = STRING_TOKEN(STR_TEXT_TEXT),
10
text = STRING_TOKEN(STR_TEXT_TEXT);
11
flags = RESET_REQUIRED,
12
key = 0x0001;
13
14
endsubtitle;
Copied!

2.11.5.2 VFR Text Definition

1
vfrStatementStaticText ::=
2
"text"
3
"help" "=" getStringId ","
4
"text" "=" getStringId
5
{ "," "text" "=" getStringId }
6
{
7
"," "flags" "=" staticTextFlagsField ( "|" staticTextFlagsField )*
8
"," "key" "=" Number
9
}
10
{ "," vfrStatementStatTagList } ";"
11
12
staticTextFlagsField ::=
13
Number
14
| questionheaderFlagsField
Copied!

BEHAVIORS AND RESTRICTIONS

Note: flags is optional. The default value is 0.
If EFI_IFR_FLAGS_CALLBACK is set in flags then it will generate an EFI_IFR_ACTION op-code. Otherwise, it generates the EFI_IFR_TEXT op-code.
The value of key will be used as a question ID.

Example

Generates EFI_IFR_TEXT:
1
text
2
help = STRING_TOKEN(STR_TEXT_TEXT),
3
text = STRING_TOKEN(STR_TEXT_TEXT);
Copied!
Generates EFI_IFR_ACTION:
1
text
2
help = STRING_TOKEN(STR_TEXT_TEXT),
3
text = STRING_TOKEN(STR_TEXT_TEXT);
4
flags = RESET_REQUIRED,
5
key = 0x0001;
Copied!

2.11.5.3 VFR Cross Reference Type Statements Definition

1
vfrStatementCrossReference ::=
2
vfrStatementGoto
3
| vfrStatementResetButton
Copied!
Note: There are no BEHAVIORS AND RESTRICTIONS or an Example for this section.

2.11.5.3.1 VFR Goto Statement Definition

1
vfrStatementGoto ::=
2
"goto"
3
{
4
(
5
"devicePath" "=" getStringId ","
6
"formsetguid" "=" guidDefinition ","
7
"formid" "=" Number ","
8
"question" "=" Number ","
9
)
10
|
11
(
12
"formsetguid" "=" guidDefinition ","
13
"formid" "=" Number ","
14
"question" "=" Number ","
15
)
16
|
17
(
18
"formid" "=" Number ","
19
"question" "="
20
(
21
StringIdentifier ","
22
| Number ","
23
)
24
)
25
|
26
(
27
Number ","
28
)
29
}
30
vfrQuestionHeader
31
{ "," "flags" "=" vfrGotoFlags }
32
{ "," "key" "=" Number }
33
{ "," vfrStatementQuestionOptionList }
34
";"
35
36
vfrGotoFlags ::=
37
gotoFlagsField ( "|" gotoFlagsField )*
38
39
gotoFlagsField ::=
40
Number
41
| questionheaderFlagsField
Copied!

BEHAVIORS AND RESTRICTIONS

The value of key is used as a question ID.

Example

Generate EFI_IFR_REF without key
1
goto 1,
2
prompt = STRING_TOKEN(STR_GOTO_PROMPT),
3
help = STRING_TOKEN(STR_GOTO_HELP);
Copied!
Generate EFI_IFR_REF with key
1
goto 1,
2
prompt = STRING_TOKEN(STR_GOTO_PROMPT),
3
help = STRING_TOKEN(STR_GOTO_HELP);
4
key = 0x1234;
Copied!
Generate EFI_IFR_REF2
1
goto
2
formid = 1,
3
question = QuesttionRef,
4
prompt = STRING_TOKEN(STR_GOTO_PROMPT),
5
help = STRING_TOKEN(STR_GOTO_HELP);
Copied!
Generate EFI_IFR_REF3
1
goto
2
formsetguid = FORMSET_GUID,
3
formid = 1,
4
question = QuesttionRef,
5
prompt = STRING_TOKEN(STR_GOTO_PROMPT),
6
help = STRING_TOKEN(STR_GOTO_HELP);
Copied!
Generate EFI_IFR_REF4
1
goto
2
devicepath = STRING_TOKEN(STR_DEVICE_PATH),
3
formsetguid = FORMSET_GUID,
4
formid = 1,
5
question = QuesttionRef,
6
prompt = STRING_TOKEN(STR_GOTO_PROMPT),
7
help = STRING_TOKEN(STR_GOTO_HELP);
Copied!
Generate EFI_IFR_REF5 without varid
1
goto
2
prompt = STRING_TOKEN(STR_GOTO_PROMPT),
3
help = STRING_TOKEN(STR_GOTO_HELP);
Copied!
Generate EFI_IFR_REF5 with varid
1
goto
2
varid = MySTestData.mFieldRef,
3
prompt = STRING_TOKEN(STR_GOTO_PROMPT),
4
help = STRING_TOKEN STR_GOTO_HELP);
5
default = FID;QID;GuidValue;STRING_TOKEN(STR_DEVICE_PATH),
6
;
Copied!
Generate EFI_IFR_REF with option code
1
goto 1,
2
prompt = STRING_TOKEN(STR_GOTO_PROMPT),
3
help = STRING_TOKEN(STR_GOTO_HELP),
4
refresh interval = 3
5
;
Copied!

2.11.5.3.2 VFR ResetButton Statement Definition

1
vfrStatementResetButton ::=
2
"resetbutton"
3
"defaultStore" "=" StringIdentifier ","
4
vfrStatementHeader ","
5
{ vfrStatementStatTagList "," }
6
"endresetbutton" ";"
Copied!

BEHAVIORS AND RESTRICTIONS

Note: defaultStore should point to the default store defined before.

Example

1
resetbutton
2
defaultstore = DefaultStoreRef,
3
prompt = STRING_TOKEN(STR_RESET_BUTTON_PROMPT),
4
help = STRING_TOKEN(STR_RESET_BUTTON_HELP),
5
endresetbutton;
Copied!

2.11.6 VFR Question Type Statements Definition

1
vfrStatementQuestions ::=
2
vfrStatementBooleanType
3
| vfrStatementDate
4
| vfrStatementNumericType
5
| vfrStatementStringType
6
| vfrStatementOrderedList
7
| vfrStatementTime
Copied!
Note: There are no BEHAVIORS AND RESTRICTIONS or an Example for this section.

2.11.6.1 VFR Question Tag Definition

1
vfrStatementQuestionTag ::=
2
vfrStatementStatTag ","
3
| vfrStatementInconsistentIf
4
| vfrStatementNoSubmitIf
5
| vfrStatementDisableIfQuest
6
| vfrStatementRefresh
7
| vfrStatementVarstoreDevice
8
| vfrStatementExtension
9
| vfrStatementRefreshEvent
10
| vfrStatementWarningIf
Copied!
Note: There are no BEHAVIORS AND RESTRICTIONS or an Example for this section.

2.11.6.1.1 VFR Question Tag InconsistentIf Definition

1
vfrStatementInconsistentIf ::=
2
"inconsistentif"
3
"prompt" "=" getStringId ","
4
vfrStatementExpression
5
"endif"
Copied!

BEHAVIORS AND RESTRICTIONS

It can only be used in questions.

Example

1
checkbox
2
name = MyCheckBox,
3
varid = MySTestData.mField1,
4
questionid = 0xcb,
5
prompt = STRING_TOKEN(STR_CHECK_BOX_PROMPT),
6
help = STRING_TOKEN(STR_CHECK_BOX_HELP),
7
flags = CHECKBOX_DEFAULT | INTERACTIVE,
8
9
inconsistentif
10
prompt = STRING_TOKEN(STR_INCONSISTENT_IF),
11
ideqval MySTestData.mField1 == 2007
12
endif
13
endcheckbox;
Copied!

2.11.6.1.2 VFR Question Tag NoSubmitIf Definition

1
vfrStatementNoSubmitIf ::=
2
"nosubmitif"
3
"prompt" "=" getStringId ","
4
vfrStatementExpression
5
"endif"
Copied!

BEHAVIORS AND RESTRICTIONS

It can only be used in questions.

Example

1
checkbox
2
name = MyCheckBox,
3
varid = MySTestData.mField1,
4
questionid = 0xcb,
5
prompt = STRING_TOKEN(STR_CHECK_BOX_PROMPT),
6
help = STRING_TOKEN(STR_CHECK_BOX_HELP),
7
flags = CHECKBOX_DEFAULT | INTERACTIVE,
8
9
nosubmitif prompt = STRING_TOKEN(STR_NOSUBMIT_IF),
10
ideqval MySTestData.mField1 == 2007
11
endif
12
endcheckbox;
Copied!

2.11.6.1.3 VFR Question Tag DisableIf Definition

1
vfrStatementDisableIfQuest ::=
2
"disableif" vfrStatementExpression ";"
3
vfrStatementQuestionOptionList
4
"endif"
Copied!

BEHAVIORS AND RESTRICTIONS

None.

Example

1
checkbox
2
name = MyCheckBox,
3
varid = MySTestData.mField1,
4
questionid = 0xcb,
5
prompt = STRING_TOKEN(STR_CHECK_BOX_PROMPT),
6
help = STRING_TOKEN(STR_CHECK_BOX_HELP),
7
flags = CHECKBOX_DEFAULT | INTERACTIVE,
8
9
disableif
10
ideqvallist MySTestData.mField1 == 1 3 5 7;
11
refresh interval = 1
12
endif
13
endcheckbox;
Copied!

2.11.6.1.4 VFR Question Tag Refresh Definition

1
vfrStatementRefresh ::=
2
"refresh" "interval" "=" Number
Copied!

BEHAVIORS AND RESTRICTIONS

It can only be used in questions.

Example

1
numeric varid = MyData.Data,
2
prompt = STRING_TOKEN(STR_PROMPT),
3
help = STRING_TOKEN(STR_HELP),
4
minimum = 0,
5
maximum = 0xff,
6
refresh interval = 3
7
endnumeric;
Copied!

2.11.6.1.5 VFR Question Tag VarstoreDevice Definition

1
vfrStatementVarstoreDevice ::=
2
"varstoredevice" "=" getStringId ","
Copied!

BEHAVIORS AND RESTRICTIONS

It can only be used in questions.

Example

1
checkbox
2
name = MyCheckBox,
3
varid = MySTestData.mField1,
4
questionid = 0xcb,
5
prompt = STRING_TOKEN(STR_CHECK_BOX_PROMPT),
6
help = STRING_TOKEN(STR_CHECK_BOX_HELP),
7
flags = CHECKBOX_DEFAULT | INTERACTIVE,
8
9
varstoredevice = STRING_TOKEN(STR_VARSTOREDEVICE),
10
endcheckbox;
Copied!

2.11.6.1.6 VFR Question Tag RefreshEvent Definition

1
vfrStatementRefreshEvent ::=
2
"refreshguid" "=" guidDefinition ","
Copied!

BEHAVIORS AND RESTRICTIONS

It can only be used in questions.

Example

1
numeric
2
varid = MySTestData.mField2,
3
prompt = STRING_TOKEN(STR_NUMERIC_PROMPT),
4
help = STRING_TOKEN(STR_NUMERIC_HELP),
5
flags = DISPLAY_UINT_HEX,
6
minimum = 0,
7
maximum = 300,
8
step = 0,
9
refreshguid = EFI_IFR_REFRESH_ID_OP_GUID,
10
default = 175,
11
endnumeric;
Copied!

2.11.6.1.7 VFR Question Tag WarningIf Definition vfrStatement

1
WarningIf ::=
2
"warningif" "prompt" "=" getStringId "," {"timeout" "=" Number ","}
3
vfrStatementExpression
4
"endif"
Copied!

BEHAVIORS AND RESTRICTIONS

It can only be used in questions.

Example

1
checkbox
2
name = MyCheckBox,
3
varid = MySTestData.mField1,
4
questionid = 0xcb,
5
prompt = STRING_TOKEN(STR_CHECK_BOX_PROMPT),
6
help = STRING_TOKEN(STR_CHECK_BOX_HELP),
7
flags = CHECKBOX_DEFAULT | INTERACTIVE,
8
9
warningif prompt = STRING_TOKEN(STR_INCONSISTENT_IF), timeout = 5,
10
ideqval MySTestData.mField1 == 2007
11
endif
12
endcheckbox;
Copied!

2.11.6.2 VFR Question Tag List Definition

1
vfrStatementQuestionTagList ::=
2
( vfrStatementQuestionTag )*
Copied!
Note: There are no BEHAVIORS AND RESTRICTIONS or an Example for this section.

2.11.6.3 VFR Question Option Tag Definition

1
vfrStatementQuestionOptionTag ::=
2
vfrStatementSuppressIfQuest
3
| vfrStatementValue
4
| vfrStatementDefault
5
| vfrStatementOptions
6
| vfrStatementRead
7
| vfrStatementWrite
Copied!
Note: There are no BEHAVIORS AND RESTRICTIONS or an Example for this section.

2.11.6.3.1 VFR Question SuppressIf Statement Definition

1
vfrStatementSuppressIfQuest ::=
2
"suppressif" vfrStatementExpression ";"
3
vfrStatementQuestionOptionList
4
"endif"
Copied!
Note: There are no BEHAVIORS AND RESTRICTIONS or an Example for this section.

2.11.6.3.2 VFR Default Statement Definition

1
vfrStatementDefault ::=
2
"default"
3
(
4
(
5
vfrStatementValue ","
6
| "=" vfrConstantValueField ","
7
)
8
{ "defaultstore" "=" StringIdentifier "," }
9
)
Copied!

BEHAVIORS AND RESTRICTIONS

It can only be used in a question definition.
Note: defaultstore is optional and it points to the default store defined previously. If defaultstore is not defined, the EFIHII_DEFAULT_CLASS_STANDARD is assigned.

Example

1
default = 1,
2
default value = 1 + 2,
3
default = {1,2,3},
Copied!

2.11.6.3.3 VFR Value Statement Definition

1
vfrStatementValue ::=
2
"value" "=" vfrStatementExpression ";"
Copied!

BEHAVIORS AND RESTRICTIONS

None.

Example

1
Value = 0;
Copied!

2.11.6.3.4 VFR Option Type Statements Definition

1
vfrStatementOptions ::=
2
vfrStatementOneOfOption
Copied!
Note: There are no BEHAVIORS AND RESTRICTIONS or an Example for this section.

2.11.6.3.5 VFR OneOf Option Statement Definition

1
vfrStatementOneOfOption ::=
2
"option"
3
"text" "=" getStringId ","
4
"value" "=" vfrConstantValueField ","
5
"flags" "=" vfrOneOfOptionFlags
6
( "," vfrImageTag )*
7
";"
8
9
vfrOneOfOptionFlags ::=
10
oneofoptionFlagsField ( "|" oneofoptionFlagsField )*
11
12
oneofoptionFlagsField ::=
13
Number
14
| "OPTION_DEFAULT"
15
| "OPTION_DEFAULT_MFG"
16
| "INTERACTIVE"
17
| "RESET_REQUIRED"
18
| "DEFAULT"
19
| "REST_STYLE"
Copied!

BEHAVIORS AND RESTRICTIONS

An option statement is special; it is used to embellish or describe questions.
These statements can be used to give the possible value and set the default value for questions. In other words, they are not questions, but they influence the questions they embellish. Therefore, the options' flags are treated as question flags and can accept all values of question flags.
Options with the DEFAULT flags can be used to set the default value for questions.

Example

1
option text = STRING_TOKEN(STR_ONE_OF_TEXT), value = 0x2, flags = DEFAULT | RESET_REQUIRED;
Copied!

2.11.6.3.6 VFR Read Statement Definition

1
vfrStatementRead ::=
2
"read" vfrStatementExpression ";"
Copied!

BEHAVIORS AND RESTRICTIONS

None.

Example

None

2.11.6.3.7 VFR Write Statement Definition

1
vfrStatementWrite ::=
2
"write" vfrStatementExpression ";"
Copied!

BEHAVIORS AND RESTRICTIONS

None.

Example

None

2.11.6.4 VFR Question Tag List Definition

1
vfrStatementQuestionOptionList ::=
2
(
3
vfrStatementQuestionTag
4
| vfrStatementQuestionOptionTag
5
)*
Copied!
Note: There are no BEHAVIORS AND RESTRICTIONS or an Example for this section.

2.11.6.5 VFR Boolean Type Statement Definition

1
vfrStatementBooleanType ::=
2
vfrStatementCheckBox
3
| vfrStatementAction
Copied!
Note: There are no BEHAVIORS AND RESTRICTIONS or an Example for this section.

2.11.6.5.1 VFR CheckBox Statement Definition

1
vfrStatementCheckBox ::=
2
"checkbox"
3
vfrQuestionHeader ","
4
{ "flags" "=" vfrCheckBoxFlags "," }
5
{ "key" "=" Number "," }
6
vfrStatementQuestionOptionList
7
"endcheckbox" ";"
8
9
vfrCheckBoxFlags ::=
10
checkboxFlagsField ( "|" checkboxFlagsField )*
11
12
checkboxFlagsField ::=
13
Number
14
| "CHECKBOX_DEFAULT"
15
| "CHECKBOX_DEFAULT_MFG"
16
| questionheaderFlagsField
Copied!

BEHAVIORS AND RESTRICTIONS

The value of key is used as question ID.
Note: flags is optional, and the default value is 0.

Example

1
checkbox
2
name = MyCheckBox,
3
varid = MySTestData.mField1,
4
prompt = STRING_TOKEN(STR_CHECK_BOX_PROMPT),
5
help = STRING_TOKEN(STR_CHECK_BOX_HELP),
6
flags = CHECKBOX_DEFAULT | INTERACTIVE,
7
default = TRUE,
8
endcheckbox;
Copied!

2.11.6.5.2 VFR Action Statement Definition

1
vfrStatementAction ::=
2
"action"
3
vfrQuestionHeader ","
4
{ "flags" "=" vfrActionFlags "," }
5
"config" "=" getStringId ","
6
vfrStatementQuestionTagList
7
"endaction" ";"
8
9
vfrActionFlags ::=
10
actionFlagsField ( "|" actionFlagsField )*
11
12
actionFlagsField ::=
13
Number
14
| questionheaderFlagsField
Copied!

BEHAVIORS AND RESTRICTIONS

Note: flags is optional, and the default value is 0.

Example

1
action
2
prompt = STRING_TOKEN(STR_ACTION_PROMPT),
3
help = STRING_TOKEN(STR_ACTION_HELP),
4
flags = INTERACTIVE,
5
config = STRING_TOKEN(STR_ACTION_CONFIG),
6
endaction;
Copied!

2.11.6.6 VFR Numeric Type Statements Definition

1
vfrStatementNumericType ::=
2
vfrStatementNumeric
3
| vfrStatementOneOf
Copied!
Note: There are no BEHAVIORS AND RESTRICTIONS or an Example for this section.

2.11.6.6.1 VFR Numeric Statement Definition

1
vfrStatementNumeric ::=
2
"numeric"
3
vfrQuestionHeader ,
4
{ "flags" "=" vfrNumericFlags "," }
5
{ "key" "=" Number "," }
6
vfrSetMinMaxStep
7
vfrStatementQuestionOptionList
8
"endnumeric" ";"
9
10
vfrSetMinMaxStep ::=
11
"minimum" "=" Number ","
12
"maximum" "=" Number ","
13
{ "step" "=" Number "," }
14
15
vfrNumericFlags ::=
16
numericFlagsField ( "|" numericFlagsField )*
17
18
numericFlagsField ::=
19
Number
20
| "NUMERIC_SIZE_1"
21
| "NUMERIC_SIZE_2"
22
| "NUMERIC_SIZE_4"
23
| "NUMERIC_SIZE_8"
24
| "DISPLAY_INT_DEC"
25
| "DISPLAY_UINT_DEC"
26
| "DISPLAY_UINT_HEX"
27
| questionheaderFlagsField
Copied!

BEHAVIORS AND RESTRICTIONS

Note: flags is optional, and the default value partly depends on the size of varid defined in vfrQuestionHeader.
The default display format is DISPLAY_UINT_DEC.

Example

1
numeric
2
varid = STestData.mField2,
3
prompt = STRING_TOKEN(STR_NUMERIC_PROMPT),
4
help = STRING_TOKEN(STR_NUMERIC_HELP),
5
flags = DISPLAY_UINT_HEX,
6
minimum = 0,
7
maximum = 300,
8
step = 0,
9
default = 175,
10
endnumeric;
Copied!

2.11.6.6.2 VFR OneOf Statement Definition

1
vfrStatementOneOf ::=
2
"oneof"
3
vfrQuestionHeader,
4
{ "flags" "=" vfrOneofFlagsField "," }
5
{ vfrSetMinMaxStep }
6
vfrStatementQuestionOptionList
7
"endoneof" ";"
8
9
vfrOneofFlagsField ::=
10
numericFlagsField ( "|" numericFlagsField )*
Copied!

BEHAVIORS AND RESTRICTIONS

Note: flags is optional, and the default value partly depends on the size of varid defined in vfrQuestionHeader syntax.
The flag is defined in the VFR Numeric Statement Definition.

Example

1
oneof
2
varid = STestData.mField3[0],
3
prompt = STRING_TOKEN(STR_ONE_OF_PROMPT),
4
help = STRING_TOKEN(STR_ONE_OF_HELP),
5
flags = DISPLAY_UINT_DEC,
6
7
option text = STRING_TOKEN(STR_ONE_OF_TEXT1), value = 0x0, flags = 0;
8
option text = STRING_TOKEN(STR_ONE_OF_TEXT2), value = 0x1, flags = 0;
9
option text = STRING_TOKEN(STR_ONE_OF_TEXT3), value = 0x2, flags = DEFAULT;
10
endoneof;
Copied!

2.11.6.7 VFR String Type Statements Definition

1
vfrStatementStringType ::=
2
vfrStatementString
3
| vfrStatementPassword
Copied!
Note: There are no BEHAVIORS AND RESTRICTIONS or an Example for this section.

2.11.6.7.1 VFR String Statement Definition

1
vfrStatementString ::=
2
"string"
3
vfrQuestionHeader ","
4
{ "flags" "=" vfrStringFlagsField "," }
5
{ "key" "=" Number "," }
6
"minsize" "=" Number ","
7
"maxsize" "=" Number ","
8
vfrStatementQuestionOptionList
9
"endstring" ";"
10
11
vfrStringFlagsField ::=
12
stringFlagsField ( "|" stringFlagsField )*
13
14
stringFlagsField ::=
15
Number
16
| "MULTI_LINE"
17
| questionheaderFlagsField
Copied!

BEHAVIORS AND RESTRICTIONS

Note: flags is optional, and the default value is 0.

Example

1
string
2
varid = STestData.mField1,
3
prompt = STRING_TOKEN(STR_MY_STRING_PROMPT),
4
help = STRING_TOKEN(STR_MY_STRING_HELP),
5
flags = MULTI_LINE,
6
minsize = 6,
7
maxsize = 0x14,
8
endstring;
Copied!

2.11.6.7.2 VFR Password Statement Definition

1
vfrStatementPassword ::=
2
"password"
3
vfrQuestionHeader ,
4
{ "flags" "=" vfrPasswordFlagsField "," }
5
{ "key" "=" Number "," }
6
"minsize" "=" Number ","
7
"maxsize" "=" Number ","
8
vfrStatementQuestionOptionList
9
"endpassword" ";"
10
11
vfrPasswordFlagsField ::=
12
passwordFlagsField ( "|" passwordFlagsField )*
13
14
passwordFlagsField ::=
15
Number
16
| questionheaderFlagsField
Copied!

BEHAVIORS AND RESTRICTIONS

Note: flags is optional, and the default value is 0.
The value of key is used as a question ID.

Example

1
password
2
varid = STestData.mPrivate.mField2,
3
prompt = STRING_TOKEN(STR_PASSWORD_PROMPT),
4
help = STRING_TOKEN(STR_PASSWORD_HELP),
5
minsize = 6,
6
maxsize = 20,
7
endpassword;
Copied!

2.11.6.8 VFR OrderedList Statement Definition

1
vfrStatementOrderedList ::=
2
"orderedlist"
3
vfrQuestionHeader ","
4
{ "maxcontainers" "=" Number "," }
5
{ "flags" "=" vfrOrderedListFlags }
6
vfrStatementQuestionOptionList
7
"endlist" ";"
8
9
vfrOrderedListFlags ::=
10
orderedlistFlagsField ( "|" orderedlistFlagsField )*
11
12
orderedlistFlagsField ::=
13
Number
14
| "UNIQUE"
15
| "NOEMPTY"
16
| questionheaderFlagsField
Copied!

BEHAVIORS AND RESTRICTIONS

Note: maxcontainers is optional, and the default value depends on the variable size defined by varid in vfrQuestionHeader.
Note: flags is optional, and the default value is 0.

Example

1
orderedlist
2
varid = STestPriData.mField3,
3
prompt = STRING_TOKEN(STR_BOOT_OPTIONS),
4
help = STRING_TOKEN(STR_BOOT_OPTIONS),
5
6
option text = STRING_TOKEN(STR_BOOT_OPTION2), value = 2, flags = RESET_REQUIRED;
7
option text = STRING_TOKEN(STR_BOOT_OPTION1), value = 1, flags = RESET_REQUIRED;
8
option text = STRING_TOKEN(STR_BOOT_OPTION3), value = 3, flags = RESET_REQUIRED;
9
option text = STRING_TOKEN(STR_BOOT_OPTION4), value = 4, flags = RESET_REQUIRED;
10
option text = STRING_TOKEN(STR_EMPTY_STRING), value = {1, 2, 3, 4}, flags = DEFAULT;
11
endlist;
Copied!

2.11.6.9 VFR Date Statement Definition

1
vfrStatementDate ::=
2
"date"
3
(
4
(
5
vfrQuestionHeader ,
6
{ "flags" "=" vfrDateFlags "," }
7
vfrStatementQuestionOptionList
8
)
9
|
10
(
11
"year" "varid" "=" StringIdentifier "." StringIdentifier ","
12
"prompt" "=" getStringId ","
13
"help" "=" getStringId ","
14
minMaxDateStepDefault
15
16
"month" "varid" "=" StringIdentifier "." StringIdentifier ","
17
"prompt" "=" getStringId ","
18
"help" "=" getStringId ","
19
minMaxDateStepDefault
20
21
"day" "varid" "=" StringIdentifier "." StringIdentifier ","
22
"prompt" "=" getStringId ","
23
"help" "=" getStringId ","
24
minMaxDateStepDefault
25
26
( vfrStatementInconsistentIf )*
27
)
28
)
29
"enddate" ";"
30
31
minMaxDateStepDefault ::=
32
"minimum" "=" Number ","
33
"maximum" "=" Number ","
34
{ "step" "=" Number "," }
35
{ "default" "=" Number "," }
36
37
vfrDateFlags ::=
38
dateFlagsField ( "|" dateFlagsField )*
39
40
dateFlagsField ::=
41
Number
42
| "YEAR_SUPPRESS"
43
| "MONTH_SUPPRESS"
44
| "DAY_SUPPRESS"
45
| "STORAGE_NORMAL"
46
| "STORAGE_TIME"
47
| "STORAGE_WAKEUP"
Copied!

BEHAVIORS AND RESTRICTIONS

There are old and new syntax of the VFR Date statement, but they are incompatible. The old VFR Date only uses EFI Date/Time Storage, instead of normal question value storage. The new VFR Date can use either the normal question value storage or EFI Date/Time Storage.
For the new syntax of VFR, flags is optional, and the default value is 0 Examples follow.
New syntax of VFR Date:
1
date
2
varid = STestData.mDate,
3
prompt = STRING_TOKEN(STR_DATE_PROMPT),
4
help = STRING_TOKEN(STR_DATE_PROMPT),
5
flags = STORAGE_NORMAL,
6
default = 2007/08/26,
7
enddate;
Copied!
Old syntax of VFR Date:
1
date year varid = Date.Year,
2
prompt = STRING_TOKEN(STR_DATE_PROMPT),
3
help = STRING_TOKEN(STR_DATE_HELP),
4
minimum = 2003,
5
maximum = 2100,
6
step = 1,
7
default = 2003,
8
9
month varid = Date.Month
10
prompt = STRING_TOKEN(STR_DATE_PROMPT),
11
help = STRING_TOKEN(STR_DATE_HELP),
12
minimum = 1,
13
maximum = 12,
14
step = 1,
15
default = 1,
16
17
day varid = Date.Day,
18
prompt = STRING_TOKEN(STR_DATE_PROMPT),
19
help = STRING_TOKEN(STR_DATE_HELP),
20
minimum = 1,
21
maximum = 31,
22
step = 0x1,
23
default = 1,
24
enddate;
Copied!

2.11.6.10 VFR Time Statement Definition

1
vfrStatementTime :
2
"time"
3
(
4
(
5
vfrQuestionHeader ","
6
{ "flags" "=" vfrTimeFlags "," }
7
vfrStatementQuestionOptionList
8
)
9
|
10
(
11
"hour" "varid" "=" StringIdentifier "." StringIdentifier ","
12
"prompt" "=" getStringId ","
13
"help" "=" getStringId ","
14
minMaxTimeStepDefault
15
16
"minute" "varid" "=" StringIdentifier "." StringIdentifier ","
17
"prompt" "=" getStringId ","
18
"help" "=" getStringId ","
19
minMaxTimeStepDefault
20
21
"second" "varid" "=" StringIdentifier "." StringIdentifier ","
22
"prompt" "=" getStringId ","
23
"help" "=" getStringId ","
24
minMaxTimeStepDefault
25
26
( vfrStatementInconsistentIf )*
27
)
28
)
29
"endtime" ";"
30
31
minMaxTimeStepDefault ::=
32
"minimum" "=" Number ","
33
"maximum" "=" Number ","
34
{ "step" "=" Number "," }
35
{ "default" "=" Number "," }
36
37
vfrTimeFlags ::=
38
timeFlagsField ( "|" timeFlagsField )*
39
40
timeFlagsField ::=
41
Number
42
| "HOUR_SUPPRESS"
43
| "MINUTE_SUPPRESS"
44
| "SECOND_SUPPRESS"
45
| "STORAGE_NORMAL"
46
| "STORAGE_TIME"
47
| "STORAGE_WAKEUP"
Copied!

BEHAVIORS AND RESTRICTIONS:

There are old and new syntax of VFR Time statements. They are incompatible.
  • New: VFR Time can use either the normal question value storage or EFI Date/Time Storage.
  • Old: VFR Date can use only EFI Date/Time Storage, instead of normal question value storage.
In the new syntax of VFR, flags is optional, and the default value is 0

Example

New Time Syntax:
1
time
2
name = MyTime,
3
varid = STestData.mTime,
4
prompt = STRING_TOKEN(STR_TIME_PROMPT),
5
help = STRING_TOKEN(STR_TIME_PROMPT),
6
flags = STORAGE_NORMAL,
7
default = 15:33:33,
8
endtime;
Copied!