OvmfPkg[all]  0.1
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
QemuBootOrderLib.h File Reference

Functions

RETURN_STATUS EFIAPI ConnectDevicesFromQemu (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

Function Documentation

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.
UINT16 EFIAPI GetFrontPageTimeoutFromQemu ( VOID  )

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

Returns
The TimeoutDefault argument for PlatformBdsEnterFrontPage().
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 ().