12606Sdfr/*- 22606Sdfr * Copyright (c) 1992, 1993 Erik Forsberg. 331603Syokota * Copyright (c) 1996, 1997 Kazutaka YOKOTA 42606Sdfr * All rights reserved. 52606Sdfr * 62606Sdfr * Redistribution and use in source and binary forms, with or without 72606Sdfr * modification, are permitted provided that the following conditions 82606Sdfr * are met: 92606Sdfr * 1. Redistributions of source code must retain the above copyright 102606Sdfr * notice, this list of conditions and the following disclaimer. 112606Sdfr * 122606Sdfr * THIS SOFTWARE IS PROVIDED BY ``AS IS'' AND ANY EXPRESS OR IMPLIED 132606Sdfr * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 142606Sdfr * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN 152606Sdfr * NO EVENT SHALL I BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 162606Sdfr * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 172606Sdfr * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 182606Sdfr * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 192606Sdfr * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 202606Sdfr * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 212606Sdfr * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 222606Sdfr * 2350477Speter * $FreeBSD$ 242606Sdfr */ 252606Sdfr 2666860Sphk#ifndef _SYS_MOUSE_H_ 2766860Sphk#define _SYS_MOUSE_H_ 2819753Ssos 2919753Ssos#include <sys/types.h> 3019753Ssos#include <sys/ioccom.h> 3119753Ssos 3231603Syokota/* ioctls */ 3331603Syokota#define MOUSE_GETSTATUS _IOR('M', 0, mousestatus_t) 3431603Syokota#define MOUSE_GETHWINFO _IOR('M', 1, mousehw_t) 3531603Syokota#define MOUSE_GETMODE _IOR('M', 2, mousemode_t) 3631603Syokota#define MOUSE_SETMODE _IOW('M', 3, mousemode_t) 3731603Syokota#define MOUSE_GETLEVEL _IOR('M', 4, int) 3831603Syokota#define MOUSE_SETLEVEL _IOW('M', 5, int) 3931603Syokota#define MOUSE_GETVARS _IOR('M', 6, mousevar_t) 4031603Syokota#define MOUSE_SETVARS _IOW('M', 7, mousevar_t) 4131603Syokota#define MOUSE_READSTATE _IOWR('M', 8, mousedata_t) 4231603Syokota#define MOUSE_READDATA _IOWR('M', 9, mousedata_t) 4319753Ssos 44153072Sru#ifdef notyet 4531603Syokota#define MOUSE_SETRESOLUTION _IOW('M', 10, int) 4631603Syokota#define MOUSE_SETSCALING _IOW('M', 11, int) 4731603Syokota#define MOUSE_SETRATE _IOW('M', 12, int) 4831603Syokota#define MOUSE_GETHWID _IOR('M', 13, int) 4931603Syokota#endif 5019753Ssos 51132865Snjl#define MOUSE_SYN_GETHWINFO _IOR('M', 100, synapticshw_t) 52132865Snjl 5320073Ssos/* mouse status block */ 5420073Ssostypedef struct mousestatus { 5531603Syokota int flags; /* state change flags */ 5620073Ssos int button; /* button status */ 5720073Ssos int obutton; /* previous button status */ 5820073Ssos int dx; /* x movement */ 5920073Ssos int dy; /* y movement */ 6031603Syokota int dz; /* z movement */ 6120073Ssos} mousestatus_t; 6221327Snate 6320073Ssos/* button */ 6420073Ssos#define MOUSE_BUTTON1DOWN 0x0001 /* left */ 6520073Ssos#define MOUSE_BUTTON2DOWN 0x0002 /* middle */ 6620073Ssos#define MOUSE_BUTTON3DOWN 0x0004 /* right */ 6720073Ssos#define MOUSE_BUTTON4DOWN 0x0008 6820073Ssos#define MOUSE_BUTTON5DOWN 0x0010 6920073Ssos#define MOUSE_BUTTON6DOWN 0x0020 7020073Ssos#define MOUSE_BUTTON7DOWN 0x0040 7120073Ssos#define MOUSE_BUTTON8DOWN 0x0080 7231603Syokota#define MOUSE_MAXBUTTON 31 7331603Syokota#define MOUSE_STDBUTTONS 0x0007 /* buttons 1-3 */ 7431603Syokota#define MOUSE_EXTBUTTONS 0x7ffffff8 /* the others (28 of them!) */ 7531603Syokota#define MOUSE_BUTTONS (MOUSE_STDBUTTONS | MOUSE_EXTBUTTONS) 7620073Ssos 7731603Syokota/* flags */ 7831603Syokota#define MOUSE_STDBUTTONSCHANGED MOUSE_STDBUTTONS 7931603Syokota#define MOUSE_EXTBUTTONSCHANGED MOUSE_EXTBUTTONS 8031603Syokota#define MOUSE_BUTTONSCHANGED MOUSE_BUTTONS 8131603Syokota#define MOUSE_POSCHANGED 0x80000000 8231603Syokota 8319753Ssostypedef struct mousehw { 8431603Syokota int buttons; /* -1 if unknown */ 8519753Ssos int iftype; /* MOUSE_IF_XXX */ 8619753Ssos int type; /* mouse/track ball/pad... */ 8731603Syokota int model; /* I/F dependent model ID: MOUSE_MODEL_XXX */ 8819753Ssos int hwid; /* I/F dependent hardware ID 89281708Srpaulo * for the PS/2 mouse, it will be PSM_XXX_ID 9021327Snate */ 9119753Ssos} mousehw_t; 9221327Snate 93132865Snjltypedef struct synapticshw { 94132865Snjl int infoMajor; 95132865Snjl int infoMinor; 96132865Snjl int infoRot180; 97132865Snjl int infoPortrait; 98132865Snjl int infoSensor; 99132865Snjl int infoHardware; 100132865Snjl int infoNewAbs; 101132865Snjl int capPen; 102132865Snjl int infoSimplC; 103132865Snjl int infoGeometry; 104132865Snjl int capExtended; 105132865Snjl int capSleep; 106132865Snjl int capFourButtons; 107132865Snjl int capMultiFinger; 108132865Snjl int capPalmDetect; 109255154Sdumbbell int capPassthrough; 110255154Sdumbbell int capMiddle; 111255154Sdumbbell int nExtendedButtons; 112255154Sdumbbell int nExtendedQueries; 113281708Srpaulo int capClickPad; 114281708Srpaulo int capDeluxeLEDs; 115281708Srpaulo int noAbsoluteFilter; 116281708Srpaulo int capReportsV; 117281708Srpaulo int capUniformClickPad; 118281708Srpaulo int capReportsMin; 119281708Srpaulo int capInterTouch; 120281708Srpaulo int capReportsMax; 121281708Srpaulo int capClearPad; 122281708Srpaulo int capAdvancedGestures; 123281708Srpaulo int multiFingerMode; 124281708Srpaulo int capCoveredPad; 125281708Srpaulo int verticalScroll; 126281708Srpaulo int horizontalScroll; 127281708Srpaulo int verticalWheel; 128132865Snjl} synapticshw_t; 129132865Snjl 13019753Ssos/* iftype */ 13131603Syokota#define MOUSE_IF_UNKNOWN (-1) 13219753Ssos#define MOUSE_IF_SERIAL 0 13319753Ssos#define MOUSE_IF_BUS 1 13419753Ssos#define MOUSE_IF_INPORT 2 13519753Ssos#define MOUSE_IF_PS2 3 13631603Syokota#define MOUSE_IF_SYSMOUSE 4 13744186Sn_hibma#define MOUSE_IF_USB 5 13821327Snate 13919753Ssos/* type */ 14019753Ssos#define MOUSE_UNKNOWN (-1) /* should be treated as a mouse */ 14119753Ssos#define MOUSE_MOUSE 0 14219753Ssos#define MOUSE_TRACKBALL 1 14319753Ssos#define MOUSE_STICK 2 14419753Ssos#define MOUSE_PAD 3 1452606Sdfr 14631603Syokota/* model */ 14731603Syokota#define MOUSE_MODEL_UNKNOWN (-1) 14831603Syokota#define MOUSE_MODEL_GENERIC 0 14931603Syokota#define MOUSE_MODEL_GLIDEPOINT 1 15031603Syokota#define MOUSE_MODEL_NETSCROLL 2 15131603Syokota#define MOUSE_MODEL_NET 3 15231603Syokota#define MOUSE_MODEL_INTELLI 4 15331603Syokota#define MOUSE_MODEL_THINK 5 15431603Syokota#define MOUSE_MODEL_EASYSCROLL 6 15531603Syokota#define MOUSE_MODEL_MOUSEMANPLUS 7 15641271Syokota#define MOUSE_MODEL_KIDSPAD 8 15749964Syokota#define MOUSE_MODEL_VERSAPAD 9 15858230Syokota#define MOUSE_MODEL_EXPLORER 10 15958230Syokota#define MOUSE_MODEL_4D 11 16058230Syokota#define MOUSE_MODEL_4DPLUS 12 161132865Snjl#define MOUSE_MODEL_SYNAPTICS 13 162248478Sjkim#define MOUSE_MODEL_TRACKPOINT 14 16331603Syokota 16419753Ssostypedef struct mousemode { 16519753Ssos int protocol; /* MOUSE_PROTO_XXX */ 16619753Ssos int rate; /* report rate (per sec), -1 if unknown */ 16731603Syokota int resolution; /* MOUSE_RES_XXX, -1 if unknown */ 16819753Ssos int accelfactor; /* accelation factor (must be 1 or greater) */ 16931603Syokota int level; /* driver operation level */ 17031603Syokota int packetsize; /* the length of the data packet */ 17131603Syokota unsigned char syncmask[2]; /* sync. data bits in the header byte */ 17219753Ssos} mousemode_t; 17321327Snate 17419753Ssos/* protocol */ 17558230Syokota/* 17658230Syokota * Serial protocols: 17758230Syokota * Microsoft, MouseSystems, Logitech, MM series, MouseMan, Hitachi Tablet, 17858230Syokota * GlidePoint, IntelliMouse, Thinking Mouse, MouseRemote, Kidspad, 17958230Syokota * VersaPad 18058230Syokota * Bus mouse protocols: 18158230Syokota * bus, InPort 18258230Syokota * PS/2 mouse protocol: 18358230Syokota * PS/2 18458230Syokota */ 18531603Syokota#define MOUSE_PROTO_UNKNOWN (-1) 18619753Ssos#define MOUSE_PROTO_MS 0 /* Microsoft Serial, 3 bytes */ 18719753Ssos#define MOUSE_PROTO_MSC 1 /* Mouse Systems, 5 bytes */ 18819753Ssos#define MOUSE_PROTO_LOGI 2 /* Logitech, 3 bytes */ 18919753Ssos#define MOUSE_PROTO_MM 3 /* MM series, 3 bytes */ 19019753Ssos#define MOUSE_PROTO_LOGIMOUSEMAN 4 /* Logitech MouseMan 3/4 bytes */ 19119753Ssos#define MOUSE_PROTO_BUS 5 /* MS/Logitech bus mouse */ 19231603Syokota#define MOUSE_PROTO_INPORT 6 /* MS/ATI InPort mouse */ 19319753Ssos#define MOUSE_PROTO_PS2 7 /* PS/2 mouse, 3 bytes */ 19431603Syokota#define MOUSE_PROTO_HITTAB 8 /* Hitachi Tablet 3 bytes */ 19531603Syokota#define MOUSE_PROTO_GLIDEPOINT 9 /* ALPS GlidePoint, 3/4 bytes */ 19631603Syokota#define MOUSE_PROTO_INTELLI 10 /* MS IntelliMouse, 4 bytes */ 197165335Skeramida#define MOUSE_PROTO_THINK 11 /* Kensington Thinking Mouse, 3/4 bytes */ 19831603Syokota#define MOUSE_PROTO_SYSMOUSE 12 /* /dev/sysmouse */ 19936991Sahasty#define MOUSE_PROTO_X10MOUSEREM 13 /* X10 MouseRemote, 3 bytes */ 20041271Syokota#define MOUSE_PROTO_KIDSPAD 14 /* Genius Kidspad */ 20149964Syokota#define MOUSE_PROTO_VERSAPAD 15 /* Interlink VersaPad, 6 bytes */ 20293071Swill#define MOUSE_PROTO_JOGDIAL 16 /* Vaio's JogDial */ 203145001Smdodd#define MOUSE_PROTO_GTCO_DIGIPAD 17 20419753Ssos 20531603Syokota#define MOUSE_RES_UNKNOWN (-1) 20631603Syokota#define MOUSE_RES_DEFAULT 0 20731603Syokota#define MOUSE_RES_LOW (-2) 20831603Syokota#define MOUSE_RES_MEDIUMLOW (-3) 20931603Syokota#define MOUSE_RES_MEDIUMHIGH (-4) 21031603Syokota#define MOUSE_RES_HIGH (-5) 21131603Syokota 21231603Syokotatypedef struct mousedata { 21331603Syokota int len; /* # of data in the buffer */ 21431603Syokota int buf[16]; /* data buffer */ 21531603Syokota} mousedata_t; 21631603Syokota 21731603Syokota#if (defined(MOUSE_GETVARS)) 21831603Syokota 21931603Syokotatypedef struct mousevar { 22031603Syokota int var[16]; 22131603Syokota} mousevar_t; 22231603Syokota 22331603Syokota/* magic numbers in var[0] */ 22431603Syokota#define MOUSE_VARS_PS2_SIG 0x00325350 /* 'PS2' */ 22531603Syokota#define MOUSE_VARS_BUS_SIG 0x00535542 /* 'BUS' */ 22631603Syokota#define MOUSE_VARS_INPORT_SIG 0x00504e49 /* 'INP' */ 22731603Syokota 22831603Syokota#endif /* MOUSE_GETVARS */ 22931603Syokota 230132865Snjl/* Synaptics Touchpad */ 231132865Snjl#define MOUSE_SYNAPTICS_PACKETSIZE 6 /* '3' works better */ 232132865Snjl 23319753Ssos/* Microsoft Serial mouse data packet */ 23419753Ssos#define MOUSE_MSS_PACKETSIZE 3 23519753Ssos#define MOUSE_MSS_SYNCMASK 0x40 23619753Ssos#define MOUSE_MSS_SYNC 0x40 23719753Ssos#define MOUSE_MSS_BUTTONS 0x30 23819753Ssos#define MOUSE_MSS_BUTTON1DOWN 0x20 /* left */ 23919753Ssos#define MOUSE_MSS_BUTTON2DOWN 0x00 /* no middle button */ 24019753Ssos#define MOUSE_MSS_BUTTON3DOWN 0x10 /* right */ 24119753Ssos 24220073Ssos/* Logitech MouseMan data packet (M+ protocol) */ 24331603Syokota#define MOUSE_LMAN_BUTTON2DOWN 0x20 /* middle button, the 4th byte */ 24420073Ssos 24579298Sdd/* ALPS GlidePoint extension (variant of M+ protocol) */ 24631603Syokota#define MOUSE_ALPS_BUTTON2DOWN 0x20 /* middle button, the 4th byte */ 24731603Syokota#define MOUSE_ALPS_TAP 0x10 /* `tapping' action, the 4th byte */ 24831603Syokota 24979298Sdd/* Kinsington Thinking Mouse extension (variant of M+ protocol) */ 25031603Syokota#define MOUSE_THINK_BUTTON2DOWN 0x20 /* lower-left button, the 4th byte */ 25131603Syokota#define MOUSE_THINK_BUTTON4DOWN 0x10 /* lower-right button, the 4th byte */ 25231603Syokota 25331603Syokota/* MS IntelliMouse (variant of MS Serial) */ 25431603Syokota#define MOUSE_INTELLI_PACKETSIZE 4 25558230Syokota#define MOUSE_INTELLI_BUTTON2DOWN 0x10 /* middle button in the 4th byte */ 25631603Syokota 25719753Ssos/* Mouse Systems Corp. mouse data packet */ 25819753Ssos#define MOUSE_MSC_PACKETSIZE 5 25919753Ssos#define MOUSE_MSC_SYNCMASK 0xf8 26019753Ssos#define MOUSE_MSC_SYNC 0x80 26119753Ssos#define MOUSE_MSC_BUTTONS 0x07 26219753Ssos#define MOUSE_MSC_BUTTON1UP 0x04 /* left */ 26319753Ssos#define MOUSE_MSC_BUTTON2UP 0x02 /* middle */ 26419753Ssos#define MOUSE_MSC_BUTTON3UP 0x01 /* right */ 26544186Sn_hibma#define MOUSE_MSC_MAXBUTTON 3 26619753Ssos 26720073Ssos/* MM series mouse data packet */ 26820073Ssos#define MOUSE_MM_PACKETSIZE 3 26920073Ssos#define MOUSE_MM_SYNCMASK 0xe0 27020073Ssos#define MOUSE_MM_SYNC 0x80 27120073Ssos#define MOUSE_MM_BUTTONS 0x07 27220073Ssos#define MOUSE_MM_BUTTON1DOWN 0x04 /* left */ 27320073Ssos#define MOUSE_MM_BUTTON2DOWN 0x02 /* middle */ 27420073Ssos#define MOUSE_MM_BUTTON3DOWN 0x01 /* right */ 27520073Ssos#define MOUSE_MM_XPOSITIVE 0x10 27620073Ssos#define MOUSE_MM_YPOSITIVE 0x08 27720073Ssos 27819753Ssos/* PS/2 mouse data packet */ 27919753Ssos#define MOUSE_PS2_PACKETSIZE 3 28031603Syokota#define MOUSE_PS2_SYNCMASK 0xc8 28131603Syokota#define MOUSE_PS2_SYNC 0x08 28219753Ssos#define MOUSE_PS2_BUTTONS 0x07 /* 0x03 for 2 button mouse */ 28319753Ssos#define MOUSE_PS2_BUTTON1DOWN 0x01 /* left */ 28419753Ssos#define MOUSE_PS2_BUTTON2DOWN 0x04 /* middle */ 28519753Ssos#define MOUSE_PS2_BUTTON3DOWN 0x02 /* right */ 28631603Syokota#define MOUSE_PS2_TAP MOUSE_PS2_SYNC /* GlidePoint (PS/2) `tapping' 287281708Srpaulo * Yes! this is the same bit 28831603Syokota * as SYNC! 28931603Syokota */ 29031603Syokota 29119753Ssos#define MOUSE_PS2_XNEG 0x10 29219753Ssos#define MOUSE_PS2_YNEG 0x20 29319753Ssos#define MOUSE_PS2_XOVERFLOW 0x40 29419753Ssos#define MOUSE_PS2_YOVERFLOW 0x80 29558230Syokota 29658230Syokota/* Logitech MouseMan+ (PS/2) data packet (PS/2++ protocol) */ 29748778Syokota#define MOUSE_PS2PLUS_SYNCMASK 0x48 29848778Syokota#define MOUSE_PS2PLUS_SYNC 0x48 29958230Syokota#define MOUSE_PS2PLUS_ZNEG 0x08 /* sign bit */ 30058230Syokota#define MOUSE_PS2PLUS_BUTTON4DOWN 0x10 /* 4th button on MouseMan+ */ 30158230Syokota#define MOUSE_PS2PLUS_BUTTON5DOWN 0x20 30219753Ssos 30358230Syokota/* IBM ScrollPoint (PS/2) also uses PS/2++ protocol */ 30458230Syokota#define MOUSE_SPOINT_ZNEG 0x80 /* sign bits */ 30558230Syokota#define MOUSE_SPOINT_WNEG 0x08 30658230Syokota 30758230Syokota/* MS IntelliMouse (PS/2) data packet */ 30858230Syokota#define MOUSE_PS2INTELLI_PACKETSIZE 4 30958230Syokota/* some compatible mice have additional buttons */ 31058230Syokota#define MOUSE_PS2INTELLI_BUTTON4DOWN 0x40 31158230Syokota#define MOUSE_PS2INTELLI_BUTTON5DOWN 0x80 31258230Syokota 31358230Syokota/* MS IntelliMouse Explorer (PS/2) data packet (variation of IntelliMouse) */ 31458230Syokota#define MOUSE_EXPLORER_ZNEG 0x08 /* sign bit */ 31558230Syokota/* IntelliMouse Explorer has additional button data in the fourth byte */ 31658230Syokota#define MOUSE_EXPLORER_BUTTON4DOWN 0x10 31758230Syokota#define MOUSE_EXPLORER_BUTTON5DOWN 0x20 31858230Syokota 31949964Syokota/* Interlink VersaPad (serial I/F) data packet */ 32049964Syokota#define MOUSE_VERSA_PACKETSIZE 6 32149964Syokota#define MOUSE_VERSA_IN_USE 0x04 32249964Syokota#define MOUSE_VERSA_SYNCMASK 0xc3 32349964Syokota#define MOUSE_VERSA_SYNC 0xc0 32449964Syokota#define MOUSE_VERSA_BUTTONS 0x30 32549964Syokota#define MOUSE_VERSA_BUTTON1DOWN 0x20 /* left */ 32649964Syokota#define MOUSE_VERSA_BUTTON2DOWN 0x00 /* middle */ 32749964Syokota#define MOUSE_VERSA_BUTTON3DOWN 0x10 /* right */ 32849964Syokota#define MOUSE_VERSA_TAP 0x08 32949964Syokota 33049964Syokota/* Interlink VersaPad (PS/2 I/F) data packet */ 33149964Syokota#define MOUSE_PS2VERSA_PACKETSIZE 6 33249964Syokota#define MOUSE_PS2VERSA_IN_USE 0x10 33349964Syokota#define MOUSE_PS2VERSA_SYNCMASK 0xe8 33449964Syokota#define MOUSE_PS2VERSA_SYNC 0xc8 33549964Syokota#define MOUSE_PS2VERSA_BUTTONS 0x05 33649964Syokota#define MOUSE_PS2VERSA_BUTTON1DOWN 0x04 /* left */ 33749964Syokota#define MOUSE_PS2VERSA_BUTTON2DOWN 0x00 /* middle */ 33849964Syokota#define MOUSE_PS2VERSA_BUTTON3DOWN 0x01 /* right */ 33949964Syokota#define MOUSE_PS2VERSA_TAP 0x02 34049964Syokota 34158230Syokota/* A4 Tech 4D Mouse (PS/2) data packet */ 342281708Srpaulo#define MOUSE_4D_PACKETSIZE 3 34358230Syokota#define MOUSE_4D_WHEELBITS 0xf0 34458230Syokota 34558230Syokota/* A4 Tech 4D+ Mouse (PS/2) data packet */ 346281708Srpaulo#define MOUSE_4DPLUS_PACKETSIZE 3 34758230Syokota#define MOUSE_4DPLUS_ZNEG 0x04 /* sign bit */ 34858230Syokota#define MOUSE_4DPLUS_BUTTON4DOWN 0x08 34958230Syokota 35031603Syokota/* sysmouse extended data packet */ 35131603Syokota/* 35231603Syokota * /dev/sysmouse sends data in two formats, depending on the protocol 35331603Syokota * level. At the level 0, format is exactly the same as MousSystems' 35431603Syokota * five byte packet. At the level 1, the first five bytes are the same 35531603Syokota * as at the level 0. There are additional three bytes which shows 35631603Syokota * `dz' and the states of additional buttons. `dz' is expressed as the 35731603Syokota * sum of the byte 5 and 6 which contain signed seven bit values. 358281708Srpaulo * The states of the button 4 though 10 are in the bit 0 though 6 in 35931603Syokota * the byte 7 respectively: 1 indicates the button is up. 36031603Syokota */ 36131603Syokota#define MOUSE_SYS_PACKETSIZE 8 36231603Syokota#define MOUSE_SYS_SYNCMASK 0xf8 36331603Syokota#define MOUSE_SYS_SYNC 0x80 36431603Syokota#define MOUSE_SYS_BUTTON1UP 0x04 /* left, 1st byte */ 36531603Syokota#define MOUSE_SYS_BUTTON2UP 0x02 /* middle, 1st byte */ 36631603Syokota#define MOUSE_SYS_BUTTON3UP 0x01 /* right, 1st byte */ 36731603Syokota#define MOUSE_SYS_BUTTON4UP 0x0001 /* 7th byte */ 36831603Syokota#define MOUSE_SYS_BUTTON5UP 0x0002 36931603Syokota#define MOUSE_SYS_BUTTON6UP 0x0004 37031603Syokota#define MOUSE_SYS_BUTTON7UP 0x0008 37131603Syokota#define MOUSE_SYS_BUTTON8UP 0x0010 37231603Syokota#define MOUSE_SYS_BUTTON9UP 0x0020 37331603Syokota#define MOUSE_SYS_BUTTON10UP 0x0040 37431603Syokota#define MOUSE_SYS_MAXBUTTON 10 37531603Syokota#define MOUSE_SYS_STDBUTTONS 0x07 37631603Syokota#define MOUSE_SYS_EXTBUTTONS 0x7f /* the others */ 37731603Syokota 37836991Sahasty/* Mouse remote socket */ 37936991Sahasty#define _PATH_MOUSEREMOTE "/var/run/MouseRemote" 38036991Sahasty 38166860Sphk#endif /* _SYS_MOUSE_H_ */ 382