20 #define ZFCP_FC_CT_SIZE_PAGE (PAGE_SIZE - sizeof(struct fc_ct_hdr))
21 #define ZFCP_FC_GPN_FT_ENT_PAGE (ZFCP_FC_CT_SIZE_PAGE \
22 / sizeof(struct fc_gpn_ft_resp))
23 #define ZFCP_FC_GPN_FT_NUM_BUFS 4
25 #define ZFCP_FC_GPN_FT_MAX_SIZE (ZFCP_FC_GPN_FT_NUM_BUFS * PAGE_SIZE \
26 - sizeof(struct fc_ct_hdr))
27 #define ZFCP_FC_GPN_FT_MAX_ENT (ZFCP_FC_GPN_FT_NUM_BUFS * \
28 (ZFCP_FC_GPN_FT_ENT_PAGE + 1))
30 #define ZFCP_FC_CTELS_TMO (2 * FC_DEF_R_A_TOV / 1000)
38 struct zfcp_fc_event {
50 struct zfcp_fc_events {
61 struct zfcp_fc_gid_pn_req {
71 struct zfcp_fc_gid_pn_rsp {
81 struct zfcp_fc_gpn_ft_req {
91 struct zfcp_fc_gspn_req {
102 struct zfcp_fc_gspn_rsp {
114 struct zfcp_fc_rspn_req {
137 struct zfcp_fc_gid_pn_req
req;
138 struct zfcp_fc_gid_pn_rsp
rsp;
142 struct zfcp_fc_gpn_ft_req
req;
145 struct zfcp_fc_gspn_req
req;
146 struct zfcp_fc_gspn_rsp
rsp;
149 struct zfcp_fc_rspn_req
req;
162 enum zfcp_fc_wka_status {
163 ZFCP_FC_WKA_PORT_OFFLINE,
164 ZFCP_FC_WKA_PORT_CLOSING,
165 ZFCP_FC_WKA_PORT_OPENING,
166 ZFCP_FC_WKA_PORT_ONLINE,
180 struct zfcp_fc_wka_port {
183 enum zfcp_fc_wka_status
status;
198 struct zfcp_fc_wka_ports {
199 struct zfcp_fc_wka_port
ms;
200 struct zfcp_fc_wka_port
ts;
201 struct zfcp_fc_wka_port
ds;
202 struct zfcp_fc_wka_port
as;
224 if (scsi_populate_tag_msg(scsi, tag)) {
243 fcp->
fc_dl = scsi_bufflen(scsi);
266 rsp_flags = fcp_rsp->
resp.fr_flags;
271 set_host_byte(scsi,
DID_OK);
279 sense = (
char *) &fcp_rsp[1];
280 if (rsp_flags & FCP_RSP_LEN_VAL)
281 sense += fcp_rsp->
ext.fr_rsp_len;
282 sense_len =
min(fcp_rsp->
ext.fr_sns_len,
288 resid = fcp_rsp->
ext.fr_resid;
289 scsi_set_resid(scsi, resid);
290 if (scsi_bufflen(scsi) - resid < scsi->underflow &&
291 !(rsp_flags & FCP_SNS_LEN_VAL) &&