diff options
author | ed <ed@FreeBSD.org> | 2009-09-19 17:56:26 +0000 |
---|---|---|
committer | ed <ed@FreeBSD.org> | 2009-09-19 17:56:26 +0000 |
commit | 48c86dac0525a55eff2b75b5ba8dc573d1014cfe (patch) | |
tree | 1c093255582b069eabdbf07475eaefadbeaa94dd /sys/sys/kbio.h | |
parent | 064ad1c10a013fdee8dfa0bfcedcec6231604546 (diff) | |
download | FreeBSD-src-48c86dac0525a55eff2b75b5ba8dc573d1014cfe.zip FreeBSD-src-48c86dac0525a55eff2b75b5ba8dc573d1014cfe.tar.gz |
Make the keyboard layer Unicode aware.
Just take keyent_t to use an u_int to store the Unicode codepoints.
Unfortunately the keymap is now too big to be loaded using an ioctl
argument, so change the ioctl to pick a pointer.
This change breaks kbdcontrol ABI. It doesn't break X11, because X11
doesn't do anything with syscons keymaps. It just switches the device
out of K_XLATE.
Obtained from: //depot/user/ed/newcons/...
Diffstat (limited to 'sys/sys/kbio.h')
-rw-r--r-- | sys/sys/kbio.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/sys/kbio.h b/sys/sys/kbio.h index 6f82c6d..22b0285 100644 --- a/sys/sys/kbio.h +++ b/sys/sys/kbio.h @@ -106,7 +106,7 @@ typedef struct keyboard_repeat keyboard_repeat_t; #define _KEYMAP_DECLARED struct keyent_t { - u_char map[NUM_STATES]; + u_int map[NUM_STATES]; u_char spcl; u_char flgs; #define FLAG_LOCK_O 0 @@ -220,8 +220,9 @@ typedef struct fkeyarg fkeyarg_t; #define GIO_SCRNMAP _IOR('k', 2, scrmap_t) #define PIO_SCRNMAP _IOW('k', 3, scrmap_t) #endif -#define GIO_KEYMAP _IOR('k', 6, keymap_t) -#define PIO_KEYMAP _IOW('k', 7, keymap_t) +/* XXX: Should have keymap_t as an argument, but that's too big for ioctl()! */ +#define GIO_KEYMAP _IO('k', 6) +#define PIO_KEYMAP _IO('k', 7) #define GIO_DEADKEYMAP _IOR('k', 8, accentmap_t) #define PIO_DEADKEYMAP _IOW('k', 9, accentmap_t) #define GIO_KEYMAPENT _IOWR('k', 10, keyarg_t) |