X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=MdePkg%2FInclude%2FProtocol%2FScsiPassThru.h;h=1790c1af43db50c33a2a580331182a9919f802ea;hb=e1f1fb16580a6e5a835e9e1574006561addac297;hp=1ff7a6dfbba2687988e3004ffd1a89a9976a8974;hpb=1f08a159034549216eccfd533b50b712d944d844;p=mirror_edk2.git diff --git a/MdePkg/Include/Protocol/ScsiPassThru.h b/MdePkg/Include/Protocol/ScsiPassThru.h index 1ff7a6dfbb..1790c1af43 100644 --- a/MdePkg/Include/Protocol/ScsiPassThru.h +++ b/MdePkg/Include/Protocol/ScsiPassThru.h @@ -66,23 +66,85 @@ typedef struct _EFI_SCSI_PASS_THRU_PROTOCOL EFI_SCSI_PASS_THRU_PROTOCOL; #define EFI_SCSI_STATUS_TARGET_QUEUE_FULL 0x28 // queue full typedef struct { + /// + /// The timeout, in 100 ns units, to use for the execution of this SCSI + /// Request Packet. A Timeout value of 0 means that this function + /// will wait indefinitely for the SCSI Request Packet to execute. If + /// Timeout is greater than zero, then this function will return + /// EFI_TIMEOUT if the time required to execute the SCSI Request + /// Packet is greater than Timeout. + /// UINT64 Timeout; + /// + /// A pointer to the data buffer to transfer between the SCSI + /// controller and the SCSI device. Must be aligned to the boundary + /// specified in the IoAlign field of the + /// EFI_SCSI_PASS_THRU_MODE structure. + /// VOID *DataBuffer; + /// + /// A pointer to the sense data that was generated by the execution of + /// the SCSI Request Packet. + /// VOID *SenseData; + /// + /// A pointer to buffer that contains the Command Data Block to + /// send to the SCSI device. + /// VOID *Cdb; + /// + /// On Input, the size, in bytes, of InDataBuffer. On output, the + /// number of bytes transferred between the SCSI controller and the SCSI device. + /// UINT32 TransferLength; + /// + /// The length, in bytes, of the buffer Cdb. The standard values are + /// 6, 10, 12, and 16, but other values are possible if a variable length CDB is used. + /// UINT8 CdbLength; + /// + /// The direction of the data transfer. 0 for reads, 1 for writes. A + /// value of 2 is Reserved for Bi-Directional SCSI commands. + /// UINT8 DataDirection; + /// + /// The status of the SCSI Host Controller that produces the SCSI + /// bus where the SCSI device attached when the SCSI Request + /// Packet was executed on the SCSI Controller. + /// UINT8 HostAdapterStatus; + /// + /// The status returned by the SCSI device when the SCSI Request + /// Packet was executed. + /// UINT8 TargetStatus; + /// + /// On input, the length in bytes of the SenseData buffer. On + /// output, the number of bytes written to the SenseData buffer. + /// UINT8 SenseDataLength; } EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET; typedef struct { + /// + /// A Null-terminated Unicode string that represents the printable name of the SCSI controller. + /// CHAR16 *ControllerName; + /// + /// A Null-terminated Unicode string that represents the printable name of the SCSI channel. + /// CHAR16 *ChannelName; + /// + /// The Target ID of the host adapter on the SCSI channel. + /// UINT32 AdapterId; + /// + /// Additional information on the attributes of the SCSI channel. + /// UINT32 Attributes; + /// + /// Supplies the alignment requirement for any buffer used in a data transfer. + /// UINT32 IoAlign; } EFI_SCSI_PASS_THRU_MODE; @@ -296,15 +358,17 @@ EFI_STATUS IN UINT64 Lun ); -/** - @par Protocol Description: - The EFI_SCSI_PASS_THRU_PROTOCOL provides information about a SCSI channel and - the ability to send SCI Request Packets to any SCSI device attached to that SCSI channel. The - information includes the Target ID of the host controller on the SCSI channel, the attributes of - the SCSI channel, the printable name for the SCSI controller, and the printable name of the - SCSI channel. -**/ +/// +/// The EFI_SCSI_PASS_THRU_PROTOCOL provides information about a SCSI channel and +/// the ability to send SCI Request Packets to any SCSI device attached to that SCSI channel. The +/// information includes the Target ID of the host controller on the SCSI channel, the attributes of +/// the SCSI channel, the printable name for the SCSI controller, and the printable name of the +/// SCSI channel. +/// struct _EFI_SCSI_PASS_THRU_PROTOCOL { + /// + /// A pointer to the EFI_SCSI_PASS_THRU_MODE data for this SCSI channel. + /// EFI_SCSI_PASS_THRU_MODE *Mode; EFI_SCSI_PASS_THRU_PASSTHRU PassThru; EFI_SCSI_PASS_THRU_GET_NEXT_DEVICE GetNextDevice;