1c66ac9dbSNicholas Bellinger #ifndef TARGET_CORE_IBLOCK_H 2c66ac9dbSNicholas Bellinger #define TARGET_CORE_IBLOCK_H 3c66ac9dbSNicholas Bellinger 48dcf07beSBart Van Assche #include <linux/atomic.h> 58dcf07beSBart Van Assche #include <target/target_core_base.h> 68dcf07beSBart Van Assche 7c66ac9dbSNicholas Bellinger #define IBLOCK_VERSION "4.0" 8c66ac9dbSNicholas Bellinger 9c66ac9dbSNicholas Bellinger #define IBLOCK_MAX_CDBS 16 10c66ac9dbSNicholas Bellinger #define IBLOCK_LBA_SHIFT 9 11c66ac9dbSNicholas Bellinger 12c66ac9dbSNicholas Bellinger struct iblock_req { 13d5b4a21bSChristoph Hellwig atomic_t pending; 14c66ac9dbSNicholas Bellinger atomic_t ib_bio_err_cnt; 15c66ac9dbSNicholas Bellinger } ____cacheline_aligned; 16c66ac9dbSNicholas Bellinger 17c66ac9dbSNicholas Bellinger #define IBDF_HAS_UDEV_PATH 0x01 18c66ac9dbSNicholas Bellinger 19c66ac9dbSNicholas Bellinger struct iblock_dev { 200fd97ccfSChristoph Hellwig struct se_device dev; 21c66ac9dbSNicholas Bellinger unsigned char ibd_udev_path[SE_UDEV_PATH_LEN]; 22c66ac9dbSNicholas Bellinger u32 ibd_flags; 23c66ac9dbSNicholas Bellinger struct bio_set *ibd_bio_set; 24c66ac9dbSNicholas Bellinger struct block_device *ibd_bd; 2544bfd018SAndy Grover bool ibd_readonly; 26c66ac9dbSNicholas Bellinger } ____cacheline_aligned; 27c66ac9dbSNicholas Bellinger 28c66ac9dbSNicholas Bellinger #endif /* TARGET_CORE_IBLOCK_H */ 29