root/include/uapi/linux/cciss_defs.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
   2 #ifndef CCISS_DEFS_H
   3 #define CCISS_DEFS_H
   4 
   5 #include <linux/types.h>
   6 
   7 /* general boundary definitions */
   8 #define SENSEINFOBYTES          32 /* note that this value may vary
   9                                       between host implementations */
  10 
  11 /* Command Status value */
  12 #define CMD_SUCCESS             0x0000
  13 #define CMD_TARGET_STATUS       0x0001
  14 #define CMD_DATA_UNDERRUN       0x0002
  15 #define CMD_DATA_OVERRUN        0x0003
  16 #define CMD_INVALID             0x0004
  17 #define CMD_PROTOCOL_ERR        0x0005
  18 #define CMD_HARDWARE_ERR        0x0006
  19 #define CMD_CONNECTION_LOST     0x0007
  20 #define CMD_ABORTED             0x0008
  21 #define CMD_ABORT_FAILED        0x0009
  22 #define CMD_UNSOLICITED_ABORT   0x000A
  23 #define CMD_TIMEOUT             0x000B
  24 #define CMD_UNABORTABLE         0x000C
  25 
  26 /* transfer direction */
  27 #define XFER_NONE               0x00
  28 #define XFER_WRITE              0x01
  29 #define XFER_READ               0x02
  30 #define XFER_RSVD               0x03
  31 
  32 /* task attribute */
  33 #define ATTR_UNTAGGED           0x00
  34 #define ATTR_SIMPLE             0x04
  35 #define ATTR_HEADOFQUEUE        0x05
  36 #define ATTR_ORDERED            0x06
  37 #define ATTR_ACA                0x07
  38 
  39 /* cdb type */
  40 #define TYPE_CMD                                0x00
  41 #define TYPE_MSG                                0x01
  42 
  43 /* Type defs used in the following structs */
  44 #define BYTE __u8
  45 #define WORD __u16
  46 #define HWORD __u16
  47 #define DWORD __u32
  48 
  49 #define CISS_MAX_LUN    1024
  50 
  51 #define LEVEL2LUN   1 /* index into Target(x) structure, due to byte swapping */
  52 #define LEVEL3LUN   0
  53 
  54 #pragma pack(1)
  55 
  56 /* Command List Structure */
  57 typedef union _SCSI3Addr_struct {
  58    struct {
  59     BYTE Dev;
  60     BYTE Bus:6;
  61     BYTE Mode:2;        /* b00 */
  62   } PeripDev;
  63    struct {
  64     BYTE DevLSB;
  65     BYTE DevMSB:6;
  66     BYTE Mode:2;        /* b01 */
  67   } LogDev;
  68    struct {
  69     BYTE Dev:5;
  70     BYTE Bus:3;
  71     BYTE Targ:6;
  72     BYTE Mode:2;        /* b10 */
  73   } LogUnit;
  74 } SCSI3Addr_struct;
  75 
  76 typedef struct _PhysDevAddr_struct {
  77   DWORD             TargetId:24;
  78   DWORD             Bus:6;
  79   DWORD             Mode:2;
  80   SCSI3Addr_struct  Target[2]; /* 2 level target device addr */
  81 } PhysDevAddr_struct;
  82 
  83 typedef struct _LogDevAddr_struct {
  84   DWORD            VolId:30;
  85   DWORD            Mode:2;
  86   BYTE             reserved[4];
  87 } LogDevAddr_struct;
  88 
  89 typedef union _LUNAddr_struct {
  90   BYTE               LunAddrBytes[8];
  91   SCSI3Addr_struct   SCSI3Lun[4];
  92   PhysDevAddr_struct PhysDev;
  93   LogDevAddr_struct  LogDev;
  94 } LUNAddr_struct;
  95 
  96 typedef struct _RequestBlock_struct {
  97   BYTE   CDBLen;
  98   struct {
  99     BYTE Type:3;
 100     BYTE Attribute:3;
 101     BYTE Direction:2;
 102   } Type;
 103   HWORD  Timeout;
 104   BYTE   CDB[16];
 105 } RequestBlock_struct;
 106 
 107 typedef union _MoreErrInfo_struct{
 108   struct {
 109     BYTE  Reserved[3];
 110     BYTE  Type;
 111     DWORD ErrorInfo;
 112   } Common_Info;
 113   struct{
 114     BYTE  Reserved[2];
 115     BYTE  offense_size; /* size of offending entry */
 116     BYTE  offense_num;  /* byte # of offense 0-base */
 117     DWORD offense_value;
 118   } Invalid_Cmd;
 119 } MoreErrInfo_struct;
 120 typedef struct _ErrorInfo_struct {
 121   BYTE               ScsiStatus;
 122   BYTE               SenseLen;
 123   HWORD              CommandStatus;
 124   DWORD              ResidualCnt;
 125   MoreErrInfo_struct MoreErrInfo;
 126   BYTE               SenseInfo[SENSEINFOBYTES];
 127 } ErrorInfo_struct;
 128 
 129 #pragma pack()
 130 
 131 #endif /* CCISS_DEFS_H */

/* [<][>][^][v][top][bottom][index][help] */