]> git.proxmox.com Git - mirror_edk2.git/blob - OvmfPkg/Library/PlatformBootManagerLib/QemuKernel.c
OvmfPkg/PlatformBootManagerLib: switch to QemuLoadImageLib
[mirror_edk2.git] / OvmfPkg / Library / PlatformBootManagerLib / QemuKernel.c
1 /** @file
2
3 Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
4 SPDX-License-Identifier: BSD-2-Clause-Patent
5
6 **/
7
8 #include <Uefi.h>
9
10 #include <Library/BaseLib.h>
11 #include <Library/DebugLib.h>
12 #include <Library/QemuLoadImageLib.h>
13 #include <Library/ReportStatusCodeLib.h>
14 #include <Library/UefiLib.h>
15
16
17 EFI_STATUS
18 TryRunningQemuKernel (
19 VOID
20 )
21 {
22 EFI_STATUS Status;
23 EFI_HANDLE KernelImageHandle;
24
25 Status = QemuLoadKernelImage (&KernelImageHandle);
26 if (EFI_ERROR (Status)) {
27 return Status;
28 }
29
30 //
31 // Signal the EVT_SIGNAL_READY_TO_BOOT event
32 //
33 EfiSignalEventReadyToBoot();
34
35 REPORT_STATUS_CODE (EFI_PROGRESS_CODE,
36 (EFI_SOFTWARE_DXE_BS_DRIVER | EFI_SW_DXE_BS_PC_READY_TO_BOOT_EVENT));
37
38 //
39 // Start the image.
40 //
41 Status = QemuStartKernelImage (&KernelImageHandle);
42 if (EFI_ERROR (Status)) {
43 DEBUG ((DEBUG_ERROR, "%a: QemuStartKernelImage(): %r\n", __FUNCTION__,
44 Status));
45 }
46
47 QemuUnloadKernelImage (KernelImageHandle);
48
49 return Status;
50 }