mirror of https://github.com/acidanthera/audk.git
OvmfPkg: introduce QemuLoadImageLib library class
Introduce the QemuLoadImageLib library class that we will instantiate to load the kernel image passed via the QEMU command line using the standard LoadImage boot service. Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2566 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Laszlo Ersek <lersek@redhat.com>
This commit is contained in:
parent
57f9b7f89e
commit
28de1a5550
|
@ -0,0 +1,84 @@
|
|||
/** @file
|
||||
Load a kernel image and command line passed to QEMU via
|
||||
the command line
|
||||
|
||||
Copyright (C) 2020, Arm, Limited.
|
||||
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
**/
|
||||
|
||||
#ifndef QEMU_LOAD_IMAGE_LIB_H__
|
||||
#define QEMU_LOAD_IMAGE_LIB_H__
|
||||
|
||||
#include <Uefi/UefiBaseType.h>
|
||||
#include <Base.h>
|
||||
|
||||
#include <Protocol/LoadedImage.h>
|
||||
|
||||
/**
|
||||
Download the kernel, the initial ramdisk, and the kernel command line from
|
||||
QEMU's fw_cfg. The kernel will be instructed via its command line to load
|
||||
the initrd from the same Simple FileSystem where the kernel was loaded from.
|
||||
|
||||
@param[out] ImageHandle The image handle that was allocated for
|
||||
loading the image
|
||||
|
||||
@retval EFI_SUCCESS The image was loaded successfully.
|
||||
@retval EFI_NOT_FOUND Kernel image was not found.
|
||||
@retval EFI_OUT_OF_RESOURCES Memory allocation failed.
|
||||
@retval EFI_PROTOCOL_ERROR Unterminated kernel command line.
|
||||
@retval EFI_ACCESS_DENIED The underlying LoadImage boot service call
|
||||
returned EFI_SECURITY_VIOLATION, and the image
|
||||
was unloaded again.
|
||||
|
||||
@return Error codes from any of the underlying
|
||||
functions.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
QemuLoadKernelImage (
|
||||
OUT EFI_HANDLE *ImageHandle
|
||||
);
|
||||
|
||||
/**
|
||||
Transfer control to a kernel image loaded with QemuLoadKernelImage ()
|
||||
|
||||
@param[in,out] ImageHandle Handle of image to be started. May assume a
|
||||
different value on return if the image was
|
||||
reloaded.
|
||||
|
||||
@retval EFI_INVALID_PARAMETER ImageHandle is either an invalid image handle
|
||||
or the image has already been initialized with
|
||||
StartImage
|
||||
@retval EFI_SECURITY_VIOLATION The current platform policy specifies that the
|
||||
image should not be started.
|
||||
|
||||
@return Error codes returned by the started image.
|
||||
On success, the function doesn't return.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
QemuStartKernelImage (
|
||||
IN OUT EFI_HANDLE *ImageHandle
|
||||
);
|
||||
|
||||
/**
|
||||
Unloads an image loaded with QemuLoadKernelImage ().
|
||||
|
||||
@param ImageHandle Handle that identifies the image to be
|
||||
unloaded.
|
||||
|
||||
@retval EFI_SUCCESS The image has been unloaded.
|
||||
@retval EFI_UNSUPPORTED The image has been started, and does not
|
||||
support unload.
|
||||
@retval EFI_INVALID_PARAMETER ImageHandle is not a valid image handle.
|
||||
|
||||
@return Exit code from the image's unload function.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
QemuUnloadKernelImage (
|
||||
IN EFI_HANDLE ImageHandle
|
||||
);
|
||||
|
||||
#endif
|
|
@ -58,6 +58,11 @@
|
|||
#
|
||||
QemuBootOrderLib|Include/Library/QemuBootOrderLib.h
|
||||
|
||||
## @libraryclass Load a kernel image and command line passed to QEMU via
|
||||
# the command line
|
||||
#
|
||||
QemuLoadImageLib|Include/Library/QemuLoadImageLib.h
|
||||
|
||||
## @libraryclass Serialize (and deserialize) variables
|
||||
#
|
||||
SerializeVariablesLib|Include/Library/SerializeVariablesLib.h
|
||||
|
|
Loading…
Reference in New Issue