]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Library/PlatformBdsLib/QemuBootOrder.c
OvmfPkg: QemuBootOrder: handle QEMU's "-boot strict=on" option
[mirror_edk2.git] / OvmfPkg / Library / PlatformBdsLib / QemuBootOrder.c
index daab658a1fe5ec6d4ab415baf86970500521ebfa..055cee3ac440027380ea819b62abbdd26fc3c2e4 100644 (file)
@@ -849,8 +849,11 @@ TranslateOfwNodes (
                                     the current implementation. Further calls\r
                                     to this function are possible.\r
 \r
-  @retval RETURN_NOT_FOUND          Translation terminated, *Ptr was (and is)\r
-                                    pointing to an empty string.\r
+  @retval RETURN_NOT_FOUND          Translation terminated. On input, *Ptr was\r
+                                    pointing to the empty string or "HALT". On\r
+                                    output, *Ptr points to the empty string\r
+                                    (ie. "HALT" is consumed transparently when\r
+                                    present).\r
 \r
   @retval RETURN_INVALID_PARAMETER  Parse error. This is a permanent error.\r
 \r
@@ -870,7 +873,12 @@ TranslateOfwPath (
   OFW_NODE      Skip;\r
 \r
   NumNodes = 0;\r
-  Status = ParseOfwNode (Ptr, &Node[NumNodes], &IsFinal);\r
+  if (AsciiStrCmp (*Ptr, "HALT") == 0) {\r
+    *Ptr += 4;\r
+    Status = RETURN_NOT_FOUND;\r
+  } else {\r
+    Status = ParseOfwNode (Ptr, &Node[NumNodes], &IsFinal);\r
+  }\r
 \r
   if (Status == RETURN_NOT_FOUND) {\r
     DEBUG ((DEBUG_VERBOSE, "%a: no more nodes\n", __FUNCTION__));\r