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; | |
13 | /* Pointer to the CDB+Data descriptor from Linux/SCSI subsystem */ | |
14 | struct scsi_cmnd *sc; | |
3703b2c5 NB |
15 | /* The TCM I/O descriptor that is accessed via container_of() */ |
16 | struct se_cmd tl_se_cmd; | |
afe2cb7f | 17 | struct work_struct work; |
3703b2c5 NB |
18 | /* Sense buffer that will be mapped into outgoing status */ |
19 | unsigned char tl_sense_buf[TRANSPORT_SENSE_BUFFER]; | |
20 | }; | |
21 | ||
22 | struct tcm_loop_tmr { | |
23 | atomic_t tmr_complete; | |
24 | wait_queue_head_t tl_tmr_wait; | |
25 | }; | |
26 | ||
27 | struct tcm_loop_nexus { | |
28 | int it_nexus_active; | |
29 | /* | |
30 | * Pointer to Linux/SCSI HBA from linux/include/scsi_host.h | |
31 | */ | |
32 | struct scsi_host *sh; | |
33 | /* | |
34 | * Pointer to TCM session for I_T Nexus | |
35 | */ | |
36 | struct se_session *se_sess; | |
37 | }; | |
38 | ||
39 | struct tcm_loop_nacl { | |
40 | struct se_node_acl se_node_acl; | |
41 | }; | |
42 | ||
43 | struct tcm_loop_tpg { | |
44 | unsigned short tl_tpgt; | |
45 | atomic_t tl_tpg_port_count; | |
46 | struct se_portal_group tl_se_tpg; | |
47 | struct tcm_loop_hba *tl_hba; | |
48 | }; | |
49 | ||
50 | struct tcm_loop_hba { | |
51 | u8 tl_proto_id; | |
52 | unsigned char tl_wwn_address[TL_WWN_ADDR_LEN]; | |
53 | struct se_hba_s *se_hba; | |
54 | struct se_lun *tl_hba_lun; | |
55 | struct se_port *tl_hba_lun_sep; | |
56 | struct se_device_s *se_dev_hba_ptr; | |
57 | struct tcm_loop_nexus *tl_nexus; | |
58 | struct device dev; | |
59 | struct Scsi_Host *sh; | |
60 | struct tcm_loop_tpg tl_hba_tpgs[TL_TPGS_PER_HBA]; | |
61 | struct se_wwn tl_hba_wwn; | |
62 | }; |