1*cbab9cadSchs /* $NetBSD: aedvar.h,v 1.9 2012/10/27 17:17:59 chs Exp $ */ 22055d846Sender 32055d846Sender /* 42055d846Sender * Copyright (C) 1994 Bradley A. Grantham 52055d846Sender * All rights reserved. 62055d846Sender * 72055d846Sender * Redistribution and use in source and binary forms, with or without 82055d846Sender * modification, are permitted provided that the following conditions 92055d846Sender * are met: 102055d846Sender * 1. Redistributions of source code must retain the above copyright 112055d846Sender * notice, this list of conditions and the following disclaimer. 122055d846Sender * 2. Redistributions in binary form must reproduce the above copyright 132055d846Sender * notice, this list of conditions and the following disclaimer in the 142055d846Sender * documentation and/or other materials provided with the distribution. 152055d846Sender * 162055d846Sender * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 172055d846Sender * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 182055d846Sender * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 192055d846Sender * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 202055d846Sender * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 212055d846Sender * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 222055d846Sender * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 232055d846Sender * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 242055d846Sender * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 252055d846Sender * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 262055d846Sender */ 272055d846Sender 28b667a5a3Sthorpej #include <sys/callout.h> 292055d846Sender #include <machine/adbsys.h> 302055d846Sender 312055d846Sender /* Event queue definitions */ 322055d846Sender #ifndef AED_MAX_EVENTS 332055d846Sender #define AED_MAX_EVENTS 200 /* Maximum events to be kept in queue */ 342055d846Sender /* maybe should be higher for slower macs? */ 352055d846Sender #endif /* AED_MAX_EVENTS */ 362055d846Sender 372055d846Sender struct aed_softc { 38b667a5a3Sthorpej struct callout sc_repeat_ch; 39b667a5a3Sthorpej 402055d846Sender /* ADB info */ 4125e1f69cSender int origaddr; /* ADB device type (ADBADDR_AED) */ 4225e1f69cSender int adbaddr; /* current ADB address */ 4325e1f69cSender int handler_id; /* type of device */ 442055d846Sender 452055d846Sender /* ADB event queue */ 462055d846Sender adb_event_t sc_evq[AED_MAX_EVENTS]; /* the queue */ 472055d846Sender int sc_evq_tail; /* event queue tail pointer */ 482055d846Sender int sc_evq_len; /* event queue length */ 492055d846Sender 502055d846Sender /* Keyboard repeat state */ 512055d846Sender int sc_rptdelay; /* ticks before auto-repeat */ 522055d846Sender int sc_rptinterval; /* ticks between auto-repeat */ 532055d846Sender int sc_repeating; /* key that is auto-repeating */ 542055d846Sender adb_event_t sc_rptevent; /* event to auto-repeat */ 552055d846Sender 562055d846Sender int sc_buttons; /* mouse button state */ 572055d846Sender 582055d846Sender struct selinfo sc_selinfo; /* select() info */ 592055d846Sender struct proc * sc_ioproc; /* process to wakeup */ 602055d846Sender 612055d846Sender int sc_open; /* Are we queuing events? */ 622055d846Sender int sc_options; /* config options */ 632055d846Sender }; 642055d846Sender 652055d846Sender /* Options */ 662055d846Sender #define AED_MSEMUL 0x1 /* emulate mouse buttons */ 672055d846Sender 687acd68b1Schs int aed_input(adb_event_t *); 69