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