/* SPDX-License-Identifier: GPL-2.0 */ #ifndef TARGET_CORE_IBLOCK_H #define TARGET_CORE_IBLOCK_H #include <linux/atomic.h> #include <linux/refcount.h> #include <linux/blkdev.h> #include <target/target_core_base.h> #define IBLOCK_VERSION "4.0" #define IBLOCK_MAX_CDBS 16 struct iblock_req { refcount_t pending; atomic_t ib_bio_err_cnt; } ____cacheline_aligned; #define IBDF_HAS_UDEV_PATH 0x01 #define IBD_PLUGF_PLUGGED 0x01 struct iblock_dev_plug { struct se_dev_plug se_plug; struct blk_plug blk_plug; unsigned long flags; }; struct iblock_dev { struct se_device dev; unsigned char ibd_udev_path[SE_UDEV_PATH_LEN]; u32 ibd_flags; struct bio_set ibd_bio_set; struct block_device *ibd_bd; bool ibd_readonly; struct iblock_dev_plug *ibd_plug; } ____cacheline_aligned; #endif /* TARGET_CORE_IBLOCK_H */