-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjoystick.h
executable file
·59 lines (53 loc) · 2.35 KB
/
joystick.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/*#include <linux/sched.h>
#include <linux/errno.h>
#include <linux/major.h>
#include <asm/io.h>
#include <asm/segment.h>
#include <asm/system.h>
#include <linux/module.h> */
#define JS_RETURN sizeof(struct JS_DATA_TYPE) /*number of bytes returned by js_read */
#define JS_TRUE 1
#define JS_FALSE 0
#define JS_PORT 0x201 /*io port for joystick operations */
#define JS_DEF_TIMEOUT 0x1300 /*default timeout value for js_read() */
#define JS_DEF_CORR 0 /*default correction factor */
#define JS_DEF_TIMELIMIT 10L /*default data valid time =10 jiffies == 100ms */
#define JS_X_0 0x01 /*bit mask for x-axis js0 */
#define JS_Y_0 0x02 /*bit mask for y-axis js0 */
#define JS_X_1 0x04 /*bit mask for x-axis js1 */
#define JS_Y_1 0x08 /*bit mask for y-axis js1 */
#define JS_MAX 2 /*Max number of joysticks */
#define PIT_MODE 0x43 /*io port for timer 0 */
#define PIT_COUNTER_0 0x40 /*io port for timer 0 */
#define JS_SET_CAL 0x01 /*ioctl cmd to set joystick correction factor */
#define JS_GET_CAL 0x02 /*ioctl cmd to get joystick correction factor */
#define JS_SET_TIMEOUT 0x03 /*ioctl cmd to set maximum number of iterations
to wait for a timeout */
#define JS_GET_TIMEOUT 0x04 /*as above, to get */
#define JS_SET_TIMELIMIT 0x05 /*set data retention time */
#define JS_GET_TIMELIMIT 0x06 /*get data retention time */
#define JS_GET_ALL 0x07 /*get the whole JS_DATA[minor] struct */
#define JS_SET_ALL 0x08 /*set the whole JS_DATA[minor] struct
except JS_BUSY! */
/*This union is used for the ioctl to set the scaling factor and to return
the current values for a joystick. 'buttons' is ignored on the ioctl call */
struct JS_DATA_TYPE
{
int buttons;
int x;
int y;
};
/* This struct is used for misc data about the joystick */
struct JS_DATA_SAVE_TYPE
{
int JS_TIMEOUT; /*timeout */
int BUSY; /*joystick is in use */
long JS_EXPIRETIME; /*Time when stick after which stick must be re-read */
long JS_TIMELIMIT; /*Max time before data is invalid */
struct JS_DATA_TYPE JS_SAVE; /*last read data */
struct JS_DATA_TYPE JS_CORR; /*correction factor */
};
#define LATCH (1193180L/HZ) /*initial timer 0 value */
#define DELTA_TIME(X,Y) ((X)-(Y)+(((X)>=(Y))?0:LATCH))
#define CURRENT_JIFFIES (jiffies)
#define JOYSTICK_MAJOR 15