1*cda5da8dSAndroid Build Coastguard Worker #ifndef _SYS_MTIO_H 2*cda5da8dSAndroid Build Coastguard Worker #define _SYS_MTIO_H 3*cda5da8dSAndroid Build Coastguard Worker 4*cda5da8dSAndroid Build Coastguard Worker #include <sys/types.h> 5*cda5da8dSAndroid Build Coastguard Worker #include <sys/ioctl.h> 6*cda5da8dSAndroid Build Coastguard Worker 7*cda5da8dSAndroid Build Coastguard Worker struct mtop { 8*cda5da8dSAndroid Build Coastguard Worker short mt_op; 9*cda5da8dSAndroid Build Coastguard Worker int mt_count; 10*cda5da8dSAndroid Build Coastguard Worker }; 11*cda5da8dSAndroid Build Coastguard Worker 12*cda5da8dSAndroid Build Coastguard Worker #define _IOT_mtop _IOT (_IOTS (short), 1, _IOTS (int), 1, 0, 0) 13*cda5da8dSAndroid Build Coastguard Worker #define _IOT_mtget _IOT (_IOTS (long), 7, 0, 0, 0, 0) 14*cda5da8dSAndroid Build Coastguard Worker #define _IOT_mtpos _IOT_SIMPLE (long) 15*cda5da8dSAndroid Build Coastguard Worker #define _IOT_mtconfiginfo _IOT (_IOTS (long), 2, _IOTS (short), 3, _IOTS (long), 1) 16*cda5da8dSAndroid Build Coastguard Worker 17*cda5da8dSAndroid Build Coastguard Worker 18*cda5da8dSAndroid Build Coastguard Worker #define MTRESET 0 19*cda5da8dSAndroid Build Coastguard Worker #define MTFSF 1 20*cda5da8dSAndroid Build Coastguard Worker #define MTBSF 2 21*cda5da8dSAndroid Build Coastguard Worker #define MTFSR 3 22*cda5da8dSAndroid Build Coastguard Worker #define MTBSR 4 23*cda5da8dSAndroid Build Coastguard Worker #define MTWEOF 5 24*cda5da8dSAndroid Build Coastguard Worker #define MTREW 6 25*cda5da8dSAndroid Build Coastguard Worker #define MTOFFL 7 26*cda5da8dSAndroid Build Coastguard Worker #define MTNOP 8 27*cda5da8dSAndroid Build Coastguard Worker #define MTRETEN 9 28*cda5da8dSAndroid Build Coastguard Worker #define MTBSFM 10 29*cda5da8dSAndroid Build Coastguard Worker #define MTFSFM 11 30*cda5da8dSAndroid Build Coastguard Worker #define MTEOM 12 31*cda5da8dSAndroid Build Coastguard Worker #define MTERASE 13 32*cda5da8dSAndroid Build Coastguard Worker #define MTRAS1 14 33*cda5da8dSAndroid Build Coastguard Worker #define MTRAS2 15 34*cda5da8dSAndroid Build Coastguard Worker #define MTRAS3 16 35*cda5da8dSAndroid Build Coastguard Worker #define MTSETBLK 20 36*cda5da8dSAndroid Build Coastguard Worker #define MTSETDENSITY 21 37*cda5da8dSAndroid Build Coastguard Worker #define MTSEEK 22 38*cda5da8dSAndroid Build Coastguard Worker #define MTTELL 23 39*cda5da8dSAndroid Build Coastguard Worker #define MTSETDRVBUFFER 24 40*cda5da8dSAndroid Build Coastguard Worker #define MTFSS 25 41*cda5da8dSAndroid Build Coastguard Worker #define MTBSS 26 42*cda5da8dSAndroid Build Coastguard Worker #define MTWSM 27 43*cda5da8dSAndroid Build Coastguard Worker #define MTLOCK 28 44*cda5da8dSAndroid Build Coastguard Worker #define MTUNLOCK 29 45*cda5da8dSAndroid Build Coastguard Worker #define MTLOAD 30 46*cda5da8dSAndroid Build Coastguard Worker #define MTUNLOAD 31 47*cda5da8dSAndroid Build Coastguard Worker #define MTCOMPRESSION 32 48*cda5da8dSAndroid Build Coastguard Worker #define MTSETPART 33 49*cda5da8dSAndroid Build Coastguard Worker #define MTMKPART 34 50*cda5da8dSAndroid Build Coastguard Worker 51*cda5da8dSAndroid Build Coastguard Worker struct mtget { 52*cda5da8dSAndroid Build Coastguard Worker long mt_type; 53*cda5da8dSAndroid Build Coastguard Worker long mt_resid; 54*cda5da8dSAndroid Build Coastguard Worker long mt_dsreg; 55*cda5da8dSAndroid Build Coastguard Worker long mt_gstat; 56*cda5da8dSAndroid Build Coastguard Worker long mt_erreg; 57*cda5da8dSAndroid Build Coastguard Worker int mt_fileno; 58*cda5da8dSAndroid Build Coastguard Worker int mt_blkno; 59*cda5da8dSAndroid Build Coastguard Worker }; 60*cda5da8dSAndroid Build Coastguard Worker 61*cda5da8dSAndroid Build Coastguard Worker #define MT_ISUNKNOWN 0x01 62*cda5da8dSAndroid Build Coastguard Worker #define MT_ISQIC02 0x02 63*cda5da8dSAndroid Build Coastguard Worker #define MT_ISWT5150 0x03 64*cda5da8dSAndroid Build Coastguard Worker #define MT_ISARCHIVE_5945L2 0x04 65*cda5da8dSAndroid Build Coastguard Worker #define MT_ISCMSJ500 0x05 66*cda5da8dSAndroid Build Coastguard Worker #define MT_ISTDC3610 0x06 67*cda5da8dSAndroid Build Coastguard Worker #define MT_ISARCHIVE_VP60I 0x07 68*cda5da8dSAndroid Build Coastguard Worker #define MT_ISARCHIVE_2150L 0x08 69*cda5da8dSAndroid Build Coastguard Worker #define MT_ISARCHIVE_2060L 0x09 70*cda5da8dSAndroid Build Coastguard Worker #define MT_ISARCHIVESC499 0x0A 71*cda5da8dSAndroid Build Coastguard Worker #define MT_ISQIC02_ALL_FEATURES 0x0F 72*cda5da8dSAndroid Build Coastguard Worker #define MT_ISWT5099EEN24 0x11 73*cda5da8dSAndroid Build Coastguard Worker #define MT_ISTEAC_MT2ST 0x12 74*cda5da8dSAndroid Build Coastguard Worker #define MT_ISEVEREX_FT40A 0x32 75*cda5da8dSAndroid Build Coastguard Worker #define MT_ISDDS1 0x51 76*cda5da8dSAndroid Build Coastguard Worker #define MT_ISDDS2 0x52 77*cda5da8dSAndroid Build Coastguard Worker #define MT_ISSCSI1 0x71 78*cda5da8dSAndroid Build Coastguard Worker #define MT_ISSCSI2 0x72 79*cda5da8dSAndroid Build Coastguard Worker #define MT_ISFTAPE_UNKNOWN 0x800000 80*cda5da8dSAndroid Build Coastguard Worker #define MT_ISFTAPE_FLAG 0x800000 81*cda5da8dSAndroid Build Coastguard Worker 82*cda5da8dSAndroid Build Coastguard Worker struct mt_tape_info { 83*cda5da8dSAndroid Build Coastguard Worker long t_type; 84*cda5da8dSAndroid Build Coastguard Worker char *t_name; 85*cda5da8dSAndroid Build Coastguard Worker }; 86*cda5da8dSAndroid Build Coastguard Worker 87*cda5da8dSAndroid Build Coastguard Worker #define MT_TAPE_INFO \ 88*cda5da8dSAndroid Build Coastguard Worker { \ 89*cda5da8dSAndroid Build Coastguard Worker {MT_ISUNKNOWN, "Unknown type of tape device"}, \ 90*cda5da8dSAndroid Build Coastguard Worker {MT_ISQIC02, "Generic QIC-02 tape streamer"}, \ 91*cda5da8dSAndroid Build Coastguard Worker {MT_ISWT5150, "Wangtek 5150, QIC-150"}, \ 92*cda5da8dSAndroid Build Coastguard Worker {MT_ISARCHIVE_5945L2, "Archive 5945L-2"}, \ 93*cda5da8dSAndroid Build Coastguard Worker {MT_ISCMSJ500, "CMS Jumbo 500"}, \ 94*cda5da8dSAndroid Build Coastguard Worker {MT_ISTDC3610, "Tandberg TDC 3610, QIC-24"}, \ 95*cda5da8dSAndroid Build Coastguard Worker {MT_ISARCHIVE_VP60I, "Archive VP60i, QIC-02"}, \ 96*cda5da8dSAndroid Build Coastguard Worker {MT_ISARCHIVE_2150L, "Archive Viper 2150L"}, \ 97*cda5da8dSAndroid Build Coastguard Worker {MT_ISARCHIVE_2060L, "Archive Viper 2060L"}, \ 98*cda5da8dSAndroid Build Coastguard Worker {MT_ISARCHIVESC499, "Archive SC-499 QIC-36 controller"}, \ 99*cda5da8dSAndroid Build Coastguard Worker {MT_ISQIC02_ALL_FEATURES, "Generic QIC-02 tape, all features"}, \ 100*cda5da8dSAndroid Build Coastguard Worker {MT_ISWT5099EEN24, "Wangtek 5099-een24, 60MB"}, \ 101*cda5da8dSAndroid Build Coastguard Worker {MT_ISTEAC_MT2ST, "Teac MT-2ST 155mb data cassette drive"}, \ 102*cda5da8dSAndroid Build Coastguard Worker {MT_ISEVEREX_FT40A, "Everex FT40A, QIC-40"}, \ 103*cda5da8dSAndroid Build Coastguard Worker {MT_ISSCSI1, "Generic SCSI-1 tape"}, \ 104*cda5da8dSAndroid Build Coastguard Worker {MT_ISSCSI2, "Generic SCSI-2 tape"}, \ 105*cda5da8dSAndroid Build Coastguard Worker {0, 0} \ 106*cda5da8dSAndroid Build Coastguard Worker } 107*cda5da8dSAndroid Build Coastguard Worker 108*cda5da8dSAndroid Build Coastguard Worker struct mtpos { 109*cda5da8dSAndroid Build Coastguard Worker long mt_blkno; 110*cda5da8dSAndroid Build Coastguard Worker }; 111*cda5da8dSAndroid Build Coastguard Worker 112*cda5da8dSAndroid Build Coastguard Worker struct mtconfiginfo { 113*cda5da8dSAndroid Build Coastguard Worker long mt_type; 114*cda5da8dSAndroid Build Coastguard Worker long ifc_type; 115*cda5da8dSAndroid Build Coastguard Worker unsigned short irqnr; 116*cda5da8dSAndroid Build Coastguard Worker unsigned short dmanr; 117*cda5da8dSAndroid Build Coastguard Worker unsigned short port; 118*cda5da8dSAndroid Build Coastguard Worker unsigned long debug; 119*cda5da8dSAndroid Build Coastguard Worker unsigned have_dens:1; 120*cda5da8dSAndroid Build Coastguard Worker unsigned have_bsf:1; 121*cda5da8dSAndroid Build Coastguard Worker unsigned have_fsr:1; 122*cda5da8dSAndroid Build Coastguard Worker unsigned have_bsr:1; 123*cda5da8dSAndroid Build Coastguard Worker unsigned have_eod:1; 124*cda5da8dSAndroid Build Coastguard Worker unsigned have_seek:1; 125*cda5da8dSAndroid Build Coastguard Worker unsigned have_tell:1; 126*cda5da8dSAndroid Build Coastguard Worker unsigned have_ras1:1; 127*cda5da8dSAndroid Build Coastguard Worker unsigned have_ras2:1; 128*cda5da8dSAndroid Build Coastguard Worker unsigned have_ras3:1; 129*cda5da8dSAndroid Build Coastguard Worker unsigned have_qfa:1; 130*cda5da8dSAndroid Build Coastguard Worker unsigned pad1:5; 131*cda5da8dSAndroid Build Coastguard Worker char reserved[10]; 132*cda5da8dSAndroid Build Coastguard Worker }; 133*cda5da8dSAndroid Build Coastguard Worker 134*cda5da8dSAndroid Build Coastguard Worker #define MTIOCTOP _IOW('m', 1, struct mtop) 135*cda5da8dSAndroid Build Coastguard Worker #define MTIOCGET _IOR('m', 2, struct mtget) 136*cda5da8dSAndroid Build Coastguard Worker #define MTIOCPOS _IOR('m', 3, struct mtpos) 137*cda5da8dSAndroid Build Coastguard Worker 138*cda5da8dSAndroid Build Coastguard Worker #define MTIOCGETCONFIG _IOR('m', 4, struct mtconfiginfo) 139*cda5da8dSAndroid Build Coastguard Worker #define MTIOCSETCONFIG _IOW('m', 5, struct mtconfiginfo) 140*cda5da8dSAndroid Build Coastguard Worker 141*cda5da8dSAndroid Build Coastguard Worker #define GMT_EOF(x) ((x) & 0x80000000) 142*cda5da8dSAndroid Build Coastguard Worker #define GMT_BOT(x) ((x) & 0x40000000) 143*cda5da8dSAndroid Build Coastguard Worker #define GMT_EOT(x) ((x) & 0x20000000) 144*cda5da8dSAndroid Build Coastguard Worker #define GMT_SM(x) ((x) & 0x10000000) 145*cda5da8dSAndroid Build Coastguard Worker #define GMT_EOD(x) ((x) & 0x08000000) 146*cda5da8dSAndroid Build Coastguard Worker #define GMT_WR_PROT(x) ((x) & 0x04000000) 147*cda5da8dSAndroid Build Coastguard Worker #define GMT_ONLINE(x) ((x) & 0x01000000) 148*cda5da8dSAndroid Build Coastguard Worker #define GMT_D_6250(x) ((x) & 0x00800000) 149*cda5da8dSAndroid Build Coastguard Worker #define GMT_D_1600(x) ((x) & 0x00400000) 150*cda5da8dSAndroid Build Coastguard Worker #define GMT_D_800(x) ((x) & 0x00200000) 151*cda5da8dSAndroid Build Coastguard Worker #define GMT_DR_OPEN(x) ((x) & 0x00040000) 152*cda5da8dSAndroid Build Coastguard Worker #define GMT_IM_REP_EN(x) ((x) & 0x00010000) 153*cda5da8dSAndroid Build Coastguard Worker 154*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_BLKSIZE_SHIFT 0 155*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_BLKSIZE_MASK 0xffffff 156*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_DENSITY_SHIFT 24 157*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_DENSITY_MASK 0xff000000 158*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_SOFTERR_SHIFT 0 159*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_SOFTERR_MASK 0xffff 160*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_OPTIONS 0xf0000000 161*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_BOOLEANS 0x10000000 162*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_SETBOOLEANS 0x30000000 163*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_CLEARBOOLEANS 0x40000000 164*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_WRITE_THRESHOLD 0x20000000 165*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_DEF_BLKSIZE 0x50000000 166*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_DEF_OPTIONS 0x60000000 167*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_BUFFER_WRITES 0x1 168*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_ASYNC_WRITES 0x2 169*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_READ_AHEAD 0x4 170*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_DEBUGGING 0x8 171*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_TWO_FM 0x10 172*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_FAST_MTEOM 0x20 173*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_AUTO_LOCK 0x40 174*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_DEF_WRITES 0x80 175*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_CAN_BSR 0x100 176*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_NO_BLKLIMS 0x200 177*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_CAN_PARTITIONS 0x400 178*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_SCSI2LOGICAL 0x800 179*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_CLEAR_DEFAULT 0xfffff 180*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_DEF_DENSITY (MT_ST_DEF_OPTIONS | 0x100000) 181*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_DEF_COMPRESSION (MT_ST_DEF_OPTIONS | 0x200000) 182*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_DEF_DRVBUFFER (MT_ST_DEF_OPTIONS | 0x300000) 183*cda5da8dSAndroid Build Coastguard Worker #define MT_ST_HPLOADER_OFFSET 10000 184*cda5da8dSAndroid Build Coastguard Worker #ifndef DEFTAPE 185*cda5da8dSAndroid Build Coastguard Worker # define DEFTAPE "/dev/tape" 186*cda5da8dSAndroid Build Coastguard Worker #endif 187*cda5da8dSAndroid Build Coastguard Worker 188*cda5da8dSAndroid Build Coastguard Worker #endif 189