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