36,7 → 36,6 |
|
#include <arch/kbd.h> |
#include <arch/sgcn.h> |
#include <arch/niagara.h> |
#include <ipc/ipc.h> |
#include <sysinfo.h> |
#include <kbd.h> |
78,25 → 77,9 |
ns16550_cmds |
}; |
|
/** Top-half pseudocode for Niagara keyboard driver. */ |
irq_cmd_t niagara_cmds[] = { |
{ |
CMD_NIAGARA_GETCHAR, |
0, /**< Address. Not used. */ |
0, /**< Value. Not used. */ |
1 /**< Arg 1 will contain the result. */ |
} |
}; |
|
irq_code_t niagara_kbd = { |
1, |
niagara_cmds |
}; |
|
#define KBD_Z8530 1 |
#define KBD_NS16550 2 |
#define KBD_SGCN 3 |
#define KBD_SUN4V 4 |
|
int kbd_arch_init(void) |
{ |
113,13 → 96,9 |
case KBD_SGCN: |
sgcn_init(); |
break; |
case KBD_SUN4V: |
ipc_register_irq(sysinfo_value("kbd.inr"), sysinfo_value("kbd.devno"), 0, &niagara_kbd); |
break; |
default: |
break; |
} |
|
return 0; |
} |
|
129,10 → 108,6 |
if (sysinfo_value("kbd.type") == KBD_SGCN) { |
sgcn_key_pressed(); |
return 1; |
} else if (sysinfo_value("kbd.type") == KBD_SUN4V) { |
char c = IPC_GET_ARG1(*call); |
niagara_key_pressed(c); |
return 1; |
} |
|
int scan_code = IPC_GET_ARG1(*call); |