/** @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
**/\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
**/\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
**/\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
**/\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
**/\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