summaryrefslogtreecommitdiff
path: root/sbin
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2002-08-12 10:46:55 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2002-08-12 10:46:55 +0000
commitc7bcc4cdd2ce8ce1f2f046d848e14fd6a8b0f4a3 (patch)
treee08f113efb3b41ae53a9d1b22714602d77bd8b34 /sbin
parent4873d53a0fe39e573dcb4495ffa783b75ef02742 (diff)
Enable wscons code on sparc, and let kbd_sparc.c die
Diffstat (limited to 'sbin')
-rw-r--r--sbin/kbd/Makefile10
-rw-r--r--sbin/kbd/kbd_sparc.c274
2 files changed, 2 insertions, 282 deletions
diff --git a/sbin/kbd/Makefile b/sbin/kbd/Makefile
index 1be751a0f28..240623dc14a 100644
--- a/sbin/kbd/Makefile
+++ b/sbin/kbd/Makefile
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile,v 1.14 2002/04/19 00:05:20 miod Exp $
+# $OpenBSD: Makefile,v 1.15 2002/08/12 10:46:54 miod Exp $
.if (${MACHINE} == "alpha") || (${MACHINE} == "hppa") || \
(${MACHINE} == "i386") || (${MACHINE} == "macppc") || \
@@ -6,16 +6,10 @@
(${MACHINE} == "vax")
PROG= kbd
-SRCS= main.c
+SRCS= main.c kbd_wscons.c
CFLAGS+=-I${.CURDIR}
-
-.if (${MACHINE} == "sparc")
-SRCS+= kbd_sparc.c
-.else
-SRCS+= kbd_wscons.c
LDADD= -lkvm
DPADD= ${LIBKVM}
-.endif
.else
NOPROG= Yes
diff --git a/sbin/kbd/kbd_sparc.c b/sbin/kbd/kbd_sparc.c
deleted file mode 100644
index 3dce5366567..00000000000
--- a/sbin/kbd/kbd_sparc.c
+++ /dev/null
@@ -1,274 +0,0 @@
-/* $OpenBSD: kbd_sparc.c,v 1.7 2002/07/03 22:32:33 deraadt Exp $ */
-
-/*
- * Copyright (c) 1999 Mats O Jansson. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Mats O Jansson.
- * 4. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <stdio.h>
-#include <fcntl.h>
-#include <sparc/kbio.h>
-#include <sparc/kbd.h>
-#include <sys/ioctl.h>
-
-#define NUM_KEYS 128 /* Number of scan codes */
-#define NUM_NAMES 10 /* Number of names for a map */
-
-#define PATH_KBD "/dev/kbd"
-
-#define ALL(s,n) (s), (s), (s), (s), (n), (s),
-#define BB(s) (FUNNY+(s))
-#define SK(s) (SHIFTKEYS+(s))
-#define ST(s) (0x500+(s))
-#define GR(s) (0x400+(s))
-#define C8(s) ((u_char)(s))
-
-typedef struct {
- u_short unshift;
- u_short shift;
- u_short caps;
- u_short altgr;
- u_short numl;
- u_short control;
-} keymap_t;
-
-struct {
- char *name[NUM_NAMES];
- keymap_t map[NUM_KEYS];
-} keymaps[] = {
-
- {
-#include "tables/sparc/us"
- },
- {
-#include "tables/sparc/be_fr"
- },
- {
-#include "tables/sparc/ca"
- },
- {
-#include "tables/sparc/dk"
- },
- {
-#include "tables/sparc/de"
- },
- {
-#include "tables/sparc/it"
- },
- {
-#include "tables/sparc/nl"
- },
- {
-#include "tables/sparc/no"
- },
- {
-#include "tables/sparc/pt"
- },
- {
-#include "tables/sparc/es"
- },
- {
-#include "tables/sparc/se_fi"
- },
- {
-#include "tables/sparc/ch_fr"
- },
- {
-#include "tables/sparc/ch_de"
- },
- {
-#include "tables/sparc/uk"
- },
- {
-#include "tables/sparc/us_5"
- },
- {
-#include "tables/sparc/fr_5"
- },
- {
-#include "tables/sparc/dk_5"
- },
- {
-#include "tables/sparc/de_5"
- },
- {
-#include "tables/sparc/it_5"
- },
- {
-#include "tables/sparc/nl_5"
- },
- {
-#include "tables/sparc/no_5"
- },
- {
-#include "tables/sparc/pt_5"
- },
- {
-#include "tables/sparc/es_5"
- },
- {
-#include "tables/sparc/se_5"
- },
- {
-#include "tables/sparc/ch_fr_5"
- },
- {
-#include "tables/sparc/ch_de_5"
- },
- {
-#include "tables/sparc/uk_5"
- },
- {
- { NULL }
- }
-};
-
-extern char *__progname;
-
-char *
-kbd_find_default(void)
-{
- int i, j, fd, r, ok;
- int t = KB_SUN4;
- int l = 0;
- char defaultmap[30];
- char *ret;
-
- /* Generate the default map name */
-
- fd = open(PATH_KBD, O_RDONLY);
- if (fd != -1) {
- r = ioctl(fd, KIOCTYPE, &t);
- r = ioctl(fd, KIOCLAYOUT, &l);
- close(fd);
- }
- snprintf(defaultmap,sizeof(defaultmap),"type_%d_layout_%02x\0",t,l);
-
- /* Check if it exist, if not use "type_4_layout_00" */
-
- ret = keymaps[0].name[0];
-
- for (i = 0; keymaps[i].name[0]; i++) {
- ok = 0;
- for (j = 1; j < NUM_NAMES && keymaps[i].name[j]; j++)
- ok |= (strcmp(keymaps[i].name[j],defaultmap) == 0);
- if (ok) ret = keymaps[i].name[0];
- }
-
- return(ret);
-
-}
-
-void
-kbd_list(void)
-{
- int i, j;
- char *defmap;
-
- defmap = kbd_find_default();
-
- printf("tables available:\n%-16s %s\n\n",
- "encoding", "nick names");
- for (i = 0; keymaps[i].name[0]; i++) {
- printf("%-16s",keymaps[i].name[0]);
- for (j = 1; j < NUM_NAMES && keymaps[i].name[j]; j++)
- printf(" %s", keymaps[i].name[j]);
- if (keymaps[i].name[0] == defmap) printf(" default");
- printf("\n");
- }
-}
-
-void
-kbd_set(char *name, int verbose)
-{
- int i, j, fd, r;
- keymap_t *map = NULL;
- int x[] = { KIOC_NOMASK, KIOC_SHIFTMASK, KIOC_CAPSMASK,
- KIOC_ALTGMASK, KIOC_NUMLMASK, KIOC_CTRLMASK };
- struct kiockey k;
-
- if(strcmp(name,"default") == 0) {
- name = kbd_find_default();
- }
-
- for (i = 0; keymaps[i].name[0]; i++)
- for (j = 0; j < NUM_NAMES && keymaps[i].name[j]; j++)
- if (strcmp(keymaps[i].name[j], name) == 0) {
- name = keymaps[i].name[0];
- map = keymaps[i].map;
- break;
- }
-
- if (map == NULL) {
- fprintf(stderr, "%s: no such keymap: %s\n",
- __progname, name);
- exit(1);
- }
-
- fd = open(PATH_KBD, O_RDWR);
- if (fd == -1) {
- perror(PATH_KBD);
- exit(1);
- }
-
- for (i = 0; i < 128; i++) {
- for (j = 0; j < 6; j++) {
- k.kio_tablemask = x[j];
- k.kio_station = i;
- switch(j) {
- case 0:
- k.kio_entry = map[i].unshift;
- break;
- case 1:
- k.kio_entry = map[i].shift;
- break;
- case 2:
- k.kio_entry = map[i].caps;
- break;
- case 3:
- k.kio_entry = map[i].altgr;
- break;
- case 4:
- k.kio_entry = map[i].numl;
- break;
- case 5:
- k.kio_entry = map[i].control;
- break;
- }
- r = ioctl(fd, KIOCSKEY, &k);
- }
- }
- close(fd);
-
- if (r == -1) {
- printf("failure to set keyboard mapping\n");
- return;
- }
-
- if (verbose)
- fprintf(stderr, "keyboard mapping set to %s\n", name);
-}