]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPlatformPkg/Bds/BdsInternal.h
Arm Packages: Fixed coding style/Line endings to follow EDK2 coding convention
[mirror_edk2.git] / ArmPlatformPkg / Bds / BdsInternal.h
index e0bf105db8e6d0dbe9df28b8b19d51d59568ce7a..fd49d9e4992d0b9c5ea18d7d1c4213232e2cfcdd 100644 (file)
 #define BOOT_DEVICE_OPTION_MAX        300\r
 #define BOOT_DEVICE_ADDRESS_MAX       20\r
 \r
+#define ARM_BDS_OPTIONAL_DATA_SIGNATURE   SIGNATURE_32('a', 'b', 'o', 'd')\r
+\r
+#define IS_ARM_BDS_BOOTENTRY(ptr)  (ReadUnaligned32 ((CONST UINT32*)&((ARM_BDS_LOADER_OPTIONAL_DATA*)((ptr)->OptionalData))->Header.Signature) == ARM_BDS_OPTIONAL_DATA_SIGNATURE)\r
+\r
+#define UPDATE_BOOT_ENTRY L"Update entry: "\r
+#define DELETE_BOOT_ENTRY L"Delete entry: "\r
+\r
 typedef enum {\r
     BDS_LOADER_EFI_APPLICATION = 0,\r
     BDS_LOADER_KERNEL_LINUX_ATAG,\r
     BDS_LOADER_KERNEL_LINUX_FDT,\r
-} BDS_LOADER_TYPE;\r
+} ARM_BDS_LOADER_TYPE;\r
 \r
-typedef struct{\r
-  UINT16                     InitrdPathListLength;\r
-  EFI_DEVICE_PATH_PROTOCOL   *InitrdPathList;\r
-  CHAR8                      CmdLine[BOOT_DEVICE_OPTION_MAX + 1];\r
-} BDS_LINUX_ATAG_ARGUMENTS;\r
+typedef struct {\r
+  UINT16                     CmdLineSize;\r
+  UINT16                     InitrdSize;\r
+  \r
+  // These following fields have variable length and are packed:\r
+  //CHAR8                      *CmdLine;\r
+  //EFI_DEVICE_PATH_PROTOCOL   *InitrdPathList;\r
+} ARM_BDS_LINUX_ARGUMENTS;\r
 \r
 typedef union {\r
-  BDS_LINUX_ATAG_ARGUMENTS     LinuxAtagArguments;\r
-} BDS_LOADER_ARGUMENTS;\r
+  ARM_BDS_LINUX_ARGUMENTS    LinuxArguments;\r
+} ARM_BDS_LOADER_ARGUMENTS;\r
 \r
 typedef struct {\r
-  BDS_LOADER_TYPE            LoaderType;\r
-  BDS_LOADER_ARGUMENTS       Arguments;\r
-} BDS_LOADER_OPTIONAL_DATA;\r
+  UINT32                     Signature;\r
+  ARM_BDS_LOADER_TYPE        LoaderType;\r
+} ARM_BDS_LOADER_OPTIONAL_DATA_HEADER;\r
+\r
+typedef struct {\r
+  ARM_BDS_LOADER_OPTIONAL_DATA_HEADER Header;\r
+  ARM_BDS_LOADER_ARGUMENTS            Arguments;\r
+} ARM_BDS_LOADER_OPTIONAL_DATA;\r
+\r
+typedef struct {\r
+  LIST_ENTRY                  Link;\r
+  BDS_LOAD_OPTION*            BdsLoadOption;\r
+} BDS_LOAD_OPTION_ENTRY;\r
 \r
 typedef enum {\r
   BDS_DEVICE_FILESYSTEM = 0,\r
@@ -76,32 +96,16 @@ typedef struct {
 \r
 #define SUPPORTED_BOOT_DEVICE_FROM_LINK(a)   BASE_CR(a, BDS_SUPPORTED_DEVICE, Link)\r
 \r
-typedef UINT8* EFI_LOAD_OPTION;\r
-\r
-/* This is defined by the UEFI specs, don't change it */\r
-typedef struct {\r
-  LIST_ENTRY                  Link;\r
-\r
-  UINT16                      LoadOptionIndex;\r
-  EFI_LOAD_OPTION             LoadOption;\r
-  UINTN                       LoadOptionSize;\r
-\r
-  UINT32                      Attributes;\r
-  UINT16                      FilePathListLength;\r
-  CHAR16                      *Description;\r
-  EFI_DEVICE_PATH_PROTOCOL    *FilePathList;\r
-  BDS_LOADER_OPTIONAL_DATA    *OptionalData;\r
-} BDS_LOAD_OPTION;\r
-\r
 typedef struct _BDS_LOAD_OPTION_SUPPORT {\r
   BDS_SUPPORTED_DEVICE_TYPE   Type;\r
   EFI_STATUS    (*ListDevices)(IN OUT LIST_ENTRY* BdsLoadOptionList);\r
   BOOLEAN       (*IsSupported)(IN BDS_LOAD_OPTION* BdsLoadOption);\r
-  EFI_STATUS    (*CreateDevicePathNode)(IN BDS_SUPPORTED_DEVICE* BdsLoadOption, OUT EFI_DEVICE_PATH_PROTOCOL **DevicePathNode, OUT BDS_LOADER_TYPE *BootType, OUT UINT32 *Attributes);\r
-  EFI_STATUS    (*UpdateDevicePathNode)(IN EFI_DEVICE_PATH *OldDevicePath, OUT EFI_DEVICE_PATH_PROTOCOL** NewDevicePath, OUT BDS_LOADER_TYPE *BootType, OUT UINT32 *Attributes);\r
+  EFI_STATUS    (*CreateDevicePathNode)(IN BDS_SUPPORTED_DEVICE* BdsLoadOption, OUT EFI_DEVICE_PATH_PROTOCOL **DevicePathNode, OUT ARM_BDS_LOADER_TYPE *BootType, OUT UINT32 *Attributes);\r
+  EFI_STATUS    (*UpdateDevicePathNode)(IN EFI_DEVICE_PATH *OldDevicePath, OUT EFI_DEVICE_PATH_PROTOCOL** NewDevicePath, OUT ARM_BDS_LOADER_TYPE *BootType, OUT UINT32 *Attributes);\r
 } BDS_LOAD_OPTION_SUPPORT;\r
 \r
-#define LOAD_OPTION_FROM_LINK(a)   BASE_CR(a, BDS_LOAD_OPTION, Link)\r
+#define LOAD_OPTION_ENTRY_FROM_LINK(a)  BASE_CR(a, BDS_LOAD_OPTION_ENTRY, Link)\r
+#define LOAD_OPTION_FROM_LINK(a)        ((BDS_LOAD_OPTION_ENTRY*)BASE_CR(a, BDS_LOAD_OPTION_ENTRY, Link))->BdsLoadOption\r
 \r
 EFI_STATUS\r
 GetEnvironmentVariable (\r
@@ -128,6 +132,18 @@ BootDeviceGetDeviceSupport (
   OUT BDS_LOAD_OPTION_SUPPORT**  DeviceSupport\r
   );\r
 \r
+EFI_STATUS\r
+GetHIInputStr (\r
+  IN OUT CHAR16  *CmdLine,\r
+  IN     UINTN   MaxCmdLine\r
+  );\r
+\r
+EFI_STATUS\r
+EditHIInputStr (\r
+  IN OUT CHAR16  *CmdLine,\r
+  IN     UINTN   MaxCmdLine\r
+  );\r
+\r
 EFI_STATUS\r
 GetHIInputAscii (\r
   IN OUT CHAR8   *CmdLine,\r
@@ -170,6 +186,16 @@ BdsStartBootOption (
   IN CHAR16* BootOption\r
   );\r
 \r
+UINTN\r
+GetUnalignedDevicePathSize (\r
+  IN EFI_DEVICE_PATH* DevicePath\r
+  );\r
+\r
+EFI_DEVICE_PATH*\r
+GetAlignedDevicePath (\r
+  IN EFI_DEVICE_PATH* DevicePath\r
+  );\r
+\r
 EFI_STATUS\r
 GenerateDeviceDescriptionName (\r
   IN  EFI_HANDLE  Handle,\r
@@ -195,22 +221,22 @@ BootOptionStart (
 \r
 EFI_STATUS\r
 BootOptionCreate (\r
-  IN  UINT32 Attributes,\r
-  IN  CHAR16* BootDescription,\r
+  IN  UINT32                    Attributes,\r
+  IN  CHAR16*                   BootDescription,\r
   IN  EFI_DEVICE_PATH_PROTOCOL* DevicePath,\r
-  IN  BDS_LOADER_TYPE   BootType,\r
-  IN  BDS_LOADER_ARGUMENTS *BootArguments,\r
-  OUT BDS_LOAD_OPTION **BdsLoadOption\r
+  IN  ARM_BDS_LOADER_TYPE       BootType,\r
+  IN  ARM_BDS_LOADER_ARGUMENTS* BootArguments,\r
+  OUT BDS_LOAD_OPTION**         BdsLoadOption\r
   );\r
 \r
 EFI_STATUS\r
 BootOptionUpdate (\r
-  IN  BDS_LOAD_OPTION *BdsLoadOption,\r
-  IN  UINT32 Attributes,\r
-  IN  CHAR16* BootDescription,\r
+  IN  BDS_LOAD_OPTION*          BdsLoadOption,\r
+  IN  UINT32                    Attributes,\r
+  IN  CHAR16*                   BootDescription,\r
   IN  EFI_DEVICE_PATH_PROTOCOL* DevicePath,\r
-  IN  BDS_LOADER_TYPE   BootType,\r
-  IN  BDS_LOADER_ARGUMENTS *BootArguments\r
+  IN  ARM_BDS_LOADER_TYPE       BootType,\r
+  IN  ARM_BDS_LOADER_ARGUMENTS* BootArguments\r
   );\r
 \r
 EFI_STATUS\r