1*692d834dSPengcheng Chen - Sun Microsystems - Beijing China /*
2*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
3*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * Use is subject to license terms.
4*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  */
5*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
6*692d834dSPengcheng Chen - Sun Microsystems - Beijing China /*
7*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * Copyright (c) 2007, 2008 Bartosz Fabianowski <freebsd@chillt.de>
8*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * All rights reserved.
9*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  *
10*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * Financed by the "Irish Research Council for Science, Engineering and
11*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * Technology: funded by the National Development Plan"
12*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  *
13*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * Redistribution and use in source and binary forms, with or without
14*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * modification, are permitted provided that the following conditions
15*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * are met:
16*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * 1. Redistributions of source code must retain the above copyright
17*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  *    notice, this list of conditions, and the following disclaimer.
18*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * 2. Redistributions in binary form must reproduce the above copyright
19*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  *    notice, this list of conditions and the following disclaimer in the
20*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  *    documentation and/or other materials provided with the distribution.
21*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  *
22*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
23*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
26*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * SUCH DAMAGE.
33*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  */
34*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
35*692d834dSPengcheng Chen - Sun Microsystems - Beijing China /*
36*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * Copyright (c) 1998 The NetBSD Foundation, Inc.
37*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * All rights reserved.
38*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  *
39*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * This code is derived from software contributed to The NetBSD Foundation
40*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * by Lennart Augustsson (lennart@augustsson.net) at
41*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * Carlstedt Research & Technology.
42*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  *
43*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * Redistribution and use in source and binary forms, with or without
44*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * modification, are permitted provided that the following conditions
45*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * are met:
46*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * 1. Redistributions of source code must retain the above copyright
47*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  *    notice, this list of conditions and the following disclaimer.
48*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * 2. Redistributions in binary form must reproduce the above copyright
49*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  *    notice, this list of conditions and the following disclaimer in the
50*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  *    documentation and/or other materials provided with the distribution.
51*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * 3. All advertising materials mentioning features or use of this software
52*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  *    must display the following acknowledgement:
53*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  *        This product includes software developed by the NetBSD
54*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  *        Foundation, Inc. and its contributors.
55*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * 4. Neither the name of The NetBSD Foundation nor the names of its
56*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  *    contributors may be used to endorse or promote products derived
57*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  *    from this software without specific prior written permission.
58*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  *
59*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
60*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
61*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
62*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
63*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
64*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
65*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
66*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
67*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
68*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
69*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  * POSSIBILITY OF SUCH DAMAGE.
70*692d834dSPengcheng Chen - Sun Microsystems - Beijing China  */
71*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
72*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #ifndef _SYS_USB_USBWCM_H
73*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	_SYS_USB_USBWCM_H
74*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
75*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #ifdef __cplusplus
76*692d834dSPengcheng Chen - Sun Microsystems - Beijing China extern "C" {
77*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #endif
78*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
79*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #include <sys/ioccom.h>
80*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #if defined(_LP64) || defined(_I32LPx)
81*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #include <sys/types32.h>
82*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #else
83*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #include <sys/types.h>
84*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #endif
85*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #include <sys/time.h>
86*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
87*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	EVTIOCGVERSION	_IOR('E', 0x1, int)
88*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	EVTIOCGDEVID	_IOR('E', 0x2, struct event_dev_id)
89*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	EVTIOCGBM(i, s)	_IORN('E', 0x20 + (i), (s))
90*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	EVTIOCGABS(i)	_IOR('E', 0x40 + (i), struct event_abs_axis)
91*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	EVTIOC		('E' << 8)
92*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
93*692d834dSPengcheng Chen - Sun Microsystems - Beijing China struct event_dev_id {
94*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	uint16_t bus;
95*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	ID_BUS_USB 3
96*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	uint16_t vendor;
97*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	uint16_t product;
98*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	uint16_t version;
99*692d834dSPengcheng Chen - Sun Microsystems - Beijing China };
100*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
101*692d834dSPengcheng Chen - Sun Microsystems - Beijing China struct event_abs_axis {
102*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	int32_t value;
103*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	int32_t min;
104*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	int32_t max;
105*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	int32_t fuzz;
106*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	int32_t flat;
107*692d834dSPengcheng Chen - Sun Microsystems - Beijing China };
108*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
109*692d834dSPengcheng Chen - Sun Microsystems - Beijing China struct event_input {
110*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #if defined(_LP64) || defined(_I32LPx)
111*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	struct timeval32 time;
112*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #else
113*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	struct timeval time;
114*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #endif
115*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	uint16_t type;
116*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	uint16_t code;
117*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	int32_t value;
118*692d834dSPengcheng Chen - Sun Microsystems - Beijing China };
119*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
120*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	EVT_SYN				0x0000
121*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	EVT_BTN				0x0001
122*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	EVT_REL				0x0002
123*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	EVT_ABS				0x0003
124*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	EVT_MSC				0x0004
125*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	EVT_USED			0x0005
126*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	EVT_MAX				0x001f
127*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
128*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	SYN_REPORT			0x0000
129*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
130*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BTN_MISC_0			0x0100
131*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BTN_MISC_1			0x0101
132*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BTN_MISC_2			0x0102
133*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BTN_MISC_3			0x0103
134*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BTN_MISC_4			0x0104
135*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BTN_MISC_5			0x0105
136*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BTN_MISC_6			0x0106
137*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BTN_MISC_7			0x0107
138*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BTN_MISC_8			0x0108
139*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
140*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BTN_LEFT			0x0110
141*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BTN_RIGHT			0x0111
142*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BTN_MIDDLE			0x0112
143*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BTN_SIDE			0x0113
144*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BTN_EXTRA			0x0114
145*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BTN_TOOL_PEN			0x0140
146*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BTN_TOOL_ERASER			0x0141
147*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BTN_TOOL_PAD			0x0145
148*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BTN_TOOL_MOUSE			0x0146
149*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BTN_TIP				0x014a
150*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BTN_STYLUS_1			0x014b
151*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BTN_STYLUS_2			0x014c
152*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BTN_USED			0x014d
153*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BTN_MISC_UND			0x01ff
154*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BTN_MAX				0x01ff
155*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
156*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	REL_WHEEL			0x0008
157*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	REL_MAX				0x000f
158*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
159*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	ABS_X				0x0000
160*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	ABS_Y				0x0001
161*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	ABS_Z				0x0002
162*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	ABS_RX				0x0003
163*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	ABS_RY				0x0004
164*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	ABS_RZ				0x0005
165*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
166*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	ABS_WHEEL			0x0008
167*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	ABS_PRESSURE			0x0018
168*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	ABS_DISTANCE			0x0019
169*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	ABS_TILT_X			0x001a
170*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	ABS_TILT_Y			0x001b
171*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	ABS_MISC			0x0028
172*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	ABS_USED			0x0029
173*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	ABS_MAX				0x003f
174*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
175*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	MSC_SERIAL			0x0000
176*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	MSC_MAX				0x0007
177*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
178*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #ifdef _KERNEL
179*692d834dSPengcheng Chen - Sun Microsystems - Beijing China /* USB IDs */
180*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_VENDOR_WACOM			0x056a
181*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
182*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_GRAPHIRE		0x0010
183*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_GRAPHIRE2_4X5		0x0011
184*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_GRAPHIRE2_5X7		0x0012
185*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_GRAPHIRE3_4X5		0x0013
186*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_GRAPHIRE3_6X8		0x0014
187*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_GRAPHIRE4_4X5		0x0015
188*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_GRAPHIRE4_6X8		0x0016
189*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_BAMBOO_FUN_4X5	0x0017
190*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_BAMBOO_FUN_6X8	0x0018
191*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_BAMBOO_ONE_6X8	0x0019
192*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_CINTIQ_21UX		0x003f
193*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_VOLITO		0x0060
194*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_PENSTATION2		0x0061
195*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_VOLITO2_4X5		0x0062
196*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_VOLITO2_2X3		0x0063
197*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_PENPARTNER2		0x0064
198*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_BAMBOO		0x0065
199*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_BAMBOO_ONE_4X5	0x0069
200*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_INTUOS3_4X5		0x00b0
201*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_INTUOS3_6X8		0x00b1
202*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_INTUOS3_9X12		0x00b2
203*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_INTUOS3_12X12		0x00b3
204*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_INTUOS3_12X19		0x00b4
205*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_INTUOS3_6X11		0x00b5
206*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_INTUOS3_4X6		0x00b7
207*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
208*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_INTUOS4_4X6		0x00b8
209*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_INTUOS4_6X9		0x00b9
210*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_INTUOS4_8X13		0x00ba
211*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USB_PRODUCT_WACOM_INTUOS4_12X19		0x00bb
212*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
213*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	TOOL_ID_PEN	0x0002
214*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	TOOL_ID_MOUSE	0x0006
215*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	TOOL_ID_ERASER	0x000a
216*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	TOOL_ID_PAD	0x000f
217*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
218*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	SERIAL_PAD_INTUOS	0xffffffff
219*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	SERIAL_PAD_GRAPHIRE4	0x000000f0
220*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
221*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	EUWACOMGETVERSION		0x01
222*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	EUWACOMGETID			0x02
223*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	EUWACOMGETBM			0x20
224*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	EUWACOMGETABS			0x40
225*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
226*692d834dSPengcheng Chen - Sun Microsystems - Beijing China /* Protocols */
227*692d834dSPengcheng Chen - Sun Microsystems - Beijing China struct uwacom_protocol_type {
228*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	int packet_size;
229*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	int distance_max;
230*692d834dSPengcheng Chen - Sun Microsystems - Beijing China };
231*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
232*692d834dSPengcheng Chen - Sun Microsystems - Beijing China enum uwacom_protocol {
233*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	/* Graphire family */
234*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	GRAPHIRE = 0,
235*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	GRAPHIRE4,
236*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	MYOFFICE,
237*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
238*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	/* Intuos family */
239*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	INTUOS3S,
240*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	INTUOS3L,
241*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	INTUOS4S,
242*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	INTUOS4L,
243*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	CINTIQ
244*692d834dSPengcheng Chen - Sun Microsystems - Beijing China };
245*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
246*692d834dSPengcheng Chen - Sun Microsystems - Beijing China struct uwacom_id {
247*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	uint16_t	vid;
248*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	uint16_t	pid;
249*692d834dSPengcheng Chen - Sun Microsystems - Beijing China };
250*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
251*692d834dSPengcheng Chen - Sun Microsystems - Beijing China /* Models */
252*692d834dSPengcheng Chen - Sun Microsystems - Beijing China struct uwacom_type {
253*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	struct uwacom_id	devno;
254*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	enum uwacom_protocol	protocol;
255*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	int			x_max;
256*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	int			y_max;
257*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	int			pressure_max;
258*692d834dSPengcheng Chen - Sun Microsystems - Beijing China };
259*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
260*692d834dSPengcheng Chen - Sun Microsystems - Beijing China static const struct uwacom_protocol_type uwacom_protocols[] = {
261*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{ 8, 63},
262*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{ 8, 63},
263*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{ 9, 63},
264*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{10, 63},
265*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{10, 63},
266*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{10, 63},
267*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{10, 63},
268*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{10, 63}
269*692d834dSPengcheng Chen - Sun Microsystems - Beijing China };
270*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
271*692d834dSPengcheng Chen - Sun Microsystems - Beijing China struct uwacom_softc {
272*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	const struct uwacom_type	*sc_type;
273*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	struct event_dev_id		sc_id;
274*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	unsigned long			*sc_bm[EVT_USED];
275*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
276*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	int				*sc_btn;
277*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	struct event_abs_axis		*sc_abs;
278*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	int				sc_tool[2];
279*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	int				sc_tool_id[2];
280*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	unsigned int			sc_serial[2];
281*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	int				sc_sync;
282*692d834dSPengcheng Chen - Sun Microsystems - Beijing China };
283*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
284*692d834dSPengcheng Chen - Sun Microsystems - Beijing China typedef struct usbwcm_state {
285*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	queue_t		*usbwcm_rq;	/* pointer to read queue */
286*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	queue_t		*usbwcm_wq;	/* pointer to write queue */
287*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
288*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	int32_t		usbwcm_flags;	/* open/qwait status */
289*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USBWCM_OPEN    0x00000001	/* opened for business */
290*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USBWCM_QWAIT   0x00000002	/* waiting for a response */
291*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
292*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	/* software state */
293*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	struct uwacom_softc	usbwcm_softc;
294*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
295*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	/* device model data */
296*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	hid_vid_pid_t	usbwcm_devid;
297*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
298*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	/*
299*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	 * Is an ioctl fails because an mblk wasn't
300*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	 * available, the mlbk is saved here.
301*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	 */
302*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	mblk_t		*usbwcm_mioctl;
303*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	bufcall_id_t	usbwcm_bufcall;	/* id returned by bufcall() */
304*692d834dSPengcheng Chen - Sun Microsystems - Beijing China } usbwcm_state_t;
305*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
306*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	abs(x)		((x) < 0 ? -(x) : (x))
307*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
308*692d834dSPengcheng Chen - Sun Microsystems - Beijing China typedef struct usbwcm_copyin_s {
309*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	caddr_t	addr;
310*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	int	state;
311*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USBWCM_GETSTRUCT 1
312*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	USBWCM_GETRESULT 2
313*692d834dSPengcheng Chen - Sun Microsystems - Beijing China } usbwcm_copyin_t;
314*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
315*692d834dSPengcheng Chen - Sun Microsystems - Beijing China static const struct uwacom_type uwacom_devs[] = {
316*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
317*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_GRAPHIRE},
318*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		GRAPHIRE, 10206, 7422, 511
319*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
320*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
321*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_GRAPHIRE2_4X5},
322*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		GRAPHIRE, 10206, 7422, 511
323*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
324*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
325*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_GRAPHIRE2_5X7},
326*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		GRAPHIRE, 13918, 10206, 511
327*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
328*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
329*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_GRAPHIRE3_4X5},
330*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		GRAPHIRE, 10208, 7424, 511
331*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
332*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
333*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_GRAPHIRE3_6X8},
334*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		GRAPHIRE, 16704, 12064, 511
335*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
336*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
337*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_GRAPHIRE4_4X5},
338*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		GRAPHIRE4, 10208, 7424, 511
339*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
340*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
341*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_GRAPHIRE4_6X8},
342*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		GRAPHIRE4, 16704, 12064, 511
343*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
344*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
345*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_BAMBOO_FUN_4X5},
346*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		MYOFFICE, 14760, 9225, 511
347*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
348*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
349*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_BAMBOO_FUN_6X8},
350*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		MYOFFICE, 21648, 13530, 511
351*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
352*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
353*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_BAMBOO_ONE_6X8},
354*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		GRAPHIRE, 16704, 12064, 511
355*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
356*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
357*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_CINTIQ_21UX},
358*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		CINTIQ, 87200, 65600, 1023
359*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
360*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
361*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_VOLITO},
362*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		GRAPHIRE, 5104, 3712, 511
363*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
364*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
365*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_PENSTATION2},
366*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		GRAPHIRE, 3250, 2320, 255
367*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
368*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
369*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_VOLITO2_4X5},
370*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		GRAPHIRE, 5104, 3712, 511
371*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
372*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
373*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_VOLITO2_2X3},
374*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		GRAPHIRE, 3248, 2320, 511
375*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
376*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
377*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_PENPARTNER2},
378*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		GRAPHIRE, 3250, 2320, 511
379*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
380*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
381*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_BAMBOO},
382*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		MYOFFICE, 14760, 9225, 511
383*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
384*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
385*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_BAMBOO_ONE_4X5},
386*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		GRAPHIRE, 5104, 3712, 511
387*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
388*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
389*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_INTUOS3_4X5},
390*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		INTUOS3S, 25400, 20320, 1023
391*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
392*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
393*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_INTUOS3_6X8},
394*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		INTUOS3L, 40640, 30480, 1023
395*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
396*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
397*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_INTUOS3_9X12},
398*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		INTUOS3L, 60960, 45720, 1023
399*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
400*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
401*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_INTUOS3_12X12},
402*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		INTUOS3L, 60960, 60960, 1023
403*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
404*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
405*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_INTUOS3_12X19},
406*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		INTUOS3L, 97536, 60960, 1023
407*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
408*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
409*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_INTUOS3_6X11},
410*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		INTUOS3L, 54204, 31750, 1023
411*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
412*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
413*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_INTUOS3_4X6},
414*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		INTUOS3S, 31496, 19685, 1023
415*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
416*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
417*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_INTUOS4_4X6},
418*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		INTUOS4S, 31496, 19685, 2047
419*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
420*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
421*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_INTUOS4_6X9},
422*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		INTUOS4L, 44704, 27940, 2047
423*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
424*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
425*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_INTUOS4_8X13},
426*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		INTUOS4L, 65024, 40640, 2047
427*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
428*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{
429*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		{USB_VENDOR_WACOM, USB_PRODUCT_WACOM_INTUOS4_12X19},
430*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 		INTUOS4L, 97536, 60960, 2047
431*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	},
432*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	{{0, 0},    0,  0, 0, 0}
433*692d834dSPengcheng Chen - Sun Microsystems - Beijing China };
434*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
435*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	PACKET_BIT(b, s)		((packet[b] >> (s)) & 1)
436*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	PACKET_BITS(b, s, n) \
437*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	((((s) + (n) > 32 ? ((packet[(b) - 4]) << (32 - (s))) : 0) | \
438*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	((s) + (n) > 24 ? ((packet[(b) - 3]) << (24 - (s))) : 0) | \
439*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	((s) + (n) > 16 ? ((packet[(b) - 2]) << (16 - (s))) : 0) | \
440*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	((s) + (n) >  8 ? ((packet[(b) - 1]) << (8 - (s))) : 0) | \
441*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	((packet[(b)]) >> (s))) & \
442*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	((n) == 32 ? 0xffffffff : (1 << (n)) - 1))
443*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
444*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BM_SIZE(x) \
445*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	(((x) / (sizeof (long) * 8) + 1) * sizeof (long))
446*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	BM_SET_BIT(x, y) \
447*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	((x)[(y) / (sizeof (long) * 8)] |= (1ul << ((y) % (sizeof (long) * 8))))
448*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
449*692d834dSPengcheng Chen - Sun Microsystems - Beijing China static const size_t bm_size[EVT_USED] = {
450*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	BM_SIZE(EVT_MAX),
451*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	BM_SIZE(BTN_MAX),
452*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	BM_SIZE(REL_MAX),
453*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	BM_SIZE(ABS_MAX),
454*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 	BM_SIZE(MSC_MAX),
455*692d834dSPengcheng Chen - Sun Microsystems - Beijing China };
456*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
457*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #define	PRINT_MASK_ALL	0xFFFFFFFF
458*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
459*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #endif	/* _KERNEL */
460*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
461*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #ifdef __cplusplus
462*692d834dSPengcheng Chen - Sun Microsystems - Beijing China }
463*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #endif
464*692d834dSPengcheng Chen - Sun Microsystems - Beijing China 
465*692d834dSPengcheng Chen - Sun Microsystems - Beijing China #endif	/* _SYS_USB_USBWCM_H */
466