diff options
| author | Nicholas Bellinger <nab@linux-iscsi.org> | 2014-03-16 17:51:35 -0400 |
|---|---|---|
| committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2014-06-02 15:41:33 -0400 |
| commit | 1b49dcf3d7c765ad18ca7167a0e441824eb1f7af (patch) | |
| tree | 5bb2c91afddab39abe6a29e507acde2f6b67ee18 | |
| parent | 5f80ff8eccba50832dcc640ac89add4c7fced963 (diff) | |
virtio-scsi.h: Add virtio_scsi_cmd_req_pi + VIRTIO_SCSI_F_T10_PI bits
This patch adds a virtio_scsi_cmd_req_pi header as recommened by
Paolo that contains pi_bytesout + pi_bytesin elements used for
signaling when protection information buffers (in bytes) are
expected to preceed the data payload buffers.
Also add new VIRTIO_SCSI_F_T10_PI feature bit to be used to signal
host support.
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Martin K. Petersen <martin.petersen@oracle.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Sagi Grimberg <sagig@dev.mellanox.co.il>
Cc: H. Peter Anvin <hpa@zytor.com>
Acked-by: Rusty Russell <rusty@rustcorp.com.au>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
| -rw-r--r-- | include/linux/virtio_scsi.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/include/linux/virtio_scsi.h b/include/linux/virtio_scsi.h index 4195b97a3def..de429d1f4357 100644 --- a/include/linux/virtio_scsi.h +++ b/include/linux/virtio_scsi.h | |||
| @@ -35,11 +35,23 @@ struct virtio_scsi_cmd_req { | |||
| 35 | u8 lun[8]; /* Logical Unit Number */ | 35 | u8 lun[8]; /* Logical Unit Number */ |
| 36 | u64 tag; /* Command identifier */ | 36 | u64 tag; /* Command identifier */ |
| 37 | u8 task_attr; /* Task attribute */ | 37 | u8 task_attr; /* Task attribute */ |
| 38 | u8 prio; | 38 | u8 prio; /* SAM command priority field */ |
| 39 | u8 crn; | 39 | u8 crn; |
| 40 | u8 cdb[VIRTIO_SCSI_CDB_SIZE]; | 40 | u8 cdb[VIRTIO_SCSI_CDB_SIZE]; |
| 41 | } __packed; | 41 | } __packed; |
| 42 | 42 | ||
| 43 | /* SCSI command request, followed by protection information */ | ||
| 44 | struct virtio_scsi_cmd_req_pi { | ||
| 45 | u8 lun[8]; /* Logical Unit Number */ | ||
| 46 | u64 tag; /* Command identifier */ | ||
| 47 | u8 task_attr; /* Task attribute */ | ||
| 48 | u8 prio; /* SAM command priority field */ | ||
| 49 | u8 crn; | ||
| 50 | u32 pi_bytesout; /* DataOUT PI Number of bytes */ | ||
| 51 | u32 pi_bytesin; /* DataIN PI Number of bytes */ | ||
| 52 | u8 cdb[VIRTIO_SCSI_CDB_SIZE]; | ||
| 53 | } __packed; | ||
| 54 | |||
| 43 | /* Response, followed by sense data and data-in */ | 55 | /* Response, followed by sense data and data-in */ |
| 44 | struct virtio_scsi_cmd_resp { | 56 | struct virtio_scsi_cmd_resp { |
| 45 | u32 sense_len; /* Sense data length */ | 57 | u32 sense_len; /* Sense data length */ |
| @@ -97,6 +109,7 @@ struct virtio_scsi_config { | |||
| 97 | #define VIRTIO_SCSI_F_INOUT 0 | 109 | #define VIRTIO_SCSI_F_INOUT 0 |
| 98 | #define VIRTIO_SCSI_F_HOTPLUG 1 | 110 | #define VIRTIO_SCSI_F_HOTPLUG 1 |
| 99 | #define VIRTIO_SCSI_F_CHANGE 2 | 111 | #define VIRTIO_SCSI_F_CHANGE 2 |
| 112 | #define VIRTIO_SCSI_F_T10_PI 3 | ||
| 100 | 113 | ||
| 101 | /* Response codes */ | 114 | /* Response codes */ |
| 102 | #define VIRTIO_SCSI_S_OK 0 | 115 | #define VIRTIO_SCSI_S_OK 0 |
