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 { | |
17 | struct device dev; | |
18 | ||
19 | u8 port_id[16]; | |
aebd5e47 | 20 | u8 roles; |
09345f65 FT |
21 | }; |
22 | ||
23 | struct srp_function_template { | |
62fe8826 | 24 | /* for target drivers */ |
bfb74374 | 25 | int (* tsk_mgmt_response)(struct Scsi_Host *, u64, u64, int); |
62fe8826 | 26 | int (* it_nexus_response)(struct Scsi_Host *, u64, int); |
09345f65 FT |
27 | }; |
28 | ||
29 | extern struct scsi_transport_template * | |
30 | srp_attach_transport(struct srp_function_template *); | |
31 | extern void srp_release_transport(struct scsi_transport_template *); | |
32 | ||
33 | extern struct srp_rport *srp_rport_add(struct Scsi_Host *, | |
34 | struct srp_rport_identifiers *); | |
35 | extern void srp_rport_del(struct srp_rport *); | |
36 | ||
37 | extern void srp_remove_host(struct Scsi_Host *); | |
38 | ||
39 | #endif |