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