keymap
keymap_t *keymap;
keymap = &default_keymap;
keymap = malloc(sizeof(key_map), M_DEVBUF, M_NOWAIT);
if ((kbd == NULL) || (state == NULL) || (keymap == NULL)
keymap = kbd->kb_keymap;
bcopy(&key_map, keymap, sizeof(key_map));
kbd_set_maps(kbd, keymap, accmap, fkeymap, fkeymap_size);
if (keymap != NULL)
free(keymap, M_DEVBUF);
kbd_set_maps(keyboard_t *kbd, keymap_t *keymap, accentmap_t *accmap,
kbd->kb_keymap = keymap;
struct keymap *kb_keymap; /* key map */
void kbd_set_maps(keyboard_t *kbd, struct keymap *keymap,
struct keymap;
keymap_t *keymap = NULL;
keymap = malloc(sizeof(key_map), M_KBDMUX, M_NOWAIT);
if ((kbd == NULL) || (state == NULL) || (keymap == NULL) ||
keymap = kbd->kb_keymap;
bcopy(&key_map, keymap, sizeof(key_map));
kbd_set_maps(kbd, keymap, accmap, fkeymap, fkeymap_size);
if (keymap != NULL)
free(keymap, M_KBDMUX);
keymap_t *keymap = NULL;
keymap = malloc(sizeof(key_map), M_VKBD, M_NOWAIT);
if ((kbd == NULL) || (state == NULL) || (keymap == NULL) ||
keymap = kbd->kb_keymap;
bcopy(&key_map, keymap, sizeof(key_map));
kbd_set_maps(kbd, keymap, accmap, fkeymap, fkeymap_size);
if (keymap != NULL)
free(keymap, M_VKBD);
typedef struct keymap keymap_t;
for (i = 0; i < nitems(keymap); i++)
if (keymap[i] != NONE &&
ioctl(fd, UI_SET_KEYBIT, keymap[i]) < 0)
if (key >= 0 && key < (int32_t)nitems(keymap) &&
keymap[key] != NONE) {
if (uinput_write_event(fd, EV_KEY, keymap[key], make) > 0 &&
static uint16_t const keymap[0x100] = {
static void dump_key_definition(char *name, keymap_t *keymap);
get_definition_line(FILE *file, keymap_t *keymap, accentmap_t *accentmap)
c = get_key_definition_line(keymap);
if (c > keymap->n_keys)
keymap->n_keys = c;
dump_key_definition(char *name, keymap_t *keymap)
name, (unsigned)keymap->n_keys);
for (i = 0; i < keymap->n_keys; i++) {
if (keymap->key[i].spcl & (0x80 >> j))
dump_entry(keymap->key[i].map[j] | SPECIAL);
dump_entry(keymap->key[i].map[j]);
(unsigned)keymap->key[i].spcl,
(unsigned)keymap->key[i].flgs);
keymap_t keymap;
memset(&keymap, 0, sizeof(keymap));
if (get_definition_line(file, &keymap, &accentmap) < 0)
dump_key_definition(opt, &keymap);
if ((keymap.n_keys > 0) && (ioctl(0, PIO_KEYMAP, &keymap) < 0)) {
keymap_t keymap;
if (ioctl(0, GIO_KEYMAP, &keymap) < 0)
for (i=0; i<keymap.n_keys; i++)
print_key_definition_line(stdout, i, &keymap.key[i]);
struct keymap *km;
SLIST_REMOVE(&head, km, keymap, entries);
struct keymap *km, *km_new;
km_new = (struct keymap *) malloc (sizeof(struct keymap));
do_kbdcontrol(struct keymap *km)
do_vidfont(struct keymap *km)
show_dialog(struct keymap **km_sorted, int num_keymaps)
const struct keymap *km1 = *((const struct keymap * const *) a);
const struct keymap *km2 = *((const struct keymap * const *) b);
kludge_desc(struct keymap **km_sorted, int num_keymaps)
unkludge_desc(struct keymap **km_sorted, int num_keymaps)
struct keymap *km;
struct keymap **km_sorted;
SLIST_ENTRY(keymap) entries;
static SLIST_HEAD(slisthead, keymap) head = SLIST_HEAD_INITIALIZER(head);
km_sorted = (struct keymap **)
malloc(num_keymaps*sizeof(struct keymap *));
qsort(km_sorted, num_keymaps, sizeof(struct keymap *), compare_keymap);
static struct keymap *
struct keymap *km;
struct keymap *km;