aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/scsi/zfcp_fc.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/scsi/zfcp_fc.h')
-rw-r--r--drivers/s390/scsi/zfcp_fc.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/drivers/s390/scsi/zfcp_fc.h b/drivers/s390/scsi/zfcp_fc.h
index 231e231b7fd7..12fc6ebbc244 100644
--- a/drivers/s390/scsi/zfcp_fc.h
+++ b/drivers/s390/scsi/zfcp_fc.h
@@ -12,9 +12,89 @@
12 12
13#include <scsi/fc/fc_els.h> 13#include <scsi/fc/fc_els.h>
14#include <scsi/fc/fc_fcp.h> 14#include <scsi/fc/fc_fcp.h>
15#include <scsi/fc/fc_ns.h>
15#include <scsi/scsi_cmnd.h> 16#include <scsi/scsi_cmnd.h>
16#include <scsi/scsi_tcq.h> 17#include <scsi/scsi_tcq.h>
17 18
19#define ZFCP_FC_CT_SIZE_PAGE (PAGE_SIZE - sizeof(struct fc_ct_hdr))
20#define ZFCP_FC_GPN_FT_ENT_PAGE (ZFCP_FC_CT_SIZE_PAGE \
21 / sizeof(struct fc_gpn_ft_resp))
22#define ZFCP_FC_GPN_FT_NUM_BUFS 4 /* memory pages */
23
24#define ZFCP_FC_GPN_FT_MAX_SIZE (ZFCP_FC_GPN_FT_NUM_BUFS * PAGE_SIZE \
25 - sizeof(struct fc_ct_hdr))
26#define ZFCP_FC_GPN_FT_MAX_ENT (ZFCP_FC_GPN_FT_NUM_BUFS * \
27 (ZFCP_FC_GPN_FT_ENT_PAGE + 1))
28
29/**
30 * struct zfcp_fc_gid_pn_req - container for ct header plus gid_pn request
31 * @ct_hdr: FC GS common transport header
32 * @gid_pn: GID_PN request
33 */
34struct zfcp_fc_gid_pn_req {
35 struct fc_ct_hdr ct_hdr;
36 struct fc_ns_gid_pn gid_pn;
37} __packed;
38
39/**
40 * struct zfcp_fc_gid_pn_resp - container for ct header plus gid_pn response
41 * @ct_hdr: FC GS common transport header
42 * @gid_pn: GID_PN response
43 */
44struct zfcp_fc_gid_pn_resp {
45 struct fc_ct_hdr ct_hdr;
46 struct fc_gid_pn_resp gid_pn;
47} __packed;
48
49/**
50 * struct zfcp_fc_gid_pn - everything required in zfcp for gid_pn request
51 * @ct: data passed to zfcp_fsf for issuing fsf request
52 * @sg_req: scatterlist entry for request data
53 * @sg_resp: scatterlist entry for response data
54 * @gid_pn_req: GID_PN request data
55 * @gid_pn_resp: GID_PN response data
56 */
57struct zfcp_fc_gid_pn {
58 struct zfcp_send_ct ct;
59 struct scatterlist sg_req;
60 struct scatterlist sg_resp;
61 struct zfcp_fc_gid_pn_req gid_pn_req;
62 struct zfcp_fc_gid_pn_resp gid_pn_resp;
63 struct zfcp_port *port;
64};
65
66/**
67 * struct zfcp_fc_gpn_ft - container for ct header plus gpn_ft request
68 * @ct_hdr: FC GS common transport header
69 * @gpn_ft: GPN_FT request
70 */
71struct zfcp_fc_gpn_ft_req {
72 struct fc_ct_hdr ct_hdr;
73 struct fc_ns_gid_ft gpn_ft;
74} __packed;
75
76/**
77 * struct zfcp_fc_gpn_ft_resp - container for ct header plus gpn_ft response
78 * @ct_hdr: FC GS common transport header
79 * @gpn_ft: Array of gpn_ft response data to fill one memory page
80 */
81struct zfcp_fc_gpn_ft_resp {
82 struct fc_ct_hdr ct_hdr;
83 struct fc_gpn_ft_resp gpn_ft[ZFCP_FC_GPN_FT_ENT_PAGE];
84} __packed;
85
86/**
87 * struct zfcp_fc_gpn_ft - zfcp data for gpn_ft request
88 * @ct: data passed to zfcp_fsf for issuing fsf request
89 * @sg_req: scatter list entry for gpn_ft request
90 * @sg_resp: scatter list entries for gpn_ft responses (per memory page)
91 */
92struct zfcp_fc_gpn_ft {
93 struct zfcp_send_ct ct;
94 struct scatterlist sg_req;
95 struct scatterlist sg_resp[ZFCP_FC_GPN_FT_NUM_BUFS];
96};
97
18/** 98/**
19 * struct zfcp_fc_els_adisc - everything required in zfcp for issuing ELS ADISC 99 * struct zfcp_fc_els_adisc - everything required in zfcp for issuing ELS ADISC
20 * @els: data required for issuing els fsf command 100 * @els: data required for issuing els fsf command