linux-headers (unknown)

(root)/
include/
linux/
cciss_defs.h
       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 */