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