~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/include/linux/logibusmouse.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 #ifndef _LINUX_BUSMOUSE_H
  2 #define _LINUX_BUSMOUSE_H
  3 
  4 /*
  5  * linux/include/linux/busmouse.h: header file for Logitech Bus Mouse driver
  6  * by James Banks
  7  *
  8  * based on information gleamed from various mouse drivers on the net
  9  *
 10  * Heavily modified by David giller (rafetmad@oxy.edu)
 11  *
 12  * Minor modifications for Linux 0.96c-pl1 by Nathan Laredo
 13  * gt7080a@prism.gatech.edu (13JUL92)
 14  *
 15  * Microsoft BusMouse support by Teemu Rantanen (tvr@cs.hut.fi) (02AUG92)
 16  *
 17  * Microsoft Bus Mouse support modified by Derrick Cole (cole@concert.net)
 18  *    8/28/92
 19  *
 20  * Microsoft Bus Mouse support folded into 0.97pl4 code
 21  *    by Peter Cervasio (pete%q106fm.uucp@wupost.wustl.edu) (08SEP92)
 22  * Changes:  Logitech and Microsoft support in the same kernel.
 23  *           Defined new constants in busmouse.h for MS mice.
 24  *           Added int mse_busmouse_type to distinguish busmouse types
 25  *           Added a couple of new functions to handle differences in using
 26  *             MS vs. Logitech (where the int variable wasn't appropriate).
 27  *
 28  */
 29 
 30 #define MOUSE_IRQ               5
 31 #define LOGITECH_BUSMOUSE       0   /* Minor device # for Logitech  */
 32 #define MICROSOFT_BUSMOUSE      2   /* Minor device # for Microsoft */
 33 
 34 /*--------- LOGITECH BUSMOUSE ITEMS -------------*/
 35 
 36 #define LOGIBM_BASE             0x23c
 37 #define MSE_DATA_PORT           0x23c
 38 #define MSE_SIGNATURE_PORT      0x23d
 39 #define MSE_CONTROL_PORT        0x23e
 40 #define MSE_INTERRUPT_PORT      0x23e
 41 #define MSE_CONFIG_PORT         0x23f
 42 #define LOGIBM_EXTENT           0x4
 43 
 44 #define MSE_ENABLE_INTERRUPTS   0x00
 45 #define MSE_DISABLE_INTERRUPTS  0x10
 46 
 47 #define MSE_READ_X_LOW          0x80
 48 #define MSE_READ_X_HIGH         0xa0
 49 #define MSE_READ_Y_LOW          0xc0
 50 #define MSE_READ_Y_HIGH         0xe0
 51 
 52 /* Magic number used to check if the mouse exists */
 53 #define MSE_CONFIG_BYTE         0x91
 54 #define MSE_DEFAULT_MODE        0x90
 55 #define MSE_SIGNATURE_BYTE      0xa5
 56 
 57 /* useful Logitech Mouse macros */
 58 
 59 #define MSE_INT_OFF()   outb(MSE_DISABLE_INTERRUPTS, MSE_CONTROL_PORT)
 60 #define MSE_INT_ON()    outb(MSE_ENABLE_INTERRUPTS, MSE_CONTROL_PORT)
 61 
 62 /*--------- MICROSOFT BUSMOUSE ITEMS -------------*/
 63 
 64 #define MSBM_BASE                       0x23d
 65 #define MS_MSE_DATA_PORT                0x23d
 66 #define MS_MSE_SIGNATURE_PORT           0x23e
 67 #define MS_MSE_CONTROL_PORT             0x23c
 68 #define MS_MSE_CONFIG_PORT              0x23f
 69 #define MSBM_EXTENT                     0x3
 70 
 71 #define MS_MSE_ENABLE_INTERRUPTS        0x11
 72 #define MS_MSE_DISABLE_INTERRUPTS       0x10
 73 
 74 #define MS_MSE_READ_BUTTONS             0x00
 75 #define MS_MSE_READ_X                   0x01
 76 #define MS_MSE_READ_Y                   0x02
 77 
 78 #define MS_MSE_START                    0x80
 79 #define MS_MSE_COMMAND_MODE             0x07
 80 
 81 /* useful microsoft busmouse macros */
 82 
 83 #define MS_MSE_INT_OFF() {outb(MS_MSE_COMMAND_MODE, MS_MSE_CONTROL_PORT); \
 84                             outb(MS_MSE_DISABLE_INTERRUPTS, MS_MSE_DATA_PORT);}
 85 #define MS_MSE_INT_ON()  {outb(MS_MSE_COMMAND_MODE, MS_MSE_CONTROL_PORT); \
 86                             outb(MS_MSE_ENABLE_INTERRUPTS, MS_MSE_DATA_PORT);}
 87 
 88  
 89 struct mouse_status {
 90         unsigned char   buttons;
 91         unsigned char   latch_buttons;
 92         int             dx;
 93         int             dy;     
 94         int             present;
 95         int             ready;
 96         int             active;
 97         wait_queue_head_t wait;
 98         struct fasync_struct *fasyncptr;
 99 };
100 
101 /* Function Prototypes */
102 
103 #endif
104 
105 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.