Rev 895 | Rev 1193 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 895 | Rev 958 | ||
|---|---|---|---|
| Line 263... | Line 263... | ||
| 263 | SPECIAL, /* 0x7d */ |
263 | SPECIAL, /* 0x7d */ |
| 264 | SPECIAL, /* 0x7e */ |
264 | SPECIAL, /* 0x7e */ |
| 265 | SPECIAL, /* 0x7f */ |
265 | SPECIAL, /* 0x7f */ |
| 266 | }; |
266 | }; |
| 267 | 267 | ||
| 268 | static void i8042_interrupt(int n, void *stack); |
268 | static void i8042_interrupt(int n, istate_t *istate); |
| 269 | static void i8042_wait(void); |
269 | static void i8042_wait(void); |
| 270 | 270 | ||
| 271 | /** Initialize i8042. */ |
271 | /** Initialize i8042. */ |
| 272 | void i8042_init(void) |
272 | void i8042_init(void) |
| 273 | { |
273 | { |
| 274 | exc_register(VECTOR_KBD, "i8042_interrupt", i8042_interrupt); |
274 | exc_register(VECTOR_KBD, "i8042_interrupt", (iroutine) i8042_interrupt); |
| 275 | i8042_wait(); |
275 | i8042_wait(); |
| 276 | i8042_command_write(i8042_SET_COMMAND); |
276 | i8042_command_write(i8042_SET_COMMAND); |
| 277 | i8042_wait(); |
277 | i8042_wait(); |
| 278 | i8042_data_write(i8042_COMMAND); |
278 | i8042_data_write(i8042_COMMAND); |
| 279 | i8042_wait(); |
279 | i8042_wait(); |
| Line 286... | Line 286... | ||
| 286 | /** Process i8042 interrupt. |
286 | /** Process i8042 interrupt. |
| 287 | * |
287 | * |
| 288 | * @param n Interrupt vector. |
288 | * @param n Interrupt vector. |
| 289 | * @param stack Interrupted stack. |
289 | * @param stack Interrupted stack. |
| 290 | */ |
290 | */ |
| 291 | void i8042_interrupt(int n, void *stack) |
291 | void i8042_interrupt(int n, istate_t *istate) |
| 292 | { |
292 | { |
| 293 | __u8 x; |
293 | __u8 x; |
| 294 | 294 | ||
| 295 | trap_virtual_eoi(); |
295 | trap_virtual_eoi(); |
| 296 | x = i8042_data_read(); |
296 | x = i8042_data_read(); |