Date: Mon, 15 Apr 1996 09:19:24 EST From: "Kaleb S. KEITHLEY" <kaleb@x.org> To: J Wunsch <j@uriah.heep.sax.de> Cc: hackers@freefall.FreeBSD.org Subject: kernel support for keyboards Message-ID: <199604151319.JAA21967@exalt.x.org>
index | next in thread | raw e-mail
No comments from the FreeBSD core tem in 48 hours. Maybe that's too early.
Diffs are relative to 2.1.0R but look like they should apply cleanly
to -current. kbdcontrol changes next, and then I'll give changes to
XFree86 for the server.
*** i386/include/cpu.h.orig Sun Apr 14 13:24:41 1996
--- i386/include/cpu.h Mon Apr 15 09:10:56 1996
***************
*** 114,126 ****
#define CPU_CONSDEV 1 /* dev_t: console terminal device */
#define CPU_ADJKERNTZ 2 /* int: timezone offset for resettodr() */
#define CPU_DISRTCSET 3 /* int: disable resettodr() call */
! #define CPU_MAXID 4 /* number of valid machdep ids */
#define CTL_MACHDEP_NAMES { \
{ 0, 0 }, \
{ "console_device", CTLTYPE_STRUCT }, \
{ "adjkerntz", CTLTYPE_INT }, \
{ "disable_rtc_set", CTLTYPE_INT }, \
}
#ifdef KERNEL
--- 114,141 ----
#define CPU_CONSDEV 1 /* dev_t: console terminal device */
#define CPU_ADJKERNTZ 2 /* int: timezone offset for resettodr() */
#define CPU_DISRTCSET 3 /* int: disable resettodr() call */
! #define CPU_KEYMAPNAME 4 /* string: keymap name */
! #define CPU_KEYMAP 5 /* struct: keymap */
! #define CPU_KBDTYPE 6 /* int: keyboard type */
! #define CPU_MAXID 7 /* number of valid machdep ids */
!
! #define KBDTYPE_84 0 /* Xt-style 84 key keyboard */
! #define KBDTYPE_101 1 /* Generic 101 key keyboard */
! #define KBDTYPE_102 2 /* Euro 102 key keyboard */
! #define KBDTYPE_104 3 /* 104 key keyboard */
! #define KBDTYPE_104E 4 /* 104 key ergo keyboard */
! #define KBDTYPE_MARQUARDT 5 /* Marquardt ergo keyboard */
! #define KBDTYPE_FLEXPRO 6 /* Key Tronic Flexpro ergo keyboard */
! #define KBDTYPE_DATAHAND 7 /* DataHand ergo keyboard */
#define CTL_MACHDEP_NAMES { \
{ 0, 0 }, \
{ "console_device", CTLTYPE_STRUCT }, \
{ "adjkerntz", CTLTYPE_INT }, \
{ "disable_rtc_set", CTLTYPE_INT }, \
+ { "keymap_name", CTLTYPE_STRING }, \
+ { "keymap", CTLTYPE_STRUCT }, \
+ { "kbd_type", CTLTYPE_INT }, \
}
#ifdef KERNEL
*** i386/i386/machdep.c.orig Mon Apr 15 08:43:31 1996
--- i386/i386/machdep.c Sun Apr 14 14:19:52 1996
***************
*** 117,122 ****
--- 117,123 ----
#include <machine/specialreg.h>
#include <machine/sysarch.h>
#include <machine/cons.h>
+ #include <machine/console.h>
#include <machine/devconf.h>
#include <machine/bootinfo.h>
#include <machine/md_var.h>
***************
*** 188,193 ****
--- 189,216 ----
void dumpsys __P((void));
void setup_netisrs __P((struct linker_set *)); /* XXX declare elsewhere */
+ static int kbdtype = KBDTYPE_101;
+ static char keymapname[MAXPATHLEN] =
+ #ifdef DKKEYMAP
+ "danish.iso.kbd"; /* s/b "dk.iso.kbd" */
+ #endif
+ #ifdef UKKEYMAP /* s/b GBKEYMAP */
+ "uk.iso.kbd"; /* s/b "gb.iso.kbd" */
+ #endif
+ #ifdef GRKEYMAP /* s/b DEKEYMAP */
+ "german.iso.kbd"; /* s/b "de.iso.kbd" */
+ #endif
+ #ifdef SWKEYMAP /* s/b SEKEYMAP */
+ "swedish.iso.kbd"; /* s/b se.iso.kbd */
+ #endif
+ #ifdef RUKEYMAP
+ "ru.koi8-r.kbd"; /* just a guess */
+ #endif
+ #if !defined(DKKEYMAP) && !defined(UKKEYMAP) && !defined(GRKEYMAP) && !defined(SWKEYMAP) && !defined(RUKEYMAP)
+ "us.iso.kbd";
+ #endif
+ extern keymap_t key_map;
+
vm_offset_t buffer_sva, buffer_eva;
vm_offset_t clean_sva, clean_eva;
vm_offset_t pager_sva, pager_eva;
***************
*** 1031,1036 ****
--- 1054,1067 ----
return error;
case CPU_DISRTCSET:
return (sysctl_int(oldp, oldlenp, newp, newlen, &disable_rtc_set));
+ case CPU_KEYMAPNAME:
+ return (sysctl_string(oldp, oldlenp, newp, newlen,
+ keymapname, sizeof keymapname));
+ case CPU_KEYMAP:
+ return (sysctl_struct(oldp, oldlenp, newp, newlen,
+ &key_map, sizeof key_map));
+ case CPU_KBDTYPE:
+ return (sysctl_int(oldp, oldlenp, newp, newlen, &kbdtype));
default:
return (EOPNOTSUPP);
}
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199604151319.JAA21967>
