linux/drivers/target/target_core_pscsi.h
<<
>>
Prefs
   1#ifndef TARGET_CORE_PSCSI_H
   2#define TARGET_CORE_PSCSI_H
   3
   4#define PSCSI_VERSION           "v4.0"
   5
   6/* used in pscsi_find_alloc_len() */
   7#ifndef INQUIRY_DATA_SIZE
   8#define INQUIRY_DATA_SIZE       0x24
   9#endif
  10
  11/* used in pscsi_add_device_to_list() */
  12#define PSCSI_DEFAULT_QUEUEDEPTH        1
  13
  14#define PS_RETRY                5
  15#define PS_TIMEOUT_DISK         (15*HZ)
  16#define PS_TIMEOUT_OTHER        (500*HZ)
  17
  18#include <linux/device.h>
  19#include <linux/kref.h>
  20#include <linux/kobject.h>
  21
  22struct scsi_device;
  23
  24struct pscsi_plugin_task {
  25        unsigned char pscsi_sense[TRANSPORT_SENSE_BUFFER];
  26        int     pscsi_direction;
  27        int     pscsi_result;
  28        u32     pscsi_resid;
  29        unsigned char pscsi_cdb[0];
  30} ____cacheline_aligned;
  31
  32#define PDF_HAS_CHANNEL_ID      0x01
  33#define PDF_HAS_TARGET_ID       0x02
  34#define PDF_HAS_LUN_ID          0x04
  35#define PDF_HAS_VPD_UNIT_SERIAL 0x08
  36#define PDF_HAS_VPD_DEV_IDENT   0x10
  37#define PDF_HAS_VIRT_HOST_ID    0x20
  38
  39struct pscsi_dev_virt {
  40        struct se_device dev;
  41        int     pdv_flags;
  42        int     pdv_host_id;
  43        int     pdv_channel_id;
  44        int     pdv_target_id;
  45        int     pdv_lun_id;
  46        struct block_device *pdv_bd;
  47        struct scsi_device *pdv_sd;
  48        struct Scsi_Host *pdv_lld_host;
  49} ____cacheline_aligned;
  50
  51typedef enum phv_modes {
  52        PHV_VIRTUAL_HOST_ID,
  53        PHV_LLD_SCSI_HOST_NO
  54} phv_modes_t;
  55
  56struct pscsi_hba_virt {
  57        int                     phv_host_id;
  58        phv_modes_t             phv_mode;
  59        struct Scsi_Host        *phv_lld_host;
  60} ____cacheline_aligned;
  61
  62#endif   /*** TARGET_CORE_PSCSI_H ***/
  63