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