diff options
author | ed <ed@FreeBSD.org> | 2011-07-17 08:19:19 +0000 |
---|---|---|
committer | ed <ed@FreeBSD.org> | 2011-07-17 08:19:19 +0000 |
commit | b700662b066589afc182bbb9bfcd9b2f47ebf7b4 (patch) | |
tree | 00796d2a840b7a11ecdcf2e34011466bf0ee60ec /sys/sys/kbio.h | |
parent | c3314d5c524fc613352a272b035dd5b3e6bea451 (diff) | |
download | FreeBSD-src-b700662b066589afc182bbb9bfcd9b2f47ebf7b4.zip FreeBSD-src-b700662b066589afc182bbb9bfcd9b2f47ebf7b4.tar.gz |
Restore binary compatibility for GIO_KEYMAP and PIO_KEYMAP.
Back in 2009 I changed the ABI of the GIO_KEYMAP and PIO_KEYMAP ioctls
to support wide characters. I created a patch to add ABI compatibility
for the old calls, but I didn't get any feedback to that.
It seems now people are upgrading from 8 to 9 they experience this
issue, so add it anyway.
Diffstat (limited to 'sys/sys/kbio.h')
-rw-r--r-- | sys/sys/kbio.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/sys/sys/kbio.h b/sys/sys/kbio.h index 22b0285..7f17bda 100644 --- a/sys/sys/kbio.h +++ b/sys/sys/kbio.h @@ -120,6 +120,20 @@ struct keymap { }; typedef struct keymap keymap_t; +#ifdef _KERNEL +struct okeyent_t { + u_char map[NUM_STATES]; + u_char spcl; + u_char flgs; +}; + +struct okeymap { + u_short n_keys; + struct okeyent_t key[NUM_KEYS]; +}; +typedef struct okeymap okeymap_t; +#endif /* _KERNEL */ + #endif /* !_KEYMAP_DECLARED */ /* defines for "special" keys (spcl bit set in keymap) */ @@ -223,6 +237,10 @@ typedef struct fkeyarg fkeyarg_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) +#ifdef _KERNEL +#define OGIO_KEYMAP _IOR('k', 6, okeymap_t) +#define OPIO_KEYMAP _IOW('k', 7, okeymap_t) +#endif /* _KERNEL */ #define GIO_DEADKEYMAP _IOR('k', 8, accentmap_t) #define PIO_DEADKEYMAP _IOW('k', 9, accentmap_t) #define GIO_KEYMAPENT _IOWR('k', 10, keyarg_t) |