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>
next in thread | raw e-mail | index | archive | help
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); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199604151319.JAA21967>