1*46286Smckusick /* 2*46286Smckusick * Copyright (c) 1990 University of Utah. 3*46286Smckusick * Copyright (c) 1990 The Regents of the University of California. 4*46286Smckusick * All rights reserved. 5*46286Smckusick * 6*46286Smckusick * This code is derived from software contributed to Berkeley by 7*46286Smckusick * the Systems Programming Group of the University of Utah Computer 8*46286Smckusick * Science Department. 9*46286Smckusick * 10*46286Smckusick * %sccs.include.redist.c% 11*46286Smckusick * 12*46286Smckusick * @(#)stvar.h 7.1 (Berkeley) 02/05/91 13*46286Smckusick */ 14*46286Smckusick 15*46286Smckusick /* 16*46286Smckusick * stvar.h scsi tape driver 17*46286Smckusick */ 18*46286Smckusick 19*46286Smckusick struct exb_xsense { 20*46286Smckusick u_char reserved8; 21*46286Smckusick u_char reserved9; 22*46286Smckusick u_char reserved10; 23*46286Smckusick u_char reserved11; 24*46286Smckusick u_char addsens; 25*46286Smckusick u_char addsensq; 26*46286Smckusick u_char reserved14; 27*46286Smckusick u_char reserved15; 28*46286Smckusick u_char rwerrcnt2; 29*46286Smckusick u_char rwerrcnt1; 30*46286Smckusick u_char rwerrcnt0; 31*46286Smckusick u_char pf: 1, 32*46286Smckusick bpe: 1, 33*46286Smckusick fpe: 1, 34*46286Smckusick me: 1, 35*46286Smckusick eco: 1, 36*46286Smckusick tme: 1, 37*46286Smckusick tnp: 1, 38*46286Smckusick bot: 1; 39*46286Smckusick u_char xfr: 1, 40*46286Smckusick tmd: 1, 41*46286Smckusick wp: 1, 42*46286Smckusick fmke: 1, 43*46286Smckusick ure: 1, 44*46286Smckusick we1: 1, 45*46286Smckusick sse: 1, 46*46286Smckusick fe: 1; 47*46286Smckusick u_char rsvd: 6, 48*46286Smckusick wseb: 1, 49*46286Smckusick wseo: 1; 50*46286Smckusick u_char reserved22; 51*46286Smckusick u_char tplft2; 52*46286Smckusick u_char tplft1; 53*46286Smckusick u_char tplft0; 54*46286Smckusick }; 55*46286Smckusick 56*46286Smckusick /* xsense sense key */ 57*46286Smckusick #define XSK_NOSENCE 0x0 58*46286Smckusick #define XSK_NOTUSED1 0x1 59*46286Smckusick #define XSK_NOTRDY 0x2 60*46286Smckusick #define XSK_MEDERR 0x3 61*46286Smckusick #define XSK_HRDWERR 0x4 62*46286Smckusick #define XSK_ILLREQ 0x5 63*46286Smckusick #define XSK_UNTATTEN 0x6 64*46286Smckusick #define XSK_DATAPROT 0x7 65*46286Smckusick #define XSK_BLNKCHK 0x8 66*46286Smckusick #define XSK_VENDOR 0x9 67*46286Smckusick #define XSK_CPYABORT 0xa 68*46286Smckusick #define XSK_ABORTCMD 0xb 69*46286Smckusick #define XSK_NOTUSEDC 0xc 70*46286Smckusick #define XSK_VOLOVER 0xd 71*46286Smckusick #define XSK_NOTUSEDE 0xe 72*46286Smckusick #define XSK_REVERVED 0xf 73*46286Smckusick 74*46286Smckusick struct exb_inquiry { 75*46286Smckusick char venderunique[16]; 76*46286Smckusick }; 77*46286Smckusick 78*46286Smckusick struct st_mode { 79*46286Smckusick u_char sdl; 80*46286Smckusick u_char medtype; 81*46286Smckusick u_char wp: 1, /* write protect */ 82*46286Smckusick bfmd: 3, /* buffered write mode */ 83*46286Smckusick speed: 4; 84*46286Smckusick u_char bdl; 85*46286Smckusick u_char dencod; 86*46286Smckusick u_char numblk2; /* number of blocks */ 87*46286Smckusick u_char numblk1; 88*46286Smckusick u_char numblk0; 89*46286Smckusick u_char rsvd1; 90*46286Smckusick u_char blklen2; /* block length */ 91*46286Smckusick u_char blklen1; 92*46286Smckusick u_char blklen0; 93*46286Smckusick }; 94*46286Smckusick 95*46286Smckusick struct st_mode_exvup { 96*46286Smckusick /* vender unique */ 97*46286Smckusick u_char ct: 1, /* international cartridge */ 98*46286Smckusick rs1: 1, 99*46286Smckusick nd: 1, /* no disconnect, date transfer */ 100*46286Smckusick rs2: 1, 101*46286Smckusick nbe: 1, /* no busy enable */ 102*46286Smckusick ebd: 1, /* even byte disconnect */ 103*46286Smckusick pe: 1, /* parity enable */ 104*46286Smckusick nal: 1; /* no auto load */ 105*46286Smckusick u_char rsvd: 7, 106*46286Smckusick p5: 1; 107*46286Smckusick u_char motionthres; 108*46286Smckusick u_char reconthres; 109*46286Smckusick u_char gapthres; 110*46286Smckusick }; 111*46286Smckusick 112*46286Smckusick struct mode_select_data { 113*46286Smckusick u_char rsvd1; 114*46286Smckusick u_char rsvd2; 115*46286Smckusick u_char rsvd3: 1, 116*46286Smckusick buff: 3, 117*46286Smckusick speed: 4; 118*46286Smckusick u_char blkdeslen; 119*46286Smckusick u_char density; 120*46286Smckusick u_char blks2; 121*46286Smckusick u_char blks1; 122*46286Smckusick u_char blks0; 123*46286Smckusick u_char rsvd4; 124*46286Smckusick u_char blklen2; 125*46286Smckusick u_char blklen1; 126*46286Smckusick u_char blklen0; 127*46286Smckusick u_char vupb; 128*46286Smckusick u_char rsvd5: 7, 129*46286Smckusick p5: 1; 130*46286Smckusick u_char motionthres; 131*46286Smckusick u_char reconthres; 132*46286Smckusick u_char gapthres; 133*46286Smckusick }; 134*46286Smckusick 135*46286Smckusick struct mode_sense { 136*46286Smckusick struct st_mode md; 137*46286Smckusick struct st_mode_exvup ex; 138*46286Smckusick }; 139*46286Smckusick 140*46286Smckusick #define EXDS_BITS \ 141*46286Smckusick "\20\20\ 142*46286Smckusick \7MOVED\6LEOT\5CMD\4WRTTN\3WMODE\2OPEN\1ALIV" 143*46286Smckusick 144*46286Smckusick #define EXER_BITS \ 145*46286Smckusick "\20\20VAL\17FMK\16EOM\15ILI\14KEY3\13KEY2\12KEY1\11KEY0\ 146*46286Smckusick \10RETRY7\7RETRY6\6RETRY5\5RETRY4\4RETRY3\3RETRY2\2RETRY1\1RETRY0" 147*46286Smckusick 148