]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ArmPlatformPkg/Bds: Got rid of RequestBootType argument
authorRonald Cron <ronald.cron@arm.com>
Tue, 29 Jul 2014 14:15:15 +0000 (14:15 +0000)
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 29 Jul 2014 14:15:15 +0000 (14:15 +0000)
Removed "RequestBootType" argument of the "*CreateDevicePathNode()" and
"*UpdateDevicePathNode()" functions. A boolean field "Request
BootType" has been added to the BDS_LOAD_OPTION_SUPPORT structure and
is used by the "BootMenuAddBootOption()" and "BootMenuUpdateBootOption()"
functions instead.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
Reviewed-By: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15713 6f19259b-4bc3-4df7-8a09-765794883524

ArmPlatformPkg/Bds/BdsInternal.h
ArmPlatformPkg/Bds/BootMenu.c
ArmPlatformPkg/Bds/BootOptionSupport.c

index d5b1b79c3897632787db33711430be3e4ee876c4..32e4b65d2bab1bd371dc62dd1bc2ce8c0f186c70 100644 (file)
@@ -102,8 +102,12 @@ typedef struct _BDS_LOAD_OPTION_SUPPORT {
   BDS_SUPPORTED_DEVICE_TYPE   Type;\r
   EFI_STATUS    (*ListDevices)(IN OUT LIST_ENTRY* BdsLoadOptionList);\r
   BOOLEAN       (*IsSupported)(IN  EFI_DEVICE_PATH *DevicePath);\r
-  EFI_STATUS    (*CreateDevicePathNode)(IN CHAR16* FileName, OUT EFI_DEVICE_PATH_PROTOCOL **DevicePathNodes, OUT BOOLEAN *RequestBootType);\r
-  EFI_STATUS    (*UpdateDevicePathNode)(IN EFI_DEVICE_PATH *OldDevicePath, IN CHAR16* FileName, OUT EFI_DEVICE_PATH_PROTOCOL** NewDevicePath, OUT BOOLEAN *RequestBootType);\r
+  EFI_STATUS    (*CreateDevicePathNode)(IN CHAR16* FileName, OUT EFI_DEVICE_PATH_PROTOCOL **DevicePathNodes);\r
+  EFI_STATUS    (*UpdateDevicePathNode)(IN EFI_DEVICE_PATH *OldDevicePath, IN CHAR16* FileName, OUT EFI_DEVICE_PATH_PROTOCOL** NewDevicePath);\r
+\r
+  /// Define if the boot menu should request if the file is a EFI binary or a Linux kernel\r
+  /// Example: PXE boot always deliver a UEFI application.\r
+  BOOLEAN       RequestBootType;\r
 } BDS_LOAD_OPTION_SUPPORT;\r
 \r
 #define LOAD_OPTION_ENTRY_FROM_LINK(a)  BASE_CR(a, BDS_LOAD_OPTION_ENTRY, Link)\r
index 39013cf80235c7337767c6d03c26a53d14def528..065e2ee9c1d48e149a1091673d78a613759d9831 100644 (file)
@@ -134,7 +134,6 @@ BootMenuAddBootOption (
   UINTN                     InitrdSize;\r
   UINT8*                    OptionalData;\r
   UINTN                     OptionalDataSize;\r
-  BOOLEAN                   RequestBootType;\r
 \r
   Attributes                = 0;\r
   SupportedBootDevice = NULL;\r
@@ -147,8 +146,7 @@ BootMenuAddBootOption (
   }\r
 \r
   // Create the specific device path node\r
-  RequestBootType = TRUE;\r
-  Status = SupportedBootDevice->Support->CreateDevicePathNode (L"EFI Application or the kernel", &DevicePathNodes, &RequestBootType);\r
+  Status = SupportedBootDevice->Support->CreateDevicePathNode (L"EFI Application or the kernel", &DevicePathNodes);\r
   if (EFI_ERROR(Status)) {\r
     Status = EFI_ABORTED;\r
     goto EXIT;\r
@@ -160,7 +158,7 @@ BootMenuAddBootOption (
     goto EXIT;\r
   }\r
 \r
-  if (RequestBootType) {\r
+  if (SupportedBootDevice->Support->RequestBootType) {\r
     Status = BootDeviceGetType (DevicePath, &BootType, &Attributes);\r
     if (EFI_ERROR(Status)) {\r
       Status = EFI_ABORTED;\r
@@ -180,7 +178,7 @@ BootMenuAddBootOption (
 \r
     if (InitrdSupport) {\r
       // Create the specific device path node\r
-      Status = SupportedBootDevice->Support->CreateDevicePathNode (L"initrd", &InitrdPathNodes, NULL);\r
+      Status = SupportedBootDevice->Support->CreateDevicePathNode (L"initrd", &InitrdPathNodes);\r
       if (EFI_ERROR(Status) && Status != EFI_NOT_FOUND) { // EFI_NOT_FOUND is returned on empty input string, but we can boot without an initrd\r
         Status = EFI_ABORTED;\r
         goto EXIT;\r
@@ -409,7 +407,6 @@ BootMenuUpdateBootOption (
   BOOLEAN                       InitrdSupport;\r
   UINT8*                        OptionalData;\r
   UINTN                         OptionalDataSize;\r
-  BOOLEAN                       RequestBootType;\r
   BOOLEAN                       IsPrintable;\r
   BOOLEAN                       IsUnicode;\r
 \r
@@ -426,14 +423,13 @@ BootMenuUpdateBootOption (
     return EFI_UNSUPPORTED;\r
   }\r
 \r
-  RequestBootType = TRUE;\r
-  Status = DeviceSupport->UpdateDevicePathNode (BootOption->FilePathList, L"EFI Application or the kernel", &DevicePath, &RequestBootType);\r
+  Status = DeviceSupport->UpdateDevicePathNode (BootOption->FilePathList, L"EFI Application or the kernel", &DevicePath);\r
   if (EFI_ERROR(Status)) {\r
     Status = EFI_ABORTED;\r
     goto EXIT;\r
   }\r
 \r
-  if (RequestBootType) {\r
+  if (DeviceSupport->RequestBootType) {\r
     Status = BootDeviceGetType (DevicePath, &BootType, &BootOption->Attributes);\r
     if (EFI_ERROR(Status)) {\r
       Status = EFI_ABORTED;\r
@@ -468,7 +464,7 @@ BootMenuUpdateBootOption (
     if (InitrdSupport) {\r
       if (InitrdSize > 0) {\r
         // Case we update the initrd device path\r
-        Status = DeviceSupport->UpdateDevicePathNode ((EFI_DEVICE_PATH*)((UINTN)(LinuxArguments + 1) + CmdLineSize), L"initrd", &InitrdPath, NULL);\r
+        Status = DeviceSupport->UpdateDevicePathNode ((EFI_DEVICE_PATH*)((UINTN)(LinuxArguments + 1) + CmdLineSize), L"initrd", &InitrdPath);\r
         if (EFI_ERROR(Status) && Status != EFI_NOT_FOUND) {// EFI_NOT_FOUND is returned on empty input string, but we can boot without an initrd\r
           Status = EFI_ABORTED;\r
           goto EXIT;\r
@@ -477,7 +473,7 @@ BootMenuUpdateBootOption (
       } else {\r
         // Case we create the initrd device path\r
 \r
-        Status = DeviceSupport->CreateDevicePathNode (L"initrd", &InitrdPathNodes, NULL);\r
+        Status = DeviceSupport->CreateDevicePathNode (L"initrd", &InitrdPathNodes);\r
         if (EFI_ERROR(Status) && Status != EFI_NOT_FOUND) { // EFI_NOT_FOUND is returned on empty input string, but we can boot without an initrd\r
           Status = EFI_ABORTED;\r
           goto EXIT;\r
@@ -611,7 +607,7 @@ UpdateFdtPath (
   }\r
 \r
   // Create the specific device path node\r
-  Status = SupportedBootDevice->Support->CreateDevicePathNode (L"FDT blob", &FdtDevicePathNodes, NULL);\r
+  Status = SupportedBootDevice->Support->CreateDevicePathNode (L"FDT blob", &FdtDevicePathNodes);\r
   if (EFI_ERROR(Status)) {\r
     Status = EFI_ABORTED;\r
     goto EXIT;\r
index 8708d306f36f0c5db2782c797e1fd53bc1619541..42ddba34a5a13a2584cb846d63f753da143633b4 100644 (file)
@@ -34,16 +34,14 @@ BdsLoadOptionFileSystemList (
 EFI_STATUS\r
 BdsLoadOptionFileSystemCreateDevicePath (\r
   IN CHAR16*                    FileName,\r
-  OUT EFI_DEVICE_PATH_PROTOCOL  **DevicePathNodes,\r
-  OUT BOOLEAN                   *RequestBootType\r
+  OUT EFI_DEVICE_PATH_PROTOCOL  **DevicePathNodes\r
   );\r
 \r
 EFI_STATUS\r
 BdsLoadOptionFileSystemUpdateDevicePath (\r
   IN EFI_DEVICE_PATH            *OldDevicePath,\r
   IN CHAR16*                    FileName,\r
-  OUT EFI_DEVICE_PATH_PROTOCOL  **NewDevicePath,\r
-  OUT BOOLEAN                   *RequestBootType\r
+  OUT EFI_DEVICE_PATH_PROTOCOL  **NewDevicePath\r
   );\r
 \r
 BOOLEAN\r
@@ -59,16 +57,14 @@ BdsLoadOptionMemMapList (
 EFI_STATUS\r
 BdsLoadOptionMemMapCreateDevicePath (\r
   IN CHAR16*                    FileName,\r
-  OUT EFI_DEVICE_PATH_PROTOCOL  **DevicePathNodes,\r
-  OUT BOOLEAN                   *RequestBootType\r
+  OUT EFI_DEVICE_PATH_PROTOCOL  **DevicePathNodes\r
   );\r
 \r
 EFI_STATUS\r
 BdsLoadOptionMemMapUpdateDevicePath (\r
   IN EFI_DEVICE_PATH            *OldDevicePath,\r
   IN CHAR16*                    FileName,\r
-  OUT EFI_DEVICE_PATH_PROTOCOL  **NewDevicePath,\r
-  OUT BOOLEAN                   *RequestBootType\r
+  OUT EFI_DEVICE_PATH_PROTOCOL  **NewDevicePath\r
   );\r
 \r
 BOOLEAN\r
@@ -84,16 +80,14 @@ BdsLoadOptionPxeList (
 EFI_STATUS\r
 BdsLoadOptionPxeCreateDevicePath (\r
   IN CHAR16*                    FileName,\r
-  OUT EFI_DEVICE_PATH_PROTOCOL  **DevicePathNodes,\r
-  OUT BOOLEAN                   *RequestBootType\r
+  OUT EFI_DEVICE_PATH_PROTOCOL  **DevicePathNodes\r
   );\r
 \r
 EFI_STATUS\r
 BdsLoadOptionPxeUpdateDevicePath (\r
   IN EFI_DEVICE_PATH            *OldDevicePath,\r
   IN CHAR16*                    FileName,\r
-  OUT EFI_DEVICE_PATH_PROTOCOL  **NewDevicePath,\r
-  OUT BOOLEAN                   *RequestBootType\r
+  OUT EFI_DEVICE_PATH_PROTOCOL  **NewDevicePath\r
   );\r
 \r
 BOOLEAN\r
@@ -109,16 +103,14 @@ BdsLoadOptionTftpList (
 EFI_STATUS\r
 BdsLoadOptionTftpCreateDevicePath (\r
   IN CHAR16*                    FileName,\r
-  OUT EFI_DEVICE_PATH_PROTOCOL  **DevicePathNodes,\r
-  OUT BOOLEAN                   *RequestBootType\r
+  OUT EFI_DEVICE_PATH_PROTOCOL  **DevicePathNodes\r
   );\r
 \r
 EFI_STATUS\r
 BdsLoadOptionTftpUpdateDevicePath (\r
   IN EFI_DEVICE_PATH            *OldDevicePath,\r
   IN CHAR16*                    FileName,\r
-  OUT EFI_DEVICE_PATH_PROTOCOL  **NewDevicePath,\r
-  OUT BOOLEAN                   *RequestBootType\r
+  OUT EFI_DEVICE_PATH_PROTOCOL  **NewDevicePath\r
   );\r
 \r
 BOOLEAN\r
@@ -132,28 +124,32 @@ BDS_LOAD_OPTION_SUPPORT BdsLoadOptionSupportList[] = {
     BdsLoadOptionFileSystemList,\r
     BdsLoadOptionFileSystemIsSupported,\r
     BdsLoadOptionFileSystemCreateDevicePath,\r
-    BdsLoadOptionFileSystemUpdateDevicePath\r
+    BdsLoadOptionFileSystemUpdateDevicePath,\r
+    TRUE\r
   },\r
   {\r
     BDS_DEVICE_MEMMAP,\r
     BdsLoadOptionMemMapList,\r
     BdsLoadOptionMemMapIsSupported,\r
     BdsLoadOptionMemMapCreateDevicePath,\r
-    BdsLoadOptionMemMapUpdateDevicePath\r
+    BdsLoadOptionMemMapUpdateDevicePath,\r
+    TRUE\r
   },\r
   {\r
     BDS_DEVICE_PXE,\r
     BdsLoadOptionPxeList,\r
     BdsLoadOptionPxeIsSupported,\r
     BdsLoadOptionPxeCreateDevicePath,\r
-    BdsLoadOptionPxeUpdateDevicePath\r
+    BdsLoadOptionPxeUpdateDevicePath,\r
+    FALSE\r
   },\r
   {\r
     BDS_DEVICE_TFTP,\r
     BdsLoadOptionTftpList,\r
     BdsLoadOptionTftpIsSupported,\r
     BdsLoadOptionTftpCreateDevicePath,\r
-    BdsLoadOptionTftpUpdateDevicePath\r
+    BdsLoadOptionTftpUpdateDevicePath,\r
+    TRUE\r
   }\r
 };\r
 \r
@@ -384,8 +380,7 @@ BdsLoadOptionFileSystemList (
 EFI_STATUS\r
 BdsLoadOptionFileSystemCreateDevicePath (\r
   IN CHAR16*                    FileName,\r
-  OUT EFI_DEVICE_PATH_PROTOCOL  **DevicePathNodes,\r
-  OUT BOOLEAN                   *RequestBootType\r
+  OUT EFI_DEVICE_PATH_PROTOCOL  **DevicePathNodes\r
   )\r
 {\r
   EFI_STATUS  Status;\r
@@ -421,8 +416,7 @@ EFI_STATUS
 BdsLoadOptionFileSystemUpdateDevicePath (\r
   IN EFI_DEVICE_PATH            *OldDevicePath,\r
   IN CHAR16*                    FileName,\r
-  OUT EFI_DEVICE_PATH_PROTOCOL  **NewDevicePath,\r
-  OUT BOOLEAN                   *RequestBootType\r
+  OUT EFI_DEVICE_PATH_PROTOCOL  **NewDevicePath\r
   )\r
 {\r
   EFI_STATUS  Status;\r
@@ -571,8 +565,7 @@ BdsLoadOptionMemMapList (
 EFI_STATUS\r
 BdsLoadOptionMemMapCreateDevicePath (\r
   IN CHAR16*                    FileName,\r
-  OUT EFI_DEVICE_PATH_PROTOCOL  **DevicePathNodes,\r
-  OUT BOOLEAN                   *RequestBootType\r
+  OUT EFI_DEVICE_PATH_PROTOCOL  **DevicePathNodes\r
   )\r
 {\r
   EFI_STATUS              Status;\r
@@ -612,8 +605,7 @@ EFI_STATUS
 BdsLoadOptionMemMapUpdateDevicePath (\r
   IN EFI_DEVICE_PATH            *OldDevicePath,\r
   IN CHAR16*                    FileName,\r
-  OUT EFI_DEVICE_PATH_PROTOCOL  **NewDevicePath,\r
-  OUT BOOLEAN                   *RequestBootType\r
+  OUT EFI_DEVICE_PATH_PROTOCOL  **NewDevicePath\r
   )\r
 {\r
   EFI_STATUS          Status;\r
@@ -714,16 +706,12 @@ BdsLoadOptionPxeList (
 EFI_STATUS\r
 BdsLoadOptionPxeCreateDevicePath (\r
   IN CHAR16*                    FileName,\r
-  OUT EFI_DEVICE_PATH_PROTOCOL  **DevicePathNodes,\r
-  OUT BOOLEAN                   *RequestBootType\r
+  OUT EFI_DEVICE_PATH_PROTOCOL  **DevicePathNodes\r
   )\r
 {\r
   *DevicePathNodes = (EFI_DEVICE_PATH_PROTOCOL *) AllocatePool (END_DEVICE_PATH_LENGTH);\r
   SetDevicePathEndNode (*DevicePathNodes);\r
 \r
-  if (RequestBootType) {\r
-    *RequestBootType = FALSE;\r
-  }\r
   return EFI_SUCCESS;\r
 }\r
 \r
@@ -742,8 +730,7 @@ EFI_STATUS
 BdsLoadOptionPxeUpdateDevicePath (\r
   IN EFI_DEVICE_PATH            *OldDevicePath,\r
   IN CHAR16*                    FileName,\r
-  OUT EFI_DEVICE_PATH_PROTOCOL  **NewDevicePath,\r
-  OUT BOOLEAN                   *RequestBootType\r
+  OUT EFI_DEVICE_PATH_PROTOCOL  **NewDevicePath\r
   )\r
 {\r
   //\r
@@ -837,8 +824,7 @@ BdsLoadOptionTftpList (
 EFI_STATUS\r
 BdsLoadOptionTftpCreateDevicePath (\r
   IN CHAR16*                    FileName,\r
-  OUT EFI_DEVICE_PATH_PROTOCOL  **DevicePathNodes,\r
-  OUT BOOLEAN                   *RequestBootType\r
+  OUT EFI_DEVICE_PATH_PROTOCOL  **DevicePathNodes\r
   )\r
 {\r
   EFI_STATUS    Status;\r
@@ -913,8 +899,7 @@ EFI_STATUS
 BdsLoadOptionTftpUpdateDevicePath (\r
   IN EFI_DEVICE_PATH            *OldDevicePath,\r
   IN CHAR16*                    FileName,\r
-  OUT EFI_DEVICE_PATH_PROTOCOL  **NewDevicePath,\r
-  OUT BOOLEAN                   *RequestBootType\r
+  OUT EFI_DEVICE_PATH_PROTOCOL  **NewDevicePath\r
   )\r
 {\r
   ASSERT (0);\r