]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPkg/Include/Library/BdsLib.h
ArmPkg: Move IS_DEVICE_PATH_NODE for sharing
[mirror_edk2.git] / ArmPkg / Include / Library / BdsLib.h
index eb7f8f293fb1ffb4edc2aad57a409d4457bf789f..4528c2e8739b2abb586643b09665af76dab7a733 100644 (file)
 #ifndef __BDS_ENTRY_H__\r
 #define __BDS_ENTRY_H__\r
 \r
-typedef UINT8* EFI_LOAD_OPTION;\r
+#define IS_DEVICE_PATH_NODE(node,type,subtype)    \\r
+        (((node)->Type == (type)) && ((node)->SubType == (subtype)))\r
 \r
 /**\r
   This is defined by the UEFI specs, don't change it\r
 **/\r
 typedef struct {\r
   UINT16                      LoadOptionIndex;\r
-  EFI_LOAD_OPTION             LoadOption;\r
+  EFI_LOAD_OPTION             *LoadOption;\r
   UINTN                       LoadOptionSize;\r
 \r
   UINT32                      Attributes;\r
@@ -139,43 +140,6 @@ BootOptionAllocateBootIndex (
   VOID\r
   );\r
 \r
-/**\r
-  Start a Linux kernel from a Device Path\r
-\r
-  @param  LinuxKernel           Device Path to the Linux Kernel\r
-  @param  Parameters            Linux kernel arguments\r
-\r
-  @retval EFI_SUCCESS           All drivers have been connected\r
-  @retval EFI_NOT_FOUND         The Linux kernel Device Path has not been found\r
-  @retval EFI_OUT_OF_RESOURCES  There is not enough resource memory to store the matching results.\r
-\r
-**/\r
-EFI_STATUS\r
-BdsBootLinuxAtag (\r
-  IN  EFI_DEVICE_PATH_PROTOCOL* LinuxKernelDevicePath,\r
-  IN  EFI_DEVICE_PATH_PROTOCOL* InitrdDevicePath,\r
-  IN  CONST CHAR8*              Arguments\r
-  );\r
-\r
-/**\r
-  Start a Linux kernel from a Device Path\r
-\r
-  @param[in]  LinuxKernelDevicePath  Device Path to the Linux Kernel\r
-  @param[in]  InitrdDevicePath       Device Path to the Initrd\r
-  @param[in]  Arguments              Linux kernel arguments\r
-\r
-  @retval EFI_SUCCESS           All drivers have been connected\r
-  @retval EFI_NOT_FOUND         The Linux kernel Device Path has not been found\r
-  @retval EFI_OUT_OF_RESOURCES  There is not enough resource memory to store the matching results.\r
-\r
-**/\r
-EFI_STATUS\r
-BdsBootLinuxFdt (\r
-  IN  EFI_DEVICE_PATH_PROTOCOL* LinuxKernelDevicePath,\r
-  IN  EFI_DEVICE_PATH_PROTOCOL* InitrdDevicePath,\r
-  IN  CONST CHAR8*              Arguments\r
-  );\r
-\r
 /**\r
   Start an EFI Application from a Device Path\r
 \r
@@ -195,24 +159,6 @@ BdsStartEfiApplication (
   IN VOID*                       LoadOptions\r
   );\r
 \r
-/**\r
-  Start an EFI Application from any Firmware Volume\r
-\r
-  @param  EfiApp                EFI Application Name\r
-\r
-  @retval EFI_SUCCESS           All drivers have been connected\r
-  @retval EFI_NOT_FOUND         The Linux kernel Device Path has not been found\r
-  @retval EFI_OUT_OF_RESOURCES  There is not enough resource memory to store the matching results.\r
-\r
-**/\r
-EFI_STATUS\r
-BdsLoadApplication (\r
-  IN EFI_HANDLE                  ParentImageHandle,\r
-  IN CHAR16*                     EfiApp,\r
-  IN UINTN                       LoadOptionsSize,\r
-  IN VOID*                       LoadOptions\r
-  );\r
-\r
 EFI_STATUS\r
 BdsLoadImage (\r
   IN     EFI_DEVICE_PATH       *DevicePath,\r
@@ -229,4 +175,38 @@ ShutdownUefiBootServices (
   VOID\r
   );\r
 \r
+/**\r
+  Locate an EFI application in a the Firmware Volumes by its name\r
+\r
+  @param  EfiAppGuid            Guid of the EFI Application into the Firmware Volume\r
+  @param  DevicePath            EFI Device Path of the EFI application\r
+\r
+  @return EFI_SUCCESS           The function completed successfully.\r
+  @return EFI_NOT_FOUND         The protocol could not be located.\r
+  @return EFI_OUT_OF_RESOURCES  There are not enough resources to find the protocol.\r
+\r
+**/\r
+EFI_STATUS\r
+LocateEfiApplicationInFvByName (\r
+  IN  CONST CHAR16*             EfiAppName,\r
+  OUT EFI_DEVICE_PATH           **DevicePath\r
+  );\r
+\r
+/**\r
+  Locate an EFI application in a the Firmware Volumes by its GUID\r
+\r
+  @param  EfiAppGuid            Guid of the EFI Application into the Firmware Volume\r
+  @param  DevicePath            EFI Device Path of the EFI application\r
+\r
+  @return EFI_SUCCESS           The function completed successfully.\r
+  @return EFI_NOT_FOUND         The protocol could not be located.\r
+  @return EFI_OUT_OF_RESOURCES  There are not enough resources to find the protocol.\r
+\r
+**/\r
+EFI_STATUS\r
+LocateEfiApplicationInFvByGuid (\r
+  IN  CONST EFI_GUID            *EfiAppGuid,\r
+  OUT EFI_DEVICE_PATH           **DevicePath\r
+  );\r
+\r
 #endif\r