loadkmap.c revision 1.3
11.2Schopps/* 21.3Schopps * $Id: loadkmap.c,v 1.3 1994/05/11 19:09:29 chopps Exp $ 31.2Schopps */ 41.2Schopps 51.1Smw#include <sys/types.h> 61.1Smw#include <sys/stat.h> 71.1Smw#include <sys/ioctl.h> 81.1Smw#include "../../dev/iteioctl.h" 91.1Smw#include "../../dev/kbdmap.h" 101.1Smw#include <stdio.h> 111.1Smw 121.1Smw 131.1Smwvoid load_kmap __P((const char *)); 141.1Smwvoid dump_kmap(); 151.1Smw 161.1Smwint 171.1Smwmain(argc, argv) 181.1Smw int argc; 191.1Smw char *argv[]; 201.1Smw{ 211.1Smw if (argc > 2) 221.1Smw { 231.1Smw fprintf (stderr, "%s keymap\n", argv[0]); 241.1Smw exit (1); 251.1Smw } 261.1Smw 271.1Smw if (argc == 1) 281.1Smw dump_kmap (); 291.1Smw else 301.1Smw load_kmap (argv[1]); 311.1Smw 321.1Smw exit (0); 331.1Smw} 341.1Smw 351.1Smw 361.1Smwvoid 371.1Smwload_kmap (file) 381.1Smw const char *file; 391.1Smw{ 401.1Smw int fd; 411.1Smw char buf[sizeof (struct kbdmap)]; 421.1Smw 431.1Smw if ((fd = open (file, 0)) >= 0) 441.1Smw { 451.1Smw if (read (fd, buf, sizeof (buf)) == sizeof (buf)) 461.1Smw { 471.3Schopps if (ioctl (0, ITEIOCSKMAP, buf) == 0) 481.1Smw return; 491.1Smw else 501.3Schopps perror ("ITEIOCSKMAP"); 511.1Smw } 521.1Smw else 531.1Smw perror ("read kmap"); 541.1Smw 551.1Smw close (fd); 561.1Smw } 571.1Smw else 581.1Smw perror ("open kmap"); 591.1Smw} 601.1Smw 611.1Smwvoid 621.1Smwdump_kmap() 631.1Smw{ 641.1Smw char buf[sizeof (struct kbdmap)]; 651.3Schopps if (ioctl (0, ITEIOCGKMAP, buf) == 0) 661.1Smw write (1, buf, sizeof (buf)); 671.1Smw else 681.3Schopps perror ("ITEIOCGKMAP"); 691.1Smw} 70