mirror of https://github.com/acidanthera/audk.git
Update ALTCFG reference from default name token to default ID.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11558 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
6738e4e7a0
commit
81b618fe85
|
@ -1629,15 +1629,10 @@ InternalHiiIfrValueAction (
|
||||||
UINT32 Index;
|
UINT32 Index;
|
||||||
EFI_GUID *VarGuid;
|
EFI_GUID *VarGuid;
|
||||||
EFI_STRING VarName;
|
EFI_STRING VarName;
|
||||||
EFI_STRING_ID DefaultName;
|
|
||||||
|
|
||||||
UINT8 *PackageData;
|
UINT8 *PackageData;
|
||||||
UINTN IfrOffset;
|
|
||||||
EFI_IFR_OP_HEADER *IfrOpHdr;
|
|
||||||
EFI_HII_PACKAGE_LIST_HEADER *HiiPackageList;
|
EFI_HII_PACKAGE_LIST_HEADER *HiiPackageList;
|
||||||
UINT32 PackageOffset;
|
|
||||||
UINTN PackageListLength;
|
UINTN PackageListLength;
|
||||||
EFI_HII_PACKAGE_HEADER PacakgeHeader;
|
|
||||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||||
EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;
|
EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;
|
||||||
|
|
||||||
|
@ -1774,11 +1769,7 @@ InternalHiiIfrValueAction (
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// 2. Get DefaultName string ID by parsing the PacakgeList
|
// 2. Get HiiPackage by HiiHandle
|
||||||
//
|
|
||||||
|
|
||||||
//
|
|
||||||
// Get HiiPackage by HiiHandle
|
|
||||||
//
|
//
|
||||||
PackageListLength = 0;
|
PackageListLength = 0;
|
||||||
HiiPackageList = NULL;
|
HiiPackageList = NULL;
|
||||||
|
@ -1806,59 +1797,9 @@ InternalHiiIfrValueAction (
|
||||||
goto Done;
|
goto Done;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Parse the form package and get the default name string ID.
|
|
||||||
//
|
|
||||||
if (ActionType == ACTION_SET_DEFAUTL_VALUE) {
|
|
||||||
PackageOffset = sizeof (EFI_HII_PACKAGE_LIST_HEADER);
|
|
||||||
Status = EFI_NOT_FOUND;
|
|
||||||
while (PackageOffset < PackageListLength) {
|
|
||||||
CopyMem (&PacakgeHeader, (UINT8 *) HiiPackageList + PackageOffset, sizeof (PacakgeHeader));
|
|
||||||
|
|
||||||
//
|
|
||||||
// Parse IFR opcode to get default store opcode
|
|
||||||
//
|
|
||||||
if (PacakgeHeader.Type == EFI_HII_PACKAGE_FORMS) {
|
|
||||||
IfrOffset = sizeof (PacakgeHeader);
|
|
||||||
PackageData = (UINT8 *) HiiPackageList + PackageOffset;
|
|
||||||
while (IfrOffset < PacakgeHeader.Length) {
|
|
||||||
IfrOpHdr = (EFI_IFR_OP_HEADER *) (PackageData + IfrOffset);
|
|
||||||
//
|
|
||||||
// Match DefaultId to find its DefaultName
|
|
||||||
//
|
|
||||||
if (IfrOpHdr->OpCode == EFI_IFR_DEFAULTSTORE_OP) {
|
|
||||||
if (((EFI_IFR_DEFAULTSTORE *) IfrOpHdr)->DefaultId == DefaultId) {
|
|
||||||
DefaultName = ((EFI_IFR_DEFAULTSTORE *) IfrOpHdr)->DefaultName;
|
|
||||||
Status = EFI_SUCCESS;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
IfrOffset += IfrOpHdr->Length;
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// Only one form is in a package list.
|
|
||||||
//
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Go to next package.
|
|
||||||
//
|
|
||||||
PackageOffset += PacakgeHeader.Length;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Not found the matched default string ID
|
|
||||||
//
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
Status = EFI_SUCCESS;
|
|
||||||
goto NextConfigAltResp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// 3. Call ConfigRouting GetAltCfg(ConfigRoute, <ConfigResponse>, Guid, Name, DevicePath, AltCfgId, AltCfgResp)
|
// 3. Call ConfigRouting GetAltCfg(ConfigRoute, <ConfigResponse>, Guid, Name, DevicePath, AltCfgId, AltCfgResp)
|
||||||
// Get the default configuration string according to the found default name string ID.
|
// Get the default configuration string according to the default ID.
|
||||||
//
|
//
|
||||||
Status = gHiiConfigRouting->GetAltConfig (
|
Status = gHiiConfigRouting->GetAltConfig (
|
||||||
gHiiConfigRouting,
|
gHiiConfigRouting,
|
||||||
|
@ -1866,7 +1807,7 @@ InternalHiiIfrValueAction (
|
||||||
VarGuid,
|
VarGuid,
|
||||||
VarName,
|
VarName,
|
||||||
DevicePath,
|
DevicePath,
|
||||||
(ActionType == ACTION_SET_DEFAUTL_VALUE) ? &DefaultName:NULL, // it can be NULL to get the current setting.
|
(ActionType == ACTION_SET_DEFAUTL_VALUE) ? &DefaultId:NULL, // it can be NULL to get the current setting.
|
||||||
&ConfigResp
|
&ConfigResp
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -635,37 +635,6 @@ MergeDefaultString (
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
This function finds the matched DefaultName for the input DefaultId
|
|
||||||
|
|
||||||
@param DefaultIdArray Array stores the map table between DefaultId and DefaultName.
|
|
||||||
@param VarDefaultId Default Id
|
|
||||||
@param VarDefaultName Default Name string ID for the input default ID.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS The mapped default name string ID is found.
|
|
||||||
@retval EFI_NOT_FOUND The mapped default name string ID is not found.
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
FindDefaultName (
|
|
||||||
IN IFR_DEFAULT_DATA *DefaultIdArray,
|
|
||||||
IN UINT16 VarDefaultId,
|
|
||||||
OUT EFI_STRING_ID *VarDefaultName
|
|
||||||
)
|
|
||||||
{
|
|
||||||
LIST_ENTRY *Link;
|
|
||||||
IFR_DEFAULT_DATA *DefaultData;
|
|
||||||
|
|
||||||
for (Link = DefaultIdArray->Entry.ForwardLink; Link != &DefaultIdArray->Entry; Link = Link->ForwardLink) {
|
|
||||||
DefaultData = BASE_CR (Link, IFR_DEFAULT_DATA, Entry);
|
|
||||||
if (DefaultData->DefaultId == VarDefaultId) {
|
|
||||||
*VarDefaultName = DefaultData->DefaultName;
|
|
||||||
return EFI_SUCCESS;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return EFI_NOT_FOUND;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This function inserts new DefaultValueData into the BlockData DefaultValue array.
|
This function inserts new DefaultValueData into the BlockData DefaultValue array.
|
||||||
|
|
||||||
|
@ -948,7 +917,6 @@ ParseIfrData (
|
||||||
goto Done;
|
goto Done;
|
||||||
}
|
}
|
||||||
DefaultData->DefaultId = ((EFI_IFR_DEFAULTSTORE *) IfrOpHdr)->DefaultId;
|
DefaultData->DefaultId = ((EFI_IFR_DEFAULTSTORE *) IfrOpHdr)->DefaultId;
|
||||||
DefaultData->DefaultName = ((EFI_IFR_DEFAULTSTORE *) IfrOpHdr)->DefaultName;
|
|
||||||
InsertTailList (&DefaultIdArray->Entry, &DefaultData->Entry);
|
InsertTailList (&DefaultIdArray->Entry, &DefaultData->Entry);
|
||||||
DefaultData = NULL;
|
DefaultData = NULL;
|
||||||
break;
|
break;
|
||||||
|
@ -1038,13 +1006,9 @@ ParseIfrData (
|
||||||
//
|
//
|
||||||
|
|
||||||
//
|
//
|
||||||
// Set standard ID and Get DefaultName String ID
|
// Set standard ID
|
||||||
//
|
//
|
||||||
VarDefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;
|
VarDefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;
|
||||||
Status = FindDefaultName (DefaultIdArray, VarDefaultId, &VarDefaultName);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
goto Done;
|
|
||||||
}
|
|
||||||
//
|
//
|
||||||
// Prepare new DefaultValue
|
// Prepare new DefaultValue
|
||||||
//
|
//
|
||||||
|
@ -1055,7 +1019,6 @@ ParseIfrData (
|
||||||
}
|
}
|
||||||
DefaultData->OpCode = IfrOpHdr->OpCode;
|
DefaultData->OpCode = IfrOpHdr->OpCode;
|
||||||
DefaultData->DefaultId = VarDefaultId;
|
DefaultData->DefaultId = VarDefaultId;
|
||||||
DefaultData->DefaultName = VarDefaultName;
|
|
||||||
|
|
||||||
switch (IfrOneOf->Flags & EFI_IFR_NUMERIC_SIZE) {
|
switch (IfrOneOf->Flags & EFI_IFR_NUMERIC_SIZE) {
|
||||||
case EFI_IFR_NUMERIC_SIZE_1:
|
case EFI_IFR_NUMERIC_SIZE_1:
|
||||||
|
@ -1199,13 +1162,9 @@ ParseIfrData (
|
||||||
//
|
//
|
||||||
if ((IfrCheckBox->Flags & EFI_IFR_CHECKBOX_DEFAULT) == EFI_IFR_CHECKBOX_DEFAULT) {
|
if ((IfrCheckBox->Flags & EFI_IFR_CHECKBOX_DEFAULT) == EFI_IFR_CHECKBOX_DEFAULT) {
|
||||||
//
|
//
|
||||||
// Set standard ID to Manufacture ID and Get DefaultName String ID
|
// Set standard ID to Manufacture ID
|
||||||
//
|
//
|
||||||
VarDefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;
|
VarDefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;
|
||||||
Status = FindDefaultName (DefaultIdArray, VarDefaultId, &VarDefaultName);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
goto Done;
|
|
||||||
}
|
|
||||||
//
|
//
|
||||||
// Prepare new DefaultValue
|
// Prepare new DefaultValue
|
||||||
//
|
//
|
||||||
|
@ -1216,7 +1175,6 @@ ParseIfrData (
|
||||||
}
|
}
|
||||||
DefaultData->OpCode = IfrOpHdr->OpCode;
|
DefaultData->OpCode = IfrOpHdr->OpCode;
|
||||||
DefaultData->DefaultId = VarDefaultId;
|
DefaultData->DefaultId = VarDefaultId;
|
||||||
DefaultData->DefaultName = VarDefaultName;
|
|
||||||
DefaultData->Value = 1;
|
DefaultData->Value = 1;
|
||||||
//
|
//
|
||||||
// Add DefaultValue into current BlockData
|
// Add DefaultValue into current BlockData
|
||||||
|
@ -1226,13 +1184,9 @@ ParseIfrData (
|
||||||
|
|
||||||
if ((IfrCheckBox->Flags & EFI_IFR_CHECKBOX_DEFAULT_MFG) == EFI_IFR_CHECKBOX_DEFAULT_MFG) {
|
if ((IfrCheckBox->Flags & EFI_IFR_CHECKBOX_DEFAULT_MFG) == EFI_IFR_CHECKBOX_DEFAULT_MFG) {
|
||||||
//
|
//
|
||||||
// Set standard ID to Manufacture ID and Get DefaultName String ID
|
// Set standard ID to Manufacture ID
|
||||||
//
|
//
|
||||||
VarDefaultId = EFI_HII_DEFAULT_CLASS_MANUFACTURING;
|
VarDefaultId = EFI_HII_DEFAULT_CLASS_MANUFACTURING;
|
||||||
Status = FindDefaultName (DefaultIdArray, VarDefaultId, &VarDefaultName);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
goto Done;
|
|
||||||
}
|
|
||||||
//
|
//
|
||||||
// Prepare new DefaultValue
|
// Prepare new DefaultValue
|
||||||
//
|
//
|
||||||
|
@ -1243,7 +1197,6 @@ ParseIfrData (
|
||||||
}
|
}
|
||||||
DefaultData->OpCode = IfrOpHdr->OpCode;
|
DefaultData->OpCode = IfrOpHdr->OpCode;
|
||||||
DefaultData->DefaultId = VarDefaultId;
|
DefaultData->DefaultId = VarDefaultId;
|
||||||
DefaultData->DefaultName = VarDefaultName;
|
|
||||||
DefaultData->Value = 1;
|
DefaultData->Value = 1;
|
||||||
//
|
//
|
||||||
// Add DefaultValue into current BlockData
|
// Add DefaultValue into current BlockData
|
||||||
|
@ -1466,13 +1419,9 @@ ParseIfrData (
|
||||||
//
|
//
|
||||||
FirstOneOfOption = FALSE;
|
FirstOneOfOption = FALSE;
|
||||||
//
|
//
|
||||||
// Set standard ID to Manufacture ID and Get DefaultName String ID
|
// Set standard ID to Manufacture ID
|
||||||
//
|
//
|
||||||
VarDefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;
|
VarDefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;
|
||||||
Status = FindDefaultName (DefaultIdArray, VarDefaultId, &VarDefaultName);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
goto Done;
|
|
||||||
}
|
|
||||||
//
|
//
|
||||||
// Prepare new DefaultValue
|
// Prepare new DefaultValue
|
||||||
//
|
//
|
||||||
|
@ -1483,7 +1432,6 @@ ParseIfrData (
|
||||||
}
|
}
|
||||||
DefaultData->OpCode = IfrOpHdr->OpCode;
|
DefaultData->OpCode = IfrOpHdr->OpCode;
|
||||||
DefaultData->DefaultId = VarDefaultId;
|
DefaultData->DefaultId = VarDefaultId;
|
||||||
DefaultData->DefaultName = VarDefaultName;
|
|
||||||
DefaultData->Value = IfrOneOfOption->Value.u64;
|
DefaultData->Value = IfrOneOfOption->Value.u64;
|
||||||
//
|
//
|
||||||
// Add DefaultValue into current BlockData
|
// Add DefaultValue into current BlockData
|
||||||
|
@ -1493,13 +1441,9 @@ ParseIfrData (
|
||||||
|
|
||||||
if ((IfrOneOfOption->Flags & EFI_IFR_OPTION_DEFAULT_MFG) == EFI_IFR_OPTION_DEFAULT_MFG) {
|
if ((IfrOneOfOption->Flags & EFI_IFR_OPTION_DEFAULT_MFG) == EFI_IFR_OPTION_DEFAULT_MFG) {
|
||||||
//
|
//
|
||||||
// Set default ID to Manufacture ID and Get DefaultName String ID
|
// Set default ID to Manufacture ID
|
||||||
//
|
//
|
||||||
VarDefaultId = EFI_HII_DEFAULT_CLASS_MANUFACTURING;
|
VarDefaultId = EFI_HII_DEFAULT_CLASS_MANUFACTURING;
|
||||||
Status = FindDefaultName (DefaultIdArray, VarDefaultId, &VarDefaultName);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
goto Done;
|
|
||||||
}
|
|
||||||
//
|
//
|
||||||
// Prepare new DefaultValue
|
// Prepare new DefaultValue
|
||||||
//
|
//
|
||||||
|
@ -1510,7 +1454,6 @@ ParseIfrData (
|
||||||
}
|
}
|
||||||
DefaultData->OpCode = IfrOpHdr->OpCode;
|
DefaultData->OpCode = IfrOpHdr->OpCode;
|
||||||
DefaultData->DefaultId = VarDefaultId;
|
DefaultData->DefaultId = VarDefaultId;
|
||||||
DefaultData->DefaultName = VarDefaultName;
|
|
||||||
DefaultData->Value = IfrOneOfOption->Value.u64;
|
DefaultData->Value = IfrOneOfOption->Value.u64;
|
||||||
//
|
//
|
||||||
// Add DefaultValue into current BlockData
|
// Add DefaultValue into current BlockData
|
||||||
|
@ -1537,14 +1480,10 @@ ParseIfrData (
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
// Get the DefaultId and DefaultName String ID
|
// Get the DefaultId
|
||||||
//
|
//
|
||||||
IfrDefault = (EFI_IFR_DEFAULT *) IfrOpHdr;
|
IfrDefault = (EFI_IFR_DEFAULT *) IfrOpHdr;
|
||||||
VarDefaultId = IfrDefault->DefaultId;
|
VarDefaultId = IfrDefault->DefaultId;
|
||||||
Status = FindDefaultName (DefaultIdArray, VarDefaultId, &VarDefaultName);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
goto Done;
|
|
||||||
}
|
|
||||||
//
|
//
|
||||||
// Prepare new DefaultValue
|
// Prepare new DefaultValue
|
||||||
//
|
//
|
||||||
|
@ -1555,7 +1494,6 @@ ParseIfrData (
|
||||||
}
|
}
|
||||||
DefaultData->OpCode = IfrOpHdr->OpCode;
|
DefaultData->OpCode = IfrOpHdr->OpCode;
|
||||||
DefaultData->DefaultId = VarDefaultId;
|
DefaultData->DefaultId = VarDefaultId;
|
||||||
DefaultData->DefaultName = VarDefaultName;
|
|
||||||
DefaultData->Value = IfrDefault->Value.u64;
|
DefaultData->Value = IfrDefault->Value.u64;
|
||||||
//
|
//
|
||||||
// Add DefaultValue into current BlockData
|
// Add DefaultValue into current BlockData
|
||||||
|
@ -2128,7 +2066,7 @@ GetFullStringFromHiiFormPackages (
|
||||||
(1 + StrLen (ConfigHdr) + 8 + 4 + 1) * sizeof (CHAR16),
|
(1 + StrLen (ConfigHdr) + 8 + 4 + 1) * sizeof (CHAR16),
|
||||||
L"&%s&ALTCFG=%04X",
|
L"&%s&ALTCFG=%04X",
|
||||||
ConfigHdr,
|
ConfigHdr,
|
||||||
DefaultId->DefaultName
|
DefaultId->DefaultId
|
||||||
);
|
);
|
||||||
StringPtr += StrLen (StringPtr);
|
StringPtr += StrLen (StringPtr);
|
||||||
|
|
||||||
|
|
|
@ -89,7 +89,6 @@ typedef struct {
|
||||||
typedef struct {
|
typedef struct {
|
||||||
LIST_ENTRY Entry;
|
LIST_ENTRY Entry;
|
||||||
UINT8 OpCode;
|
UINT8 OpCode;
|
||||||
EFI_STRING_ID DefaultName;
|
|
||||||
UINT16 DefaultId;
|
UINT16 DefaultId;
|
||||||
UINT64 Value;
|
UINT64 Value;
|
||||||
} IFR_DEFAULT_DATA;
|
} IFR_DEFAULT_DATA;
|
||||||
|
|
Loading…
Reference in New Issue