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