1#ifndef TARGET_CORE_FILE_H 2#define TARGET_CORE_FILE_H 3 4#define FD_VERSION "4.0" 5 6#define FD_MAX_DEV_NAME 256 7#define FD_MAX_DEV_PROT_NAME FD_MAX_DEV_NAME + 16 8#define FD_DEVICE_QUEUE_DEPTH 32 9#define FD_MAX_DEVICE_QUEUE_DEPTH 128 10#define FD_BLOCKSIZE 512 11/* 12 * Limited by the number of iovecs (2048) per vfs_[writev,readv] call 13 */ 14#define FD_MAX_BYTES 8388608 15 16#define RRF_EMULATE_CDB 0x01 17#define RRF_GOT_LBA 0x02 18 19#define FBDF_HAS_PATH 0x01 20#define FBDF_HAS_SIZE 0x02 21#define FDBD_HAS_BUFFERED_IO_WCE 0x04 22#define FDBD_FORMAT_UNIT_SIZE 2048 23 24struct fd_prot { 25 unsigned char *prot_buf; 26 struct scatterlist *prot_sg; 27 u32 prot_sg_nents; 28}; 29 30struct fd_dev { 31 struct se_device dev; 32 33 u32 fbd_flags; 34 unsigned char fd_dev_name[FD_MAX_DEV_NAME]; 35 /* Unique Ramdisk Device ID in Ramdisk HBA */ 36 u32 fd_dev_id; 37 /* Number of SG tables in sg_table_array */ 38 u32 fd_table_count; 39 u32 fd_queue_depth; 40 u32 fd_block_size; 41 unsigned long long fd_dev_size; 42 struct file *fd_file; 43 struct file *fd_prot_file; 44 /* FILEIO HBA device is connected to */ 45 struct fd_host *fd_host; 46} ____cacheline_aligned; 47 48struct fd_host { 49 u32 fd_host_dev_id_count; 50 /* Unique FILEIO Host ID */ 51 u32 fd_host_id; 52} ____cacheline_aligned; 53 54#endif /* TARGET_CORE_FILE_H */ 55