TianoCore EDK2 master
Loading...
Searching...
No Matches
QemuBootOrderLib.h File Reference
#include <Uefi/UefiBaseType.h>
#include <Base.h>

Go to the source code of this file.

Functions

RETURN_STATUS EFIAPI ConnectDevicesFromQemu (VOID)
 
VOID EFIAPI StoreQemuBootOrder (VOID)
 
RETURN_STATUS EFIAPI SetBootOrderFromQemu (VOID)
 
UINT16 EFIAPI GetFrontPageTimeoutFromQemu (VOID)
 

Detailed Description

Rewrite the BootOrder NvVar based on QEMU's "bootorder" fw_cfg file – include file.

Copyright (C) 2012-2014, Red Hat, Inc.

SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file QemuBootOrderLib.h.

Function Documentation

◆ ConnectDevicesFromQemu()

RETURN_STATUS EFIAPI ConnectDevicesFromQemu ( VOID  )

Connect devices based on the boot order retrieved from QEMU.

Attempt to retrieve the "bootorder" fw_cfg file from QEMU. Translate the OpenFirmware device paths therein to UEFI device path fragments. Connect the devices identified by the UEFI devpath prefixes as narrowly as possible, then connect all their child devices, recursively.

If this function fails, then platform BDS should fall back to EfiBootManagerConnectAll(), or some other method for connecting any expected boot devices.

Return values
RETURN_SUCCESSThe "bootorder" fw_cfg file has been parsed, and the referenced device-subtrees have been connected.
RETURN_UNSUPPORTEDQEMU's fw_cfg is not supported.
RETURN_NOT_FOUNDEmpty or nonexistent "bootorder" fw_cfg file.
RETURN_INVALID_PARAMETERParse error in the "bootorder" fw_cfg file.
RETURN_OUT_OF_RESOURCESMemory allocation failed.
Returns
Error statuses propagated from underlying functions.

Definition at line 1571 of file QemuBootOrderLib.c.

◆ GetFrontPageTimeoutFromQemu()

UINT16 EFIAPI GetFrontPageTimeoutFromQemu ( VOID  )

Calculate the number of seconds we should be showing the FrontPage progress bar for.

Returns
The TimeoutDefault argument for PlatformBdsEnterFrontPage().

Definition at line 2373 of file QemuBootOrderLib.c.

◆ SetBootOrderFromQemu()

RETURN_STATUS EFIAPI SetBootOrderFromQemu ( VOID  )

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 the current list of boot options, and rewrite the BootOrder NvVar so that it corresponds to the order described in fw_cfg.

Platform BDS should call this function after connecting any expected boot devices and calling EfiBootManagerRefreshAllBootOption ().

Return values
RETURN_SUCCESSBootOrder NvVar rewritten.
RETURN_UNSUPPORTEDQEMU's fw_cfg is not supported.
RETURN_NOT_FOUNDEmpty or nonexistent "bootorder" fw_cfg file, or no match found between the "bootorder" fw_cfg file and BootOptionList.
RETURN_INVALID_PARAMETERParse error in the "bootorder" fw_cfg file.
RETURN_OUT_OF_RESOURCESMemory allocation failed.
Returns
Values returned by gBS->LocateProtocol () or gRT->SetVariable ().

Definition at line 2172 of file QemuBootOrderLib.c.

◆ StoreQemuBootOrder()

VOID EFIAPI StoreQemuBootOrder ( VOID  )

Write qemu boot order to uefi variables.

Attempt to retrieve the "bootorder" fw_cfg file from QEMU. Translate the OpenFirmware device paths therein to UEFI device path fragments.

On Success store the device path in QemuBootOrderNNNN variables.

Write qemu boot order to uefi variables.

Attempt to retrieve the "bootorder" fw_cfg file from QEMU. Translate the OpenFirmware device paths therein to UEFI device path fragments.

On Success store the device path in VMMBootOrderNNNN variables.

Definition at line 1716 of file QemuBootOrderLib.c.