BSD 4_3_Net_2 release
[unix-history] / usr / src / sys / vax / uba / qvioctl.h
/*-
* Copyright (c) 1982, 1986 The Regents of the University of California.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)qvioctl.h 7.1 (Berkeley) 5/9/91
*/
/*
* derived from: @(#)qvioctl.h 1.7 (ULTRIX) 6/11/85
*/
/*
* Ioctl definitions for the qvss.
*/
#ifdef KERNEL
#include "sys/ioctl.h"
#include "qvreg.h"
#include "qevent.h"
#else
#include <sys/ioctl.h>
#include <vax/uba/qvreg.h>
#include <vax/uba/qevent.h>
#endif
struct qv_kpcmd {
char nbytes; /* number of bytes in parameter */
unsigned char cmd; /* command to be sent, peripheral bit will */
/* be forced by driver */
unsigned char par[2]; /* bytes of parameters to be sent */
};
/*
* qvss information block
*/
struct qv_info {
short mswitches; /* current value of mouse buttons */
vsCursor tablet; /* current tablet position */
short tswitches; /* current tablet buttons NI! */
vsCursor cursor; /* current cursor position */
short row; /* screen row */
short col; /* screen col */
short max_row; /* max character row */
short max_col; /* max character col */
short max_x; /* max x position */
short max_y; /* max y position */
short max_cur_x; /* max cursor y position */
short max_cur_y; /* max cursor y position */
char *bitmap; /* bit map position */
short *scanmap; /* scanline map position */
short *cursorbits; /* cursor bit position */
struct qvdevice *qvaddr; /* virtual address of the csr */
vsEvent *ibuff; /* pointer to event queue */
int iqsize; /* may assume power of two */
int ihead; /* atomic write */
int itail; /* atomic read */
vsCursor mouse; /* atomic read/write */
vsBox mbox; /* atomic read/write */
short mthreshold; /* mouse motion parameter */
short mscale; /* mouse scale factor (if
negative, then do square). */
};
typedef struct qv_info vsIoAddr;
#define QIOCGINFO _IOR('q', 1, struct qv_info) /* get the info */
#define QIOCSMSTATE _IOW('q', 2, vsCursor) /* set mouse pos */
#define QIOCINIT _IO('q', 4) /* init screen */
#define QIOCKPCMD _IOW('q', 5, struct qv_kpcmd) /* keybd. per. cmd */
#define QIOCADDR _IOR('q', 6, struct qv_info *) /* get address */