]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Disk/PartitionDxe/Partition.h
Add DiskIo2 protocol definition to MdePkg.
[mirror_edk2.git] / MdeModulePkg / Universal / Disk / PartitionDxe / Partition.h
index 7a4ca8a3192f85200040acb89306c9c15a9e24db..06470f689f11f23db894cfd38d8ed5dff0ed9dd8 100644 (file)
@@ -26,6 +26,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Protocol/DevicePath.h>\r
 #include <Protocol/DriverBinding.h>\r
 #include <Protocol/DiskIo.h>\r
+#include <Protocol/DiskIo2.h>\r
 #include <Library/DebugLib.h>\r
 #include <Library/UefiDriverEntryPoint.h>\r
 #include <Library/BaseLib.h>\r
@@ -54,6 +55,7 @@ typedef struct {
   EFI_BLOCK_IO_MEDIA        Media2;//For BlockIO2\r
 \r
   EFI_DISK_IO_PROTOCOL      *DiskIo;\r
+  EFI_DISK_IO2_PROTOCOL     *DiskIo2;\r
   EFI_BLOCK_IO_PROTOCOL     *ParentBlockIo;\r
   EFI_BLOCK_IO2_PROTOCOL    *ParentBlockIo2;\r
   UINT64                    Start;\r
@@ -64,6 +66,11 @@ typedef struct {
 \r
 } PARTITION_PRIVATE_DATA;\r
 \r
+typedef struct {\r
+  EFI_DISK_IO2_TOKEN           DiskIo2Token;\r
+  EFI_BLOCK_IO2_TOKEN          *BlockIo2Token;\r
+} PARTITION_ACCESS_TASK;\r
+\r
 #define PARTITION_DEVICE_FROM_BLOCK_IO_THIS(a)  CR (a, PARTITION_PRIVATE_DATA, BlockIo, PARTITION_PRIVATE_DATA_SIGNATURE)\r
 #define PARTITION_DEVICE_FROM_BLOCK_IO2_THIS(a) CR (a, PARTITION_PRIVATE_DATA, BlockIo2, PARTITION_PRIVATE_DATA_SIGNATURE)\r
 \r
@@ -308,6 +315,7 @@ PartitionComponentNameGetControllerName (
   @param[in]  This              Protocol instance pointer.\r
   @param[in]  ParentHandle      Parent Handle for new child.\r
   @param[in]  ParentDiskIo      Parent DiskIo interface.\r
+  @param[in]  ParentDiskIo2     Parent DiskIo2 interface.\r
   @param[in]  ParentBlockIo     Parent BlockIo interface.\r
   @param[in]  ParentBlockIo2    Parent BlockIo2 interface.\r
   @param[in]  ParentDevicePath  Parent Device Path.\r
@@ -326,6 +334,7 @@ PartitionInstallChildHandle (
   IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
   IN  EFI_HANDLE                   ParentHandle,\r
   IN  EFI_DISK_IO_PROTOCOL         *ParentDiskIo,\r
+  IN  EFI_DISK_IO2_PROTOCOL        *ParentDiskIo2,\r
   IN  EFI_BLOCK_IO_PROTOCOL        *ParentBlockIo,\r
   IN  EFI_BLOCK_IO2_PROTOCOL       *ParentBlockIo2,\r
   IN  EFI_DEVICE_PATH_PROTOCOL     *ParentDevicePath,\r
@@ -342,6 +351,7 @@ PartitionInstallChildHandle (
   @param[in]  This       Calling context.\r
   @param[in]  Handle     Parent Handle.\r
   @param[in]  DiskIo     Parent DiskIo interface.\r
+  @param[in]  DiskIo2    Parent DiskIo2 interface.\r
   @param[in]  BlockIo    Parent BlockIo interface.\r
   @param[in]  BlockIo2   Parent BlockIo2 interface.\r
   @param[in]  DevicePath Parent Device Path.\r
@@ -357,6 +367,7 @@ PartitionInstallGptChildHandles (
   IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
   IN  EFI_HANDLE                   Handle,\r
   IN  EFI_DISK_IO_PROTOCOL         *DiskIo,\r
+  IN  EFI_DISK_IO2_PROTOCOL        *DiskIo2,\r
   IN  EFI_BLOCK_IO_PROTOCOL        *BlockIo,\r
   IN  EFI_BLOCK_IO2_PROTOCOL       *BlockIo2,\r
   IN  EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
@@ -368,6 +379,7 @@ PartitionInstallGptChildHandles (
   @param[in]  This        Calling context.\r
   @param[in]  Handle      Parent Handle.\r
   @param[in]  DiskIo      Parent DiskIo interface.\r
+  @param[in]  DiskIo2     Parent DiskIo2 interface.\r
   @param[in]  BlockIo     Parent BlockIo interface.\r
   @param[in]  BlockIo2    Parent BlockIo2 interface.\r
   @param[in]  DevicePath  Parent Device Path\r
@@ -383,6 +395,7 @@ PartitionInstallElToritoChildHandles (
   IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
   IN  EFI_HANDLE                   Handle,\r
   IN  EFI_DISK_IO_PROTOCOL         *DiskIo,\r
+  IN  EFI_DISK_IO2_PROTOCOL        *DiskIo2,\r
   IN  EFI_BLOCK_IO_PROTOCOL        *BlockIo,\r
   IN  EFI_BLOCK_IO2_PROTOCOL       *BlockIo2,\r
   IN  EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
@@ -394,6 +407,7 @@ PartitionInstallElToritoChildHandles (
   @param[in]  This              Calling context.\r
   @param[in]  Handle            Parent Handle.\r
   @param[in]  DiskIo            Parent DiskIo interface.\r
+  @param[in]  DiskIo2           Parent DiskIo2 interface.\r
   @param[in]  BlockIo           Parent BlockIo interface.\r
   @param[in]  BlockIo2          Parent BlockIo2 interface.\r
   @param[in]  DevicePath        Parent Device Path.\r
@@ -408,6 +422,7 @@ PartitionInstallMbrChildHandles (
   IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
   IN  EFI_HANDLE                   Handle,\r
   IN  EFI_DISK_IO_PROTOCOL         *DiskIo,\r
+  IN  EFI_DISK_IO2_PROTOCOL        *DiskIo2,\r
   IN  EFI_BLOCK_IO_PROTOCOL        *BlockIo,\r
   IN  EFI_BLOCK_IO2_PROTOCOL       *BlockIo2,\r
   IN  EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
@@ -419,6 +434,7 @@ EFI_STATUS
   IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
   IN  EFI_HANDLE                   Handle,\r
   IN  EFI_DISK_IO_PROTOCOL         *DiskIo,\r
+  IN  EFI_DISK_IO2_PROTOCOL        *DiskIo2,\r
   IN  EFI_BLOCK_IO_PROTOCOL        *BlockIo,\r
   IN  EFI_BLOCK_IO2_PROTOCOL       *BlockIo2,\r
   IN  EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r