Support HII VOID* dynamic/dynamicEx type PCD.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9990 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -412,6 +412,7 @@ SetWorker (
|
||||
switch (LocalTokenNumber & PCD_TYPE_ALL_SET) {
|
||||
case PCD_TYPE_VPD:
|
||||
case PCD_TYPE_HII:
|
||||
case PCD_TYPE_HII|PCD_TYPE_STRING:
|
||||
{
|
||||
ASSERT (FALSE);
|
||||
return EFI_INVALID_PARAMETER;
|
||||
@@ -624,6 +625,7 @@ GetWorker (
|
||||
return (VOID *) (UINTN) (PcdGet32 (PcdVpdBaseAddress) + VpdHead->Offset);
|
||||
}
|
||||
|
||||
case PCD_TYPE_HII|PCD_TYPE_STRING:
|
||||
case PCD_TYPE_HII:
|
||||
{
|
||||
VariableHead = (VARIABLE_HEAD *) ((UINT8 *)PeiPcdDb + Offset);
|
||||
@@ -639,7 +641,11 @@ GetWorker (
|
||||
//
|
||||
// Return the default value specified by Platform Integrator
|
||||
//
|
||||
return (VOID *) ((UINT8 *) PeiPcdDb + VariableHead->DefaultValueOffset);
|
||||
if ((LocalTokenNumber & PCD_TYPE_ALL_SET) == (PCD_TYPE_HII|PCD_TYPE_STRING)) {
|
||||
return (VOID*)&StringTable[*(UINT16*)((UINT8*)PeiPcdDb + VariableHead->DefaultValueOffset)];
|
||||
} else {
|
||||
return (VOID *) ((UINT8 *) PeiPcdDb + VariableHead->DefaultValueOffset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user