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