Commit | Line | Data |
---|---|---|
09345f65 FT |
1 | #ifndef SCSI_TRANSPORT_SRP_H |
2 | #define SCSI_TRANSPORT_SRP_H | |
3 | ||
4 | #include <linux/transport_class.h> | |
5 | #include <linux/types.h> | |
6 | #include <linux/mutex.h> | |
7 | ||
aebd5e47 FT |
8 | #define SRP_RPORT_ROLE_INITIATOR 0 |
9 | #define SRP_RPORT_ROLE_TARGET 1 | |
10 | ||
09345f65 FT |
11 | struct srp_rport_identifiers { |
12 | u8 port_id[16]; | |
aebd5e47 | 13 | u8 roles; |
09345f65 FT |
14 | }; |
15 | ||
16 | struct srp_rport { | |
dc1bdbd9 BVA |
17 | /* for initiator and target drivers */ |
18 | ||
09345f65 FT |
19 | struct device dev; |
20 | ||
21 | u8 port_id[16]; | |
aebd5e47 | 22 | u8 roles; |
dc1bdbd9 BVA |
23 | |
24 | /* for initiator drivers */ | |
25 | ||
26 | void *lld_data; /* LLD private data */ | |
09345f65 FT |
27 | }; |
28 | ||
29 | struct srp_function_template { | |
dc1bdbd9 BVA |
30 | /* for initiator drivers */ |
31 | void (*rport_delete)(struct srp_rport *rport); | |
62fe8826 | 32 | /* for target drivers */ |
bfb74374 | 33 | int (* tsk_mgmt_response)(struct Scsi_Host *, u64, u64, int); |
62fe8826 | 34 | int (* it_nexus_response)(struct Scsi_Host *, u64, int); |
09345f65 FT |
35 | }; |
36 | ||
37 | extern struct scsi_transport_template * | |
38 | srp_attach_transport(struct srp_function_template *); | |
39 | extern void srp_release_transport(struct scsi_transport_template *); | |
40 | ||
41 | extern struct srp_rport *srp_rport_add(struct Scsi_Host *, | |
42 | struct srp_rport_identifiers *); | |
43 | extern void srp_rport_del(struct srp_rport *); | |
44 | ||
45 | extern void srp_remove_host(struct Scsi_Host *); | |
46 | ||
47 | #endif |