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 /* Maximum queuedepth for the FILEIO HBA */
8 #define FD_HBA_QUEUE_DEPTH	256
9 #define FD_DEVICE_QUEUE_DEPTH	32
10 #define FD_MAX_DEVICE_QUEUE_DEPTH 128
11 #define FD_BLOCKSIZE		512
12 #define FD_MAX_SECTORS		1024
13 
14 #define RRF_EMULATE_CDB		0x01
15 #define RRF_GOT_LBA		0x02
16 
17 struct fd_request {
18 	struct se_task	fd_task;
19 	/* SCSI CDB from iSCSI Command PDU */
20 	unsigned char	fd_scsi_cdb[TCM_MAX_COMMAND_SIZE];
21 	/* FILEIO device */
22 	struct fd_dev	*fd_dev;
23 } ____cacheline_aligned;
24 
25 #define FBDF_HAS_PATH		0x01
26 #define FBDF_HAS_SIZE		0x02
27 #define FDBD_USE_BUFFERED_IO	0x04
28 
29 struct fd_dev {
30 	u32		fbd_flags;
31 	unsigned char	fd_dev_name[FD_MAX_DEV_NAME];
32 	/* Unique Ramdisk Device ID in Ramdisk HBA */
33 	u32		fd_dev_id;
34 	/* Number of SG tables in sg_table_array */
35 	u32		fd_table_count;
36 	u32		fd_queue_depth;
37 	u32		fd_block_size;
38 	unsigned long long fd_dev_size;
39 	struct file	*fd_file;
40 	/* FILEIO HBA device is connected to */
41 	struct fd_host *fd_host;
42 } ____cacheline_aligned;
43 
44 struct fd_host {
45 	u32		fd_host_dev_id_count;
46 	/* Unique FILEIO Host ID */
47 	u32		fd_host_id;
48 } ____cacheline_aligned;
49 
50 #endif /* TARGET_CORE_FILE_H */
51