1 #ifndef TARGET_CORE_IBLOCK_H
2 #define TARGET_CORE_IBLOCK_H
3 
4 #define IBLOCK_VERSION		"4.0"
5 
6 #define IBLOCK_HBA_QUEUE_DEPTH	512
7 #define IBLOCK_DEVICE_QUEUE_DEPTH	32
8 #define IBLOCK_MAX_DEVICE_QUEUE_DEPTH	128
9 #define IBLOCK_MAX_CDBS		16
10 #define IBLOCK_LBA_SHIFT	9
11 
12 struct iblock_req {
13 	struct se_task ib_task;
14 	unsigned char ib_scsi_cdb[TCM_MAX_COMMAND_SIZE];
15 	atomic_t ib_bio_cnt;
16 	atomic_t ib_bio_err_cnt;
17 	struct bio *ib_bio;
18 	struct iblock_dev *ib_dev;
19 } ____cacheline_aligned;
20 
21 #define IBDF_HAS_UDEV_PATH		0x01
22 #define IBDF_HAS_FORCE			0x02
23 
24 struct iblock_dev {
25 	unsigned char ibd_udev_path[SE_UDEV_PATH_LEN];
26 	int	ibd_force;
27 	int	ibd_major;
28 	int	ibd_minor;
29 	u32	ibd_depth;
30 	u32	ibd_flags;
31 	struct bio_set	*ibd_bio_set;
32 	struct block_device *ibd_bd;
33 	struct iblock_hba *ibd_host;
34 } ____cacheline_aligned;
35 
36 struct iblock_hba {
37 	int		iblock_host_id;
38 } ____cacheline_aligned;
39 
40 #endif /* TARGET_CORE_IBLOCK_H */
41