diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c index 088e616a98..3b850c2c26 100644 --- a/OvmfPkg/PlatformPei/Platform.c +++ b/OvmfPkg/PlatformPei/Platform.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -254,56 +255,12 @@ MemMapInitialization ( ASSERT_RETURN_ERROR (PcdStatus); } -EFI_STATUS -GetNamedFwCfgBoolean ( - IN CHAR8 *FwCfgFileName, - OUT BOOLEAN *Setting - ) -{ - EFI_STATUS Status; - FIRMWARE_CONFIG_ITEM FwCfgItem; - UINTN FwCfgSize; - UINT8 Value[3]; - - Status = QemuFwCfgFindFile (FwCfgFileName, &FwCfgItem, &FwCfgSize); - if (EFI_ERROR (Status)) { - return Status; - } - if (FwCfgSize > sizeof Value) { - return EFI_BAD_BUFFER_SIZE; - } - QemuFwCfgSelectItem (FwCfgItem); - QemuFwCfgReadBytes (FwCfgSize, Value); - - if ((FwCfgSize == 1) || - (FwCfgSize == 2 && Value[1] == '\n') || - (FwCfgSize == 3 && Value[1] == '\r' && Value[2] == '\n')) { - switch (Value[0]) { - case '0': - case 'n': - case 'N': - *Setting = FALSE; - return EFI_SUCCESS; - - case '1': - case 'y': - case 'Y': - *Setting = TRUE; - return EFI_SUCCESS; - - default: - break; - } - } - return EFI_PROTOCOL_ERROR; -} - #define UPDATE_BOOLEAN_PCD_FROM_FW_CFG(TokenName) \ do { \ BOOLEAN Setting; \ RETURN_STATUS PcdStatus; \ \ - if (!EFI_ERROR (GetNamedFwCfgBoolean ( \ + if (!RETURN_ERROR (QemuFwCfgParseBool ( \ "opt/ovmf/" #TokenName, &Setting))) { \ PcdStatus = PcdSetBoolS (TokenName, Setting); \ ASSERT_RETURN_ERROR (PcdStatus); \