.. | .. |
---|
4 | 4 | * |
---|
5 | 5 | * External function declarations. |
---|
6 | 6 | * |
---|
7 | | - * Copyright IBM Corp. 2002, 2018 |
---|
| 7 | + * Copyright IBM Corp. 2002, 2020 |
---|
8 | 8 | */ |
---|
9 | 9 | |
---|
10 | 10 | #ifndef ZFCP_EXT_H |
---|
.. | .. |
---|
44 | 44 | extern void zfcp_dbf_rec_run_wka(char *, struct zfcp_fc_wka_port *, u64); |
---|
45 | 45 | extern void zfcp_dbf_hba_fsf_uss(char *, struct zfcp_fsf_req *); |
---|
46 | 46 | extern void zfcp_dbf_hba_fsf_res(char *, int, struct zfcp_fsf_req *); |
---|
| 47 | +extern void zfcp_dbf_hba_fsf_fces(char *tag, const struct zfcp_fsf_req *req, |
---|
| 48 | + u64 wwpn, u32 fc_security_old, |
---|
| 49 | + u32 fc_security_new); |
---|
47 | 50 | extern void zfcp_dbf_hba_bit_err(char *, struct zfcp_fsf_req *); |
---|
48 | 51 | extern void zfcp_dbf_hba_def_err(struct zfcp_adapter *, u64, u16, void **); |
---|
49 | 52 | extern void zfcp_dbf_hba_basic(char *, struct zfcp_adapter *); |
---|
.. | .. |
---|
59 | 62 | /* zfcp_erp.c */ |
---|
60 | 63 | extern void zfcp_erp_set_adapter_status(struct zfcp_adapter *, u32); |
---|
61 | 64 | extern void zfcp_erp_clear_adapter_status(struct zfcp_adapter *, u32); |
---|
62 | | -extern void zfcp_erp_port_forced_no_port_dbf(char *id, |
---|
| 65 | +extern void zfcp_erp_port_forced_no_port_dbf(char *dbftag, |
---|
63 | 66 | struct zfcp_adapter *adapter, |
---|
64 | 67 | u64 port_name, u32 port_id); |
---|
65 | 68 | extern void zfcp_erp_adapter_reopen(struct zfcp_adapter *, int, char *); |
---|
66 | 69 | extern void zfcp_erp_adapter_shutdown(struct zfcp_adapter *, int, char *); |
---|
67 | 70 | extern void zfcp_erp_set_port_status(struct zfcp_port *, u32); |
---|
68 | 71 | extern void zfcp_erp_clear_port_status(struct zfcp_port *, u32); |
---|
69 | | -extern void zfcp_erp_port_reopen(struct zfcp_port *port, int clear, char *id); |
---|
| 72 | +extern void zfcp_erp_port_reopen(struct zfcp_port *port, int clear, |
---|
| 73 | + char *dbftag); |
---|
70 | 74 | extern void zfcp_erp_port_shutdown(struct zfcp_port *, int, char *); |
---|
71 | 75 | extern void zfcp_erp_port_forced_reopen(struct zfcp_port *, int, char *); |
---|
72 | 76 | extern void zfcp_erp_port_forced_reopen_all(struct zfcp_adapter *adapter, |
---|
.. | .. |
---|
81 | 85 | extern void zfcp_erp_wait(struct zfcp_adapter *); |
---|
82 | 86 | extern void zfcp_erp_notify(struct zfcp_erp_action *, unsigned long); |
---|
83 | 87 | extern void zfcp_erp_timeout_handler(struct timer_list *t); |
---|
84 | | -extern void zfcp_erp_adapter_reset_sync(struct zfcp_adapter *adapter, char *id); |
---|
| 88 | +extern void zfcp_erp_adapter_reset_sync(struct zfcp_adapter *adapter, |
---|
| 89 | + char *dbftag); |
---|
85 | 90 | |
---|
86 | 91 | /* zfcp_fc.c */ |
---|
87 | 92 | extern struct kmem_cache *zfcp_fc_req_cache; |
---|
.. | .. |
---|
120 | 125 | extern int zfcp_fsf_exchange_port_data(struct zfcp_erp_action *); |
---|
121 | 126 | extern int zfcp_fsf_exchange_port_data_sync(struct zfcp_qdio *, |
---|
122 | 127 | struct fsf_qtcb_bottom_port *); |
---|
| 128 | +extern u32 zfcp_fsf_convert_portspeed(u32 fsf_speed); |
---|
123 | 129 | extern void zfcp_fsf_req_dismiss_all(struct zfcp_adapter *); |
---|
124 | 130 | extern int zfcp_fsf_status_read(struct zfcp_qdio *); |
---|
125 | 131 | extern int zfcp_status_read_refill(struct zfcp_adapter *adapter); |
---|
.. | .. |
---|
129 | 135 | struct zfcp_fsf_ct_els *, unsigned int); |
---|
130 | 136 | extern int zfcp_fsf_fcp_cmnd(struct scsi_cmnd *); |
---|
131 | 137 | extern void zfcp_fsf_req_free(struct zfcp_fsf_req *); |
---|
| 138 | +extern void zfcp_fsf_fc_host_link_down(struct zfcp_adapter *adapter); |
---|
132 | 139 | extern struct zfcp_fsf_req *zfcp_fsf_fcp_task_mgmt(struct scsi_device *sdev, |
---|
133 | 140 | u8 tm_flags); |
---|
134 | 141 | extern struct zfcp_fsf_req *zfcp_fsf_abort_fcp_cmnd(struct scsi_cmnd *); |
---|
135 | 142 | extern void zfcp_fsf_reqid_check(struct zfcp_qdio *, int); |
---|
| 143 | +enum zfcp_fsf_print_fmt { |
---|
| 144 | + ZFCP_FSF_PRINT_FMT_LIST, |
---|
| 145 | + ZFCP_FSF_PRINT_FMT_SINGLEITEM, |
---|
| 146 | +}; |
---|
| 147 | +extern ssize_t zfcp_fsf_scnprint_fc_security(char *buf, size_t size, |
---|
| 148 | + u32 fc_security, |
---|
| 149 | + enum zfcp_fsf_print_fmt fmt); |
---|
136 | 150 | |
---|
137 | 151 | /* zfcp_qdio.c */ |
---|
138 | 152 | extern int zfcp_qdio_setup(struct zfcp_adapter *); |
---|
.. | .. |
---|
141 | 155 | extern int zfcp_qdio_send(struct zfcp_qdio *, struct zfcp_qdio_req *); |
---|
142 | 156 | extern int zfcp_qdio_sbals_from_sg(struct zfcp_qdio *, struct zfcp_qdio_req *, |
---|
143 | 157 | struct scatterlist *); |
---|
| 158 | +extern void zfcp_qdio_shost_update(struct zfcp_adapter *const adapter, |
---|
| 159 | + const struct zfcp_qdio *const qdio); |
---|
144 | 160 | extern int zfcp_qdio_open(struct zfcp_qdio *); |
---|
145 | 161 | extern void zfcp_qdio_close(struct zfcp_qdio *); |
---|
146 | 162 | extern void zfcp_qdio_siosl(struct zfcp_adapter *); |
---|
147 | 163 | |
---|
148 | 164 | /* zfcp_scsi.c */ |
---|
| 165 | +extern bool zfcp_experimental_dix; |
---|
149 | 166 | extern struct scsi_transport_template *zfcp_scsi_transport_template; |
---|
150 | 167 | extern int zfcp_scsi_adapter_register(struct zfcp_adapter *); |
---|
151 | 168 | extern void zfcp_scsi_adapter_unregister(struct zfcp_adapter *); |
---|
.. | .. |
---|
156 | 173 | extern void zfcp_scsi_schedule_rports_block(struct zfcp_adapter *); |
---|
157 | 174 | extern void zfcp_scsi_set_prot(struct zfcp_adapter *); |
---|
158 | 175 | extern void zfcp_scsi_dif_sense_error(struct scsi_cmnd *, int); |
---|
| 176 | +extern void zfcp_scsi_shost_update_config_data( |
---|
| 177 | + struct zfcp_adapter *const adapter, |
---|
| 178 | + const struct fsf_qtcb_bottom_config *const bottom, |
---|
| 179 | + const bool bottom_incomplete); |
---|
| 180 | +extern void zfcp_scsi_shost_update_port_data( |
---|
| 181 | + struct zfcp_adapter *const adapter, |
---|
| 182 | + const struct fsf_qtcb_bottom_port *const bottom); |
---|
159 | 183 | |
---|
160 | 184 | /* zfcp_sysfs.c */ |
---|
161 | 185 | extern const struct attribute_group *zfcp_unit_attr_groups[]; |
---|
.. | .. |
---|
164 | 188 | extern struct mutex zfcp_sysfs_port_units_mutex; |
---|
165 | 189 | extern struct device_attribute *zfcp_sysfs_sdev_attrs[]; |
---|
166 | 190 | extern struct device_attribute *zfcp_sysfs_shost_attrs[]; |
---|
| 191 | +extern const struct attribute_group zfcp_sysfs_diag_attr_group; |
---|
167 | 192 | bool zfcp_sysfs_port_is_removing(const struct zfcp_port *const port); |
---|
168 | 193 | |
---|
169 | 194 | /* zfcp_unit.c */ |
---|