]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Protocol/ScsiIo.h
Update ScsiIo protocol and ScsiPassThruExt protocol guid value to UEFI 2.1
[mirror_edk2.git] / MdePkg / Include / Protocol / ScsiIo.h
index 2f94cb8f1450b57c4a1c1a057ad842631e6c7ff9..db209c8ec95d0f86739beadc68ec9345a7ecad84 100644 (file)
@@ -1,7 +1,10 @@
 /** @file\r
   EFI_SCSI_IO_PROTOCOL as defined in UEFI 2.0.\r
+  This protocol is used by code, typically drivers, running in the EFI boot \r
+  services environment to access SCSI devices. In particular, functions for \r
+  managing devices on SCSI buses are defined here.\r
 \r
-  Copyright (c) 2006, Intel Corporation                                                         \r
+  Copyright (c) 2006 - 2008, Intel Corporation                                                         \r
   All rights reserved. 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
 \r
 #define EFI_SCSI_IO_PROTOCOL_GUID \\r
   { \\r
-    0x932f4736, 0x2362, 0x4002, {0x80, 0x3e, 0x3c, 0xd5, 0x4b, 0x13, 0x8f, 0x85 } \\r
+    0x932f47e6, 0x2362, 0x4002, {0x80, 0x3e, 0x3c, 0xd5, 0x4b, 0x13, 0x8f, 0x85 } \\r
   }\r
 \r
-//\r
-// Forward reference for pure ANSI compatability\r
-//\r
+///\r
+/// Forward reference for pure ANSI compatability\r
+///\r
 typedef struct _EFI_SCSI_IO_PROTOCOL EFI_SCSI_IO_PROTOCOL;\r
 \r
 //\r
@@ -90,11 +93,10 @@ typedef struct {
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_SCSI_IO_PROTOCOL_GET_DEVICE_TYPE) (\r
+(EFIAPI *EFI_SCSI_IO_PROTOCOL_GET_DEVICE_TYPE)(\r
   IN  EFI_SCSI_IO_PROTOCOL            *This,\r
   OUT UINT8                           *DeviceType\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   Retrieves the device location in the SCSI channel.\r
@@ -111,12 +113,11 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_SCSI_IO_PROTOCOL_GET_DEVICE_LOCATION) (\r
+(EFIAPI *EFI_SCSI_IO_PROTOCOL_GET_DEVICE_LOCATION)(\r
   IN EFI_SCSI_IO_PROTOCOL           *This,\r
   IN OUT UINT8                      **Target,\r
   OUT UINT64                        *Lun\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   Resets the SCSI Bus that the SCSI Controller is attached to.\r
@@ -133,10 +134,9 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_SCSI_IO_PROTOCOL_RESET_BUS) (\r
+(EFIAPI *EFI_SCSI_IO_PROTOCOL_RESET_BUS)(\r
   IN EFI_SCSI_IO_PROTOCOL     *This\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   Resets the SCSI Controller that the device handle specifies.\r
@@ -154,10 +154,9 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_SCSI_IO_PROTOCOL_RESET_DEVICE) (\r
+(EFIAPI *EFI_SCSI_IO_PROTOCOL_RESET_DEVICE)(\r
   IN EFI_SCSI_IO_PROTOCOL     *This\r
-  )\r
-;\r
+  );\r
 \r
 \r
 /**\r
@@ -210,19 +209,29 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_SCSI_IO_PROTOCOL_EXEC_SCSI_COMMAND) (\r
+(EFIAPI *EFI_SCSI_IO_PROTOCOL_EXEC_SCSI_COMMAND)(\r
   IN EFI_SCSI_IO_PROTOCOL                   *This,\r
   IN OUT  EFI_SCSI_IO_SCSI_REQUEST_PACKET   *Packet,\r
   IN EFI_EVENT                              Event  OPTIONAL\r
-  )\r
-;\r
+  );\r
 \r
+/**  \r
+  @par Protocol Description:\r
+  Provides services to manage and communicate with SCSI devices.\r
+**/\r
 struct _EFI_SCSI_IO_PROTOCOL {\r
   EFI_SCSI_IO_PROTOCOL_GET_DEVICE_TYPE      GetDeviceType;\r
   EFI_SCSI_IO_PROTOCOL_GET_DEVICE_LOCATION  GetDeviceLocation;\r
   EFI_SCSI_IO_PROTOCOL_RESET_BUS            ResetBus;\r
   EFI_SCSI_IO_PROTOCOL_RESET_DEVICE         ResetDevice;\r
   EFI_SCSI_IO_PROTOCOL_EXEC_SCSI_COMMAND    ExecuteScsiCommand;    \r
+\r
+  ///\r
+  /// Supplies the alignment requirement for any buffer used in a data transfer. \r
+  /// IoAlign values of 0 and 1 mean that the buffer can be placed anywhere in memory. \r
+  /// Otherwise, IoAlign must be a power of 2, and the requirement is that the \r
+  /// start address of a buffer must be evenly divisible by IoAlign with no remainder.\r
+  ///\r
   UINT32                                    IoAlign;\r
 };\r
 \r