1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef TARGET_CORE_PSCSI_H |
3 | #define TARGET_CORE_PSCSI_H |
4 | |
5 | #define PSCSI_VERSION "v4.0" |
6 | |
7 | /* used in pscsi_find_alloc_len() */ |
8 | #ifndef INQUIRY_DATA_SIZE |
9 | #define INQUIRY_DATA_SIZE 0x24 |
10 | #endif |
11 | |
12 | /* used in pscsi_add_device_to_list() */ |
13 | #define PSCSI_DEFAULT_QUEUEDEPTH 1 |
14 | |
15 | #define PS_RETRY 5 |
16 | #define PS_TIMEOUT_DISK (15*HZ) |
17 | #define PS_TIMEOUT_OTHER (500*HZ) |
18 | |
19 | #include <linux/cache.h> /* ___cacheline_aligned */ |
20 | #include <target/target_core_base.h> /* struct se_device */ |
21 | |
22 | struct block_device; |
23 | struct scsi_device; |
24 | struct Scsi_Host; |
25 | |
26 | #define PDF_HAS_CHANNEL_ID 0x01 |
27 | #define PDF_HAS_TARGET_ID 0x02 |
28 | #define PDF_HAS_LUN_ID 0x04 |
29 | #define PDF_HAS_VPD_UNIT_SERIAL 0x08 |
30 | #define PDF_HAS_VPD_DEV_IDENT 0x10 |
31 | #define PDF_HAS_VIRT_HOST_ID 0x20 |
32 | |
33 | struct pscsi_dev_virt { |
34 | struct se_device dev; |
35 | int pdv_flags; |
36 | int pdv_host_id; |
37 | int pdv_channel_id; |
38 | int pdv_target_id; |
39 | int pdv_lun_id; |
40 | struct bdev_handle *pdv_bdev_handle; |
41 | struct scsi_device *pdv_sd; |
42 | struct Scsi_Host *pdv_lld_host; |
43 | } ____cacheline_aligned; |
44 | |
45 | typedef enum phv_modes { |
46 | PHV_VIRTUAL_HOST_ID, |
47 | PHV_LLD_SCSI_HOST_NO |
48 | } phv_modes_t; |
49 | |
50 | struct pscsi_hba_virt { |
51 | int phv_host_id; |
52 | phv_modes_t phv_mode; |
53 | struct Scsi_Host *phv_lld_host; |
54 | } ____cacheline_aligned; |
55 | |
56 | #endif /*** TARGET_CORE_PSCSI_H ***/ |
57 | |