add util to set vt's keyboard's rates
authorBrett Gordon <beretta42@gmail.com>
Sun, 9 Oct 2016 14:27:21 +0000 (10:27 -0400)
committerBrett Gordon <beretta42@gmail.com>
Sun, 9 Oct 2016 14:27:21 +0000 (10:27 -0400)
Applications/util/Makefile
Applications/util/Makefile.6809
Applications/util/fuzix-util.pkg
Applications/util/kbdrate.c [new file with mode: 0644]
Library/include/sys/kd.h [new file with mode: 0644]

index b37376c..762a860 100644 (file)
@@ -69,6 +69,7 @@ SRCS  = banner.c \
        fsck.c \
        grep.c \
        id.c \
+       kbdrate.c \
        ll.c \
        ls.c \
        man.c \
index 21dd6b6..f1b75c1 100644 (file)
@@ -76,6 +76,7 @@ SRCS  = \
        fsck.c \
        grep.c \
        id.c \
+       kbdrate.c \
        ll.c \
        ls.c \
        man.c \
index 1b7e8f6..f96d20f 100644 (file)
@@ -68,6 +68,7 @@ f 0755 /bin/fsck        fsck
 f 0755 /bin/grep        grep
 f 0755 /bin/head        head
 f 0755 /bin/id          id
+f 0755 /bin/kbdrate     kbdrate
 f 0755 /bin/ll          ll
 f 0755 /bin/logname     logname
 f 0755 /bin/man         man
diff --git a/Applications/util/kbdrate.c b/Applications/util/kbdrate.c
new file mode 100644 (file)
index 0000000..2c99047
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+  Small utility to set the keyboard repeat/delay rates
+*/
+
+#include <stdlib.h>
+#include <string.h>
+#include <syscalls.h>
+#include <sys/kd.h>
+#include <fcntl.h>
+
+
+
+void printe( char *m )
+{
+       write(2, m, strlen(m) );
+       write(1, "\n", 1 );
+       exit(1);
+}
+
+
+int main( int argc, char **argv )
+{
+       int fd;
+       struct key_repeat k;
+       int ret;
+
+       if( argc < 3 )
+               printe( "usage: kbdrate rate delay");
+       
+       fd=open("/dev/tty", O_RDONLY);
+       if( ! fd )
+               printe( "Cannot open tty dev" );
+               
+       k.continual = atoi( argv[1] );
+       k.first = atoi( argv[2] );
+       
+       ret=ioctl( fd, KBRATE, &k );
+       if( ret ){
+               printe( "failed ioctl");
+       }
+
+       close( fd );
+       exit(0);
+}
diff --git a/Library/include/sys/kd.h b/Library/include/sys/kd.h
new file mode 100644 (file)
index 0000000..a5645cb
--- /dev/null
@@ -0,0 +1,20 @@
+/*
+  Header file for manipulation of the fuxiz console keyboard
+*/
+
+
+/* IOCTL numbers */
+#define KBMAPSIZE      0x20
+#define KBMAPGET       0x21
+#define KBSETTRANS     (0x23|IOCTL_SUPER)
+#define KBRATE          0x25
+
+
+/* struct for setting keyboard repeat
+   delays are demarked in tenths of seconds
+ */
+struct key_repeat {
+       uint8_t first;
+       uint8_t continual;
+};
+