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 struct mtop {
24   short mt_op;
25   int mt_count;
26 };
27 #define MTRESET 0
28 #define MTFSF 1
29 #define MTBSF 2
30 #define MTFSR 3
31 #define MTBSR 4
32 #define MTWEOF 5
33 #define MTREW 6
34 #define MTOFFL 7
35 #define MTNOP 8
36 #define MTRETEN 9
37 #define MTBSFM 10
38 #define MTFSFM 11
39 #define MTEOM 12
40 #define MTERASE 13
41 #define MTRAS1 14
42 #define MTRAS2 15
43 #define MTRAS3 16
44 #define MTSETBLK 20
45 #define MTSETDENSITY 21
46 #define MTSEEK 22
47 #define MTTELL 23
48 #define MTSETDRVBUFFER 24
49 #define MTFSS 25
50 #define MTBSS 26
51 #define MTWSM 27
52 #define MTLOCK 28
53 #define MTUNLOCK 29
54 #define MTLOAD 30
55 #define MTUNLOAD 31
56 #define MTCOMPRESSION 32
57 #define MTSETPART 33
58 #define MTMKPART 34
59 #define MTWEOFI 35
60 struct mtget {
61   long mt_type;
62   long mt_resid;
63   long mt_dsreg;
64   long mt_gstat;
65   long mt_erreg;
66   __kernel_daddr_t mt_fileno;
67   __kernel_daddr_t mt_blkno;
68 };
69 #define MT_ISUNKNOWN 0x01
70 #define MT_ISQIC02 0x02
71 #define MT_ISWT5150 0x03
72 #define MT_ISARCHIVE_5945L2 0x04
73 #define MT_ISCMSJ500 0x05
74 #define MT_ISTDC3610 0x06
75 #define MT_ISARCHIVE_VP60I 0x07
76 #define MT_ISARCHIVE_2150L 0x08
77 #define MT_ISARCHIVE_2060L 0x09
78 #define MT_ISARCHIVESC499 0x0A
79 #define MT_ISQIC02_ALL_FEATURES 0x0F
80 #define MT_ISWT5099EEN24 0x11
81 #define MT_ISTEAC_MT2ST 0x12
82 #define MT_ISEVEREX_FT40A 0x32
83 #define MT_ISDDS1 0x51
84 #define MT_ISDDS2 0x52
85 #define MT_ISONSTREAM_SC 0x61
86 #define MT_ISSCSI1 0x71
87 #define MT_ISSCSI2 0x72
88 #define MT_ISFTAPE_UNKNOWN 0x800000
89 #define MT_ISFTAPE_FLAG 0x800000
90 struct mtpos {
91   long mt_blkno;
92 };
93 #define MTIOCTOP _IOW('m', 1, struct mtop)
94 #define MTIOCGET _IOR('m', 2, struct mtget)
95 #define MTIOCPOS _IOR('m', 3, struct mtpos)
96 #define GMT_EOF(x) ((x) & 0x80000000)
97 #define GMT_BOT(x) ((x) & 0x40000000)
98 #define GMT_EOT(x) ((x) & 0x20000000)
99 #define GMT_SM(x) ((x) & 0x10000000)
100 #define GMT_EOD(x) ((x) & 0x08000000)
101 #define GMT_WR_PROT(x) ((x) & 0x04000000)
102 #define GMT_ONLINE(x) ((x) & 0x01000000)
103 #define GMT_D_6250(x) ((x) & 0x00800000)
104 #define GMT_D_1600(x) ((x) & 0x00400000)
105 #define GMT_D_800(x) ((x) & 0x00200000)
106 #define GMT_DR_OPEN(x) ((x) & 0x00040000)
107 #define GMT_IM_REP_EN(x) ((x) & 0x00010000)
108 #define GMT_CLN(x) ((x) & 0x00008000)
109 #define MT_ST_BLKSIZE_SHIFT 0
110 #define MT_ST_BLKSIZE_MASK 0xffffff
111 #define MT_ST_DENSITY_SHIFT 24
112 #define MT_ST_DENSITY_MASK 0xff000000
113 #define MT_ST_SOFTERR_SHIFT 0
114 #define MT_ST_SOFTERR_MASK 0xffff
115 #define MT_ST_OPTIONS 0xf0000000
116 #define MT_ST_BOOLEANS 0x10000000
117 #define MT_ST_SETBOOLEANS 0x30000000
118 #define MT_ST_CLEARBOOLEANS 0x40000000
119 #define MT_ST_WRITE_THRESHOLD 0x20000000
120 #define MT_ST_DEF_BLKSIZE 0x50000000
121 #define MT_ST_DEF_OPTIONS 0x60000000
122 #define MT_ST_TIMEOUTS 0x70000000
123 #define MT_ST_SET_TIMEOUT (MT_ST_TIMEOUTS | 0x000000)
124 #define MT_ST_SET_LONG_TIMEOUT (MT_ST_TIMEOUTS | 0x100000)
125 #define MT_ST_SET_CLN 0x80000000
126 #define MT_ST_BUFFER_WRITES 0x1
127 #define MT_ST_ASYNC_WRITES 0x2
128 #define MT_ST_READ_AHEAD 0x4
129 #define MT_ST_DEBUGGING 0x8
130 #define MT_ST_TWO_FM 0x10
131 #define MT_ST_FAST_MTEOM 0x20
132 #define MT_ST_AUTO_LOCK 0x40
133 #define MT_ST_DEF_WRITES 0x80
134 #define MT_ST_CAN_BSR 0x100
135 #define MT_ST_NO_BLKLIMS 0x200
136 #define MT_ST_CAN_PARTITIONS 0x400
137 #define MT_ST_SCSI2LOGICAL 0x800
138 #define MT_ST_SYSV 0x1000
139 #define MT_ST_NOWAIT 0x2000
140 #define MT_ST_SILI 0x4000
141 #define MT_ST_NOWAIT_EOF 0x8000
142 #define MT_ST_CLEAR_DEFAULT 0xfffff
143 #define MT_ST_DEF_DENSITY (MT_ST_DEF_OPTIONS | 0x100000)
144 #define MT_ST_DEF_COMPRESSION (MT_ST_DEF_OPTIONS | 0x200000)
145 #define MT_ST_DEF_DRVBUFFER (MT_ST_DEF_OPTIONS | 0x300000)
146 #define MT_ST_HPLOADER_OFFSET 10000
147 #endif
148