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 /include | |
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>
Diffstat (limited to 'include')
-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 |