1 /* @(#)vsio.h 7.2 (MIT) 12/18/87 */ 2 /**************************************************************************** 3 * * 4 * Copyright (c) 1983, 1984 by * 5 * DIGITAL EQUIPMENT CORPORATION, Maynard, Massachusetts. * 6 * All rights reserved. * 7 * * 8 * This software is furnished on an as-is basis and may be used and copied * 9 * only with inclusion of the above copyright notice. This software or any * 10 * other copies thereof may be provided or otherwise made available to * 11 * others only for non-commercial purposes. No title to or ownership of * 12 * the software is hereby transferred. * 13 * * 14 * The information in this software is subject to change without notice * 15 * and should not be construed as a commitment by DIGITAL EQUIPMENT * 16 * CORPORATION. * 17 * * 18 * DIGITAL assumes no responsibility for the use or reliability of its * 19 * software on equipment which is not supplied by DIGITAL. * 20 * * 21 * * 22 ****************************************************************************/ 23 /* 24 * vsio.h - VS100 I/O command definitions 25 * 26 * Author: Christopher A. Kent 27 * Digital Equipment Corporation 28 * Western Research Lab 29 * Date: Tue Jun 21 1983 30 */ 31 32 /* 33 * Possible ioctl calls 34 */ 35 36 #define VSIOINIT _IO('V', 0) /* init the device */ 37 #define VSIOSTART _IOW('V', 1, int) /* start microcode */ 38 #define VSIOABORT _IO('V', 2) /* abort a command chain */ 39 #define VSIOPWRUP _IO('V', 3) /* power-up reset */ 40 #define VSIOGETVER _IOR('V', 4, int) /* get rom version */ 41 #define VSIOSYNC _IO('V', 6) /* synch with device */ 42 #define VSIOBBACTL _IOW('V', 8, int) /* control the BBA */ 43 #define VSIOFIBCTL _IOW('V', 9, int) /* lamp on/off */ 44 #define VSIOFIBRETRY _IOW('V',10, int) /* fiber retries */ 45 #define VSIOGETSTATS _IOR('V',11, vsStats) /* get statistics */ 46 #define VSIOGETIOA _IOR('V',13, vsIoAddrAddr)/* get ioreg address */ 47 #define VSIOUSERWAIT _IO('V', 15) /* wait for user I/O completion */ 48 #define VSIOWAITGO _IOW('V', 16, caddr_t) /* wait then go */ 49 50 51 #define VSIO_OFF 0 /* option off */ 52 #define VSIO_ON 1 /* option on */ 53 54 #define VS_FIB_FINITE 1 /* finite retries */ 55 #define VS_FIB_INFINITE 2 /* infinite retries */ 56 57 /* 58 * Event queue entries 59 */ 60 61 typedef struct _vs_event{ 62 u_short vse_x; /* x position */ 63 u_short vse_y; /* y position */ 64 u_short vse_time; /* 10 millisecond units (button only) */ 65 char vse_type; /* button or motion? */ 66 u_char vse_key; /* the key (button only) */ 67 char vse_direction; /* which direction (button only) */ 68 char vse_device; /* which device (button only) */ 69 }vsEvent; 70 71 #define VSE_BUTTON 0 /* button moved */ 72 #define VSE_MMOTION 1 /* mouse moved */ 73 #define VSE_TMOTION 2 /* tablet moved */ 74 75 #define VSE_KBTUP 0 /* up */ 76 #define VSE_KBTDOWN 1 /* down */ 77 78 #define VSE_MOUSE 1 /* mouse */ 79 #define VSE_DKB 2 /* main keyboard */ 80 #define VSE_TABLET 3 /* graphics tablet */ 81 #define VSE_AUX 4 /* auxiliary */ 82 #define VSE_CONSOLE 5 /* console */ 83 84 typedef struct _vsStats{ 85 int errors; /* count errors */ 86 int unsolIntr; /* count unsolicited interrupts */ 87 int overruns; /* event queue overruns */ 88 int flashes; /* flashes on fiber link */ 89 int ignites; /* times turned on */ 90 int douses; /* times turned off */ 91 int linkErrors; /* link errors */ 92 }vsStats; 93 94 typedef struct _vs_cursor{ 95 short x; 96 short y; 97 }vsCursor; 98 99 typedef struct _vs_box { 100 short bottom; 101 short right; 102 short left; 103 short top; 104 }vsBox; 105 106 typedef struct _vsIoAddr { 107 short *ioreg; 108 short status; 109 caddr_t obuff; 110 int obufflen; 111 int reloc; 112 vsEvent *ibuff; 113 int iqsize; /* may assume power of 2 */ 114 int ihead; /* atomic write */ 115 int itail; /* atomic read */ 116 vsCursor mouse; /* atomic read/write */ 117 vsBox mbox; /* atomic read/write */ 118 } vsIoAddr; 119 typedef vsIoAddr *vsIoAddrAddr; 120