16048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/**************************************************************************** 26048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris **************************************************************************** 36048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris *** 46048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris *** This header was automatically generated from a Linux kernel header 56048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris *** of the same name, to make information necessary for userspace to 66048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris *** call into the kernel available to libc. It contains only constants, 76048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris *** structures, and macros generated from the original header, and thus, 86048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris *** contains no copyrightable information. 96048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris *** 106048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris *** To edit the content of this header, modify the corresponding 116048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris *** source file (e.g. under external/kernel-headers/original/) then 126048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris *** run bionic/libc/kernel/tools/update_all.py 136048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris *** 146048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris *** Any manual change here will be lost the next time this script will 156048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris *** be run. You've been warned! 166048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris *** 176048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris **************************************************************************** 186048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris ****************************************************************************/ 196048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#ifndef _SCSI_GENERIC_H 206048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define _SCSI_GENERIC_H 216048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#include <linux/compiler.h> 226048173b3622b99b9112e229f4c729c69e093e01Christopher Ferristypedef struct sg_iovec { 236048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 246048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris void __user * iov_base; 256048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris size_t iov_len; 266048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris} sg_iovec_t; 276048173b3622b99b9112e229f4c729c69e093e01Christopher Ferristypedef struct sg_io_hdr { 286048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 296048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris int interface_id; 306048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris int dxfer_direction; 316048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris unsigned char cmd_len; 326048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris unsigned char mx_sb_len; 336048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 346048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris unsigned short iovec_count; 356048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris unsigned int dxfer_len; 366048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris void __user * dxferp; 376048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris unsigned char __user * cmdp; 386048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 396048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris void __user * sbp; 406048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris unsigned int timeout; 416048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris unsigned int flags; 426048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris int pack_id; 436048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 446048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris void __user * usr_ptr; 456048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris unsigned char status; 466048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris unsigned char masked_status; 476048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris unsigned char msg_status; 486048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 496048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris unsigned char sb_len_wr; 506048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris unsigned short host_status; 516048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris unsigned short driver_status; 526048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris int resid; 536048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 546048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris unsigned int duration; 556048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris unsigned int info; 566048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris} sg_io_hdr_t; 576048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_INTERFACE_ID_ORIG 'S' 586048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 596048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_DXFER_NONE (- 1) 606048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_DXFER_TO_DEV (- 2) 616048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_DXFER_FROM_DEV (- 3) 626048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_DXFER_TO_FROM_DEV (- 4) 636048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 646048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_DXFER_UNKNOWN (- 5) 656048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_FLAG_DIRECT_IO 1 666048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_FLAG_UNUSED_LUN_INHIBIT 2 676048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_FLAG_MMAP_IO 4 686048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 696048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_FLAG_NO_DXFER 0x10000 706048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_FLAG_Q_AT_TAIL 0x10 716048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_FLAG_Q_AT_HEAD 0x20 726048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_INFO_OK_MASK 0x1 736048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 746048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_INFO_OK 0x0 756048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_INFO_CHECK 0x1 766048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_INFO_DIRECT_IO_MASK 0x6 776048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_INFO_INDIRECT_IO 0x0 786048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 796048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_INFO_DIRECT_IO 0x2 806048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_INFO_MIXED_IO 0x4 816048173b3622b99b9112e229f4c729c69e093e01Christopher Ferristypedef struct sg_scsi_id { 826048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris int host_no; 836048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 846048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris int channel; 856048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris int scsi_id; 866048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris int lun; 876048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris int scsi_type; 886048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 896048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris short h_cmd_per_lun; 906048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris short d_queue_depth; 916048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris int unused[2]; 926048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris} sg_scsi_id_t; 936048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 946048173b3622b99b9112e229f4c729c69e093e01Christopher Ferristypedef struct sg_req_info { 956048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris char req_state; 966048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris char orphan; 976048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris char sg_io_owned; 986048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 996048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris char problem; 1006048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris int pack_id; 1016048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris void __user * usr_ptr; 1026048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris unsigned int duration; 1036048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 1046048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris int unused; 1056048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris} sg_req_info_t; 1066048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_EMULATED_HOST 0x2203 1076048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_SET_TRANSFORM 0x2204 1086048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 1096048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_GET_TRANSFORM 0x2205 1106048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_SET_RESERVED_SIZE 0x2275 1116048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_GET_RESERVED_SIZE 0x2272 1126048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_GET_SCSI_ID 0x2276 1136048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 1146048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_SET_FORCE_LOW_DMA 0x2279 1156048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_GET_LOW_DMA 0x227a 1166048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_SET_FORCE_PACK_ID 0x227b 1176048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_GET_PACK_ID 0x227c 1186048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 1196048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_GET_NUM_WAITING 0x227d 1206048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_GET_SG_TABLESIZE 0x227F 1216048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_GET_VERSION_NUM 0x2282 1226048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_SCSI_RESET 0x2284 1236048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 1246048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_SCSI_RESET_NOTHING 0 1256048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_SCSI_RESET_DEVICE 1 1266048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_SCSI_RESET_BUS 2 1276048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_SCSI_RESET_HOST 3 1286048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 1296048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_SCSI_RESET_TARGET 4 1305956b4e31441399430b990ecf006e694703f4c5fChristopher Ferris#define SG_SCSI_RESET_NO_ESCALATE 0x100 1316048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_IO 0x2285 1326048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_GET_REQUEST_TABLE 0x2286 1336048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 1345956b4e31441399430b990ecf006e694703f4c5fChristopher Ferris#define SG_SET_KEEP_ORPHAN 0x2287 1356048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_GET_KEEP_ORPHAN 0x2288 1366048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_GET_ACCESS_COUNT 0x2289 1376048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_SCATTER_SZ (8 * 4096) 1386048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 1395956b4e31441399430b990ecf006e694703f4c5fChristopher Ferris#define SG_DEFAULT_RETRIES 0 1406048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_DEF_FORCE_LOW_DMA 0 1416048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_DEF_FORCE_PACK_ID 0 1426048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_DEF_KEEP_ORPHAN 0 1436048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 1445956b4e31441399430b990ecf006e694703f4c5fChristopher Ferris#define SG_DEF_RESERVED_SIZE SG_SCATTER_SZ 1456048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_MAX_QUEUE 16 1466048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_BIG_BUFF SG_DEF_RESERVED_SIZE 1476048173b3622b99b9112e229f4c729c69e093e01Christopher Ferristypedef struct sg_io_hdr Sg_io_hdr; 1486048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 1495956b4e31441399430b990ecf006e694703f4c5fChristopher Ferristypedef struct sg_io_vec Sg_io_vec; 1506048173b3622b99b9112e229f4c729c69e093e01Christopher Ferristypedef struct sg_scsi_id Sg_scsi_id; 1516048173b3622b99b9112e229f4c729c69e093e01Christopher Ferristypedef struct sg_req_info Sg_req_info; 1526048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_MAX_SENSE 16 1536048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 1545956b4e31441399430b990ecf006e694703f4c5fChristopher Ferrisstruct sg_header { 1556048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris int pack_len; 1566048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris int reply_len; 1576048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris int pack_id; 1586048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 1595956b4e31441399430b990ecf006e694703f4c5fChristopher Ferris int result; 1606048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris unsigned int twelve_byte : 1; 1616048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris unsigned int target_status : 5; 1626048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris unsigned int host_status : 8; 1636048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 1645956b4e31441399430b990ecf006e694703f4c5fChristopher Ferris unsigned int driver_status : 8; 1656048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris unsigned int other_flags : 10; 1666048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris unsigned char sense_buffer[SG_MAX_SENSE]; 1676048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris}; 1686048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 1695956b4e31441399430b990ecf006e694703f4c5fChristopher Ferris#define SG_SET_TIMEOUT 0x2201 1706048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_GET_TIMEOUT 0x2202 1716048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_GET_COMMAND_Q 0x2270 1726048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_SET_COMMAND_Q 0x2271 1736048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 1745956b4e31441399430b990ecf006e694703f4c5fChristopher Ferris#define SG_SET_DEBUG 0x227e 1756048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_NEXT_CMD_LEN 0x2283 1766048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_DEFAULT_TIMEOUT (60 * HZ) 1776048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#define SG_DEF_COMMAND_Q 0 1786048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 1795956b4e31441399430b990ecf006e694703f4c5fChristopher Ferris#define SG_DEF_UNDERRUN_FLAG 0 1806048173b3622b99b9112e229f4c729c69e093e01Christopher Ferris#endif 181