Lines Matching +full:port +full:- +full:specific
1 /* SPDX-License-Identifier: GPL-2.0 */
21 #define ZFCP_FC_CT_SIZE_PAGE (PAGE_SIZE - sizeof(struct fc_ct_hdr))
27 - sizeof(struct fc_ct_hdr))
34 * struct zfcp_fc_event - FC HBAAPI event for internal queueing from irq context
46 * struct zfcp_fc_events - Infrastructure for posting FC events from irq context
58 * struct zfcp_fc_gid_pn_req - container for ct header plus gid_pn request
68 * struct zfcp_fc_gid_pn_rsp - container for ct header plus gid_pn response
78 * struct zfcp_fc_gpn_ft - container for ct header plus gpn_ft request
88 * struct zfcp_fc_gspn_req - container for ct header plus GSPN_ID request
98 * struct zfcp_fc_gspn_rsp - container for ct header plus GSPN_ID response
110 * struct zfcp_fc_rspn_req - container for ct header plus RSPN_ID request
122 * struct zfcp_fc_req - Container for FC ELS and CT requests sent from zfcp
126 * @u: request and response specific data
127 * @u.adisc: ADISC specific data
130 * @u.gid_pn: GID_PN specific data
133 * @u.gpn_ft: GPN_FT specific data
136 * @u.gspn: GSPN specific data
139 * @u.rspn: RSPN specific data
157 struct scatterlist sg_rsp2[ZFCP_FC_GPN_FT_NUM_BUFS - 1];
172 * enum zfcp_fc_wka_status - FC WKA port status in zfcp
173 * @ZFCP_FC_WKA_PORT_OFFLINE: Port is closed and not in use
174 * @ZFCP_FC_WKA_PORT_CLOSING: The FSF "close port" request is pending
175 * @ZFCP_FC_WKA_PORT_OPENING: The FSF "open port" request is pending
176 * @ZFCP_FC_WKA_PORT_ONLINE: The port is open and the port handle is valid
186 * struct zfcp_fc_wka_port - representation of well-known-address (WKA) FC port
187 * @adapter: Pointer to adapter structure this WKA port belongs to
190 * @status: Current status of WKA port
191 * @refcount: Reference count to keep port open as long as it is in use
192 * @d_id: FC destination id or well-known-address
193 * @handle: FSF handle for the open WKA port
195 * @work: For delaying the closing of the WKA port
210 * struct zfcp_fc_wka_ports - Data structures for FC generic services
224 * zfcp_fc_scsi_to_fcp - setup FCP command with data from scsi_cmnd
233 int_to_scsilun(scsi->device->lun, (struct scsi_lun *) &fcp->fc_lun); in zfcp_fc_scsi_to_fcp()
235 fcp->fc_pri_ta = FCP_PTA_SIMPLE; in zfcp_fc_scsi_to_fcp()
237 if (scsi->sc_data_direction == DMA_FROM_DEVICE) in zfcp_fc_scsi_to_fcp()
238 fcp->fc_flags |= FCP_CFL_RDDATA; in zfcp_fc_scsi_to_fcp()
239 if (scsi->sc_data_direction == DMA_TO_DEVICE) in zfcp_fc_scsi_to_fcp()
240 fcp->fc_flags |= FCP_CFL_WRDATA; in zfcp_fc_scsi_to_fcp()
242 memcpy(fcp->fc_cdb, scsi->cmnd, scsi->cmd_len); in zfcp_fc_scsi_to_fcp()
245 fcp->fc_dl = cpu_to_be32(datalen); in zfcp_fc_scsi_to_fcp()
248 datalen += datalen / scsi->device->sector_size * 8; in zfcp_fc_scsi_to_fcp()
249 fcp->fc_dl = cpu_to_be32(datalen); in zfcp_fc_scsi_to_fcp()
254 * zfcp_fc_fcp_tm() - Setup FCP command as task management command.
262 int_to_scsilun(dev->lun, (struct scsi_lun *) &fcp->fc_lun); in zfcp_fc_fcp_tm()
263 fcp->fc_tm_flags = tm_flags; in zfcp_fc_fcp_tm()
267 * zfcp_fc_evap_fcp_rsp - evaluate FCP RSP IU and update scsi_cmnd accordingly
280 scsi->result |= fcp_rsp->resp.fr_status; in zfcp_fc_eval_fcp_rsp()
282 rsp_flags = fcp_rsp->resp.fr_flags; in zfcp_fc_eval_fcp_rsp()
286 if (rsp_info->rsp_code == FCP_TMF_CMPL) in zfcp_fc_eval_fcp_rsp()
297 sense += be32_to_cpu(fcp_rsp->ext.fr_rsp_len); in zfcp_fc_eval_fcp_rsp()
298 sense_len = min_t(u32, be32_to_cpu(fcp_rsp->ext.fr_sns_len), in zfcp_fc_eval_fcp_rsp()
300 memcpy(scsi->sense_buffer, sense, sense_len); in zfcp_fc_eval_fcp_rsp()
304 resid = be32_to_cpu(fcp_rsp->ext.fr_resid); in zfcp_fc_eval_fcp_rsp()
306 if (scsi_bufflen(scsi) - resid < scsi->underflow && in zfcp_fc_eval_fcp_rsp()
308 fcp_rsp->resp.fr_status == SAM_STAT_GOOD) in zfcp_fc_eval_fcp_rsp()
312 if (fcp_rsp->resp.fr_status == SAM_STAT_GOOD) in zfcp_fc_eval_fcp_rsp()