• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef CCISS_DEFS_H
20 #define CCISS_DEFS_H
21 #include <linux/types.h>
22 #define SENSEINFOBYTES 32
23 #define CMD_SUCCESS 0x0000
24 #define CMD_TARGET_STATUS 0x0001
25 #define CMD_DATA_UNDERRUN 0x0002
26 #define CMD_DATA_OVERRUN 0x0003
27 #define CMD_INVALID 0x0004
28 #define CMD_PROTOCOL_ERR 0x0005
29 #define CMD_HARDWARE_ERR 0x0006
30 #define CMD_CONNECTION_LOST 0x0007
31 #define CMD_ABORTED 0x0008
32 #define CMD_ABORT_FAILED 0x0009
33 #define CMD_UNSOLICITED_ABORT 0x000A
34 #define CMD_TIMEOUT 0x000B
35 #define CMD_UNABORTABLE 0x000C
36 #define XFER_NONE 0x00
37 #define XFER_WRITE 0x01
38 #define XFER_READ 0x02
39 #define XFER_RSVD 0x03
40 #define ATTR_UNTAGGED 0x00
41 #define ATTR_SIMPLE 0x04
42 #define ATTR_HEADOFQUEUE 0x05
43 #define ATTR_ORDERED 0x06
44 #define ATTR_ACA 0x07
45 #define TYPE_CMD 0x00
46 #define TYPE_MSG 0x01
47 #define BYTE __u8
48 #define WORD __u16
49 #define HWORD __u16
50 #define DWORD __u32
51 #define CISS_MAX_LUN 1024
52 #define LEVEL2LUN 1
53 #define LEVEL3LUN 0
54 #pragma pack(1)
55 typedef union _SCSI3Addr_struct {
56   struct {
57     BYTE Dev;
58     BYTE Bus : 6;
59     BYTE Mode : 2;
60   } PeripDev;
61   struct {
62     BYTE DevLSB;
63     BYTE DevMSB : 6;
64     BYTE Mode : 2;
65   } LogDev;
66   struct {
67     BYTE Dev : 5;
68     BYTE Bus : 3;
69     BYTE Targ : 6;
70     BYTE Mode : 2;
71   } LogUnit;
72 } SCSI3Addr_struct;
73 typedef struct _PhysDevAddr_struct {
74   DWORD TargetId : 24;
75   DWORD Bus : 6;
76   DWORD Mode : 2;
77   SCSI3Addr_struct Target[2];
78 } PhysDevAddr_struct;
79 typedef struct _LogDevAddr_struct {
80   DWORD VolId : 30;
81   DWORD Mode : 2;
82   BYTE reserved[4];
83 } LogDevAddr_struct;
84 typedef union _LUNAddr_struct {
85   BYTE LunAddrBytes[8];
86   SCSI3Addr_struct SCSI3Lun[4];
87   PhysDevAddr_struct PhysDev;
88   LogDevAddr_struct LogDev;
89 } LUNAddr_struct;
90 typedef struct _RequestBlock_struct {
91   BYTE CDBLen;
92   struct {
93     BYTE Type : 3;
94     BYTE Attribute : 3;
95     BYTE Direction : 2;
96   } Type;
97   HWORD Timeout;
98   BYTE CDB[16];
99 } RequestBlock_struct;
100 typedef union _MoreErrInfo_struct {
101   struct {
102     BYTE Reserved[3];
103     BYTE Type;
104     DWORD ErrorInfo;
105   } Common_Info;
106   struct {
107     BYTE Reserved[2];
108     BYTE offense_size;
109     BYTE offense_num;
110     DWORD offense_value;
111   } Invalid_Cmd;
112 } MoreErrInfo_struct;
113 typedef struct _ErrorInfo_struct {
114   BYTE ScsiStatus;
115   BYTE SenseLen;
116   HWORD CommandStatus;
117   DWORD ResidualCnt;
118   MoreErrInfo_struct MoreErrInfo;
119   BYTE SenseInfo[SENSEINFOBYTES];
120 } ErrorInfo_struct;
121 #pragma pack()
122 #endif
123