Subversion Repositories shark

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
494 giacomo 1
/*
2
 * Project: S.Ha.R.K.
3
 *
4
 * Coordinators:
5
 *   Giorgio Buttazzo    <giorgio@sssup.it>
6
 *   Paolo Gai           <pj@gandalf.sssup.it>
7
 *
8
 * Authors     :
9
 *   Mauro Marinoni      <mauro.marinoni@unipv.it>
10
 *
11
 *
12
 * ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
13
 *
14
 * http://www.sssup.it
15
 * http://retis.sssup.it
16
 * http://shark.sssup.it
17
 */
18
 
19
#include <kernel/func.h>
20
 
21
/* System */
22
extern int input_init(void);
23
extern int input_exit(void);
24
 
25
extern int serio_init(void);
26
extern int serio_exit(void);
27
 
28
/* Controllers */
29
extern int i8042_init(void);
30
extern int i8042_exit(void);
31
 
32
/*extern int serport_init(void);
33
extern int serport_exit(void);*/
34
 
35
/* Devices */
36
extern int atkbd_init(void);
37
extern int atkbd_exit(void);
38
 
39
extern int pcspkr_init(void);
40
extern int pcspkr_exit(void);
41
 
42
extern int psmouse_init(void);
43
extern int psmouse_exit(void);
44
 
45
extern int ns558_init(void);
46
extern int ns558_exit(void);
47
 
48
extern int analog_init(void);
49
extern int analog_exit(void);
50
 
51
extern int joydump_init(void);
52
extern int joydump_exit(void);
53
 
54
/* Handlers */
55
extern int evbug_init(void);
56
extern int evbug_exit(void);
57
 
58
/*extern int evdev_init(void);
59
extern int evdev_exit(void);
60
 
61
extern int mousedev_init(void);
62
extern int mousedev_exit(void);
63
 
64
extern int joydev_init(void);
65
extern int joydev_exit(void);*/
66
 
67
int     input_initialized = 0;
68
 
69
/* Init the Linux Input Layer */
70
int INPUT26_init() {
71
 
72
        int ret;
73
 
74
        ret = input_init();
75
        if (ret) {
76
                printk(KERN_DEBUG "Input_Init return: %d\n", ret);
77
                return -1;
78
        }
79
 
80
        ret = serio_init();
81
        if (ret) {
82
                printk(KERN_DEBUG "Serio_Init return: %d\n", ret);
83
                return -1;
84
        }
85
 
86
        ret = i8042_init();
87
        if (ret) {
88
                printk(KERN_DEBUG "i8042_Init return: %d\n", ret);
89
                return -1;
90
        }
91
 
92
        /* TODO
93
        ret = serport_init();
94
        if (ret) {
95
                printk(KERN_DEBUG "SerPort_Init return: %d\n", ret);
96
                return -1;
97
        } */
98
 
99
        input_initialized = 1;
100
 
101
        return ret;
102
}
103
 
104
int INPUT26_close() {
105
 
106
        if (input_initialized) {
107
                i8042_exit();
108
                serio_exit();
109
                input_exit();
110
        }
111
 
112
        return 0;
113
}
114
 
115
/* Init the Linux Keyboard Driver */
116
int KEYB26_init() {
117
 
118
        int ret;
119
 
120
        if (!input_initialized)
121
                if (INPUT26_init()) {
122
                        printk(KERN_ERR "Unable to open Input SubSystem.\n");
123
                        return -1;
124
                }
125
 
126
        printk(KERN_DEBUG "AtKbd_Init start.\n");
127
        ret = atkbd_init();
128
        if (ret) {
129
                printk(KERN_DEBUG "AtKbd_Init return: %d\n", ret);
130
                return -1;
131
        }
132
 
133
        return 0;
134
}
135
 
136
int KEYB26_close() {
137
 
138
        atkbd_exit();
139
        return 0;
140
}
141
 
142
/* Init the Linux Speaker Driver */
143
int SPEAK26_init() {
144
 
145
        int ret;
146
 
147
        if (!input_initialized)
148
                if (INPUT26_init()) {
149
                        printk(KERN_ERR "Unable to open Input SubSystem.\n");
150
                        return -1;
151
                }
152
 
153
        ret = pcspkr_init();
154
        if (ret) {
155
                printk(KERN_DEBUG "PcSpkr_Init return: %d\n", ret);
156
                return -1;
157
        }
158
 
159
        return 0;
160
}
161
 
162
int SPEAK26_close() {
163
 
164
        pcspkr_exit();
165
        return 0;
166
}
167
 
168
/* Init the Linux Speaker Driver */
169
int MOUSE26_init() {
170
 
171
        int ret;
172
 
173
        if (!input_initialized)
174
                if (INPUT26_init()) {
175
                        printk(KERN_ERR "Unable to open Input SubSystem.\n");
176
                        return -1;
177
                }
178
 
179
        ret = psmouse_init();
180
        if (ret) {
181
                printk(KERN_DEBUG "PsMouse_Init return: %d\n", ret);
182
                return -1;
183
        }
184
 
185
        return 0;
186
}
187
 
188
int MOUSE26_close() {
189
 
190
        psmouse_exit();
191
        return 0;
192
}
193
 
194
/* Init the Linux Speaker Driver */
195
/*int joystick_init() {
196
 
197
        int ret;
198
 
199
        if (!input_initialized)
200
                if (shark_input_init()) {
201
                        printk(KERN_ERR "Unable to open Input SubSystem.\n");
202
                        return -1;
203
                }
204
 
205
        ret = ns558_init();
206
        if (ret) {
207
                printk(KERN_DEBUG "Gameport_Init return: %d\n", ret);
208
                return -1;
209
        }
210
 
211
        //ret = analog_init();
212
        ret = joydump_init();
213
        if (ret) {
214
                printk(KERN_DEBUG "Joystick_Init return: %d\n", ret);
215
                return -1;
216
        }
217
 
218
        return 0;
219
}
220
 
221
int joystick_exit() {
222
 
223
        //analog_exit();
224
        joydump_exit();
225
        ns558_exit();
226
        return 0;
227
}*/
228
 
229
int events_init() {
230
        //mousedev_init();
231
        //joydev_init();
232
        //evdev_init();
233
        evbug_init();
234
 
235
        return 0;
236
}
237
 
238
int events_exit() {
239
        evbug_exit();
240
        //evdev_exit();
241
        //joydev_exit();
242
        //mousedev_exit();
243
 
244
        return 0;
245
}
246