On Thu, 5 Mar 2020 at 10:39, Laszlo Ersek <ler...@redhat.com> wrote: > > On 03/05/20 10:37, Laszlo Ersek wrote: > > On 03/04/20 10:52, Ard Biesheuvel wrote: > >> 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.biesheu...@linaro.org> > >> Reviewed-by: Laszlo Ersek <ler...@redhat.com> > >> --- > >> OvmfPkg/Include/Library/QemuLoadImageLib.h | 84 ++++++++++++++++++++ > >> OvmfPkg/OvmfPkg.dec | 5 ++ > >> 2 files changed, 89 insertions(+) > >> > >> diff --git a/OvmfPkg/Include/Library/QemuLoadImageLib.h > >> b/OvmfPkg/Include/Library/QemuLoadImageLib.h > >> new file mode 100644 > >> index 000000000000..694905a6421b > >> --- /dev/null > >> +++ b/OvmfPkg/Include/Library/QemuLoadImageLib.h > >> @@ -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. > > > > (1) The above apostrophe (in the "image’s" expression) is U+2019 ("RIGHT > > SINGLE QUOTATION MARK"). Please replace it with a normal ASCII 0x27 > > character (U+0027, "APOSTROPHE") when you push the series. > > Please also sync the comment in the lib instances too. >
OK -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#55495): https://edk2.groups.io/g/devel/message/55495 Mute This Topic: https://groups.io/mt/71722796/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-