- Visual C++源码
- Visual Basic源码
- C++ Builder源码
- Java源码
- Delphi源码
- C/C++源码
- PHP源码
- Perl源码
- Python源码
- Asm源码
- Pascal源码
- Borland C++源码
- Others源码
- SQL源码
- VBScript源码
- JavaScript源码
- ASP/ASPX源码
- C#源码
- Flash/ActionScript源码
- matlab源码
- PowerBuilder源码
- LabView源码
- Flex源码
- MathCAD源码
- VBA源码
- IDL源码
- Lisp/Scheme源码
- VHDL源码
- Objective-C源码
- Fortran源码
- tcl/tk源码
- QT源码
- #ifndef _LINUX_BUSMOUSE_H
- #define _LINUX_BUSMOUSE_H
- /*
- * linux/include/linux/busmouse.h: header file for Logitech Bus Mouse driver
- * by James Banks
- *
- * based on information gleamed from various mouse drivers on the net
- *
- * Heavily modified by David giller (rafetmad@oxy.edu)
- *
- * Minor modifications for Linux 0.96c-pl1 by Nathan Laredo
- * gt7080a@prism.gatech.edu (13JUL92)
- *
- * Microsoft BusMouse support by Teemu Rantanen (tvr@cs.hut.fi) (02AUG92)
- *
- * Microsoft Bus Mouse support modified by Derrick Cole (cole@concert.net)
- * 8/28/92
- *
- * Microsoft Bus Mouse support folded into 0.97pl4 code
- * by Peter Cervasio (pete%q106fm.uucp@wupost.wustl.edu) (08SEP92)
- * Changes: Logitech and Microsoft support in the same kernel.
- * Defined new constants in busmouse.h for MS mice.
- * Added int mse_busmouse_type to distinguish busmouse types
- * Added a couple of new functions to handle differences in using
- * MS vs. Logitech (where the int variable wasn't appropriate).
- *
- */
- #define MOUSE_IRQ 5
- #define LOGITECH_BUSMOUSE 0 /* Minor device # for Logitech */
- #define MICROSOFT_BUSMOUSE 2 /* Minor device # for Microsoft */
- /*--------- LOGITECH BUSMOUSE ITEMS -------------*/
- #define LOGIBM_BASE 0x23c
- #define MSE_DATA_PORT 0x23c
- #define MSE_SIGNATURE_PORT 0x23d
- #define MSE_CONTROL_PORT 0x23e
- #define MSE_INTERRUPT_PORT 0x23e
- #define MSE_CONFIG_PORT 0x23f
- #define LOGIBM_EXTENT 0x4
- #define MSE_ENABLE_INTERRUPTS 0x00
- #define MSE_DISABLE_INTERRUPTS 0x10
- #define MSE_READ_X_LOW 0x80
- #define MSE_READ_X_HIGH 0xa0
- #define MSE_READ_Y_LOW 0xc0
- #define MSE_READ_Y_HIGH 0xe0
- /* Magic number used to check if the mouse exists */
- #define MSE_CONFIG_BYTE 0x91
- #define MSE_DEFAULT_MODE 0x90
- #define MSE_SIGNATURE_BYTE 0xa5
- /* useful Logitech Mouse macros */
- #define MSE_INT_OFF() outb(MSE_DISABLE_INTERRUPTS, MSE_CONTROL_PORT)
- #define MSE_INT_ON() outb(MSE_ENABLE_INTERRUPTS, MSE_CONTROL_PORT)
- /*--------- MICROSOFT BUSMOUSE ITEMS -------------*/
- #define MSBM_BASE 0x23d
- #define MS_MSE_DATA_PORT 0x23d
- #define MS_MSE_SIGNATURE_PORT 0x23e
- #define MS_MSE_CONTROL_PORT 0x23c
- #define MS_MSE_CONFIG_PORT 0x23f
- #define MSBM_EXTENT 0x3
- #define MS_MSE_ENABLE_INTERRUPTS 0x11
- #define MS_MSE_DISABLE_INTERRUPTS 0x10
- #define MS_MSE_READ_BUTTONS 0x00
- #define MS_MSE_READ_X 0x01
- #define MS_MSE_READ_Y 0x02
- #define MS_MSE_START 0x80
- #define MS_MSE_COMMAND_MODE 0x07
- /* useful microsoft busmouse macros */
- #define MS_MSE_INT_OFF() {outb(MS_MSE_COMMAND_MODE, MS_MSE_CONTROL_PORT);
- outb(MS_MSE_DISABLE_INTERRUPTS, MS_MSE_DATA_PORT);}
- #define MS_MSE_INT_ON() {outb(MS_MSE_COMMAND_MODE, MS_MSE_CONTROL_PORT);
- outb(MS_MSE_ENABLE_INTERRUPTS, MS_MSE_DATA_PORT);}
- struct mouse_status {
- unsigned char buttons;
- unsigned char latch_buttons;
- int dx;
- int dy;
- int present;
- int ready;
- int active;
- wait_queue_head_t wait;
- struct fasync_struct *fasyncptr;
- };
- /* Function Prototypes */
- #endif