1/*	$NetBSD: loadkmap.c,v 1.11 2024/01/07 07:58:34 isaki 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 <sys/cdefs.h>
9__RCSID("$NetBSD: loadkmap.c,v 1.11 2024/01/07 07:58:34 isaki Exp $");
10
11#include <stdio.h>
12#include <stdlib.h>
13#include <unistd.h>
14#include <fcntl.h>
15#include <sys/types.h>
16#include <sys/ioctl.h>
17#include <machine/kbdmap.h>
18#include <machine/iteioctl.h>
19
20void load_kmap(const char *);
21
22int
23main(int argc, char *argv[])
24{
25
26	if (argc != 2) {
27		fprintf(stderr, "Usage: %s kmapfile\n", argv[0]);
28		exit (1);
29	}
30
31	load_kmap(argv[1]);
32	exit(0);
33}
34
35void
36load_kmap(const char *file)
37{
38	unsigned char buf[sizeof(struct kbdmap)];
39	int fd;
40
41	if ((fd = open(file, 0)) >= 0) {
42		if (read(fd, buf, sizeof(buf)) == sizeof(buf)) {
43			if (ioctl(0, ITEIOCSKMAP, buf) == 0)
44				return;
45			else
46				perror("ITEIOCSKMAP");
47		} else {
48			perror("read kbdmap");
49		}
50
51		close (fd);
52	} else {
53		perror("open kbdmap");
54	}
55}
56