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