1 1.5 isaki /* $NetBSD: loadkmap.c,v 1.5 2003/05/17 10:37:56 isaki Exp $ */ 2 1.1 oki /* 3 1.1 oki * loadkmap - load keyboard map (for NetBSD/X680x0) 4 1.1 oki * from: amiga/stand/loadkmap/loadkmap.c 5 1.1 oki * Copyright 1994 by Masaru Oki 6 1.1 oki */ 7 1.1 oki 8 1.1 oki #include <stdio.h> 9 1.4 minoura #include <sys/types.h> 10 1.1 oki #include <sys/ioctl.h> 11 1.1 oki #define ITEKANJI 1 /* XXX */ 12 1.3 minoura #include <machine/iteioctl.h> 13 1.1 oki #include "kbdmap.h" 14 1.1 oki 15 1.5 isaki void load_kmap(const char *); 16 1.1 oki 17 1.1 oki int 18 1.1 oki main(int argc, char *argv[]) 19 1.1 oki { 20 1.1 oki 21 1.5 isaki if (argc != 2) { 22 1.5 isaki fprintf(stderr, "Usage: %s kmapfile\n", argv[0]); 23 1.5 isaki exit (1); 24 1.5 isaki } 25 1.5 isaki 26 1.5 isaki load_kmap(argv[1]); 27 1.5 isaki exit(0); 28 1.1 oki } 29 1.1 oki 30 1.1 oki void 31 1.5 isaki load_kmap(const char *file) 32 1.1 oki { 33 1.5 isaki unsigned char buf[sizeof(struct kbdmap)]; 34 1.5 isaki int fd; 35 1.1 oki 36 1.5 isaki if ((fd = open(file, 0)) >= 0) { 37 1.5 isaki if (read(fd, buf, sizeof(buf)) == sizeof(buf)) { 38 1.5 isaki if (ioctl(0, ITEIOCSKMAP, buf) == 0) 39 1.5 isaki return; 40 1.5 isaki else 41 1.5 isaki perror("ITEIOCSKMAP"); 42 1.5 isaki } else { 43 1.5 isaki perror("read kbdmap"); 44 1.5 isaki } 45 1.5 isaki 46 1.5 isaki close (fd); 47 1.5 isaki } else { 48 1.5 isaki perror("open kbdmap"); 49 1.1 oki } 50 1.1 oki } 51