Home | History | Annotate | Line # | Download | only in loadkmap
loadkmap.c revision 1.4
      1 /*	$NetBSD: loadkmap.c,v 1.4 2000/07/31 23:40:02 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/types.h>
     10 #include <sys/ioctl.h>
     11 #define ITEKANJI 1 /* XXX */
     12 #include <machine/iteioctl.h>
     13 #include "kbdmap.h"
     14 
     15 void load_kmap __P((const char *file));
     16 
     17 int
     18 #ifdef __STDC__
     19 main(int argc, char *argv[])
     20 #else
     21 main()
     22      int argc;
     23      char *argv[];
     24 #endif
     25 {
     26   if (argc != 2)
     27     fprintf (stderr, "Usage: %s kmapfile\n", argv[0]), exit (1);
     28 
     29   load_kmap (argv[1]);
     30   exit (0);
     31 }
     32 
     33 void
     34 #ifdef __STDC__
     35 load_kmap (const char *file)
     36 #else
     37 load_kmap (file)
     38      const char *file;
     39 #endif
     40 {
     41   int fd;
     42   unsigned char buf[sizeof(struct kbdmap)];
     43 
     44   if ((fd = open (file, 0)) >= 0)
     45     {
     46       if (read (fd, buf, sizeof (buf)) == sizeof (buf))
     47 	{
     48 	  if (ioctl (0, ITEIOCSKMAP, buf) == 0)
     49 	    return;
     50 	  else
     51 	    perror ("ITEIOCSKMAP");
     52 	}
     53       else
     54 	perror ("read kbdmap");
     55 
     56       close (fd);
     57     }
     58   else
     59     perror ("open kbdmap");
     60 }
     61