From cc8ed39b240180b58810784f844e253263594ac3 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Tue, 5 Oct 1999 16:24:54 +0000 Subject: Initial revision --- console-tools/loadkmap.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 console-tools/loadkmap.c (limited to 'console-tools/loadkmap.c') diff --git a/console-tools/loadkmap.c b/console-tools/loadkmap.c new file mode 100644 index 000000000..0f092d193 --- /dev/null +++ b/console-tools/loadkmap.c @@ -0,0 +1,68 @@ +#include "internal.h" +#include +#include +#include +#include +#include +#include + + +const char loadkmap_usage[] = "loadkmap\n" +"\n" +"\tLoad a binary keyboard translation table from standard input.\n" +"\n"; + + +int +loadkmap_main(struct FileInfo * info, int argc, char * * argv) +{ + struct kbentry ke; + u_short *ibuff; + int i,j,fd,readsz,pos,ibuffsz=NR_KEYS * sizeof(u_short); + char flags[MAX_NR_KEYMAPS],magic[]="bkeymap",buff[7]; + + fd = open("/dev/tty0", O_RDWR); + if (fd < 0) { + fprintf(stderr, "Error opening /dev/tty0: %s\n", strerror(errno)); + return 1; + } + + read(0,buff,7); + if (0 != strncmp(buff,magic,7)) { + fprintf(stderr, "This is not a valid binary keymap.\n"); + return 1; + } + + if ( MAX_NR_KEYMAPS != read(0,flags,MAX_NR_KEYMAPS) ) { + fprintf(stderr, "Error reading keymap flags: %s\n", strerror(errno)); + return 1; + } + + ibuff=(u_short *) malloc(ibuffsz); + if (!ibuff) { + fprintf(stderr, "Out of memory.\n"); + return 1; + } + + for(i=0; i