1877d8117Shibler /* 2877d8117Shibler * Copyright (c) 1991 University of Utah. 3*9639f1d4Sbostic * Copyright (c) 1990, 1993 4*9639f1d4Sbostic * The Regents of the University of California. All rights reserved. 5877d8117Shibler * 6877d8117Shibler * This code is derived from software contributed to Berkeley by 7877d8117Shibler * the Systems Programming Group of the University of Utah Computer 8877d8117Shibler * Science Department. 9877d8117Shibler * 10877d8117Shibler * %sccs.include.redist.c% 11877d8117Shibler * 12877d8117Shibler * from: Utah $Hdr: acioctl.h 1.1 91/06/19$ 13877d8117Shibler * 14*9639f1d4Sbostic * @(#)acioctl.h 8.1 (Berkeley) 06/10/93 15877d8117Shibler */ 16877d8117Shibler 17877d8117Shibler struct acinfo { 18877d8117Shibler short fmte; /* 1st medium transport elt (picker) */ 19877d8117Shibler short nmte; /* # medium transport elts */ 20877d8117Shibler short fse; /* 1st storage elt (slot) */ 21877d8117Shibler short nse; /* # storage elts */ 22877d8117Shibler short fiee; /* 1st import/export elt (mailslot) */ 23877d8117Shibler short niee; /* # import/export elts */ 24877d8117Shibler short fdte; /* 1st data transport elt (drive) */ 25877d8117Shibler short ndte; /* # data transport elts */ 26877d8117Shibler }; 27877d8117Shibler 28877d8117Shibler struct aceltstat { 29877d8117Shibler short eaddr; /* element adress */ 30877d8117Shibler char type; /* type of element */ 31877d8117Shibler char flags; /* flags */ 32877d8117Shibler }; 33877d8117Shibler 34877d8117Shibler /* types */ 35877d8117Shibler #define AC_MTE 0x01 /* picker */ 36877d8117Shibler #define AC_SE 0x02 /* slot */ 37877d8117Shibler #define AC_IEE 0x03 /* mailslot */ 38877d8117Shibler #define AC_DTE 0x04 /* drive */ 39877d8117Shibler /* flags */ 40877d8117Shibler #define AC_FULL 0x01 /* media present */ 41877d8117Shibler #define AC_ERROR 0x04 /* error accessing element */ 42877d8117Shibler #define AC_ACCESS 0x08 /* element accessible */ 43877d8117Shibler #define AC_INVERT 0x80 /* media inverted prior to insertion */ 44877d8117Shibler 45877d8117Shibler struct acmove { 46877d8117Shibler short srcelem; 47877d8117Shibler short dstelem; 48877d8117Shibler short flags; 49877d8117Shibler }; 50877d8117Shibler 51877d8117Shibler struct acbuffer { 52877d8117Shibler char *bufptr; 53877d8117Shibler int buflen; 54877d8117Shibler }; 55877d8117Shibler 56877d8117Shibler #define ACIOCINIT _IO('A', 0x1) /* init elt status */ 57877d8117Shibler #define ACIOCGINFO _IOR('A', 0x2, struct acinfo) /* mode sense */ 58877d8117Shibler #define ACIOCGSTAT _IOW('A', 0x3, struct acbuffer) /* read elem status */ 59877d8117Shibler #define ACIOCMOVE _IOW('A', 0x4, struct acmove) /* move elem */ 60877d8117Shibler #define ACIOCRAWES _IOW('A', 0x5, struct acbuffer) /* raw element stat */ 61