diff options
Diffstat (limited to 'drivers/s390/scsi/zfcp_fsf.h')
-rw-r--r-- | drivers/s390/scsi/zfcp_fsf.h | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/drivers/s390/scsi/zfcp_fsf.h b/drivers/s390/scsi/zfcp_fsf.h index ca110e386761..db8c85382dca 100644 --- a/drivers/s390/scsi/zfcp_fsf.h +++ b/drivers/s390/scsi/zfcp_fsf.h | |||
@@ -80,11 +80,15 @@ | |||
80 | #define FSF_REQUEST_SIZE_TOO_LARGE 0x00000061 | 80 | #define FSF_REQUEST_SIZE_TOO_LARGE 0x00000061 |
81 | #define FSF_RESPONSE_SIZE_TOO_LARGE 0x00000062 | 81 | #define FSF_RESPONSE_SIZE_TOO_LARGE 0x00000062 |
82 | #define FSF_SBAL_MISMATCH 0x00000063 | 82 | #define FSF_SBAL_MISMATCH 0x00000063 |
83 | #define FSF_INCONSISTENT_PROT_DATA 0x00000070 | ||
84 | #define FSF_INVALID_PROT_PARM 0x00000071 | ||
85 | #define FSF_BLOCK_GUARD_CHECK_FAILURE 0x00000081 | ||
86 | #define FSF_APP_TAG_CHECK_FAILURE 0x00000082 | ||
87 | #define FSF_REF_TAG_CHECK_FAILURE 0x00000083 | ||
83 | #define FSF_ADAPTER_STATUS_AVAILABLE 0x000000AD | 88 | #define FSF_ADAPTER_STATUS_AVAILABLE 0x000000AD |
84 | #define FSF_UNKNOWN_COMMAND 0x000000E2 | 89 | #define FSF_UNKNOWN_COMMAND 0x000000E2 |
85 | #define FSF_UNKNOWN_OP_SUBTYPE 0x000000E3 | 90 | #define FSF_UNKNOWN_OP_SUBTYPE 0x000000E3 |
86 | #define FSF_INVALID_COMMAND_OPTION 0x000000E5 | 91 | #define FSF_INVALID_COMMAND_OPTION 0x000000E5 |
87 | /* #define FSF_ERROR 0x000000FF */ | ||
88 | 92 | ||
89 | #define FSF_PROT_STATUS_QUAL_SIZE 16 | 93 | #define FSF_PROT_STATUS_QUAL_SIZE 16 |
90 | #define FSF_STATUS_QUALIFIER_SIZE 16 | 94 | #define FSF_STATUS_QUALIFIER_SIZE 16 |
@@ -147,6 +151,13 @@ | |||
147 | #define FSF_DATADIR_WRITE 0x00000001 | 151 | #define FSF_DATADIR_WRITE 0x00000001 |
148 | #define FSF_DATADIR_READ 0x00000002 | 152 | #define FSF_DATADIR_READ 0x00000002 |
149 | #define FSF_DATADIR_CMND 0x00000004 | 153 | #define FSF_DATADIR_CMND 0x00000004 |
154 | #define FSF_DATADIR_DIF_WRITE_INSERT 0x00000009 | ||
155 | #define FSF_DATADIR_DIF_READ_STRIP 0x0000000a | ||
156 | #define FSF_DATADIR_DIF_WRITE_CONVERT 0x0000000b | ||
157 | #define FSF_DATADIR_DIF_READ_CONVERT 0X0000000c | ||
158 | |||
159 | /* data protection control flags */ | ||
160 | #define FSF_APP_TAG_CHECK_ENABLE 0x10 | ||
150 | 161 | ||
151 | /* fc service class */ | 162 | /* fc service class */ |
152 | #define FSF_CLASS_3 0x00000003 | 163 | #define FSF_CLASS_3 0x00000003 |
@@ -162,6 +173,8 @@ | |||
162 | #define FSF_FEATURE_ELS_CT_CHAINED_SBALS 0x00000020 | 173 | #define FSF_FEATURE_ELS_CT_CHAINED_SBALS 0x00000020 |
163 | #define FSF_FEATURE_UPDATE_ALERT 0x00000100 | 174 | #define FSF_FEATURE_UPDATE_ALERT 0x00000100 |
164 | #define FSF_FEATURE_MEASUREMENT_DATA 0x00000200 | 175 | #define FSF_FEATURE_MEASUREMENT_DATA 0x00000200 |
176 | #define FSF_FEATURE_DIF_PROT_TYPE1 0x00010000 | ||
177 | #define FSF_FEATURE_DIX_PROT_TCPIP 0x00020000 | ||
165 | 178 | ||
166 | /* host connection features */ | 179 | /* host connection features */ |
167 | #define FSF_FEATURE_NPIV_MODE 0x00000001 | 180 | #define FSF_FEATURE_NPIV_MODE 0x00000001 |
@@ -316,9 +329,14 @@ struct fsf_qtcb_header { | |||
316 | struct fsf_qtcb_bottom_io { | 329 | struct fsf_qtcb_bottom_io { |
317 | u32 data_direction; | 330 | u32 data_direction; |
318 | u32 service_class; | 331 | u32 service_class; |
319 | u8 res1[8]; | 332 | u8 res1; |
333 | u8 data_prot_flags; | ||
334 | u16 app_tag_value; | ||
335 | u32 ref_tag_value; | ||
320 | u32 fcp_cmnd_length; | 336 | u32 fcp_cmnd_length; |
321 | u8 res2[12]; | 337 | u32 data_block_length; |
338 | u32 prot_data_length; | ||
339 | u8 res2[4]; | ||
322 | u8 fcp_cmnd[FSF_FCP_CMND_SIZE]; | 340 | u8 fcp_cmnd[FSF_FCP_CMND_SIZE]; |
323 | u8 fcp_rsp[FSF_FCP_RSP_SIZE]; | 341 | u8 fcp_rsp[FSF_FCP_RSP_SIZE]; |
324 | u8 res3[64]; | 342 | u8 res3[64]; |