| 1 | /* $NetBSD: pmsvar.h,v 1.11 2011/09/09 14:29:47 jakllsch Exp $ */ |
| 2 | |
| 3 | /*- |
| 4 | * Copyright (c) 2004 Kentaro Kurahone. |
| 5 | * Copyright (c) 2004 Ales Krenek. |
| 6 | * Copyright (c) 1994 Charles M. Hannum. |
| 7 | * Copyright (c) 1992, 1993 Erik Forsberg. |
| 8 | * All rights reserved. |
| 9 | * |
| 10 | * Redistribution and use in source and binary forms, with or without |
| 11 | * modification, are permitted provided that the following conditions |
| 12 | * are met: |
| 13 | * 1. Redistributions of source code must retain the above copyright |
| 14 | * notice, this list of conditions and the following disclaimer. |
| 15 | * |
| 16 | * THIS SOFTWARE IS PROVIDED BY ``AS IS'' AND ANY EXPRESS OR IMPLIED |
| 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
| 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN |
| 19 | * NO EVENT SHALL I BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
| 20 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
| 21 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
| 22 | * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
| 23 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
| 24 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
| 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 26 | */ |
| 27 | |
| 28 | #ifndef _DEV_PCKBCPORT_PMSVAR_H_ |
| 29 | #define _DEV_PCKBCPORT_PMSVAR_H_ |
| 30 | |
| 31 | #include <dev/pckbport/synapticsvar.h> |
| 32 | #include <dev/pckbport/elantechvar.h> |
| 33 | |
| 34 | enum pms_type { |
| 35 | PMS_UNKNOWN, |
| 36 | PMS_STANDARD, |
| 37 | PMS_SCROLL3, |
| 38 | PMS_SCROLL5, |
| 39 | PMS_SYNAPTICS, |
| 40 | PMS_ELANTECH |
| 41 | }; |
| 42 | |
| 43 | struct pms_protocol { |
| 44 | int rates[3]; |
| 45 | int response; |
| 46 | const char *name; |
| 47 | }; |
| 48 | |
| 49 | struct pms_softc { /* driver status information */ |
| 50 | device_t sc_dev; |
| 51 | |
| 52 | pckbport_tag_t sc_kbctag; |
| 53 | pckbport_slot_t sc_kbcslot; |
| 54 | |
| 55 | int sc_enabled; /* input enabled? */ |
| 56 | int inputstate; /* number of bytes received for this packet */ |
| 57 | u_int buttons; /* mouse button status */ |
| 58 | enum pms_type protocol; |
| 59 | unsigned char packet[6]; |
| 60 | struct timeval last, current; |
| 61 | |
| 62 | device_t sc_wsmousedev; |
| 63 | struct lwp *sc_event_thread; |
| 64 | |
| 65 | #if defined(PMS_SYNAPTICS_TOUCHPAD) || defined(PMS_ELANTECH_TOUCHPAD) |
| 66 | union { |
| 67 | #ifdef PMS_SYNAPTICS_TOUCHPAD |
| 68 | struct synaptics_softc synaptics; |
| 69 | #endif |
| 70 | #ifdef PMS_ELANTECH_TOUCHPAD |
| 71 | struct elantech_softc elantech; |
| 72 | #endif |
| 73 | } u; |
| 74 | #endif |
| 75 | }; |
| 76 | |
| 77 | int pms_sliced_command(pckbport_tag_t, pckbport_slot_t, u_char); |
| 78 | |
| 79 | #endif /* _DEV_PCKBCPORT_PMSVAR_H_ */ |
| 80 | |