summaryrefslogtreecommitdiffstats
path: root/sys/dev/sun/sunkbdmap.c
diff options
context:
space:
mode:
authormiod <miod@openbsd.org>2009-01-11 18:59:54 +0000
committermiod <miod@openbsd.org>2009-01-11 18:59:54 +0000
commit8ff6df28bef6fbc0db477f90d45286da8ee1d407 (patch)
treeda693ca60aa392f3680dc3929aefad9438cb1af3 /sys/dev/sun/sunkbdmap.c
parentbackout revision 1.109 (diff)
downloadwireguard-openbsd-8ff6df28bef6fbc0db477f90d45286da8ee1d407.tar.xz
wireguard-openbsd-8ff6df28bef6fbc0db477f90d45286da8ee1d407.zip
WSDISPLAY_COMPAT_RAWKBD support for sun serial keyboards (zskbd, comkbd).
Diffstat (limited to 'sys/dev/sun/sunkbdmap.c')
-rw-r--r--sys/dev/sun/sunkbdmap.c141
1 files changed, 140 insertions, 1 deletions
diff --git a/sys/dev/sun/sunkbdmap.c b/sys/dev/sun/sunkbdmap.c
index e4c3cc75f17..b35c57e3c0b 100644
--- a/sys/dev/sun/sunkbdmap.c
+++ b/sys/dev/sun/sunkbdmap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sunkbdmap.c,v 1.1 2005/05/14 15:25:20 miod Exp $ */
+/* $OpenBSD: sunkbdmap.c,v 1.2 2009/01/11 18:59:54 miod Exp $ */
/*
* Copyright (c) 2002, 2003 Miodrag Vallat.
@@ -46,6 +46,145 @@
#include <dev/sun/sunkbdreg.h>
#include <dev/sun/sunkbdvar.h>
+#ifdef WSDISPLAY_COMPAT_RAWKBD
+#include <dev/wscons/wskbdraw.h>
+
+/*
+ * Translate Sun keycodes to US keyboard XT scancodes, for proper
+ * X11-over-wsmux operation.
+ */
+const u_int8_t sunkbd_rawmap[0x80] = {
+ RAWKEY_Null,
+ RAWKEY_L1,
+ RAWKEY_AudioLower,
+ RAWKEY_L2,
+ RAWKEY_AudioRaise,
+ RAWKEY_f1,
+ RAWKEY_f2,
+ RAWKEY_f10,
+ RAWKEY_f3,
+ RAWKEY_f11,
+ RAWKEY_f4,
+ RAWKEY_f12,
+ RAWKEY_f5,
+ RAWKEY_Alt_R,
+ RAWKEY_f6,
+ RAWKEY_Null,
+ RAWKEY_f7,
+ RAWKEY_f8,
+ RAWKEY_f9,
+ RAWKEY_Alt_L,
+ RAWKEY_Up,
+ RAWKEY_Pause,
+ RAWKEY_Print_Screen,
+ RAWKEY_Hold_Screen,
+ RAWKEY_Left,
+ RAWKEY_L3,
+ RAWKEY_L4,
+ RAWKEY_Down,
+ RAWKEY_Right,
+ RAWKEY_Escape,
+ RAWKEY_1,
+ RAWKEY_2,
+ RAWKEY_3,
+ RAWKEY_4,
+ RAWKEY_5,
+ RAWKEY_6,
+ RAWKEY_7,
+ RAWKEY_8,
+ RAWKEY_9,
+ RAWKEY_0,
+ RAWKEY_minus,
+ RAWKEY_equal,
+ RAWKEY_grave,
+ RAWKEY_BackSpace,
+ RAWKEY_Insert,
+ RAWKEY_KP_Equal,
+ RAWKEY_KP_Divide,
+ RAWKEY_KP_Multiply,
+ RAWKEY_Null,
+ RAWKEY_L5,
+ RAWKEY_KP_Delete,
+ RAWKEY_L6,
+ RAWKEY_Home,
+ RAWKEY_Tab,
+ RAWKEY_q,
+ RAWKEY_w,
+ RAWKEY_e,
+ RAWKEY_r,
+ RAWKEY_t,
+ RAWKEY_y,
+ RAWKEY_u,
+ RAWKEY_i,
+ RAWKEY_o,
+ RAWKEY_p,
+ RAWKEY_bracketleft,
+ RAWKEY_bracketright,
+ RAWKEY_Delete,
+ RAWKEY_Alt_R,
+ RAWKEY_KP_Home,
+ RAWKEY_KP_Up,
+ RAWKEY_KP_Prior,
+ RAWKEY_KP_Subtract,
+ RAWKEY_L7,
+ RAWKEY_L8,
+ RAWKEY_End,
+ RAWKEY_Null,
+ RAWKEY_Control_L,
+ RAWKEY_a,
+ RAWKEY_s,
+ RAWKEY_d,
+ RAWKEY_f,
+ RAWKEY_g,
+ RAWKEY_h,
+ RAWKEY_j,
+ RAWKEY_k,
+ RAWKEY_l,
+ RAWKEY_semicolon,
+ RAWKEY_apostrophe,
+ RAWKEY_backslash,
+ RAWKEY_Return,
+ RAWKEY_KP_Enter,
+ RAWKEY_KP_Left,
+ RAWKEY_KP_Begin,
+ RAWKEY_KP_Right,
+ RAWKEY_KP_Insert,
+ RAWKEY_L9,
+ RAWKEY_Prior,
+ RAWKEY_L10,
+ RAWKEY_Num_Lock,
+ RAWKEY_Shift_L,
+ RAWKEY_z,
+ RAWKEY_x,
+ RAWKEY_c,
+ RAWKEY_v,
+ RAWKEY_b,
+ RAWKEY_n,
+ RAWKEY_m,
+ RAWKEY_comma,
+ RAWKEY_period,
+ RAWKEY_slash,
+ RAWKEY_Shift_R,
+ RAWKEY_Null, /* KS_Linefeed on type 3/4 */
+ RAWKEY_KP_End,
+ RAWKEY_KP_Down,
+ RAWKEY_KP_Next,
+ RAWKEY_Null,
+ RAWKEY_Null,
+ RAWKEY_Null,
+ RAWKEY_Help,
+ RAWKEY_Caps_Lock,
+ RAWKEY_Meta_L,
+ RAWKEY_space,
+ RAWKEY_Meta_R,
+ RAWKEY_Next,
+ RAWKEY_Null,
+ RAWKEY_KP_Add,
+ RAWKEY_Null,
+ RAWKEY_Null
+};
+#endif
+
#define KC(n) KS_KEYCODE(n)
/* 000/021/022 US English type 4/5 keyboard */