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