target: Core cleanups from AGrover (round 1)
[pandora-kernel.git] / drivers / target / target_core_iblock.h
1 #ifndef TARGET_CORE_IBLOCK_H
2 #define TARGET_CORE_IBLOCK_H
3
4 #define IBLOCK_VERSION          "4.0"
5
6 #define IBLOCK_DEVICE_QUEUE_DEPTH       32
7 #define IBLOCK_MAX_DEVICE_QUEUE_DEPTH   128
8 #define IBLOCK_MAX_CDBS         16
9 #define IBLOCK_LBA_SHIFT        9
10
11 struct iblock_req {
12         struct se_task ib_task;
13         unsigned char ib_scsi_cdb[TCM_MAX_COMMAND_SIZE];
14         atomic_t ib_bio_cnt;
15         atomic_t ib_bio_err_cnt;
16         struct bio *ib_bio;
17         struct iblock_dev *ib_dev;
18 } ____cacheline_aligned;
19
20 #define IBDF_HAS_UDEV_PATH              0x01
21 #define IBDF_HAS_FORCE                  0x02
22
23 struct iblock_dev {
24         unsigned char ibd_udev_path[SE_UDEV_PATH_LEN];
25         int     ibd_force;
26         int     ibd_major;
27         int     ibd_minor;
28         u32     ibd_depth;
29         u32     ibd_flags;
30         struct bio_set  *ibd_bio_set;
31         struct block_device *ibd_bd;
32         struct iblock_hba *ibd_host;
33 } ____cacheline_aligned;
34
35 struct iblock_hba {
36         int             iblock_host_id;
37 } ____cacheline_aligned;
38
39 #endif /* TARGET_CORE_IBLOCK_H */