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