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 8 #define SRP_RPORT_ROLE_INITIATOR 0 9 #define SRP_RPORT_ROLE_TARGET 1 10 11 struct srp_rport_identifiers { 12 u8 port_id[16]; 13 u8 roles; 14 }; 15 16 struct srp_rport { 17 struct device dev; 18 19 u8 port_id[16]; 20 u8 roles; 21 }; 22 23 struct srp_function_template { 24 /* for target drivers */ 25 int (* tsk_mgmt_response)(struct Scsi_Host *, u64, u64, int); 26 int (* it_nexus_response)(struct Scsi_Host *, u64, int); 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 40