#include <Library/PeiServicesLib.h>\r
#include <Library/QemuFwCfgLib.h>\r
#include <Library/QemuFwCfgS3Lib.h>\r
+#include <Library/QemuFwCfgSimpleParserLib.h>\r
#include <Library/ResourcePublicationLib.h>\r
#include <Ppi/MasterBootMode.h>\r
#include <IndustryStandard/I440FxPiix4.h>\r
ASSERT_RETURN_ERROR (PcdStatus);\r
}\r
\r
-EFI_STATUS\r
-GetNamedFwCfgBoolean (\r
- IN CHAR8 *FwCfgFileName,\r
- OUT BOOLEAN *Setting\r
- )\r
-{\r
- EFI_STATUS Status;\r
- FIRMWARE_CONFIG_ITEM FwCfgItem;\r
- UINTN FwCfgSize;\r
- UINT8 Value[3];\r
-\r
- Status = QemuFwCfgFindFile (FwCfgFileName, &FwCfgItem, &FwCfgSize);\r
- if (EFI_ERROR (Status)) {\r
- return Status;\r
- }\r
- if (FwCfgSize > sizeof Value) {\r
- return EFI_BAD_BUFFER_SIZE;\r
- }\r
- QemuFwCfgSelectItem (FwCfgItem);\r
- QemuFwCfgReadBytes (FwCfgSize, Value);\r
-\r
- if ((FwCfgSize == 1) ||\r
- (FwCfgSize == 2 && Value[1] == '\n') ||\r
- (FwCfgSize == 3 && Value[1] == '\r' && Value[2] == '\n')) {\r
- switch (Value[0]) {\r
- case '0':\r
- case 'n':\r
- case 'N':\r
- *Setting = FALSE;\r
- return EFI_SUCCESS;\r
-\r
- case '1':\r
- case 'y':\r
- case 'Y':\r
- *Setting = TRUE;\r
- return EFI_SUCCESS;\r
-\r
- default:\r
- break;\r
- }\r
- }\r
- return EFI_PROTOCOL_ERROR;\r
-}\r
-\r
#define UPDATE_BOOLEAN_PCD_FROM_FW_CFG(TokenName) \\r
do { \\r
BOOLEAN Setting; \\r
RETURN_STATUS PcdStatus; \\r
\\r
- if (!EFI_ERROR (GetNamedFwCfgBoolean ( \\r
+ if (!RETURN_ERROR (QemuFwCfgParseBool ( \\r
"opt/ovmf/" #TokenName, &Setting))) { \\r
PcdStatus = PcdSetBoolS (TokenName, Setting); \\r
ASSERT_RETURN_ERROR (PcdStatus); \\r