1 1.9 chs /* $NetBSD: aedvar.h,v 1.9 2012/10/27 17:17:59 chs Exp $ */ 2 1.1 ender 3 1.1 ender /* 4 1.1 ender * Copyright (C) 1994 Bradley A. Grantham 5 1.1 ender * All rights reserved. 6 1.1 ender * 7 1.1 ender * Redistribution and use in source and binary forms, with or without 8 1.1 ender * modification, are permitted provided that the following conditions 9 1.1 ender * are met: 10 1.1 ender * 1. Redistributions of source code must retain the above copyright 11 1.1 ender * notice, this list of conditions and the following disclaimer. 12 1.1 ender * 2. Redistributions in binary form must reproduce the above copyright 13 1.1 ender * notice, this list of conditions and the following disclaimer in the 14 1.1 ender * documentation and/or other materials provided with the distribution. 15 1.1 ender * 16 1.1 ender * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 17 1.1 ender * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 18 1.1 ender * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 19 1.1 ender * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 20 1.1 ender * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 21 1.1 ender * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 22 1.1 ender * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 23 1.1 ender * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 1.1 ender * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 1.1 ender * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 1.1 ender */ 27 1.1 ender 28 1.4 thorpej #include <sys/callout.h> 29 1.1 ender #include <machine/adbsys.h> 30 1.1 ender 31 1.1 ender /* Event queue definitions */ 32 1.1 ender #ifndef AED_MAX_EVENTS 33 1.1 ender #define AED_MAX_EVENTS 200 /* Maximum events to be kept in queue */ 34 1.1 ender /* maybe should be higher for slower macs? */ 35 1.1 ender #endif /* AED_MAX_EVENTS */ 36 1.1 ender 37 1.1 ender struct aed_softc { 38 1.4 thorpej struct callout sc_repeat_ch; 39 1.1 ender 40 1.1 ender /* ADB info */ 41 1.2 ender int origaddr; /* ADB device type (ADBADDR_AED) */ 42 1.2 ender int adbaddr; /* current ADB address */ 43 1.2 ender int handler_id; /* type of device */ 44 1.1 ender 45 1.1 ender /* ADB event queue */ 46 1.1 ender adb_event_t sc_evq[AED_MAX_EVENTS]; /* the queue */ 47 1.1 ender int sc_evq_tail; /* event queue tail pointer */ 48 1.1 ender int sc_evq_len; /* event queue length */ 49 1.1 ender 50 1.1 ender /* Keyboard repeat state */ 51 1.1 ender int sc_rptdelay; /* ticks before auto-repeat */ 52 1.1 ender int sc_rptinterval; /* ticks between auto-repeat */ 53 1.1 ender int sc_repeating; /* key that is auto-repeating */ 54 1.1 ender adb_event_t sc_rptevent; /* event to auto-repeat */ 55 1.1 ender 56 1.1 ender int sc_buttons; /* mouse button state */ 57 1.1 ender 58 1.1 ender struct selinfo sc_selinfo; /* select() info */ 59 1.1 ender struct proc * sc_ioproc; /* process to wakeup */ 60 1.1 ender 61 1.1 ender int sc_open; /* Are we queuing events? */ 62 1.1 ender int sc_options; /* config options */ 63 1.1 ender }; 64 1.1 ender 65 1.1 ender /* Options */ 66 1.1 ender #define AED_MSEMUL 0x1 /* emulate mouse buttons */ 67 1.1 ender 68 1.6 chs int aed_input(adb_event_t *); 69