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