]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Disk/PartitionDxe/Partition.h
Update the copyright notice format
[mirror_edk2.git] / MdeModulePkg / Universal / Disk / PartitionDxe / Partition.h
index 41307629a80b8d9f642d6d09d7f3dca7ef6e8ba3..9fca9f360ee6ec7a03cbdf013137b99b261cbfe1 100644 (file)
@@ -4,8 +4,8 @@
   of the raw block devices media. Currently "El Torito CD-ROM", Legacy \r
   MBR, and GPT partition schemes are supported.\r
 \r
-Copyright (c) 2006 - 2008, Intel Corporation. <BR>\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
 http://opensource.org/licenses/bsd-license.php\r
@@ -15,8 +15,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
 **/\r
 \r
-#ifndef _PARTITION_H \r
-#define _PARTITION_H \r
+#ifndef _PARTITION_H_ \r
+#define _PARTITION_H_ \r
 \r
 #include <Uefi.h>\r
 #include <Protocol/BlockIo.h>\r
@@ -41,7 +41,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 //\r
 // Partition private data\r
 //\r
-#define PARTITION_PRIVATE_DATA_SIGNATURE  EFI_SIGNATURE_32 ('P', 'a', 'r', 't')\r
+#define PARTITION_PRIVATE_DATA_SIGNATURE  SIGNATURE_32 ('P', 'a', 'r', 't')\r
 typedef struct {\r
   UINT64                    Signature;\r
 \r
@@ -85,9 +85,33 @@ extern EFI_COMPONENT_NAME2_PROTOCOL  gPartitionComponentName2;
                                    (((UINT8 *) a)[2] << 16) |    \\r
                                    (((UINT8 *) a)[3] << 24) )\r
 \r
+\r
+//\r
+// GPT Partition Entry Status\r
+//\r
+typedef struct {\r
+  BOOLEAN OutOfRange;\r
+  BOOLEAN Overlap;\r
+  BOOLEAN OsSpecific;\r
+} EFI_PARTITION_ENTRY_STATUS;\r
+\r
 //\r
 // Function Prototypes\r
 //\r
+/**\r
+  Test to see if this driver supports ControllerHandle. Any ControllerHandle\r
+  than contains a BlockIo and DiskIo protocol can be supported.\r
+\r
+  @param  This                Protocol instance pointer.\r
+  @param  ControllerHandle    Handle of device to test\r
+  @param  RemainingDevicePath Optional parameter use to pick a specific child\r
+                              device to start.\r
+\r
+  @retval EFI_SUCCESS         This driver supports this device\r
+  @retval EFI_ALREADY_STARTED This driver is already running on this device\r
+  @retval other               This driver does not support this device\r
+\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 PartitionDriverBindingSupported (\r
@@ -96,6 +120,21 @@ PartitionDriverBindingSupported (
   IN EFI_DEVICE_PATH_PROTOCOL     *RemainingDevicePath\r
   );\r
 \r
+/**\r
+  Start this driver on ControllerHandle by opening a Block IO and Disk IO\r
+  protocol, reading Device Path, and creating a child handle with a\r
+  Disk IO and device path protocol.\r
+\r
+  @param  This                 Protocol instance pointer.\r
+  @param  ControllerHandle     Handle of device to bind driver to\r
+  @param  RemainingDevicePath  Optional parameter use to pick a specific child\r
+                               device to start.\r
+\r
+  @retval EFI_SUCCESS          This driver is added to ControllerHandle\r
+  @retval EFI_ALREADY_STARTED  This driver is already running on ControllerHandle\r
+  @retval other                This driver does not support this device\r
+\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 PartitionDriverBindingStart (\r
@@ -104,13 +143,27 @@ PartitionDriverBindingStart (
   IN EFI_DEVICE_PATH_PROTOCOL     *RemainingDevicePath\r
   );\r
 \r
+/**\r
+  Stop this driver on ControllerHandle. Support stopping any child handles\r
+  created by this driver.\r
+\r
+  @param  This              Protocol instance pointer.\r
+  @param  ControllerHandle  Handle of device to stop driver on\r
+  @param  NumberOfChildren  Number of Handles in ChildHandleBuffer. If number of\r
+                            children is zero stop the entire bus driver.\r
+  @param  ChildHandleBuffer List of Child Handles to Stop.\r
+\r
+  @retval EFI_SUCCESS       This driver is removed ControllerHandle\r
+  @retval other             This driver was not removed from this device\r
+\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 PartitionDriverBindingStop (\r
-  IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
-  IN  EFI_HANDLE                   ControllerHandle,\r
-  IN  UINTN                        NumberOfChildren,\r
-  IN  EFI_HANDLE                   *ChildHandleBuffer\r
+  IN  EFI_DRIVER_BINDING_PROTOCOL   *This,\r
+  IN  EFI_HANDLE                    ControllerHandle,\r
+  IN  UINTN                         NumberOfChildren,\r
+  IN  EFI_HANDLE                    *ChildHandleBuffer\r
   );\r
 \r
 //\r
@@ -136,7 +189,7 @@ PartitionDriverBindingStop (
                                 languages specified in SupportedLanguages. The\r
                                 number of languages supported by a driver is up\r
                                 to the driver writer. Language is specified\r
-                                in RFC 3066 or ISO 639-2 language code format.\r
+                                in RFC 4646 or ISO 639-2 language code format.\r
 \r
   @param  DriverName[out]       A pointer to the Unicode string to return.\r
                                 This Unicode string is the name of the\r
@@ -201,7 +254,7 @@ PartitionComponentNameGetDriverName (
                                 languages specified in SupportedLanguages. The\r
                                 number of languages supported by a driver is up\r
                                 to the driver writer. Language is specified in\r
-                                RFC 3066 or ISO 639-2 language code format.\r
+                                RFC 4646 or ISO 639-2 language code format.\r
 \r
   @param  ControllerName[out]   A pointer to the Unicode string to return.\r
                                 This Unicode string is the name of the\r
@@ -243,6 +296,25 @@ PartitionComponentNameGetControllerName (
   );\r
 \r
 \r
+/**\r
+  Create a child handle for a logical block device that represents the\r
+  bytes Start to End of the Parent Block IO device.\r
+\r
+  @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]  ParentBlockIo     Parent BlockIo interface\r
+  @param[in]  ParentDevicePath  Parent Device Path\r
+  @param[in]  DevicePathNode    Child Device Path node\r
+  @param[in]  Start             Start Block\r
+  @param[in]  End               End Block\r
+  @param[in]  BlockSize         Child block size\r
+  @param[in]  InstallEspGuid    Flag to install EFI System Partition GUID on handle\r
+\r
+  @retval EFI_SUCCESS       A child handle was added\r
+  @retval other             A child handle was not added\r
+\r
+**/\r
 EFI_STATUS\r
 PartitionInstallChildHandle (\r
   IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
@@ -251,13 +323,26 @@ PartitionInstallChildHandle (
   IN  EFI_BLOCK_IO_PROTOCOL        *ParentBlockIo,\r
   IN  EFI_DEVICE_PATH_PROTOCOL     *ParentDevicePath,\r
   IN  EFI_DEVICE_PATH_PROTOCOL     *DevicePathNode,\r
-  IN  UINT64                       Start,\r
-  IN  UINT64                       End,\r
+  IN  EFI_LBA                      Start,\r
+  IN  EFI_LBA                      End,\r
   IN  UINT32                       BlockSize,\r
   IN  BOOLEAN                      InstallEspGuid\r
-  )\r
-;\r
+  );\r
+\r
+/**\r
+  Install child handles if the Handle supports GPT partition structure.\r
 \r
+  @param[in]  This       - Calling context.\r
+  @param[in]  Handle     - Parent Handle\r
+  @param[in]  DiskIo     - Parent DiskIo interface\r
+  @param[in]  BlockIo    - Parent BlockIo interface\r
+  @param[in]  DevicePath - Parent Device Path\r
+\r
+  @retval EFI_SUCCESS         Valid GPT disk\r
+  @retval EFI_MEDIA_CHANGED   Media changed Detected\r
+  @retval other               Not a valid GPT disk\r
+\r
+**/\r
 EFI_STATUS\r
 PartitionInstallGptChildHandles (\r
   IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
@@ -265,9 +350,23 @@ PartitionInstallGptChildHandles (
   IN  EFI_DISK_IO_PROTOCOL         *DiskIo,\r
   IN  EFI_BLOCK_IO_PROTOCOL        *BlockIo,\r
   IN  EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
-  )\r
-;\r
+  );\r
 \r
+/**\r
+  Install child handles if the Handle supports El Torito format.\r
+\r
+  @param[in]  This        Calling context.\r
+  @param[in]  Handle      Parent Handle\r
+  @param[in]  DiskIo      Parent DiskIo interface\r
+  @param[in]  BlockIo     Parent BlockIo interface\r
+  @param[in]  DevicePath  Parent Device Path\r
+\r
+\r
+  @retval EFI_SUCCESS         Child handle(s) was added\r
+  @retval EFI_MEDIA_CHANGED   Media changed Detected\r
+  @retval other               no child handle was added\r
+\r
+**/\r
 EFI_STATUS\r
 PartitionInstallElToritoChildHandles (\r
   IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
@@ -275,9 +374,22 @@ PartitionInstallElToritoChildHandles (
   IN  EFI_DISK_IO_PROTOCOL         *DiskIo,\r
   IN  EFI_BLOCK_IO_PROTOCOL        *BlockIo,\r
   IN  EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
-  )\r
-;\r
+  );\r
+\r
+/**\r
+  Install child handles if the Handle supports MBR format.\r
+\r
+  @param  This              Calling context.\r
+  @param  Handle            Parent Handle.\r
+  @param  DiskIo            Parent DiskIo interface.\r
+  @param  BlockIo           Parent BlockIo interface.\r
+  @param  DevicePath        Parent Device Path.\r
+   \r
+  @retval EFI_SUCCESS       A child handle was added.\r
+  @retval EFI_MEDIA_CHANGED Media change was detected.\r
+  @retval Others            MBR partition was not found.\r
 \r
+**/\r
 EFI_STATUS\r
 PartitionInstallMbrChildHandles (\r
   IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
@@ -285,8 +397,7 @@ PartitionInstallMbrChildHandles (
   IN  EFI_DISK_IO_PROTOCOL         *DiskIo,\r
   IN  EFI_BLOCK_IO_PROTOCOL        *BlockIo,\r
   IN  EFI_DEVICE_PATH_PROTOCOL     *DevicePath\r
-  )\r
-;\r
+  );\r
 \r
 typedef\r
 EFI_STATUS\r