]> git.proxmox.com Git - mirror_edk2.git/blob - ArmPkg/Include/Library/BdsLib.h
ArmPlatformPkg/Bds: Fix various bugs in the new BDS
[mirror_edk2.git] / ArmPkg / Include / Library / BdsLib.h
1 /** @file
2 *
3 * Copyright (c) 2011, ARM Limited. All rights reserved.
4 *
5 * This program and the accompanying materials
6 * are licensed and made available under the terms and conditions of the BSD License
7 * which accompanies this distribution. The full text of the license may be found at
8 * http://opensource.org/licenses/bsd-license.php
9 *
10 * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 *
13 **/
14
15 #ifndef __BDS_ENTRY_H__
16 #define __BDS_ENTRY_H__
17
18 /**
19 Connect a Device Path and return the handle of the driver that support this DevicePath
20
21 @param DevicePath Device Path of the File to connect
22 @param Handle Handle of the driver that support this DevicePath
23 @param RemainingDevicePath Remaining DevicePath nodes that do not match the driver DevicePath
24
25 @retval EFI_SUCCESS A driver that matches the Device Path has been found
26 @retval EFI_NOT_FOUND No handles match the search.
27 @retval EFI_INVALID_PARAMETER DevicePath or Handle is NULL
28
29 **/
30 EFI_STATUS
31 BdsConnectDevicePath (
32 IN EFI_DEVICE_PATH_PROTOCOL* DevicePath,
33 OUT EFI_HANDLE *Handle,
34 OUT EFI_DEVICE_PATH_PROTOCOL **RemainingDevicePath
35 );
36
37 /**
38 Connect all DXE drivers
39
40 @retval EFI_SUCCESS All drivers have been connected
41 @retval EFI_NOT_FOUND No handles match the search.
42 @retval EFI_OUT_OF_RESOURCES There is not resource pool memory to store the matching results.
43
44 **/
45 EFI_STATUS
46 BdsConnectAllDrivers (
47 VOID
48 );
49
50 /**
51 Start a Linux kernel from a Device Path
52
53 @param LinuxKernel Device Path to the Linux Kernel
54 @param Parameters Linux kernel arguments
55 @param Fdt Device Path to the Flat Device Tree
56
57 @retval EFI_SUCCESS All drivers have been connected
58 @retval EFI_NOT_FOUND The Linux kernel Device Path has not been found
59 @retval EFI_OUT_OF_RESOURCES There is not enough resource memory to store the matching results.
60
61 **/
62 EFI_STATUS
63 BdsBootLinux (
64 IN EFI_DEVICE_PATH_PROTOCOL* LinuxKernelDevicePath,
65 IN CONST CHAR8* Arguments,
66 IN EFI_DEVICE_PATH_PROTOCOL* FdtDevicePath
67 );
68
69 /**
70 Start an EFI Application from a Device Path
71
72 @param ParentImageHandle Handle of the calling image
73 @param DevicePath Location of the EFI Application
74
75 @retval EFI_SUCCESS All drivers have been connected
76 @retval EFI_NOT_FOUND The Linux kernel Device Path has not been found
77 @retval EFI_OUT_OF_RESOURCES There is not enough resource memory to store the matching results.
78
79 **/
80 EFI_STATUS
81 BdsStartEfiApplication (
82 IN EFI_HANDLE ParentImageHandle,
83 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
84 );
85
86 /**
87 Start an EFI Application from any Firmware Volume
88
89 @param EfiApp EFI Application Name
90
91 @retval EFI_SUCCESS All drivers have been connected
92 @retval EFI_NOT_FOUND The Linux kernel Device Path has not been found
93 @retval EFI_OUT_OF_RESOURCES There is not enough resource memory to store the matching results.
94
95 **/
96 EFI_STATUS
97 BdsLoadApplication (
98 IN EFI_HANDLE ParentImageHandle,
99 IN CHAR16* EfiApp
100 );
101
102 #endif