146286Smckusick /* 246286Smckusick * Copyright (c) 1990 University of Utah. 3*63151Sbostic * Copyright (c) 1990, 1993 4*63151Sbostic * The Regents of the University of California. All rights reserved. 546286Smckusick * 646286Smckusick * This code is derived from software contributed to Berkeley by 746286Smckusick * the Systems Programming Group of the University of Utah Computer 846286Smckusick * Science Department. 946286Smckusick * 1046286Smckusick * %sccs.include.redist.c% 1146286Smckusick * 12*63151Sbostic * @(#)stvar.h 8.1 (Berkeley) 06/10/93 1346286Smckusick */ 1446286Smckusick 1546286Smckusick /* 1646286Smckusick * stvar.h scsi tape driver 1746286Smckusick */ 1846286Smckusick 1946286Smckusick struct exb_xsense { 2046286Smckusick u_char reserved8; 2146286Smckusick u_char reserved9; 2246286Smckusick u_char reserved10; 2346286Smckusick u_char reserved11; 2446286Smckusick u_char addsens; 2546286Smckusick u_char addsensq; 2646286Smckusick u_char reserved14; 2746286Smckusick u_char reserved15; 2846286Smckusick u_char rwerrcnt2; 2946286Smckusick u_char rwerrcnt1; 3046286Smckusick u_char rwerrcnt0; 3146286Smckusick u_char pf: 1, 3246286Smckusick bpe: 1, 3346286Smckusick fpe: 1, 3446286Smckusick me: 1, 3546286Smckusick eco: 1, 3646286Smckusick tme: 1, 3746286Smckusick tnp: 1, 3846286Smckusick bot: 1; 3946286Smckusick u_char xfr: 1, 4046286Smckusick tmd: 1, 4146286Smckusick wp: 1, 4246286Smckusick fmke: 1, 4346286Smckusick ure: 1, 4446286Smckusick we1: 1, 4546286Smckusick sse: 1, 4646286Smckusick fe: 1; 4746286Smckusick u_char rsvd: 6, 4846286Smckusick wseb: 1, 4946286Smckusick wseo: 1; 5046286Smckusick u_char reserved22; 5146286Smckusick u_char tplft2; 5246286Smckusick u_char tplft1; 5346286Smckusick u_char tplft0; 5446286Smckusick }; 5546286Smckusick 5646286Smckusick /* xsense sense key */ 5746286Smckusick #define XSK_NOSENCE 0x0 5846286Smckusick #define XSK_NOTUSED1 0x1 5946286Smckusick #define XSK_NOTRDY 0x2 6046286Smckusick #define XSK_MEDERR 0x3 6146286Smckusick #define XSK_HRDWERR 0x4 6246286Smckusick #define XSK_ILLREQ 0x5 6346286Smckusick #define XSK_UNTATTEN 0x6 6446286Smckusick #define XSK_DATAPROT 0x7 6546286Smckusick #define XSK_BLNKCHK 0x8 6646286Smckusick #define XSK_VENDOR 0x9 6746286Smckusick #define XSK_CPYABORT 0xa 6846286Smckusick #define XSK_ABORTCMD 0xb 6946286Smckusick #define XSK_NOTUSEDC 0xc 7046286Smckusick #define XSK_VOLOVER 0xd 7146286Smckusick #define XSK_NOTUSEDE 0xe 7246286Smckusick #define XSK_REVERVED 0xf 7346286Smckusick 7446286Smckusick struct exb_inquiry { 7546286Smckusick char venderunique[16]; 7646286Smckusick }; 7746286Smckusick 7846286Smckusick struct st_mode { 7946286Smckusick u_char sdl; 8046286Smckusick u_char medtype; 8146286Smckusick u_char wp: 1, /* write protect */ 8246286Smckusick bfmd: 3, /* buffered write mode */ 8346286Smckusick speed: 4; 8446286Smckusick u_char bdl; 8546286Smckusick u_char dencod; 8646286Smckusick u_char numblk2; /* number of blocks */ 8746286Smckusick u_char numblk1; 8846286Smckusick u_char numblk0; 8946286Smckusick u_char rsvd1; 9046286Smckusick u_char blklen2; /* block length */ 9146286Smckusick u_char blklen1; 9246286Smckusick u_char blklen0; 9346286Smckusick }; 9446286Smckusick 9546286Smckusick struct st_mode_exvup { 9646286Smckusick /* vender unique */ 9746286Smckusick u_char ct: 1, /* international cartridge */ 9846286Smckusick rs1: 1, 9946286Smckusick nd: 1, /* no disconnect, date transfer */ 10046286Smckusick rs2: 1, 10146286Smckusick nbe: 1, /* no busy enable */ 10246286Smckusick ebd: 1, /* even byte disconnect */ 10346286Smckusick pe: 1, /* parity enable */ 10446286Smckusick nal: 1; /* no auto load */ 10546286Smckusick u_char rsvd: 7, 10646286Smckusick p5: 1; 10746286Smckusick u_char motionthres; 10846286Smckusick u_char reconthres; 10946286Smckusick u_char gapthres; 11046286Smckusick }; 11146286Smckusick 11246286Smckusick struct mode_select_data { 11346286Smckusick u_char rsvd1; 11446286Smckusick u_char rsvd2; 11546286Smckusick u_char rsvd3: 1, 11646286Smckusick buff: 3, 11746286Smckusick speed: 4; 11846286Smckusick u_char blkdeslen; 11946286Smckusick u_char density; 12046286Smckusick u_char blks2; 12146286Smckusick u_char blks1; 12246286Smckusick u_char blks0; 12346286Smckusick u_char rsvd4; 12446286Smckusick u_char blklen2; 12546286Smckusick u_char blklen1; 12646286Smckusick u_char blklen0; 12746286Smckusick u_char vupb; 12846286Smckusick u_char rsvd5: 7, 12946286Smckusick p5: 1; 13046286Smckusick u_char motionthres; 13146286Smckusick u_char reconthres; 13246286Smckusick u_char gapthres; 13346286Smckusick }; 13446286Smckusick 13546286Smckusick struct mode_sense { 13646286Smckusick struct st_mode md; 13746286Smckusick struct st_mode_exvup ex; 13846286Smckusick }; 13946286Smckusick 14046286Smckusick #define EXDS_BITS \ 14146286Smckusick "\20\20\ 14246286Smckusick \7MOVED\6LEOT\5CMD\4WRTTN\3WMODE\2OPEN\1ALIV" 14346286Smckusick 14446286Smckusick #define EXER_BITS \ 14546286Smckusick "\20\20VAL\17FMK\16EOM\15ILI\14KEY3\13KEY2\12KEY1\11KEY0\ 14646286Smckusick \10RETRY7\7RETRY6\6RETRY5\5RETRY4\4RETRY3\3RETRY2\2RETRY1\1RETRY0" 14746286Smckusick 148