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