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 | |