Rev 4347 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4347 | Rev 4348 | ||
---|---|---|---|
Line 195... | Line 195... | ||
195 | #ifdef CONFIG_PC_KBD |
195 | #ifdef CONFIG_PC_KBD |
196 | /* |
196 | /* |
197 | * Initialize the i8042 controller. Then initialize the keyboard |
197 | * Initialize the i8042 controller. Then initialize the keyboard |
198 | * module and connect it to i8042. Enable keyboard interrupts. |
198 | * module and connect it to i8042. Enable keyboard interrupts. |
199 | */ |
199 | */ |
200 | indev_t *kbrdin = i8042_init((i8042_t *) I8042_BASE, IRQ_KBD); |
200 | i8042_instance_t *i8042_instance = i8042_init((i8042_t *) I8042_BASE, IRQ_KBD); |
- | 201 | if (i8042_instance) { |
|
- | 202 | kbrd_instance_t *kbrd_instance = kbrd_init(); |
|
201 | if (kbrdin) { |
203 | if (kbrd_instance) { |
202 | kbrd_init(kbrdin); |
204 | indev_t *sink = stdin_wire(); |
- | 205 | indev_t *kbrd = kbrd_wire(kbrd_instance, sink); |
|
- | 206 | i8042_wire(i8042_instance, kbrd); |
|
203 | trap_virtual_enable_irqs(1 << IRQ_KBD); |
207 | trap_virtual_enable_irqs(1 << IRQ_KBD); |
- | 208 | } |
|
204 | } |
209 | } |
205 | 210 | ||
206 | /* |
211 | /* |
207 | * This is the necessary evil until the userspace driver is entirely |
212 | * This is the necessary evil until the userspace driver is entirely |
208 | * self-sufficient. |
213 | * self-sufficient. |
Line 279... | Line 284... | ||
279 | void *arch_construct_function(fncptr_t *fptr, void *addr, void *caller) |
284 | void *arch_construct_function(fncptr_t *fptr, void *addr, void *caller) |
280 | { |
285 | { |
281 | return addr; |
286 | return addr; |
282 | } |
287 | } |
283 | 288 | ||
- | 289 | void arch_reboot(void) |
|
- | 290 | { |
|
- | 291 | #ifdef CONFIG_PC_KBD |
|
- | 292 | i8042_cpu_reset((i8042_t *) I8042_BASE); |
|
- | 293 | #endif |
|
- | 294 | } |
|
- | 295 | ||
284 | /** @} |
296 | /** @} |
285 | */ |
297 | */ |