diff options
Diffstat (limited to 'drivers/s390/scsi/zfcp_fsf.h')
-rw-r--r-- | drivers/s390/scsi/zfcp_fsf.h | 53 |
1 files changed, 29 insertions, 24 deletions
diff --git a/drivers/s390/scsi/zfcp_fsf.h b/drivers/s390/scsi/zfcp_fsf.h index dcc7c1dbcf58..b3de682b64cf 100644 --- a/drivers/s390/scsi/zfcp_fsf.h +++ b/drivers/s390/scsi/zfcp_fsf.h | |||
@@ -11,6 +11,7 @@ | |||
11 | 11 | ||
12 | #include <linux/pfn.h> | 12 | #include <linux/pfn.h> |
13 | #include <linux/scatterlist.h> | 13 | #include <linux/scatterlist.h> |
14 | #include <scsi/libfc.h> | ||
14 | 15 | ||
15 | #define FSF_QTCB_CURRENT_VERSION 0x00000001 | 16 | #define FSF_QTCB_CURRENT_VERSION 0x00000001 |
16 | 17 | ||
@@ -228,7 +229,8 @@ struct fsf_status_read_buffer { | |||
228 | u32 length; | 229 | u32 length; |
229 | u32 res1; | 230 | u32 res1; |
230 | struct fsf_queue_designator queue_designator; | 231 | struct fsf_queue_designator queue_designator; |
231 | u32 d_id; | 232 | u8 res2; |
233 | u8 d_id[3]; | ||
232 | u32 class; | 234 | u32 class; |
233 | u64 fcp_lun; | 235 | u64 fcp_lun; |
234 | u8 res3[24]; | 236 | u8 res3[24]; |
@@ -309,22 +311,7 @@ struct fsf_qtcb_header { | |||
309 | u8 res4[16]; | 311 | u8 res4[16]; |
310 | } __attribute__ ((packed)); | 312 | } __attribute__ ((packed)); |
311 | 313 | ||
312 | struct fsf_nport_serv_param { | ||
313 | u8 common_serv_param[16]; | ||
314 | u64 wwpn; | ||
315 | u64 wwnn; | ||
316 | u8 class1_serv_param[16]; | ||
317 | u8 class2_serv_param[16]; | ||
318 | u8 class3_serv_param[16]; | ||
319 | u8 class4_serv_param[16]; | ||
320 | u8 vendor_version_level[16]; | ||
321 | } __attribute__ ((packed)); | ||
322 | |||
323 | #define FSF_PLOGI_MIN_LEN 112 | 314 | #define FSF_PLOGI_MIN_LEN 112 |
324 | struct fsf_plogi { | ||
325 | u32 code; | ||
326 | struct fsf_nport_serv_param serv_param; | ||
327 | } __attribute__ ((packed)); | ||
328 | 315 | ||
329 | #define FSF_FCP_CMND_SIZE 288 | 316 | #define FSF_FCP_CMND_SIZE 288 |
330 | #define FSF_FCP_RSP_SIZE 128 | 317 | #define FSF_FCP_RSP_SIZE 128 |
@@ -342,8 +329,8 @@ struct fsf_qtcb_bottom_io { | |||
342 | 329 | ||
343 | struct fsf_qtcb_bottom_support { | 330 | struct fsf_qtcb_bottom_support { |
344 | u32 operation_subtype; | 331 | u32 operation_subtype; |
345 | u8 res1[12]; | 332 | u8 res1[13]; |
346 | u32 d_id; | 333 | u8 d_id[3]; |
347 | u32 option; | 334 | u32 option; |
348 | u64 fcp_lun; | 335 | u64 fcp_lun; |
349 | u64 res2; | 336 | u64 res2; |
@@ -372,18 +359,18 @@ struct fsf_qtcb_bottom_config { | |||
372 | u32 fc_topology; | 359 | u32 fc_topology; |
373 | u32 fc_link_speed; | 360 | u32 fc_link_speed; |
374 | u32 adapter_type; | 361 | u32 adapter_type; |
375 | u32 peer_d_id; | 362 | u8 res0; |
363 | u8 peer_d_id[3]; | ||
376 | u8 res1[2]; | 364 | u8 res1[2]; |
377 | u16 timer_interval; | 365 | u16 timer_interval; |
378 | u8 res2[8]; | 366 | u8 res2[9]; |
379 | u32 s_id; | 367 | u8 s_id[3]; |
380 | struct fsf_nport_serv_param nport_serv_param; | 368 | u8 nport_serv_param[128]; |
381 | u8 reserved_nport_serv_param[16]; | ||
382 | u8 res3[8]; | 369 | u8 res3[8]; |
383 | u32 adapter_ports; | 370 | u32 adapter_ports; |
384 | u32 hardware_version; | 371 | u32 hardware_version; |
385 | u8 serial_number[32]; | 372 | u8 serial_number[32]; |
386 | struct fsf_nport_serv_param plogi_payload; | 373 | u8 plogi_payload[112]; |
387 | struct fsf_statistics_info stat_info; | 374 | struct fsf_statistics_info stat_info; |
388 | u8 res4[112]; | 375 | u8 res4[112]; |
389 | } __attribute__ ((packed)); | 376 | } __attribute__ ((packed)); |
@@ -450,4 +437,22 @@ struct zfcp_blk_drv_data { | |||
450 | u64 fabric_lat; | 437 | u64 fabric_lat; |
451 | } __attribute__ ((packed)); | 438 | } __attribute__ ((packed)); |
452 | 439 | ||
440 | /** | ||
441 | * struct zfcp_fsf_ct_els - zfcp data for ct or els request | ||
442 | * @req: scatter-gather list for request | ||
443 | * @resp: scatter-gather list for response | ||
444 | * @handler: handler function (called for response to the request) | ||
445 | * @handler_data: data passed to handler function | ||
446 | * @port: Optional pointer to port for zfcp internal ELS (only test link ADISC) | ||
447 | * @status: used to pass error status to calling function | ||
448 | */ | ||
449 | struct zfcp_fsf_ct_els { | ||
450 | struct scatterlist *req; | ||
451 | struct scatterlist *resp; | ||
452 | void (*handler)(void *); | ||
453 | void *handler_data; | ||
454 | struct zfcp_port *port; | ||
455 | int status; | ||
456 | }; | ||
457 | |||
453 | #endif /* FSF_H */ | 458 | #endif /* FSF_H */ |