loadkmap.c revision 1.1
11.1Smw#include <sys/types.h> 21.1Smw#include <sys/stat.h> 31.1Smw#include <sys/ioctl.h> 41.1Smw#include "../../dev/iteioctl.h" 51.1Smw#include "../../dev/kbdmap.h" 61.1Smw#include <stdio.h> 71.1Smw 81.1Smw 91.1Smwvoid load_kmap __P((const char *)); 101.1Smwvoid dump_kmap(); 111.1Smw 121.1Smwint 131.1Smwmain(argc, argv) 141.1Smw int argc; 151.1Smw char *argv[]; 161.1Smw{ 171.1Smw if (argc > 2) 181.1Smw { 191.1Smw fprintf (stderr, "%s keymap\n", argv[0]); 201.1Smw exit (1); 211.1Smw } 221.1Smw 231.1Smw if (argc == 1) 241.1Smw dump_kmap (); 251.1Smw else 261.1Smw load_kmap (argv[1]); 271.1Smw 281.1Smw exit (0); 291.1Smw} 301.1Smw 311.1Smw 321.1Smwvoid 331.1Smwload_kmap (file) 341.1Smw const char *file; 351.1Smw{ 361.1Smw int fd; 371.1Smw char buf[sizeof (struct kbdmap)]; 381.1Smw 391.1Smw if ((fd = open (file, 0)) >= 0) 401.1Smw { 411.1Smw if (read (fd, buf, sizeof (buf)) == sizeof (buf)) 421.1Smw { 431.1Smw if (ioctl (0, ITELOADKMAP, buf) == 0) 441.1Smw return; 451.1Smw else 461.1Smw perror ("ITELOADKMAP"); 471.1Smw } 481.1Smw else 491.1Smw perror ("read kmap"); 501.1Smw 511.1Smw close (fd); 521.1Smw } 531.1Smw else 541.1Smw perror ("open kmap"); 551.1Smw} 561.1Smw 571.1Smwvoid 581.1Smwdump_kmap() 591.1Smw{ 601.1Smw char buf[sizeof (struct kbdmap)]; 611.1Smw if (ioctl (0, ITEGETKMAP, buf) == 0) 621.1Smw write (1, buf, sizeof (buf)); 631.1Smw else 641.1Smw perror ("ITEGETKMAP"); 651.1Smw} 66