X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/96e23fa3c6eabf8a6efebac24b740c5d4a2a1050..5ea8e2ba737f903db81d49b56778e883634512a5:/lunaix-os/kernel/demos/input_test.c?ds=sidebyside diff --git a/lunaix-os/kernel/demos/input_test.c b/lunaix-os/kernel/demos/input_test.c new file mode 100644 index 0000000..ebb9375 --- /dev/null +++ b/lunaix-os/kernel/demos/input_test.c @@ -0,0 +1,32 @@ +#include +#include +#include +#include + +#define STDIN 1 +#define STDOUT 0 + +void +input_test() +{ + int fd = open("/dev/input/i8042-kbd", 0); + + if (fd < 0) { + write(STDOUT, "fail to open", 13); + return; + } + + struct input_evt_pkt event; + + while (read(fd, &event, sizeof(event)) > 0) { + if (event.pkt_type == PKT_PRESS) { + write(STDOUT, "PRESSED: ", 10); + } else { + write(STDOUT, "RELEASE: ", 10); + } + char c = event.sys_code & 0xff; + write(STDOUT, &c, 1); + write(STDOUT, "\n", 2); + } + return; +} \ No newline at end of file