mtio.h revision 94a85f663694e1869acb1c2e8a3c374a6fa3ab86
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> 25struct 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 70struct 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 107struct 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 */ 114struct mtpos { 115 long mt_blkno; 116}; 117struct 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 */ 134struct 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}; 142struct 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 */ 154struct 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 */ 164struct ftfmttrack { 165 unsigned int ft_track; 166 unsigned char ft_gap3; 167}; 168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 169struct ftfmtstatus { 170 unsigned int ft_segment; 171}; 172struct ftfmtverify { 173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 174 unsigned int ft_segment; 175 unsigned long ft_bsm; 176}; 177struct 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 */ 189struct 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