xref: /aosp_15_r20/prebuilts/build-tools/sysroots/i686-unknown-linux-musl/include/scsi/sg.h (revision cda5da8d549138a6648c5ee6d7a49cf8f4a657be)
1*cda5da8dSAndroid Build Coastguard Worker /*
2*cda5da8dSAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*cda5da8dSAndroid Build Coastguard Worker  *
4*cda5da8dSAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*cda5da8dSAndroid Build Coastguard Worker  * for more information.
6*cda5da8dSAndroid Build Coastguard Worker  */
7*cda5da8dSAndroid Build Coastguard Worker #ifndef _SCSI_GENERIC_H
8*cda5da8dSAndroid Build Coastguard Worker #define _SCSI_GENERIC_H
9*cda5da8dSAndroid Build Coastguard Worker #include <linux/compiler.h>
10*cda5da8dSAndroid Build Coastguard Worker typedef struct sg_iovec {
11*cda5da8dSAndroid Build Coastguard Worker   void  * iov_base;
12*cda5da8dSAndroid Build Coastguard Worker   size_t iov_len;
13*cda5da8dSAndroid Build Coastguard Worker } sg_iovec_t;
14*cda5da8dSAndroid Build Coastguard Worker typedef struct sg_io_hdr {
15*cda5da8dSAndroid Build Coastguard Worker   int interface_id;
16*cda5da8dSAndroid Build Coastguard Worker   int dxfer_direction;
17*cda5da8dSAndroid Build Coastguard Worker   unsigned char cmd_len;
18*cda5da8dSAndroid Build Coastguard Worker   unsigned char mx_sb_len;
19*cda5da8dSAndroid Build Coastguard Worker   unsigned short iovec_count;
20*cda5da8dSAndroid Build Coastguard Worker   unsigned int dxfer_len;
21*cda5da8dSAndroid Build Coastguard Worker   void  * dxferp;
22*cda5da8dSAndroid Build Coastguard Worker   unsigned char  * cmdp;
23*cda5da8dSAndroid Build Coastguard Worker   void  * sbp;
24*cda5da8dSAndroid Build Coastguard Worker   unsigned int timeout;
25*cda5da8dSAndroid Build Coastguard Worker   unsigned int flags;
26*cda5da8dSAndroid Build Coastguard Worker   int pack_id;
27*cda5da8dSAndroid Build Coastguard Worker   void  * usr_ptr;
28*cda5da8dSAndroid Build Coastguard Worker   unsigned char status;
29*cda5da8dSAndroid Build Coastguard Worker   unsigned char masked_status;
30*cda5da8dSAndroid Build Coastguard Worker   unsigned char msg_status;
31*cda5da8dSAndroid Build Coastguard Worker   unsigned char sb_len_wr;
32*cda5da8dSAndroid Build Coastguard Worker   unsigned short host_status;
33*cda5da8dSAndroid Build Coastguard Worker   unsigned short driver_status;
34*cda5da8dSAndroid Build Coastguard Worker   int resid;
35*cda5da8dSAndroid Build Coastguard Worker   unsigned int duration;
36*cda5da8dSAndroid Build Coastguard Worker   unsigned int info;
37*cda5da8dSAndroid Build Coastguard Worker } sg_io_hdr_t;
38*cda5da8dSAndroid Build Coastguard Worker #define SG_INTERFACE_ID_ORIG 'S'
39*cda5da8dSAndroid Build Coastguard Worker #define SG_DXFER_NONE (- 1)
40*cda5da8dSAndroid Build Coastguard Worker #define SG_DXFER_TO_DEV (- 2)
41*cda5da8dSAndroid Build Coastguard Worker #define SG_DXFER_FROM_DEV (- 3)
42*cda5da8dSAndroid Build Coastguard Worker #define SG_DXFER_TO_FROM_DEV (- 4)
43*cda5da8dSAndroid Build Coastguard Worker #define SG_DXFER_UNKNOWN (- 5)
44*cda5da8dSAndroid Build Coastguard Worker #define SG_FLAG_DIRECT_IO 1
45*cda5da8dSAndroid Build Coastguard Worker #define SG_FLAG_UNUSED_LUN_INHIBIT 2
46*cda5da8dSAndroid Build Coastguard Worker #define SG_FLAG_MMAP_IO 4
47*cda5da8dSAndroid Build Coastguard Worker #define SG_FLAG_NO_DXFER 0x10000
48*cda5da8dSAndroid Build Coastguard Worker #define SG_FLAG_Q_AT_TAIL 0x10
49*cda5da8dSAndroid Build Coastguard Worker #define SG_FLAG_Q_AT_HEAD 0x20
50*cda5da8dSAndroid Build Coastguard Worker #define SG_INFO_OK_MASK 0x1
51*cda5da8dSAndroid Build Coastguard Worker #define SG_INFO_OK 0x0
52*cda5da8dSAndroid Build Coastguard Worker #define SG_INFO_CHECK 0x1
53*cda5da8dSAndroid Build Coastguard Worker #define SG_INFO_DIRECT_IO_MASK 0x6
54*cda5da8dSAndroid Build Coastguard Worker #define SG_INFO_INDIRECT_IO 0x0
55*cda5da8dSAndroid Build Coastguard Worker #define SG_INFO_DIRECT_IO 0x2
56*cda5da8dSAndroid Build Coastguard Worker #define SG_INFO_MIXED_IO 0x4
57*cda5da8dSAndroid Build Coastguard Worker #define DRIVER_SENSE 0x08
58*cda5da8dSAndroid Build Coastguard Worker #define driver_byte(result) (((result) >> 24) & 0xff)
59*cda5da8dSAndroid Build Coastguard Worker #define GOOD 0x00
60*cda5da8dSAndroid Build Coastguard Worker #define CHECK_CONDITION 0x01
61*cda5da8dSAndroid Build Coastguard Worker #define CONDITION_GOOD 0x02
62*cda5da8dSAndroid Build Coastguard Worker #define BUSY 0x04
63*cda5da8dSAndroid Build Coastguard Worker #define INTERMEDIATE_GOOD 0x08
64*cda5da8dSAndroid Build Coastguard Worker #define INTERMEDIATE_C_GOOD 0x0a
65*cda5da8dSAndroid Build Coastguard Worker #define RESERVATION_CONFLICT 0x0c
66*cda5da8dSAndroid Build Coastguard Worker #define COMMAND_TERMINATED 0x11
67*cda5da8dSAndroid Build Coastguard Worker #define QUEUE_FULL 0x14
68*cda5da8dSAndroid Build Coastguard Worker #define ACA_ACTIVE 0x18
69*cda5da8dSAndroid Build Coastguard Worker #define TASK_ABORTED 0x20
70*cda5da8dSAndroid Build Coastguard Worker #define sg_status_byte(result) (((result) >> 1) & 0x7f)
71*cda5da8dSAndroid Build Coastguard Worker typedef struct sg_scsi_id {
72*cda5da8dSAndroid Build Coastguard Worker   int host_no;
73*cda5da8dSAndroid Build Coastguard Worker   int channel;
74*cda5da8dSAndroid Build Coastguard Worker   int scsi_id;
75*cda5da8dSAndroid Build Coastguard Worker   int lun;
76*cda5da8dSAndroid Build Coastguard Worker   int scsi_type;
77*cda5da8dSAndroid Build Coastguard Worker   short h_cmd_per_lun;
78*cda5da8dSAndroid Build Coastguard Worker   short d_queue_depth;
79*cda5da8dSAndroid Build Coastguard Worker   int unused[2];
80*cda5da8dSAndroid Build Coastguard Worker } sg_scsi_id_t;
81*cda5da8dSAndroid Build Coastguard Worker typedef struct sg_req_info {
82*cda5da8dSAndroid Build Coastguard Worker   char req_state;
83*cda5da8dSAndroid Build Coastguard Worker   char orphan;
84*cda5da8dSAndroid Build Coastguard Worker   char sg_io_owned;
85*cda5da8dSAndroid Build Coastguard Worker   char problem;
86*cda5da8dSAndroid Build Coastguard Worker   int pack_id;
87*cda5da8dSAndroid Build Coastguard Worker   void  * usr_ptr;
88*cda5da8dSAndroid Build Coastguard Worker   unsigned int duration;
89*cda5da8dSAndroid Build Coastguard Worker   int unused;
90*cda5da8dSAndroid Build Coastguard Worker } sg_req_info_t;
91*cda5da8dSAndroid Build Coastguard Worker #define SG_EMULATED_HOST 0x2203
92*cda5da8dSAndroid Build Coastguard Worker #define SG_SET_TRANSFORM 0x2204
93*cda5da8dSAndroid Build Coastguard Worker #define SG_GET_TRANSFORM 0x2205
94*cda5da8dSAndroid Build Coastguard Worker #define SG_SET_RESERVED_SIZE 0x2275
95*cda5da8dSAndroid Build Coastguard Worker #define SG_GET_RESERVED_SIZE 0x2272
96*cda5da8dSAndroid Build Coastguard Worker #define SG_GET_SCSI_ID 0x2276
97*cda5da8dSAndroid Build Coastguard Worker #define SG_SET_FORCE_LOW_DMA 0x2279
98*cda5da8dSAndroid Build Coastguard Worker #define SG_GET_LOW_DMA 0x227a
99*cda5da8dSAndroid Build Coastguard Worker #define SG_SET_FORCE_PACK_ID 0x227b
100*cda5da8dSAndroid Build Coastguard Worker #define SG_GET_PACK_ID 0x227c
101*cda5da8dSAndroid Build Coastguard Worker #define SG_GET_NUM_WAITING 0x227d
102*cda5da8dSAndroid Build Coastguard Worker #define SG_GET_SG_TABLESIZE 0x227F
103*cda5da8dSAndroid Build Coastguard Worker #define SG_GET_VERSION_NUM 0x2282
104*cda5da8dSAndroid Build Coastguard Worker #define SG_SCSI_RESET 0x2284
105*cda5da8dSAndroid Build Coastguard Worker #define SG_SCSI_RESET_NOTHING 0
106*cda5da8dSAndroid Build Coastguard Worker #define SG_SCSI_RESET_DEVICE 1
107*cda5da8dSAndroid Build Coastguard Worker #define SG_SCSI_RESET_BUS 2
108*cda5da8dSAndroid Build Coastguard Worker #define SG_SCSI_RESET_HOST 3
109*cda5da8dSAndroid Build Coastguard Worker #define SG_SCSI_RESET_TARGET 4
110*cda5da8dSAndroid Build Coastguard Worker #define SG_SCSI_RESET_NO_ESCALATE 0x100
111*cda5da8dSAndroid Build Coastguard Worker #define SG_IO 0x2285
112*cda5da8dSAndroid Build Coastguard Worker #define SG_GET_REQUEST_TABLE 0x2286
113*cda5da8dSAndroid Build Coastguard Worker #define SG_SET_KEEP_ORPHAN 0x2287
114*cda5da8dSAndroid Build Coastguard Worker #define SG_GET_KEEP_ORPHAN 0x2288
115*cda5da8dSAndroid Build Coastguard Worker #define SG_GET_ACCESS_COUNT 0x2289
116*cda5da8dSAndroid Build Coastguard Worker #define SG_SCATTER_SZ (8 * 4096)
117*cda5da8dSAndroid Build Coastguard Worker #define SG_DEFAULT_RETRIES 0
118*cda5da8dSAndroid Build Coastguard Worker #define SG_DEF_FORCE_PACK_ID 0
119*cda5da8dSAndroid Build Coastguard Worker #define SG_DEF_KEEP_ORPHAN 0
120*cda5da8dSAndroid Build Coastguard Worker #define SG_DEF_RESERVED_SIZE SG_SCATTER_SZ
121*cda5da8dSAndroid Build Coastguard Worker #define SG_MAX_QUEUE 16
122*cda5da8dSAndroid Build Coastguard Worker #define SG_BIG_BUFF SG_DEF_RESERVED_SIZE
123*cda5da8dSAndroid Build Coastguard Worker typedef struct sg_io_hdr Sg_io_hdr;
124*cda5da8dSAndroid Build Coastguard Worker typedef struct sg_io_vec Sg_io_vec;
125*cda5da8dSAndroid Build Coastguard Worker typedef struct sg_scsi_id Sg_scsi_id;
126*cda5da8dSAndroid Build Coastguard Worker typedef struct sg_req_info Sg_req_info;
127*cda5da8dSAndroid Build Coastguard Worker #define SG_MAX_SENSE 16
128*cda5da8dSAndroid Build Coastguard Worker struct sg_header {
129*cda5da8dSAndroid Build Coastguard Worker   int pack_len;
130*cda5da8dSAndroid Build Coastguard Worker   int reply_len;
131*cda5da8dSAndroid Build Coastguard Worker   int pack_id;
132*cda5da8dSAndroid Build Coastguard Worker   int result;
133*cda5da8dSAndroid Build Coastguard Worker   unsigned int twelve_byte : 1;
134*cda5da8dSAndroid Build Coastguard Worker   unsigned int target_status : 5;
135*cda5da8dSAndroid Build Coastguard Worker   unsigned int host_status : 8;
136*cda5da8dSAndroid Build Coastguard Worker   unsigned int driver_status : 8;
137*cda5da8dSAndroid Build Coastguard Worker   unsigned int other_flags : 10;
138*cda5da8dSAndroid Build Coastguard Worker   unsigned char sense_buffer[SG_MAX_SENSE];
139*cda5da8dSAndroid Build Coastguard Worker };
140*cda5da8dSAndroid Build Coastguard Worker #define SG_SET_TIMEOUT 0x2201
141*cda5da8dSAndroid Build Coastguard Worker #define SG_GET_TIMEOUT 0x2202
142*cda5da8dSAndroid Build Coastguard Worker #define SG_GET_COMMAND_Q 0x2270
143*cda5da8dSAndroid Build Coastguard Worker #define SG_SET_COMMAND_Q 0x2271
144*cda5da8dSAndroid Build Coastguard Worker #define SG_SET_DEBUG 0x227e
145*cda5da8dSAndroid Build Coastguard Worker #define SG_NEXT_CMD_LEN 0x2283
146*cda5da8dSAndroid Build Coastguard Worker #define SG_DEFAULT_TIMEOUT (60 * HZ)
147*cda5da8dSAndroid Build Coastguard Worker #define SG_DEF_COMMAND_Q 0
148*cda5da8dSAndroid Build Coastguard Worker #define SG_DEF_UNDERRUN_FLAG 0
149*cda5da8dSAndroid Build Coastguard Worker #endif
150