loadkmap.c revision 1.1
1#include <sys/types.h> 2#include <sys/stat.h> 3#include <sys/ioctl.h> 4#include "../../dev/iteioctl.h" 5#include "../../dev/kbdmap.h" 6#include <stdio.h> 7 8 9void load_kmap __P((const char *)); 10void dump_kmap(); 11 12int 13main(argc, argv) 14 int argc; 15 char *argv[]; 16{ 17 if (argc > 2) 18 { 19 fprintf (stderr, "%s keymap\n", argv[0]); 20 exit (1); 21 } 22 23 if (argc == 1) 24 dump_kmap (); 25 else 26 load_kmap (argv[1]); 27 28 exit (0); 29} 30 31 32void 33load_kmap (file) 34 const char *file; 35{ 36 int fd; 37 char buf[sizeof (struct kbdmap)]; 38 39 if ((fd = open (file, 0)) >= 0) 40 { 41 if (read (fd, buf, sizeof (buf)) == sizeof (buf)) 42 { 43 if (ioctl (0, ITELOADKMAP, buf) == 0) 44 return; 45 else 46 perror ("ITELOADKMAP"); 47 } 48 else 49 perror ("read kmap"); 50 51 close (fd); 52 } 53 else 54 perror ("open kmap"); 55} 56 57void 58dump_kmap() 59{ 60 char buf[sizeof (struct kbdmap)]; 61 if (ioctl (0, ITEGETKMAP, buf) == 0) 62 write (1, buf, sizeof (buf)); 63 else 64 perror ("ITEGETKMAP"); 65} 66