1 /* 2 * Copyright (c) 1982, 1986 Regents of the University of California. 3 * All rights reserved. The Berkeley software License Agreement 4 * specifies the terms and conditions for redistribution. 5 * 6 * @(#)qvioctl.h 1.5 Berkeley 12/16/90 7 * 8 * derived from: @(#)qvioctl.h 1.7 (ULTRIX) 6/11/85 9 */ 10 /* 11 * Ioctl definitions for the qvss. 12 */ 13 #ifdef KERNEL 14 #include "sys/ioctl.h" 15 #include "qvreg.h" 16 #include "qevent.h" 17 #else 18 #include <sys/ioctl.h> 19 #include <vax/uba/qvreg.h> 20 #include <vax/uba/qevent.h> 21 #endif 22 23 struct qv_kpcmd { 24 char nbytes; /* number of bytes in parameter */ 25 unsigned char cmd; /* command to be sent, peripheral bit will */ 26 /* be forced by driver */ 27 unsigned char par[2]; /* bytes of parameters to be sent */ 28 }; 29 /* 30 * qvss information block 31 */ 32 33 struct qv_info { 34 short mswitches; /* current value of mouse buttons */ 35 vsCursor tablet; /* current tablet position */ 36 short tswitches; /* current tablet buttons NI! */ 37 vsCursor cursor; /* current cursor position */ 38 short row; /* screen row */ 39 short col; /* screen col */ 40 short max_row; /* max character row */ 41 short max_col; /* max character col */ 42 short max_x; /* max x position */ 43 short max_y; /* max y position */ 44 short max_cur_x; /* max cursor y position */ 45 short max_cur_y; /* max cursor y position */ 46 char *bitmap; /* bit map position */ 47 short *scanmap; /* scanline map position */ 48 short *cursorbits; /* cursor bit position */ 49 struct qvdevice *qvaddr; /* virtual address of the csr */ 50 vsEvent *ibuff; /* pointer to event queue */ 51 int iqsize; /* may assume power of two */ 52 int ihead; /* atomic write */ 53 int itail; /* atomic read */ 54 vsCursor mouse; /* atomic read/write */ 55 vsBox mbox; /* atomic read/write */ 56 short mthreshold; /* mouse motion parameter */ 57 short mscale; /* mouse scale factor (if 58 negative, then do square). */ 59 }; 60 typedef struct qv_info vsIoAddr; 61 62 #define QIOCGINFO _IOR('q', 1, struct qv_info) /* get the info */ 63 #define QIOCSMSTATE _IOW('q', 2, vsCursor) /* set mouse pos */ 64 #define QIOCINIT _IO('q', 4) /* init screen */ 65 #define QIOCKPCMD _IOW('q', 5, struct qv_kpcmd) /* keybd. per. cmd */ 66 #define QIOCADDR _IOR('q', 6, struct qv_info *) /* get address */ 67 68