loadkmap.c revision 1.5
11.5Saymeric/* $NetBSD: loadkmap.c,v 1.5 2002/01/26 13:21:12 aymeric Exp $ */ 21.2Schopps 31.1Smw#include <sys/types.h> 41.1Smw#include <sys/stat.h> 51.1Smw#include <sys/ioctl.h> 61.1Smw#include "../../dev/iteioctl.h" 71.1Smw#include "../../dev/kbdmap.h" 81.1Smw#include <stdio.h> 91.1Smw 101.1Smw 111.5Saymericvoid load_kmap(const char *); 121.5Saymericvoid dump_kmap(void); 131.1Smw 141.1Smwint 151.5Saymericmain(int argc, 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.5Saymericload_kmap(const char *file) 341.1Smw{ 351.1Smw int fd; 361.1Smw char buf[sizeof (struct kbdmap)]; 371.1Smw 381.1Smw if ((fd = open (file, 0)) >= 0) 391.1Smw { 401.1Smw if (read (fd, buf, sizeof (buf)) == sizeof (buf)) 411.1Smw { 421.3Schopps if (ioctl (0, ITEIOCSKMAP, buf) == 0) 431.1Smw return; 441.1Smw else 451.3Schopps perror ("ITEIOCSKMAP"); 461.1Smw } 471.1Smw else 481.1Smw perror ("read kmap"); 491.1Smw 501.1Smw close (fd); 511.1Smw } 521.1Smw else 531.1Smw perror ("open kmap"); 541.1Smw} 551.1Smw 561.1Smwvoid 571.5Saymericdump_kmap(void) 581.1Smw{ 591.1Smw char buf[sizeof (struct kbdmap)]; 601.3Schopps if (ioctl (0, ITEIOCGKMAP, buf) == 0) 611.1Smw write (1, buf, sizeof (buf)); 621.1Smw else 631.3Schopps perror ("ITEIOCGKMAP"); 641.1Smw} 65