]> git.proxmox.com Git - mirror_edk2.git/commitdiff
OvmfPkg/PlatformPei: use QemuFwCfgParseBool in UPDATE_BOOLEAN_PCD_FROM_...
authorLaszlo Ersek <lersek@redhat.com>
Fri, 24 Apr 2020 07:53:49 +0000 (09:53 +0200)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Tue, 28 Apr 2020 22:37:35 +0000 (22:37 +0000)
The UPDATE_BOOLEAN_PCD_FROM_FW_CFG() macro currently calls the
module-private helper function GetNamedFwCfgBoolean(). Replace the latter
with QemuFwCfgParseBool() from QemuFwCfgSimpleParserLib.

This change is compatible with valid strings accepted previously.

Cc: Ard Biesheuvel <ard.biesheuvel@arm.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Per Sundstrom <per_sundstrom@yahoo.com>
Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2681
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200424075353.8489-4-lersek@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
OvmfPkg/PlatformPei/Platform.c

index 088e616a980c4ef5cd2a7c1a85b7154bfabfd0e1..3b850c2c2626f7fd438914b6084556770509ded4 100644 (file)
@@ -27,6 +27,7 @@
 #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
@@ -254,56 +255,12 @@ MemMapInitialization (
   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