summaryrefslogtreecommitdiffstats
path: root/sys/sys/kbio.h
diff options
context:
space:
mode:
authored <ed@FreeBSD.org>2011-07-17 08:19:19 +0000
committered <ed@FreeBSD.org>2011-07-17 08:19:19 +0000
commitb700662b066589afc182bbb9bfcd9b2f47ebf7b4 (patch)
tree00796d2a840b7a11ecdcf2e34011466bf0ee60ec /sys/sys/kbio.h
parentc3314d5c524fc613352a272b035dd5b3e6bea451 (diff)
downloadFreeBSD-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.h18
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)
OpenPOWER on IntegriCloud