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