~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/uapi/linux/cciss_defs.h

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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 */
132 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php