summaryrefslogtreecommitdiffstats
path: root/OvmfPkg/Include/Library/QemuBootOrderLib.h
diff options
context:
space:
mode:
authorLaszlo Ersek <lersek@redhat.com>2015-01-02 12:07:57 +0000
committerlersek <lersek@Edk2>2015-01-02 12:07:57 +0000
commitcca7475bcbb8bfc7c732e106692a6d15e1dae51c (patch)
tree84e9cf11d14ad164b04e810d740983e24e4b9e90 /OvmfPkg/Include/Library/QemuBootOrderLib.h
parent1b610ac2550d053d0997832059cc83247888bae4 (diff)
downloadedk2-cca7475bcbb8bfc7c732e106692a6d15e1dae51c.tar.gz
edk2-cca7475bcbb8bfc7c732e106692a6d15e1dae51c.tar.bz2
edk2-cca7475bcbb8bfc7c732e106692a6d15e1dae51c.zip
OvmfPkg: extract QemuBootOrderLib
and rebase OvmfPkg's PlatformBdsLib on the standalone library. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Acked-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16570 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'OvmfPkg/Include/Library/QemuBootOrderLib.h')
-rw-r--r--OvmfPkg/Include/Library/QemuBootOrderLib.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/OvmfPkg/Include/Library/QemuBootOrderLib.h b/OvmfPkg/Include/Library/QemuBootOrderLib.h
new file mode 100644
index 0000000000..12cda6aa91
--- /dev/null
+++ b/OvmfPkg/Include/Library/QemuBootOrderLib.h
@@ -0,0 +1,57 @@
+/** @file
+ Rewrite the BootOrder NvVar based on QEMU's "bootorder" fw_cfg file --
+ include file.
+
+ Copyright (C) 2012-2014, Red Hat, Inc.
+
+ This program and the accompanying materials are licensed and made available
+ under the terms and conditions of the BSD License which accompanies this
+ distribution. The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
+
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT
+ WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+**/
+
+#ifndef __QEMU_BOOT_ORDER_LIB_H__
+#define __QEMU_BOOT_ORDER_LIB_H__
+
+#include <Uefi/UefiBaseType.h>
+#include <Base.h>
+
+
+/**
+
+ Set the boot order based on configuration retrieved from QEMU.
+
+ Attempt to retrieve the "bootorder" fw_cfg file from QEMU. Translate the
+ OpenFirmware device paths therein to UEFI device path fragments. Match the
+ translated fragments against BootOptionList, and rewrite the BootOrder NvVar
+ so that it corresponds to the order described in fw_cfg.
+
+ @param[in] BootOptionList A boot option list, created with
+ BdsLibEnumerateAllBootOption ().
+
+
+ @retval RETURN_SUCCESS BootOrder NvVar rewritten.
+
+ @retval RETURN_UNSUPPORTED QEMU's fw_cfg is not supported.
+
+ @retval RETURN_NOT_FOUND Empty or nonexistent "bootorder" fw_cfg
+ file, or no match found between the
+ "bootorder" fw_cfg file and BootOptionList.
+
+ @retval RETURN_INVALID_PARAMETER Parse error in the "bootorder" fw_cfg file.
+
+ @retval RETURN_OUT_OF_RESOURCES Memory allocation failed.
+
+ @return Values returned by gBS->LocateProtocol ()
+ or gRT->SetVariable ().
+
+**/
+RETURN_STATUS
+SetBootOrderFromQemu (
+ IN CONST LIST_ENTRY *BootOptionList
+ );
+
+#endif