Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
target
loopback
tcm_loop.h
Go to the documentation of this file.
1
#define TCM_LOOP_VERSION "v2.1-rc2"
2
#define TL_WWN_ADDR_LEN 256
3
#define TL_TPGS_PER_HBA 32
4
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
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
;
15
/* The TCM I/O descriptor that is accessed via container_of() */
16
struct
se_cmd
tl_se_cmd
;
17
struct
work_struct
work
;
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
};
Generated on Thu Jan 10 2013 14:33:09 for Linux Kernel by
1.8.2