1 /* $NetBSD: loadkmap.c,v 1.2 1998/01/05 20:52:30 perry 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/ioctl.h> 10 #define ITEKANJI 1 /* XXX */ 11 #include "../../dev/iteioctl.h" 12 #include "kbdmap.h" 13 14 void load_kmap __P((const char *file)); 15 16 int 17 #ifdef __STDC__ 18 main(int argc, char *argv[]) 19 #else 20 main() 21 int argc; 22 char *argv[]; 23 #endif 24 { 25 if (argc != 2) 26 fprintf (stderr, "Usage: %s kmapfile\n", argv[0]), exit (1); 27 28 load_kmap (argv[1]); 29 exit (0); 30 } 31 32 void 33 #ifdef __STDC__ 34 load_kmap (const char *file) 35 #else 36 load_kmap (file) 37 const char *file; 38 #endif 39 { 40 int fd; 41 unsigned char buf[sizeof(struct kbdmap)]; 42 43 if ((fd = open (file, 0)) >= 0) 44 { 45 if (read (fd, buf, sizeof (buf)) == sizeof (buf)) 46 { 47 if (ioctl (0, ITEIOCSKMAP, buf) == 0) 48 return; 49 else 50 perror ("ITEIOCSKMAP"); 51 } 52 else 53 perror ("read kbdmap"); 54 55 close (fd); 56 } 57 else 58 perror ("open kbdmap"); 59 } 60