struct input_dev *dev = &mouse->dev; 
struct input_dev *dev = mouse->dev; 
vsxxxaa_handle_REL_packet (struct vsxxxaa *mouse, struct pt_regs *regs){	struct input_dev *dev = &mouse->dev;	unsigned char *buf = mouse->buf;	int left, middle, right;	int dx, dy;	/*	 * Check for normal stream packets. This is three bytes,	 * with the first byte's 3 MSB set to 100.	 *	 * [0]:	1	0	0	SignX	SignY	Left	Middle	Right	 * [1]: 0	dx	dx	dx	dx	dx	dx	dx	 * [2]:	0	dy	dy	dy	dy	dy	dy	dy	 */	/*	 * Low 7 bit of byte 1 are abs(dx), bit 7 is	 * 0, bit 4 of byte 0 is direction.	 */	dx = buf[1] & 0x7f;	dx *= ((buf[0] >> 4) & 0x01)? 1: -1;	/*	 * Low 7 bit of byte 2 are abs(dy), bit 7 is	 * 0, bit 3 of byte 0 is direction.	 */	dy = buf[2] & 0x7f;	dy *= ((buf[0] >> 3) & 0x01)? -1: 1;	/*	 * Get button state. It's the low three bits	 * (for three buttons) of byte 0.	 */	left	= (buf[0] & 0x04)? 1: 0;	middle	= (buf[0] & 0x02)? 1: 0;	right	= (buf[0] & 0x01)? 1: 0;	vsxxxaa_drop_bytes (mouse, 3);	DBG (KERN_INFO "%s on %s: dx=%d, dy=%d, buttons=%s%s%s\n",			mouse->name, mouse->phys, dx, dy,			left? "L": "l", middle? "M": "m", right? "R": "r");	/*	 * 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, 0);	input_report_rel (dev, REL_X, dx);	input_report_rel (dev, REL_Y, dy);	input_sync (dev);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/2e5b636bb5f8dacbb91d08544e2c41ebcad5dace/vsxxxaa.c/clean/drivers/input/mouse/vsxxxaa.c