0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef _LINUX_MTIO_H
0010 #define _LINUX_MTIO_H
0011
0012 #include <linux/types.h>
0013 #include <linux/ioctl.h>
0014
0015
0016
0017
0018
0019
0020 struct mtop {
0021 short mt_op;
0022 int mt_count;
0023 };
0024
0025
0026 #define MTRESET 0
0027 #define MTFSF 1
0028
0029
0030 #define MTBSF 2
0031 #define MTFSR 3
0032 #define MTBSR 4
0033 #define MTWEOF 5
0034 #define MTREW 6
0035 #define MTOFFL 7
0036 #define MTNOP 8
0037 #define MTRETEN 9
0038 #define MTBSFM 10
0039 #define MTFSFM 11
0040 #define MTEOM 12
0041
0042
0043
0044 #define MTERASE 13
0045
0046 #define MTRAS1 14
0047 #define MTRAS2 15
0048 #define MTRAS3 16
0049
0050 #define MTSETBLK 20
0051 #define MTSETDENSITY 21
0052 #define MTSEEK 22
0053 #define MTTELL 23
0054 #define MTSETDRVBUFFER 24
0055
0056 #define MTFSS 25
0057 #define MTBSS 26
0058 #define MTWSM 27
0059
0060 #define MTLOCK 28
0061 #define MTUNLOCK 29
0062 #define MTLOAD 30
0063 #define MTUNLOAD 31
0064 #define MTCOMPRESSION 32
0065 #define MTSETPART 33
0066 #define MTMKPART 34
0067 #define MTWEOFI 35
0068
0069
0070
0071 struct mtget {
0072 long mt_type;
0073 long mt_resid;
0074
0075
0076
0077
0078
0079 long mt_dsreg;
0080 long mt_gstat;
0081 long mt_erreg;
0082
0083 __kernel_daddr_t mt_fileno;
0084 __kernel_daddr_t mt_blkno;
0085 };
0086
0087
0088
0089
0090
0091
0092
0093 #define MT_ISUNKNOWN 0x01
0094 #define MT_ISQIC02 0x02
0095 #define MT_ISWT5150 0x03
0096 #define MT_ISARCHIVE_5945L2 0x04
0097 #define MT_ISCMSJ500 0x05
0098 #define MT_ISTDC3610 0x06
0099 #define MT_ISARCHIVE_VP60I 0x07
0100 #define MT_ISARCHIVE_2150L 0x08
0101 #define MT_ISARCHIVE_2060L 0x09
0102 #define MT_ISARCHIVESC499 0x0A
0103 #define MT_ISQIC02_ALL_FEATURES 0x0F
0104 #define MT_ISWT5099EEN24 0x11
0105 #define MT_ISTEAC_MT2ST 0x12
0106 #define MT_ISEVEREX_FT40A 0x32
0107 #define MT_ISDDS1 0x51
0108 #define MT_ISDDS2 0x52
0109 #define MT_ISONSTREAM_SC 0x61
0110
0111 #define MT_ISSCSI1 0x71
0112 #define MT_ISSCSI2 0x72
0113
0114
0115
0116
0117 #define MT_ISFTAPE_UNKNOWN 0x800000
0118 #define MT_ISFTAPE_FLAG 0x800000
0119
0120
0121
0122
0123 struct mtpos {
0124 long mt_blkno;
0125 };
0126
0127
0128
0129 #define MTIOCTOP _IOW('m', 1, struct mtop)
0130 #define MTIOCGET _IOR('m', 2, struct mtget)
0131 #define MTIOCPOS _IOR('m', 3, struct mtpos)
0132
0133
0134
0135
0136
0137
0138
0139
0140 #define GMT_EOF(x) ((x) & 0x80000000)
0141 #define GMT_BOT(x) ((x) & 0x40000000)
0142 #define GMT_EOT(x) ((x) & 0x20000000)
0143 #define GMT_SM(x) ((x) & 0x10000000)
0144 #define GMT_EOD(x) ((x) & 0x08000000)
0145 #define GMT_WR_PROT(x) ((x) & 0x04000000)
0146
0147 #define GMT_ONLINE(x) ((x) & 0x01000000)
0148 #define GMT_D_6250(x) ((x) & 0x00800000)
0149 #define GMT_D_1600(x) ((x) & 0x00400000)
0150 #define GMT_D_800(x) ((x) & 0x00200000)
0151
0152
0153 #define GMT_DR_OPEN(x) ((x) & 0x00040000)
0154
0155 #define GMT_IM_REP_EN(x) ((x) & 0x00010000)
0156 #define GMT_CLN(x) ((x) & 0x00008000)
0157
0158
0159
0160
0161
0162 #define MT_ST_BLKSIZE_SHIFT 0
0163 #define MT_ST_BLKSIZE_MASK 0xffffff
0164 #define MT_ST_DENSITY_SHIFT 24
0165 #define MT_ST_DENSITY_MASK 0xff000000
0166
0167 #define MT_ST_SOFTERR_SHIFT 0
0168 #define MT_ST_SOFTERR_MASK 0xffff
0169
0170
0171 #define MT_ST_OPTIONS 0xf0000000
0172 #define MT_ST_BOOLEANS 0x10000000
0173 #define MT_ST_SETBOOLEANS 0x30000000
0174 #define MT_ST_CLEARBOOLEANS 0x40000000
0175 #define MT_ST_WRITE_THRESHOLD 0x20000000
0176 #define MT_ST_DEF_BLKSIZE 0x50000000
0177 #define MT_ST_DEF_OPTIONS 0x60000000
0178 #define MT_ST_TIMEOUTS 0x70000000
0179 #define MT_ST_SET_TIMEOUT (MT_ST_TIMEOUTS | 0x000000)
0180 #define MT_ST_SET_LONG_TIMEOUT (MT_ST_TIMEOUTS | 0x100000)
0181 #define MT_ST_SET_CLN 0x80000000
0182
0183 #define MT_ST_BUFFER_WRITES 0x1
0184 #define MT_ST_ASYNC_WRITES 0x2
0185 #define MT_ST_READ_AHEAD 0x4
0186 #define MT_ST_DEBUGGING 0x8
0187 #define MT_ST_TWO_FM 0x10
0188 #define MT_ST_FAST_MTEOM 0x20
0189 #define MT_ST_AUTO_LOCK 0x40
0190 #define MT_ST_DEF_WRITES 0x80
0191 #define MT_ST_CAN_BSR 0x100
0192 #define MT_ST_NO_BLKLIMS 0x200
0193 #define MT_ST_CAN_PARTITIONS 0x400
0194 #define MT_ST_SCSI2LOGICAL 0x800
0195 #define MT_ST_SYSV 0x1000
0196 #define MT_ST_NOWAIT 0x2000
0197 #define MT_ST_SILI 0x4000
0198 #define MT_ST_NOWAIT_EOF 0x8000
0199
0200
0201 #define MT_ST_CLEAR_DEFAULT 0xfffff
0202 #define MT_ST_DEF_DENSITY (MT_ST_DEF_OPTIONS | 0x100000)
0203 #define MT_ST_DEF_COMPRESSION (MT_ST_DEF_OPTIONS | 0x200000)
0204 #define MT_ST_DEF_DRVBUFFER (MT_ST_DEF_OPTIONS | 0x300000)
0205
0206
0207 #define MT_ST_HPLOADER_OFFSET 10000
0208
0209 #endif