Sync in bug fix from EDK I:
1) issue with setup browser and IFR refresh opcode 2) [HII]HIIConfigRoutingExportConfig generate error format of <MultiConfigAltResp> 3) [HII] ConfigRouting->ExtractConfig() will cause overflow 4) [Hii Database] EFI_HII_DATABASE_NOTIFY should be invoked when a string package is created internally when a new String Token is created 5) [PT]HIIConfigAccessProtocolTest fail on NT32uefi 6) Incorrect HII package types in EDK git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6378 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/** @file
|
||||
Copyright (c) 2004 - 2007, Intel Corporation
|
||||
Copyright (c) 2004 - 2008, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
@@ -29,6 +29,8 @@ EFI_GUID mInventoryGuid = INVENTORY_GUID;
|
||||
|
||||
CHAR16 VariableName[] = L"MyIfrNVData";
|
||||
|
||||
UINT8 VfrMyIfrNVDataBlockName[] = "BugBug";
|
||||
|
||||
VOID
|
||||
EncodePassword (
|
||||
IN CHAR16 *Password,
|
||||
@@ -259,6 +261,7 @@ ExtractConfig (
|
||||
PrivateData = DRIVER_SAMPLE_PRIVATE_FROM_THIS (This);
|
||||
HiiConfigRouting = PrivateData->HiiConfigRouting;
|
||||
|
||||
//
|
||||
//
|
||||
// Get Buffer Storage data from EFI variable
|
||||
//
|
||||
@@ -274,6 +277,39 @@ ExtractConfig (
|
||||
return Status;
|
||||
}
|
||||
|
||||
if (Request == NULL) {
|
||||
//
|
||||
// Request is set to NULL, return all configurable elements together with ALTCFG
|
||||
//
|
||||
Status = ConstructConfigAltResp (
|
||||
NULL,
|
||||
NULL,
|
||||
Results,
|
||||
&mFormSetGuid,
|
||||
VariableName,
|
||||
PrivateData->DriverHandle[0],
|
||||
&PrivateData->Configuration,
|
||||
BufferSize,
|
||||
VfrMyIfrNVDataBlockName,
|
||||
2,
|
||||
STRING_TOKEN (STR_STANDARD_DEFAULT_PROMPT),
|
||||
VfrMyIfrNVDataDefault0000,
|
||||
STRING_TOKEN (STR_MANUFACTURE_DEFAULT_PROMPT),
|
||||
VfrMyIfrNVDataDefault0001
|
||||
);
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
//
|
||||
// Check routing data in <ConfigHdr>.
|
||||
// Note: if only one Storage is used, then this checking could be skipped.
|
||||
//
|
||||
if (!IsConfigHdrMatch (Request, &mFormSetGuid, VariableName)) {
|
||||
*Progress = Request;
|
||||
return EFI_NOT_FOUND;
|
||||
}
|
||||
|
||||
//
|
||||
// Convert buffer data to <ConfigResp> by helper function BlockToConfig()
|
||||
//
|
||||
@@ -320,9 +356,21 @@ RouteConfig (
|
||||
DRIVER_SAMPLE_PRIVATE_DATA *PrivateData;
|
||||
EFI_HII_CONFIG_ROUTING_PROTOCOL *HiiConfigRouting;
|
||||
|
||||
if (Configuration == NULL) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
PrivateData = DRIVER_SAMPLE_PRIVATE_FROM_THIS (This);
|
||||
HiiConfigRouting = PrivateData->HiiConfigRouting;
|
||||
|
||||
// Check routing data in <ConfigHdr>.
|
||||
// Note: if only one Storage is used, then this checking could be skipped.
|
||||
//
|
||||
if (!IsConfigHdrMatch (Configuration, &mFormSetGuid, VariableName)) {
|
||||
*Progress = Configuration;
|
||||
return EFI_NOT_FOUND;
|
||||
}
|
||||
|
||||
//
|
||||
// Get Buffer Storage data from EFI variable
|
||||
//
|
||||
@@ -405,6 +453,7 @@ DriverCallback (
|
||||
EFI_STATUS Status;
|
||||
EFI_HII_UPDATE_DATA UpdateData;
|
||||
IFR_OPTION *IfrOptionList;
|
||||
UINT8 MyVar;
|
||||
|
||||
if ((Value == NULL) || (ActionRequest == NULL)) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
@@ -416,12 +465,9 @@ DriverCallback (
|
||||
switch (QuestionId) {
|
||||
case 0x1234:
|
||||
//
|
||||
// Create dynamic page for this interactive goto
|
||||
// Initialize the container for dynamic opcodes
|
||||
//
|
||||
UpdateData.BufferSize = 0x1000;
|
||||
UpdateData.Offset = 0;
|
||||
UpdateData.Data = AllocatePool (0x1000);
|
||||
ASSERT (UpdateData.Data != NULL);
|
||||
IfrLibInitUpdateData (&UpdateData, 0x1000);
|
||||
|
||||
IfrOptionList = AllocatePool (2 * sizeof (IFR_OPTION));
|
||||
ASSERT (IfrOptionList != NULL);
|
||||
@@ -433,62 +479,127 @@ DriverCallback (
|
||||
IfrOptionList[1].StringToken = STRING_TOKEN (STR_BOOT_OPTION2);
|
||||
IfrOptionList[1].Value.u8 = 2;
|
||||
|
||||
CreateActionOpCode (
|
||||
0x1237,
|
||||
STRING_TOKEN(STR_EXIT_TEXT),
|
||||
STRING_TOKEN(STR_EXIT_TEXT),
|
||||
EFI_IFR_FLAG_CALLBACK,
|
||||
0,
|
||||
&UpdateData
|
||||
);
|
||||
|
||||
CreateOneOfOpCode (
|
||||
0x8001,
|
||||
0,
|
||||
0,
|
||||
STRING_TOKEN (STR_ONE_OF_PROMPT),
|
||||
STRING_TOKEN (STR_ONE_OF_HELP),
|
||||
EFI_IFR_FLAG_CALLBACK,
|
||||
EFI_IFR_NUMERIC_SIZE_1,
|
||||
IfrOptionList,
|
||||
2,
|
||||
&UpdateData
|
||||
);
|
||||
|
||||
CreateOrderedListOpCode (
|
||||
0x8002,
|
||||
0,
|
||||
0,
|
||||
STRING_TOKEN (STR_BOOT_OPTIONS),
|
||||
STRING_TOKEN (STR_BOOT_OPTIONS),
|
||||
EFI_IFR_FLAG_RESET_REQUIRED,
|
||||
0,
|
||||
EFI_IFR_NUMERIC_SIZE_1,
|
||||
10,
|
||||
IfrOptionList,
|
||||
2,
|
||||
&UpdateData
|
||||
);
|
||||
|
||||
CreateGotoOpCode (
|
||||
1,
|
||||
STRING_TOKEN (STR_GOTO_FORM1),
|
||||
STRING_TOKEN (STR_GOTO_HELP),
|
||||
0,
|
||||
0x8003,
|
||||
&UpdateData
|
||||
);
|
||||
|
||||
Status = IfrLibUpdateForm (
|
||||
PrivateData->HiiHandle[0],
|
||||
&mFormSetGuid,
|
||||
0x1234,
|
||||
0x1234,
|
||||
TRUE,
|
||||
&UpdateData
|
||||
);
|
||||
gBS->FreePool (IfrOptionList);
|
||||
gBS->FreePool (UpdateData.Data);
|
||||
CreateActionOpCode (
|
||||
0x1237, // Question ID
|
||||
STRING_TOKEN(STR_EXIT_TEXT), // Prompt text
|
||||
STRING_TOKEN(STR_EXIT_TEXT), // Help text
|
||||
EFI_IFR_FLAG_CALLBACK, // Question flag
|
||||
0, // Action String ID
|
||||
&UpdateData // Container for dynamic created opcodes
|
||||
);
|
||||
|
||||
//
|
||||
// Prepare initial value for the dynamic created oneof Question
|
||||
//
|
||||
PrivateData->Configuration.DynamicOneof = 2;
|
||||
Status = gRT->SetVariable(
|
||||
VariableName,
|
||||
&mFormSetGuid,
|
||||
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
|
||||
sizeof (DRIVER_SAMPLE_CONFIGURATION),
|
||||
&PrivateData->Configuration
|
||||
);
|
||||
CreateOneOfOpCode (
|
||||
0x8001, // Question ID (or call it "key")
|
||||
CONFIGURATION_VARSTORE_ID, // VarStore ID
|
||||
DYNAMIC_ONE_OF_VAR_OFFSET, // Offset in Buffer Storage
|
||||
STRING_TOKEN (STR_ONE_OF_PROMPT), // Question prompt text
|
||||
STRING_TOKEN (STR_ONE_OF_HELP), // Question help text
|
||||
EFI_IFR_FLAG_CALLBACK, // Question flag
|
||||
EFI_IFR_NUMERIC_SIZE_1, // Data type of Question Value
|
||||
IfrOptionList, // Option list
|
||||
2, // Number of options in Option list
|
||||
&UpdateData // Container for dynamic created opcodes
|
||||
);
|
||||
|
||||
CreateOrderedListOpCode (
|
||||
0x8002, // Question ID
|
||||
CONFIGURATION_VARSTORE_ID, // VarStore ID
|
||||
DYNAMIC_ORDERED_LIST_VAR_OFFSET, // Offset in Buffer Storage
|
||||
STRING_TOKEN (STR_BOOT_OPTIONS), // Question prompt text
|
||||
STRING_TOKEN (STR_BOOT_OPTIONS), // Question help text
|
||||
EFI_IFR_FLAG_RESET_REQUIRED, // Question flag
|
||||
0, // Ordered list flag, e.g. EFI_IFR_UNIQUE_SET
|
||||
EFI_IFR_NUMERIC_SIZE_1, // Data type of Question value
|
||||
5, // Maximum container
|
||||
IfrOptionList, // Option list
|
||||
2, // Number of options in Option list
|
||||
&UpdateData // Container for dynamic created opcodes
|
||||
);
|
||||
|
||||
CreateGotoOpCode (
|
||||
1, // Target Form ID
|
||||
STRING_TOKEN (STR_GOTO_FORM1), // Prompt text
|
||||
STRING_TOKEN (STR_GOTO_HELP), // Help text
|
||||
0, // Question flag
|
||||
0x8003, // Question ID
|
||||
&UpdateData // Container for dynamic created opcodes
|
||||
);
|
||||
|
||||
Status = IfrLibUpdateForm (
|
||||
PrivateData->HiiHandle[0], // HII handle
|
||||
&mFormSetGuid, // Formset GUID
|
||||
0x1234, // Form ID
|
||||
0x1234, // Label for where to insert opcodes
|
||||
TRUE, // Append or replace
|
||||
&UpdateData // Dynamic created opcodes
|
||||
);
|
||||
gBS->FreePool (IfrOptionList);
|
||||
IfrLibFreeUpdateData (&UpdateData);
|
||||
break;
|
||||
|
||||
case 0x5678:
|
||||
//
|
||||
// We will reach here once the Question is refreshed
|
||||
//
|
||||
IfrLibInitUpdateData (&UpdateData, 0x1000);
|
||||
|
||||
IfrOptionList = AllocatePool (2 * sizeof (IFR_OPTION));
|
||||
ASSERT (IfrOptionList != NULL);
|
||||
|
||||
CreateActionOpCode (
|
||||
0x1237, // Question ID
|
||||
STRING_TOKEN(STR_EXIT_TEXT), // Prompt text
|
||||
STRING_TOKEN(STR_EXIT_TEXT), // Help text
|
||||
EFI_IFR_FLAG_CALLBACK, // Question flag
|
||||
0, // Action String ID
|
||||
&UpdateData // Container for dynamic created opcodes
|
||||
);
|
||||
|
||||
Status = IfrLibUpdateForm (
|
||||
PrivateData->HiiHandle[0], // HII handle
|
||||
&mFormSetGuid, // Formset GUID
|
||||
3, // Form ID
|
||||
0x2234, // Label for where to insert opcodes
|
||||
TRUE, // Append or replace
|
||||
&UpdateData // Dynamic created opcodes
|
||||
);
|
||||
IfrLibFreeUpdateData (&UpdateData);
|
||||
|
||||
//
|
||||
// Refresh the Question value
|
||||
//
|
||||
PrivateData->Configuration.DynamicRefresh++;
|
||||
Status = gRT->SetVariable(
|
||||
VariableName,
|
||||
&mFormSetGuid,
|
||||
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
|
||||
sizeof (DRIVER_SAMPLE_CONFIGURATION),
|
||||
&PrivateData->Configuration
|
||||
);
|
||||
|
||||
//
|
||||
// Change an EFI Variable storage (MyEfiVar) asynchronous, this will cause
|
||||
// the first statement in Form 3 be suppressed
|
||||
//
|
||||
MyVar = 111;
|
||||
Status = gRT->SetVariable(
|
||||
L"MyVar",
|
||||
&mFormSetGuid,
|
||||
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
|
||||
1,
|
||||
&MyVar
|
||||
);
|
||||
break;
|
||||
|
||||
case 0x1237:
|
||||
|
@@ -52,6 +52,8 @@ Revision History
|
||||
// This is the generated <AltResp> for defaults defined in VFR
|
||||
//
|
||||
extern UINT8 VfrMyIfrNVDataDefault0000[];
|
||||
extern UINT8 VfrMyIfrNVDataDefault0001[];
|
||||
extern UINT8 VfrMyIfrNVDataBlockName[];
|
||||
|
||||
//
|
||||
// This is the generated IFR binary data for each formset defined in VFR.
|
||||
@@ -68,7 +70,11 @@ extern UINT8 InventoryBin[];
|
||||
//
|
||||
extern UINT8 DriverSampleStrings[];
|
||||
|
||||
#define SAMPLE_STRING L"This is an error!"
|
||||
#define VAR_OFFSET(Field) \
|
||||
((UINT16) ((UINTN) &(((DRIVER_SAMPLE_CONFIGURATION *) 0)->Field)))
|
||||
|
||||
#define DYNAMIC_ONE_OF_VAR_OFFSET VAR_OFFSET (DynamicOneof)
|
||||
#define DYNAMIC_ORDERED_LIST_VAR_OFFSET VAR_OFFSET (DynamicOrderedList)
|
||||
|
||||
#define DRIVER_SAMPLE_PRIVATE_SIGNATURE EFI_SIGNATURE_32 ('D', 'S', 'p', 's')
|
||||
|
||||
|
@@ -35,7 +35,7 @@ Revision History:
|
||||
0xb3f56470, 0x6141, 0x4621, 0x8f, 0x19, 0x70, 0x4e, 0x57, 0x7a, 0xa9, 0xe8 \
|
||||
}
|
||||
|
||||
#define VAR_EQ_TEST_NAME 0x100
|
||||
#define CONFIGURATION_VARSTORE_ID 0x1234
|
||||
|
||||
#pragma pack(1)
|
||||
typedef struct {
|
||||
@@ -57,7 +57,9 @@ typedef struct {
|
||||
UINT8 OrderedList[8];
|
||||
UINT8 BootOrder[8];
|
||||
UINT8 BootOrderLarge;
|
||||
UINT8 DynamicCheck;
|
||||
UINT8 DynamicRefresh;
|
||||
UINT8 DynamicOneof;
|
||||
UINT8 DynamicOrderedList[5];
|
||||
} DRIVER_SAMPLE_CONFIGURATION;
|
||||
|
||||
//
|
||||
|
@@ -67,23 +67,11 @@ formset
|
||||
// VfrCompile -l --no-pre-processing --output-directory ${d_path} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii
|
||||
//
|
||||
|
||||
//
|
||||
// Define a Default Storage for Manufacturing Defauls. Attribut = 1 (EFI_HII_DEFAULT_CLASS_MANUFACTURING).
|
||||
// Only if this Default Storage is defined, CHECKBOX_DEFAULT_MFG can be used for CheckBox.
|
||||
//
|
||||
defaultstore MfgDefault, prompt = STRING_TOKEN (STR_DEFAULTSTORE_MFG), attribute = 1;
|
||||
|
||||
//
|
||||
// Define a Safe Deafult Storage. Attribute = 2 (EFI_HII_DEFAULT_CLASS_SAFE) as an example.
|
||||
// It is not referenced.
|
||||
//
|
||||
defaultstore SafeDefault, prompt = STRING_TOKEN (STR_DEFAULTSTORE_SAFE), attribute = 2;
|
||||
|
||||
//
|
||||
//
|
||||
// Define a Buffer Storage (EFI_IFR_VARSTORE)
|
||||
//
|
||||
varstore DRIVER_SAMPLE_CONFIGURATION, // This is the data structure type
|
||||
varid = 0x1234, // Optional VarStore ID
|
||||
varid = CONFIGURATION_VARSTORE_ID, // Optional VarStore ID
|
||||
name = MyIfrNVData, // Define referenced name in vfr
|
||||
guid = FORMSET_GUID; // GUID of this buffer storage
|
||||
|
||||
@@ -103,6 +91,14 @@ formset
|
||||
varsize = 1, // Size of the EFI variable
|
||||
guid = FORMSET_GUID; // EFI variable GUID
|
||||
|
||||
defaultstore MyStandardDefault,
|
||||
prompt = STRING_TOKEN(STR_STANDARD_DEFAULT_PROMPT),
|
||||
attribute = 0x0000; // Default ID: 0000 standard default
|
||||
|
||||
defaultstore MyManufactureDefault,
|
||||
prompt = STRING_TOKEN(STR_MANUFACTURE_DEFAULT_PROMPT),
|
||||
attribute = 0x0001; // Default ID: 0001 manufacture default
|
||||
|
||||
//
|
||||
// Define a Form (EFI_IFR_FORM)
|
||||
//
|
||||
@@ -121,11 +117,14 @@ formset
|
||||
text = STRING_TOKEN(STR_CPU_STRING), // Prompt string
|
||||
text = STRING_TOKEN(STR_CPU_STRING2); // TextTwo
|
||||
|
||||
//
|
||||
// Define action button (EFI_IFR_ACTION)
|
||||
//
|
||||
text
|
||||
help = STRING_TOKEN(STR_EXIT_TEXT),
|
||||
text = STRING_TOKEN(STR_EXIT_TEXT),
|
||||
text = STRING_TOKEN(STR_EXIT_TEXT),
|
||||
flags = INTERACTIVE,
|
||||
flags = INTERACTIVE, // VfrCompiler will generate opcode EFI_IFR_ACTION for Text marked as INTERACTIVE
|
||||
key = 0x1237;
|
||||
|
||||
text
|
||||
@@ -138,9 +137,10 @@ formset
|
||||
//
|
||||
// Define oneof (EFI_IFR_ONE_OF)
|
||||
//
|
||||
oneof varid = MyIfrNVData.SuppressGrayOutSomething, // Use "DataStructure.Member" to reference Buffer Storage
|
||||
prompt = STRING_TOKEN(STR_ONE_OF_PROMPT),
|
||||
help = STRING_TOKEN(STR_ONE_OF_HELP),
|
||||
oneof name = MyOneOf, // Define reference name for Question
|
||||
varid = MyIfrNVData.SuppressGrayOutSomething, // Use "DataStructure.Member" to reference Buffer Storage
|
||||
prompt = STRING_TOKEN(STR_ONE_OF_PROMPT),
|
||||
help = STRING_TOKEN(STR_ONE_OF_HELP),
|
||||
//
|
||||
// Define an option (EFI_IFR_ONE_OF_OPTION)
|
||||
//
|
||||
@@ -160,7 +160,7 @@ formset
|
||||
endoneof;
|
||||
|
||||
grayoutif ideqval MyIfrNVData.SuppressGrayOutSomething == 0x1;
|
||||
suppressif ideqval MyIfrNVData.SuppressGrayOutSomething == 0x0;
|
||||
suppressif questionref(MyOneOf) == 0x0;
|
||||
|
||||
checkbox varid = MyIfrNVData.ChooseToActivateNuclearWeaponry,
|
||||
prompt = STRING_TOKEN(STR_CHECK_BOX_PROMPT),
|
||||
@@ -199,7 +199,7 @@ formset
|
||||
option text = STRING_TOKEN(STR_BOOT_OPTION1), value = 1, flags = RESET_REQUIRED;
|
||||
option text = STRING_TOKEN(STR_BOOT_OPTION3), value = 3, flags = RESET_REQUIRED;
|
||||
suppressif ideqval MyIfrNVData.BootOrderLarge == 0;
|
||||
option text = STRING_TOKEN(STR_BOOT_OPTION4), value = 4, flags = 0;
|
||||
option text = STRING_TOKEN(STR_BOOT_OPTION4), value = 4, flags = RESET_REQUIRED;
|
||||
endif
|
||||
endlist;
|
||||
|
||||
@@ -290,7 +290,8 @@ formset
|
||||
maximum = 0xf0,
|
||||
step = 0, // Stepping of 0 equates to a manual entering
|
||||
// of a value, otherwise it will be adjusted by "+"/"-"
|
||||
default = 20,
|
||||
default = 21, // defaultstore could be used to specify the default type
|
||||
// If no defaultstore is specified, it implies Standard Default
|
||||
|
||||
endnumeric;
|
||||
|
||||
@@ -300,7 +301,7 @@ formset
|
||||
minimum = 0,
|
||||
maximum = 0xf0,
|
||||
step = 0,
|
||||
default = 20,
|
||||
default = 21,
|
||||
|
||||
inconsistentif prompt = STRING_TOKEN(STR_ERROR_POPUP),
|
||||
ideqval MyIfrNVData.HowOldAreYouInYearsManual == 99
|
||||
@@ -322,16 +323,6 @@ formset
|
||||
|
||||
endnumeric;
|
||||
|
||||
numeric varid = MyIfrNVData2.Field8, // Reference of MyIfrNVData2 storage
|
||||
prompt = STRING_TOKEN(STR_MYIFRNVDATA2_HEX_PROMPT),
|
||||
help = STRING_TOKEN(STR_MYIFRNVDATA2_HEX_HELP),
|
||||
flags = DISPLAY_UINT_HEX, // Display in HEX format (if not specified, default is in decimal format)
|
||||
minimum = 0,
|
||||
maximum = 250,
|
||||
default = 175,
|
||||
|
||||
endnumeric;
|
||||
|
||||
label LABEL_1_VALUE;
|
||||
label LABEL_2_VALUE;
|
||||
|
||||
@@ -342,10 +333,23 @@ formset
|
||||
minimum = 0,
|
||||
maximum = 243,
|
||||
step = 1,
|
||||
default = 18,
|
||||
|
||||
default = 18, defaultstore = MyStandardDefault, // This is standard default value
|
||||
default = 19, defaultstore = MyManufactureDefault, // This is manufacture default value
|
||||
|
||||
endnumeric;
|
||||
endif;
|
||||
|
||||
resetbutton
|
||||
defaultstore = MyStandardDefault,
|
||||
prompt = STRING_TOKEN(STR_STANDARD_DEFAULT_PROMPT),
|
||||
help = STRING_TOKEN(STR_STANDARD_DEFAULT_HELP),
|
||||
endresetbutton;
|
||||
|
||||
resetbutton
|
||||
defaultstore = MyManufactureDefault,
|
||||
prompt = STRING_TOKEN(STR_MANUFACTURE_DEFAULT_PROMPT),
|
||||
help = STRING_TOKEN(STR_MANUFACTURE_DEFAULT_HELP),
|
||||
endresetbutton;
|
||||
|
||||
//
|
||||
// Non-interactive password, validate by Setup Browser
|
||||
@@ -354,7 +358,7 @@ formset
|
||||
prompt = STRING_TOKEN(STR_PASSWORD_PROMPT),
|
||||
help = STRING_TOKEN(STR_PASSWORD_HELP),
|
||||
minsize = 6,
|
||||
maxsize = 20, // new opcode
|
||||
maxsize = 20,
|
||||
endpassword;
|
||||
|
||||
string varid = MyIfrNVData.PasswordClearText,
|
||||
@@ -373,7 +377,7 @@ formset
|
||||
flags = INTERACTIVE,
|
||||
key = 0x2000,
|
||||
minsize = 6,
|
||||
maxsize = 20, // new opcode
|
||||
maxsize = 20,
|
||||
endpassword;
|
||||
|
||||
goto 2,
|
||||
@@ -493,12 +497,31 @@ formset
|
||||
|
||||
form formid = 3, title = STRING_TOKEN(STR_FORM3_TITLE); // note formid is a variable (for readability) (UINT16) - also added Form to the line to signify the Op-Code
|
||||
|
||||
grayoutif ideqval MyIfrNVData.SuppressGrayOutSomething == 0x1;
|
||||
suppressif ideqval MyEfiVar == 111;
|
||||
text
|
||||
help = STRING_TOKEN(STR_TEXT_HELP),
|
||||
text = STRING_TOKEN(STR_TEXT_TEXT_1);
|
||||
endif;
|
||||
|
||||
goto 1,
|
||||
prompt = STRING_TOKEN(STR_GOTO_FORM1), //MainSetupPage
|
||||
help = STRING_TOKEN(STR_GOTO_HELP);
|
||||
|
||||
numeric varid = MyIfrNVData.DynamicRefresh,
|
||||
prompt = STRING_TOKEN(STR_NUMERIC_MANUAL_PROMPT),
|
||||
help = STRING_TOKEN(STR_NUMERIC_HELP0),
|
||||
flags = INTERACTIVE,
|
||||
key = 0x5678,
|
||||
minimum = 0,
|
||||
maximum = 0xff,
|
||||
step = 0,
|
||||
default = 0,
|
||||
refresh interval = 3 // Refresh interval in seconds
|
||||
endnumeric;
|
||||
|
||||
label 0x2234;
|
||||
label LABEL_END;
|
||||
|
||||
endform;
|
||||
|
||||
form formid = 4, title = STRING_TOKEN(STR_FORM3_TITLE);
|
||||
|
Binary file not shown.
Reference in New Issue
Block a user