diff options
Diffstat (limited to 'include/scsi')
-rw-r--r-- | include/scsi/iscsi_if.h | 7 | ||||
-rw-r--r-- | include/scsi/libiscsi.h | 31 | ||||
-rw-r--r-- | include/scsi/scsi_transport_iscsi.h | 8 |
3 files changed, 19 insertions, 27 deletions
diff --git a/include/scsi/iscsi_if.h b/include/scsi/iscsi_if.h index 1883c85cd3ee..801a677777cc 100644 --- a/include/scsi/iscsi_if.h +++ b/include/scsi/iscsi_if.h | |||
@@ -310,13 +310,6 @@ enum iscsi_host_param { | |||
310 | 310 | ||
311 | #define iscsi_ptr(_handle) ((void*)(unsigned long)_handle) | 311 | #define iscsi_ptr(_handle) ((void*)(unsigned long)_handle) |
312 | #define iscsi_handle(_ptr) ((uint64_t)(unsigned long)_ptr) | 312 | #define iscsi_handle(_ptr) ((uint64_t)(unsigned long)_ptr) |
313 | #define hostdata_session(_hostdata) (iscsi_ptr(*(unsigned long *)_hostdata)) | ||
314 | |||
315 | /** | ||
316 | * iscsi_hostdata - get LLD hostdata from scsi_host | ||
317 | * @_hostdata: pointer to scsi host's hostdata | ||
318 | **/ | ||
319 | #define iscsi_hostdata(_hostdata) ((void*)_hostdata + sizeof(unsigned long)) | ||
320 | 313 | ||
321 | /* | 314 | /* |
322 | * These flags presents iSCSI Data-Path capabilities. | 315 | * These flags presents iSCSI Data-Path capabilities. |
diff --git a/include/scsi/libiscsi.h b/include/scsi/libiscsi.h index f24cf0246739..8a6271c20935 100644 --- a/include/scsi/libiscsi.h +++ b/include/scsi/libiscsi.h | |||
@@ -209,9 +209,6 @@ struct iscsi_conn { | |||
209 | /* remote portal currently connected to */ | 209 | /* remote portal currently connected to */ |
210 | int portal_port; | 210 | int portal_port; |
211 | char portal_address[ISCSI_ADDRESS_BUF_LEN]; | 211 | char portal_address[ISCSI_ADDRESS_BUF_LEN]; |
212 | /* local address */ | ||
213 | int local_port; | ||
214 | char local_address[ISCSI_ADDRESS_BUF_LEN]; | ||
215 | 212 | ||
216 | /* MIB-statistics */ | 213 | /* MIB-statistics */ |
217 | uint64_t txdata_octets; | 214 | uint64_t txdata_octets; |
@@ -247,6 +244,7 @@ enum { | |||
247 | }; | 244 | }; |
248 | 245 | ||
249 | struct iscsi_session { | 246 | struct iscsi_session { |
247 | struct iscsi_cls_session *cls_session; | ||
250 | /* | 248 | /* |
251 | * Syncs up the scsi eh thread with the iscsi eh thread when sending | 249 | * Syncs up the scsi eh thread with the iscsi eh thread when sending |
252 | * task management functions. This must be taken before the session | 250 | * task management functions. This must be taken before the session |
@@ -282,10 +280,6 @@ struct iscsi_session { | |||
282 | char *password; | 280 | char *password; |
283 | char *password_in; | 281 | char *password_in; |
284 | char *targetname; | 282 | char *targetname; |
285 | char *initiatorname; | ||
286 | /* hw address or netdev iscsi connection is bound to */ | ||
287 | char *hwaddress; | ||
288 | char *netdev; | ||
289 | /* control data */ | 283 | /* control data */ |
290 | struct iscsi_transport *tt; | 284 | struct iscsi_transport *tt; |
291 | struct Scsi_Host *host; | 285 | struct Scsi_Host *host; |
@@ -307,6 +301,16 @@ struct iscsi_session { | |||
307 | struct iscsi_pool mgmtpool; /* Mgmt PDU's pool */ | 301 | struct iscsi_pool mgmtpool; /* Mgmt PDU's pool */ |
308 | }; | 302 | }; |
309 | 303 | ||
304 | struct iscsi_host { | ||
305 | char *initiatorname; | ||
306 | /* hw address or netdev iscsi connection is bound to */ | ||
307 | char *hwaddress; | ||
308 | char *netdev; | ||
309 | /* local address */ | ||
310 | int local_port; | ||
311 | char local_address[ISCSI_ADDRESS_BUF_LEN]; | ||
312 | }; | ||
313 | |||
310 | /* | 314 | /* |
311 | * scsi host template | 315 | * scsi host template |
312 | */ | 316 | */ |
@@ -326,27 +330,24 @@ extern int iscsi_host_set_param(struct Scsi_Host *shost, | |||
326 | int buflen); | 330 | int buflen); |
327 | extern int iscsi_host_get_param(struct Scsi_Host *shost, | 331 | extern int iscsi_host_get_param(struct Scsi_Host *shost, |
328 | enum iscsi_host_param param, char *buf); | 332 | enum iscsi_host_param param, char *buf); |
333 | extern void iscsi_host_setup(struct Scsi_Host *shost, uint16_t qdepth); | ||
334 | extern void iscsi_host_teardown(struct Scsi_Host *shost); | ||
329 | 335 | ||
330 | /* | 336 | /* |
331 | * session management | 337 | * session management |
332 | */ | 338 | */ |
333 | extern struct iscsi_cls_session * | 339 | extern struct iscsi_cls_session * |
334 | iscsi_session_setup(struct iscsi_transport *, struct scsi_transport_template *, | 340 | iscsi_session_setup(struct iscsi_transport *, struct Scsi_Host *shost, |
335 | uint16_t, uint16_t, int, int, uint32_t, uint32_t *); | 341 | uint16_t, int, int, uint32_t); |
336 | extern void iscsi_session_teardown(struct iscsi_cls_session *); | 342 | extern void iscsi_session_teardown(struct iscsi_cls_session *); |
337 | extern struct iscsi_session *class_to_transport_session(struct iscsi_cls_session *); | ||
338 | extern void iscsi_session_recovery_timedout(struct iscsi_cls_session *); | 343 | extern void iscsi_session_recovery_timedout(struct iscsi_cls_session *); |
339 | extern int iscsi_set_param(struct iscsi_cls_conn *cls_conn, | 344 | extern int iscsi_set_param(struct iscsi_cls_conn *cls_conn, |
340 | enum iscsi_param param, char *buf, int buflen); | 345 | enum iscsi_param param, char *buf, int buflen); |
341 | extern int iscsi_session_get_param(struct iscsi_cls_session *cls_session, | 346 | extern int iscsi_session_get_param(struct iscsi_cls_session *cls_session, |
342 | enum iscsi_param param, char *buf); | 347 | enum iscsi_param param, char *buf); |
343 | 348 | ||
344 | #define session_to_cls(_sess) \ | ||
345 | hostdata_session(_sess->host->hostdata) | ||
346 | |||
347 | #define iscsi_session_printk(prefix, _sess, fmt, a...) \ | 349 | #define iscsi_session_printk(prefix, _sess, fmt, a...) \ |
348 | iscsi_cls_session_printk(prefix, \ | 350 | iscsi_cls_session_printk(prefix, _sess->cls_session, fmt, ##a) |
349 | (struct iscsi_cls_session *)session_to_cls(_sess), fmt, ##a) | ||
350 | 351 | ||
351 | /* | 352 | /* |
352 | * connection management | 353 | * connection management |
diff --git a/include/scsi/scsi_transport_iscsi.h b/include/scsi/scsi_transport_iscsi.h index 728702292a80..702eda2904d7 100644 --- a/include/scsi/scsi_transport_iscsi.h +++ b/include/scsi/scsi_transport_iscsi.h | |||
@@ -83,15 +83,13 @@ struct iscsi_transport { | |||
83 | /* LLD sets this to indicate what values it can export to sysfs */ | 83 | /* LLD sets this to indicate what values it can export to sysfs */ |
84 | uint64_t param_mask; | 84 | uint64_t param_mask; |
85 | uint64_t host_param_mask; | 85 | uint64_t host_param_mask; |
86 | struct scsi_host_template *host_template; | ||
87 | /* LLD connection data size */ | 86 | /* LLD connection data size */ |
88 | int conndata_size; | 87 | int conndata_size; |
89 | /* LLD session data size */ | 88 | /* LLD session data size */ |
90 | int sessiondata_size; | 89 | int sessiondata_size; |
91 | int max_lun; | 90 | struct iscsi_cls_session *(*create_session) (struct Scsi_Host *shost, |
92 | struct iscsi_cls_session *(*create_session) (struct iscsi_transport *it, | 91 | uint16_t cmds_max, uint16_t qdepth, |
93 | struct scsi_transport_template *t, struct Scsi_Host *shost, | 92 | uint32_t sn, uint32_t *hn); |
94 | uint16_t cmds_max, uint16_t qdepth, uint32_t sn, uint32_t *hn); | ||
95 | void (*destroy_session) (struct iscsi_cls_session *session); | 93 | void (*destroy_session) (struct iscsi_cls_session *session); |
96 | struct iscsi_cls_conn *(*create_conn) (struct iscsi_cls_session *sess, | 94 | struct iscsi_cls_conn *(*create_conn) (struct iscsi_cls_session *sess, |
97 | uint32_t cid); | 95 | uint32_t cid); |