Home | History | Annotate | Line # | Download | only in loadkmap
loadkmap.c revision 1.3
      1  1.3  minoura /*	$NetBSD: loadkmap.c,v 1.3 1998/08/06 14:08:55 minoura Exp $	*/
      2  1.1      oki /*
      3  1.1      oki  * loadkmap - load keyboard map (for NetBSD/X680x0)
      4  1.1      oki  * from: amiga/stand/loadkmap/loadkmap.c
      5  1.1      oki  * Copyright 1994 by Masaru Oki
      6  1.1      oki  */
      7  1.1      oki 
      8  1.1      oki #include <stdio.h>
      9  1.1      oki #include <sys/ioctl.h>
     10  1.1      oki #define ITEKANJI 1 /* XXX */
     11  1.3  minoura #include <machine/iteioctl.h>
     12  1.1      oki #include "kbdmap.h"
     13  1.1      oki 
     14  1.1      oki void load_kmap __P((const char *file));
     15  1.1      oki 
     16  1.1      oki int
     17  1.1      oki #ifdef __STDC__
     18  1.1      oki main(int argc, char *argv[])
     19  1.1      oki #else
     20  1.1      oki main()
     21  1.1      oki      int argc;
     22  1.1      oki      char *argv[];
     23  1.1      oki #endif
     24  1.1      oki {
     25  1.1      oki   if (argc != 2)
     26  1.1      oki     fprintf (stderr, "Usage: %s kmapfile\n", argv[0]), exit (1);
     27  1.1      oki 
     28  1.1      oki   load_kmap (argv[1]);
     29  1.1      oki   exit (0);
     30  1.1      oki }
     31  1.1      oki 
     32  1.1      oki void
     33  1.1      oki #ifdef __STDC__
     34  1.1      oki load_kmap (const char *file)
     35  1.1      oki #else
     36  1.1      oki load_kmap (file)
     37  1.1      oki      const char *file;
     38  1.1      oki #endif
     39  1.1      oki {
     40  1.1      oki   int fd;
     41  1.1      oki   unsigned char buf[sizeof(struct kbdmap)];
     42  1.1      oki 
     43  1.1      oki   if ((fd = open (file, 0)) >= 0)
     44  1.1      oki     {
     45  1.1      oki       if (read (fd, buf, sizeof (buf)) == sizeof (buf))
     46  1.1      oki 	{
     47  1.1      oki 	  if (ioctl (0, ITEIOCSKMAP, buf) == 0)
     48  1.1      oki 	    return;
     49  1.1      oki 	  else
     50  1.1      oki 	    perror ("ITEIOCSKMAP");
     51  1.1      oki 	}
     52  1.1      oki       else
     53  1.1      oki 	perror ("read kbdmap");
     54  1.1      oki 
     55  1.1      oki       close (fd);
     56  1.1      oki     }
     57  1.1      oki   else
     58  1.1      oki     perror ("open kbdmap");
     59  1.1      oki }
     60