keysym
int down, uint32_t keysym, uint32_t keycode)
if (keysym < 0x80) {
code = ascii_translations[keysym];
trans->keysym != 0; trans++) {
if (keysym == trans->keysym) {
EPRINTLN("Unhandled ps2 keyboard keysym 0x%x", keysym);
ps2kbd_event(int down, uint32_t keysym, uint32_t keycode, void *arg)
ps2kbd_keysym_queue(sc, down, keysym, keycode);
if (extended_translations[i].keysym == keycode)
} while (extended_translations[++i].keysym);
if (!extended_translations[i].keysym) {
extended_translations[i].keysym = keycode;
extended_translations[i+1].keysym = 0;
uint32_t keysym;
console_key_event(int down, uint32_t keysym, uint32_t keycode)
(*console.kbd_event_cb)(down, keysym, keycode, console.kbd_arg);
typedef void (*kbd_event_func_t)(int down, uint32_t keysym, uint32_t keycode, void *arg);
void console_key_event(int down, uint32_t keysym, uint32_t keycode);
static struct keysym keysym_table[] =
KeySym *keysym; /* The binding-table entry matching the arrow-key name */
if(_kt_lookup_keybinding(gl->bindings, name, strlen(name), &keysym, &nsym)
KtAction *action = keysym->actions + keysym->binder;
KeySym *keysym; /* The symbol-table entry of a key-sequence */
switch(_kt_lookup_keybinding(gl->bindings, keyseq, nkey, &keysym, &nsym)) {
action = keysym->actions + keysym->binder;