xref: /csrg-svn/sys/hp300/dev/acioctl.h (revision 53931)
1*53931Shibler /*
2*53931Shibler  * Copyright (c) 1991 University of Utah.
3*53931Shibler  * Copyright (c) 1990 The Regents of the University of California.
4*53931Shibler  * All rights reserved.
5*53931Shibler  *
6*53931Shibler  * This code is derived from software contributed to Berkeley by
7*53931Shibler  * the Systems Programming Group of the University of Utah Computer
8*53931Shibler  * Science Department.
9*53931Shibler  *
10*53931Shibler  * %sccs.include.redist.c%
11*53931Shibler  *
12*53931Shibler  * from: Utah $Hdr: acioctl.h 1.1 91/06/19$
13*53931Shibler  *
14*53931Shibler  *	@(#)acioctl.h	7.1 (Berkeley) 06/05/92
15*53931Shibler  */
16*53931Shibler 
17*53931Shibler struct acinfo {
18*53931Shibler 	short	fmte;		/* 1st medium transport elt (picker) */
19*53931Shibler 	short	nmte;		/* # medium transport elts */
20*53931Shibler 	short	fse;		/* 1st storage elt (slot) */
21*53931Shibler 	short	nse;		/* # storage elts */
22*53931Shibler 	short	fiee;		/* 1st import/export elt (mailslot) */
23*53931Shibler 	short	niee;		/* # import/export elts */
24*53931Shibler 	short	fdte;		/* 1st data transport elt (drive) */
25*53931Shibler 	short	ndte;		/* # data transport elts */
26*53931Shibler };
27*53931Shibler 
28*53931Shibler struct aceltstat {
29*53931Shibler 	short	eaddr;		/* element adress */
30*53931Shibler 	char	type;		/* type of element */
31*53931Shibler 	char	flags;		/* flags */
32*53931Shibler };
33*53931Shibler 
34*53931Shibler /* types */
35*53931Shibler #define AC_MTE		0x01	/* picker */
36*53931Shibler #define AC_SE		0x02	/* slot */
37*53931Shibler #define AC_IEE		0x03	/* mailslot */
38*53931Shibler #define AC_DTE		0x04	/* drive */
39*53931Shibler /* flags */
40*53931Shibler #define AC_FULL		0x01	/* media present */
41*53931Shibler #define	AC_ERROR	0x04	/* error accessing element */
42*53931Shibler #define AC_ACCESS	0x08	/* element accessible */
43*53931Shibler #define AC_INVERT	0x80	/* media inverted prior to insertion */
44*53931Shibler 
45*53931Shibler struct acmove {
46*53931Shibler 	short	srcelem;
47*53931Shibler 	short	dstelem;
48*53931Shibler 	short	flags;
49*53931Shibler };
50*53931Shibler 
51*53931Shibler struct acbuffer {
52*53931Shibler 	char	*bufptr;
53*53931Shibler 	int	buflen;
54*53931Shibler };
55*53931Shibler 
56*53931Shibler #define ACIOCINIT	_IO('A', 0x1)			/* init elt status */
57*53931Shibler #define ACIOCGINFO	_IOR('A', 0x2, struct acinfo)	/* mode sense */
58*53931Shibler #define ACIOCGSTAT	_IOW('A', 0x3, struct acbuffer)	/* read elem status */
59*53931Shibler #define ACIOCMOVE	_IOW('A', 0x4, struct acmove)	/* move elem */
60*53931Shibler #define ACIOCRAWES	_IOW('A', 0x5, struct acbuffer)	/* raw element stat */
61