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