FreeBSD/Linux Kernel Cross Reference
sys/i386/isa/ftreg.h
1 /*
2 * Copyright (c) 1993, 1994 Steve Gerakines
3 *
4 * This is freely redistributable software. You may do anything you
5 * wish with it, so long as the above notice stays intact.
6 *
7 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS
8 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
9 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
10 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT,
11 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
12 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
13 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
14 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
15 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
16 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
17 * POSSIBILITY OF SUCH DAMAGE.
18 *
19 * ftreg.h - QIC-40/80 floppy tape driver header
20 * 06/03/94 v0.9
21 * Changed seek load point to QC_SEEKLP, added reqseg to SegReq structure.
22 *
23 * 10/30/93 v0.3
24 * More things will end up here. QC_VENDORID and QC_VERSION now used.
25 *
26 * 08/07/93 v0.2 release
27 * Things that should've been here in the first place were moved.
28 * Tape geometry and segment request types were added.
29 *
30 * 06/03/93 v0.1 Alpha release
31 * Initial revision. Many more things should be moved here.
32 */
33
34 /* QIC-117 command set. */
35 #define QC_RESET 1 /* reset */
36 #define QC_NEXTBIT 2 /* report next bit */
37 #define QC_PAUSE 3 /* pause */
38 #define QC_STPAUSE 4 /* step pause */
39 #define QC_TIMEOUT 5 /* alt timeout */
40 #define QC_STATUS 6 /* report status */
41 #define QC_ERRCODE 7 /* report error code */
42 #define QC_CONFIG 8 /* report config */
43 #define QC_VERSION 9 /* report version */
44 #define QC_FORWARD 10 /* logical forward */
45 #define QC_SEEKSTART 11 /* seek to track start */
46 #define QC_SEEKEND 12 /* seek to track end */
47 #define QC_SEEKTRACK 13 /* seek head to track */
48 #define QC_SEEKLP 14 /* seek load point */
49 #define QC_FORMAT 15 /* format mode */
50 #define QC_WRITEREF 16 /* write reference */
51 #define QC_VERIFY 17 /* verify mode */
52 #define QC_STOP 18 /* stop tape */
53 #define QC_STEPUP 21 /* step head up */
54 #define QC_STEPDOWN 22 /* step head down */
55 #define QC_SEEKREV 25 /* seek reverse */
56 #define QC_SEEKFWD 26 /* seek forward */
57 #define QC_RATE 27 /* select data rate */
58 #define QC_DIAG1 28 /* diagnostic mode 1 */
59 #define QC_DIAG2 29 /* diagnostic mode 2 */
60 #define QC_PRIMARY 30 /* primary mode */
61 #define QC_VENDORID 32 /* vendor id */
62 #define QC_TSTATUS 33 /* report tape status */
63 #define QC_EXTREV 34 /* extended skip reverse */
64 #define QC_EXTFWD 35 /* extended skip forward */
65
66 /* Colorado enable/disable. */
67 #define QC_COL_ENABLE1 46 /* enable */
68 #define QC_COL_ENABLE2 2 /* unit+2 */
69 #define QC_COL_DISABLE 47 /* disable */
70
71 /* Mountain enable/disable. */
72 #define QC_MTN_ENABLE1 23 /* enable 1 */
73 #define QC_MTN_ENABLE2 20 /* enable 2 */
74 #define QC_MTN_DISABLE 24 /* disable */
75
76 /* Segment I/O request. */
77 typedef struct segq {
78 unsigned char buff[QCV_SEGSIZE];/* Segment data; first for alignment */
79 int reqtype; /* Request type */
80 long reqcrc; /* CRC Errors found */
81 long reqbad; /* Bad sector map */
82 long reqblk; /* Block request starts at */
83 long reqseg; /* Segment request is at */
84 int reqcan; /* Cancel read-ahead */
85 struct segq *next; /* Next request */
86 } SegReq;
87
88 typedef int ftu_t;
89 typedef int ftsu_t;
90 typedef struct ft_data *ft_p;
Cache object: a0f10f988691d5a74115da15eaa2d7a3
|