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