1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef TARGET_CORE_IBLOCK_H
3 #define TARGET_CORE_IBLOCK_H
4 
5 #include <linux/atomic.h>
6 #include <linux/refcount.h>
7 #include <target/target_core_base.h>
8 
9 #define IBLOCK_VERSION		"4.0"
10 
11 #define IBLOCK_MAX_CDBS		16
12 #define IBLOCK_LBA_SHIFT	9
13 
14 struct iblock_req {
15 	refcount_t pending;
16 	atomic_t ib_bio_err_cnt;
17 } ____cacheline_aligned;
18 
19 #define IBDF_HAS_UDEV_PATH		0x01
20 
21 struct iblock_dev {
22 	struct se_device dev;
23 	unsigned char ibd_udev_path[SE_UDEV_PATH_LEN];
24 	u32	ibd_flags;
25 	struct bio_set	ibd_bio_set;
26 	struct block_device *ibd_bd;
27 	bool ibd_readonly;
28 } ____cacheline_aligned;
29 
30 #endif /* TARGET_CORE_IBLOCK_H */
31