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