|
|
1.1 root 1: /*
2: * Copyright (c) 1982, 1986 The Regents of the University of California.
3: * All rights reserved.
4: *
5: * Redistribution and use in source and binary forms, with or without
6: * modification, are permitted provided that the following conditions
7: * are met:
8: * 1. Redistributions of source code must retain the above copyright
9: * notice, this list of conditions and the following disclaimer.
10: * 2. Redistributions in binary form must reproduce the above copyright
11: * notice, this list of conditions and the following disclaimer in the
12: * documentation and/or other materials provided with the distribution.
13: * 3. All advertising materials mentioning features or use of this software
14: * must display the following acknowledgement:
15: * This product includes software developed by the University of
16: * California, Berkeley and its contributors.
17: * 4. Neither the name of the University nor the names of its contributors
18: * may be used to endorse or promote products derived from this software
19: * without specific prior written permission.
20: *
21: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31: * SUCH DAMAGE.
32: *
33: * @(#)chio.h 7.6 (Berkeley) 2/5/91
34: *
35: * PATCHES MAGIC LEVEL PATCH THAT GOT US HERE
36: * -------------------- ----- ----------------------
37: * CURRENT PATCH LEVEL: 1 00098
38: * -------------------- ----- ----------------------
39: *
40: * 16 Feb 93 Julian Elischer ADDED for SCSI system
41: */
42:
43: /* This is a "convertet" mtio.h from 386BSD
44: Stefan Grefen [email protected]
45: */
46:
47: /*
48: * Structures and definitions for changer io control commands
49: */
50: #ifndef _CHIO_H_
51: #define _CHIO_H_
52:
53: #define CH_INVERT 0x10000
54: #define CH_ADDR_MASK 0xffff
55: struct chop {
56: short ch_op; /* operations defined below */
57: short result; /* The result */
58: union {
59: struct {
60: int chm; /* Transport element */
61: int from;
62: int to;
63: } move;
64: struct {
65: int chm; /* Transport element */
66: int to;
67: } position;
68: struct {
69: short chmo; /* Offset of first CHM */
70: short chms; /* No. of CHM */
71: short slots; /* No. of Storage Elements */
72: short sloto; /* Offset of first SE */
73: short imexs; /* No. of Import/Export Slots */
74: short imexo; /* Offset of first IM/EX */
75: short drives; /* No. of CTS */
76: short driveo; /* Offset of first CTS */
77: short rot; /* CHM can rotate */
78: } getparam;
79: struct {
80: int type;
81: #define CH_CHM 1
82: #define CH_STOR 2
83: #define CH_IMEX 3
84: #define CH_CTS 4
85: int from;
86: struct {
87: u_char elema_1;
88: u_char elema_0;
89: u_char full:1;
90: u_char rsvd:1;
91: u_char except:1;
92: u_char :5;
93: u_char rsvd2;
94: union {
95: struct {
96: u_char add_sense_code;
97: u_char add_sense_code_qualifier;
98: } specs;
99: short add_sense;
100: /* WARINING LSB only */
101: #define CH_CHOLDER 0x0290 /* Cartridge holder is missing */
102: #define CH_STATUSQ 0x0390 /* Status is questionable */
103: #define CH_CTS_CLOSED 0x0490 /* CTS door is closed */
104:
105: } ch_add_sense;
106: u_char rsvd3[3];
107: u_char :6;
108: u_char invert:1;
109: u_char svalid:1;
110: u_char source_1;
111: u_char source_0;
112: u_char rsvd4[4];
113: } elem_data;
114: } get_elem_stat;
115: } u;
116: };
117:
118: /* operations */
119: #define CHMOVE 1
120: #define CHPOSITION 2
121: #define CHGETPARAM 3
122: #define CHGETELEM 4
123:
124:
125: /* Changer IO control command */
126: #define CHIOOP _IOWR('c', 1, struct chop) /* do a mag tape op */
127: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.