Commit | Line | Data |
---|---|---|
9765b1f3 | 1 | #define TCM_LOOP_VERSION "v2.1-rc2" |
3703b2c5 NB |
2 | #define TL_WWN_ADDR_LEN 256 |
3 | #define TL_TPGS_PER_HBA 32 | |
2e88efd3 | 4 | |
3703b2c5 NB |
5 | struct tcm_loop_cmd { |
6 | /* State of Linux/SCSI CDB+Data descriptor */ | |
7 | u32 sc_cmd_state; | |
969871cd HR |
8 | /* Tagged command queueing */ |
9 | u32 sc_cmd_tag; | |
3703b2c5 NB |
10 | /* Pointer to the CDB+Data descriptor from Linux/SCSI subsystem */ |
11 | struct scsi_cmnd *sc; | |
3703b2c5 NB |
12 | /* The TCM I/O descriptor that is accessed via container_of() */ |
13 | struct se_cmd tl_se_cmd; | |
afe2cb7f | 14 | struct work_struct work; |
3703b2c5 NB |
15 | /* Sense buffer that will be mapped into outgoing status */ |
16 | unsigned char tl_sense_buf[TRANSPORT_SENSE_BUFFER]; | |
17 | }; | |
18 | ||
19 | struct tcm_loop_tmr { | |
20 | atomic_t tmr_complete; | |
21 | wait_queue_head_t tl_tmr_wait; | |
22 | }; | |
23 | ||
24 | struct tcm_loop_nexus { | |
3703b2c5 NB |
25 | /* |
26 | * Pointer to TCM session for I_T Nexus | |
27 | */ | |
28 | struct se_session *se_sess; | |
29 | }; | |
30 | ||
fb2b2844 HR |
31 | #define TCM_TRANSPORT_ONLINE 0 |
32 | #define TCM_TRANSPORT_OFFLINE 1 | |
33 | ||
3703b2c5 NB |
34 | struct tcm_loop_tpg { |
35 | unsigned short tl_tpgt; | |
fb2b2844 | 36 | unsigned short tl_transport_status; |
436f4a0a | 37 | enum target_prot_type tl_fabric_prot_type; |
3703b2c5 NB |
38 | atomic_t tl_tpg_port_count; |
39 | struct se_portal_group tl_se_tpg; | |
40 | struct tcm_loop_hba *tl_hba; | |
506787a2 | 41 | struct tcm_loop_nexus *tl_nexus; |
3703b2c5 NB |
42 | }; |
43 | ||
44 | struct tcm_loop_hba { | |
45 | u8 tl_proto_id; | |
46 | unsigned char tl_wwn_address[TL_WWN_ADDR_LEN]; | |
47 | struct se_hba_s *se_hba; | |
48 | struct se_lun *tl_hba_lun; | |
49 | struct se_port *tl_hba_lun_sep; | |
3703b2c5 NB |
50 | struct device dev; |
51 | struct Scsi_Host *sh; | |
52 | struct tcm_loop_tpg tl_hba_tpgs[TL_TPGS_PER_HBA]; | |
53 | struct se_wwn tl_hba_wwn; | |
54 | }; |