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 _LINUX_MTIO_H 20 #define _LINUX_MTIO_H 21 #include <linux/types.h> 22 #include <linux/ioctl.h> 23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 24 #include <linux/qic117.h> 25 struct mtop { 26 short mt_op; 27 int mt_count; 28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 29 }; 30 #define MTRESET 0 31 #define MTFSF 1 32 #define MTBSF 2 33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 34 #define MTFSR 3 35 #define MTBSR 4 36 #define MTWEOF 5 37 #define MTREW 6 38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 39 #define MTOFFL 7 40 #define MTNOP 8 41 #define MTRETEN 9 42 #define MTBSFM 10 43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 44 #define MTFSFM 11 45 #define MTEOM 12 46 #define MTERASE 13 47 #define MTRAS1 14 48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 49 #define MTRAS2 15 50 #define MTRAS3 16 51 #define MTSETBLK 20 52 #define MTSETDENSITY 21 53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 54 #define MTSEEK 22 55 #define MTTELL 23 56 #define MTSETDRVBUFFER 24 57 #define MTFSS 25 58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 59 #define MTBSS 26 60 #define MTWSM 27 61 #define MTLOCK 28 62 #define MTUNLOCK 29 63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 64 #define MTLOAD 30 65 #define MTUNLOAD 31 66 #define MTCOMPRESSION 32 67 #define MTSETPART 33 68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 69 #define MTMKPART 34 70 struct mtget { 71 long mt_type; 72 long mt_resid; 73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 74 long mt_dsreg; 75 long mt_gstat; 76 long mt_erreg; 77 __kernel_daddr_t mt_fileno; 78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 79 __kernel_daddr_t mt_blkno; 80 }; 81 #define MT_ISUNKNOWN 0x01 82 #define MT_ISQIC02 0x02 83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 84 #define MT_ISWT5150 0x03 85 #define MT_ISARCHIVE_5945L2 0x04 86 #define MT_ISCMSJ500 0x05 87 #define MT_ISTDC3610 0x06 88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 89 #define MT_ISARCHIVE_VP60I 0x07 90 #define MT_ISARCHIVE_2150L 0x08 91 #define MT_ISARCHIVE_2060L 0x09 92 #define MT_ISARCHIVESC499 0x0A 93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 94 #define MT_ISQIC02_ALL_FEATURES 0x0F 95 #define MT_ISWT5099EEN24 0x11 96 #define MT_ISTEAC_MT2ST 0x12 97 #define MT_ISEVEREX_FT40A 0x32 98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 99 #define MT_ISDDS1 0x51 100 #define MT_ISDDS2 0x52 101 #define MT_ISONSTREAM_SC 0x61 102 #define MT_ISSCSI1 0x71 103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 104 #define MT_ISSCSI2 0x72 105 #define MT_ISFTAPE_UNKNOWN 0x800000 106 #define MT_ISFTAPE_FLAG 0x800000 107 struct mt_tape_info { 108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 109 long t_type; 110 char *t_name; 111 }; 112 #define MT_TAPE_INFO { {MT_ISUNKNOWN, "Unknown type of tape device"}, {MT_ISQIC02, "Generic QIC-02 tape streamer"}, {MT_ISWT5150, "Wangtek 5150, QIC-150"}, {MT_ISARCHIVE_5945L2, "Archive 5945L-2"}, {MT_ISCMSJ500, "CMS Jumbo 500"}, {MT_ISTDC3610, "Tandberg TDC 3610, QIC-24"}, {MT_ISARCHIVE_VP60I, "Archive VP60i, QIC-02"}, {MT_ISARCHIVE_2150L, "Archive Viper 2150L"}, {MT_ISARCHIVE_2060L, "Archive Viper 2060L"}, {MT_ISARCHIVESC499, "Archive SC-499 QIC-36 controller"}, {MT_ISQIC02_ALL_FEATURES, "Generic QIC-02 tape, all features"}, {MT_ISWT5099EEN24, "Wangtek 5099-een24, 60MB"}, {MT_ISTEAC_MT2ST, "Teac MT-2ST 155mb data cassette drive"}, {MT_ISEVEREX_FT40A, "Everex FT40A, QIC-40"}, {MT_ISONSTREAM_SC, "OnStream SC-, DI-, DP-, or USB tape drive"}, {MT_ISSCSI1, "Generic SCSI-1 tape"}, {MT_ISSCSI2, "Generic SCSI-2 tape"}, {0, NULL} } 113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 114 struct mtpos { 115 long mt_blkno; 116 }; 117 struct mtvolinfo { 118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 119 unsigned int mt_volno; 120 unsigned int mt_blksz; 121 unsigned int mt_rawsize; 122 unsigned int mt_size; 123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 124 unsigned int mt_cmpr:1; 125 }; 126 #define MT_FT_RD_SINGLE 0 127 #define MT_FT_RD_AHEAD 1 128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 129 #define MT_FT_WR_ASYNC 0 130 #define MT_FT_WR_MULTI 1 131 #define MT_FT_WR_SINGLE 2 132 #define MT_FT_WR_DELETE 3 133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 134 struct mtftseg 135 { 136 unsigned mt_segno; 137 unsigned mt_mode; 138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 139 int mt_result; 140 void __user *mt_data; 141 }; 142 struct mttapesize { 143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 144 unsigned long mt_capacity; 145 unsigned long mt_used; 146 }; 147 #define FTFMT_SET_PARMS 1 148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 149 #define FTFMT_GET_PARMS 2 150 #define FTFMT_FORMAT_TRACK 3 151 #define FTFMT_STATUS 4 152 #define FTFMT_VERIFY 5 153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 154 struct ftfmtparms { 155 unsigned char ft_qicstd; 156 unsigned char ft_fmtcode; 157 unsigned char ft_fhm; 158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 159 unsigned char ft_ftm; 160 unsigned short ft_spt; 161 unsigned short ft_tpc; 162 }; 163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 164 struct ftfmttrack { 165 unsigned int ft_track; 166 unsigned char ft_gap3; 167 }; 168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 169 struct ftfmtstatus { 170 unsigned int ft_segment; 171 }; 172 struct ftfmtverify { 173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 174 unsigned int ft_segment; 175 unsigned long ft_bsm; 176 }; 177 struct mtftformat { 178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 179 unsigned int fmt_op; 180 union fmt_arg { 181 struct ftfmtparms fmt_parms; 182 struct ftfmttrack fmt_track; 183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 184 struct ftfmtstatus fmt_status; 185 struct ftfmtverify fmt_verify; 186 } fmt_arg; 187 }; 188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 189 struct mtftcmd { 190 unsigned int ft_wait_before; 191 qic117_cmd_t ft_cmd; 192 unsigned char ft_parm_cnt; 193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 194 unsigned char ft_parms[3]; 195 unsigned int ft_result_bits; 196 unsigned int ft_result; 197 unsigned int ft_wait_after; 198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 199 int ft_status; 200 int ft_error; 201 }; 202 #define MTIOCTOP _IOW('m', 1, struct mtop) 203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 204 #define MTIOCGET _IOR('m', 2, struct mtget) 205 #define MTIOCPOS _IOR('m', 3, struct mtpos) 206 #define MTIOCGETCONFIG _IOR('m', 4, struct mtconfiginfo) 207 #define MTIOCSETCONFIG _IOW('m', 5, struct mtconfiginfo) 208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 209 #define MTIOCRDFTSEG _IOWR('m', 6, struct mtftseg) 210 #define MTIOCWRFTSEG _IOWR('m', 7, struct mtftseg) 211 #define MTIOCVOLINFO _IOR('m', 8, struct mtvolinfo) 212 #define MTIOCGETSIZE _IOR('m', 9, struct mttapesize) 213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 214 #define MTIOCFTFORMAT _IOWR('m', 10, struct mtftformat) 215 #define MTIOCFTCMD _IOWR('m', 11, struct mtftcmd) 216 #define GMT_EOF(x) ((x) & 0x80000000) 217 #define GMT_BOT(x) ((x) & 0x40000000) 218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 219 #define GMT_EOT(x) ((x) & 0x20000000) 220 #define GMT_SM(x) ((x) & 0x10000000) 221 #define GMT_EOD(x) ((x) & 0x08000000) 222 #define GMT_WR_PROT(x) ((x) & 0x04000000) 223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 224 #define GMT_ONLINE(x) ((x) & 0x01000000) 225 #define GMT_D_6250(x) ((x) & 0x00800000) 226 #define GMT_D_1600(x) ((x) & 0x00400000) 227 #define GMT_D_800(x) ((x) & 0x00200000) 228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 229 #define GMT_DR_OPEN(x) ((x) & 0x00040000) 230 #define GMT_IM_REP_EN(x) ((x) & 0x00010000) 231 #define GMT_CLN(x) ((x) & 0x00008000) 232 #define MT_ST_BLKSIZE_SHIFT 0 233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 234 #define MT_ST_BLKSIZE_MASK 0xffffff 235 #define MT_ST_DENSITY_SHIFT 24 236 #define MT_ST_DENSITY_MASK 0xff000000 237 #define MT_ST_SOFTERR_SHIFT 0 238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 239 #define MT_ST_SOFTERR_MASK 0xffff 240 #define MT_ST_OPTIONS 0xf0000000 241 #define MT_ST_BOOLEANS 0x10000000 242 #define MT_ST_SETBOOLEANS 0x30000000 243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 244 #define MT_ST_CLEARBOOLEANS 0x40000000 245 #define MT_ST_WRITE_THRESHOLD 0x20000000 246 #define MT_ST_DEF_BLKSIZE 0x50000000 247 #define MT_ST_DEF_OPTIONS 0x60000000 248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 249 #define MT_ST_TIMEOUTS 0x70000000 250 #define MT_ST_SET_TIMEOUT (MT_ST_TIMEOUTS | 0x000000) 251 #define MT_ST_SET_LONG_TIMEOUT (MT_ST_TIMEOUTS | 0x100000) 252 #define MT_ST_SET_CLN 0x80000000 253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 254 #define MT_ST_BUFFER_WRITES 0x1 255 #define MT_ST_ASYNC_WRITES 0x2 256 #define MT_ST_READ_AHEAD 0x4 257 #define MT_ST_DEBUGGING 0x8 258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 259 #define MT_ST_TWO_FM 0x10 260 #define MT_ST_FAST_MTEOM 0x20 261 #define MT_ST_AUTO_LOCK 0x40 262 #define MT_ST_DEF_WRITES 0x80 263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 264 #define MT_ST_CAN_BSR 0x100 265 #define MT_ST_NO_BLKLIMS 0x200 266 #define MT_ST_CAN_PARTITIONS 0x400 267 #define MT_ST_SCSI2LOGICAL 0x800 268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 269 #define MT_ST_SYSV 0x1000 270 #define MT_ST_NOWAIT 0x2000 271 #define MT_ST_CLEAR_DEFAULT 0xfffff 272 #define MT_ST_DEF_DENSITY (MT_ST_DEF_OPTIONS | 0x100000) 273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 274 #define MT_ST_DEF_COMPRESSION (MT_ST_DEF_OPTIONS | 0x200000) 275 #define MT_ST_DEF_DRVBUFFER (MT_ST_DEF_OPTIONS | 0x300000) 276 #define MT_ST_HPLOADER_OFFSET 10000 277 #endif 278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 279