struct input_dev *dev = &mouse->dev; 
struct input_dev *dev = mouse->dev; 
vsxxxaa_handle_ABS_packet (struct vsxxxaa *mouse, struct pt_regs *regs){	struct input_dev *dev = &mouse->dev;	unsigned char *buf = mouse->buf;	int left, middle, right, touch;	int x, y;	/*	 * Tablet position / button packet	 *	 * [0]:	1	1	0	B4	B3	B2	B1	Pr	 * [1]:	0	0	X5	X4	X3	X2	X1	X0	 * [2]:	0	0	X11	X10	X9	X8	X7	X6	 * [3]:	0	0	Y5	Y4	Y3	Y2	Y1	Y0	 * [4]:	0	0	Y11	Y10	Y9	Y8	Y7	Y6	 */	/*	 * Get X/Y position. Y axis needs to be inverted since VSXXX-AB	 * counts down->top while monitor counts top->bottom.	 */	x = ((buf[2] & 0x3f) << 6) | (buf[1] & 0x3f);	y = ((buf[4] & 0x3f) << 6) | (buf[3] & 0x3f);	y = 1023 - y;	/*	 * Get button state. It's bits <4..1> of byte 0.	 */	left	= (buf[0] & 0x02)? 1: 0;	middle	= (buf[0] & 0x04)? 1: 0;	right	= (buf[0] & 0x08)? 1: 0;	touch	= (buf[0] & 0x10)? 1: 0;	vsxxxaa_drop_bytes (mouse, 5);	DBG (KERN_INFO "%s on %s: x=%d, y=%d, buttons=%s%s%s%s\n",			mouse->name, mouse->phys, x, y,			left? "L": "l", middle? "M": "m",			right? "R": "r", touch? "T": "t");	/*	 * Report what we've found so far...	 */	input_regs (dev, regs);	input_report_key (dev, BTN_LEFT, left);	input_report_key (dev, BTN_MIDDLE, middle);	input_report_key (dev, BTN_RIGHT, right);	input_report_key (dev, BTN_TOUCH, touch);	input_report_abs (dev, ABS_X, x);	input_report_abs (dev, ABS_Y, y);	input_sync (dev);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/2e5b636bb5f8dacbb91d08544e2c41ebcad5dace/vsxxxaa.c/clean/drivers/input/mouse/vsxxxaa.c