diff options
author | Danny Holman <dholman@gymli.org> | 2024-02-16 13:29:51 -0600 |
---|---|---|
committer | Danny Holman <dholman@gymli.org> | 2024-02-16 13:29:51 -0600 |
commit | a19ae009f9f571d25a90aca5cc5e05d3c76e1aed (patch) | |
tree | 0cf34074f95a119917bd53b3da0350af7cd55477 /arch/i386/include | |
parent | 5ee3595bf405c2c39fc36e15b8c2a3a8d131cf9c (diff) |
arch: i386: add basic keyboard driver
Add a basic driver for the PS/2 keyboard. This driver just prints
whatever it receives back out to the framebuffer.
Signed-off-by: Danny Holman <dholman@gymli.org>
Diffstat (limited to 'arch/i386/include')
-rw-r--r-- | arch/i386/include/kernel/keyboard.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/arch/i386/include/kernel/keyboard.h b/arch/i386/include/kernel/keyboard.h new file mode 100644 index 0000000..8f39a70 --- /dev/null +++ b/arch/i386/include/kernel/keyboard.h @@ -0,0 +1,33 @@ +#ifndef I386_KEYBOARD_H +#define I386_KEYBOARD_H + +#include <kernel/isr.h> +#include <stdint.h> + +#define KB_STAT 0x64 +#define KB_DATA 0x60 + +#define KB_DIB 0x01 +#define KB_SHIFT (1<<0) +#define KB_CTL (1<<1) +#define KB_ALT (1<<2) +#define KB_CPSLK (1<<3) +#define KB_NUMLK (1<<4) +#define KB_SCLLK (1<<5) +#define KB_E0ESC (1<<6) + +#define KB_HOME 0xE0 +#define KB_END 0xE1 +#define KB_UP 0xE2 +#define KB_DOWN 0xE3 +#define KB_LEFT 0xE4 +#define KB_RGHT 0xE5 +#define KB_PGUP 0xE6 +#define KB_PGDN 0xE7 +#define KB_INS 0xE8 +#define KB_DEL 0xE9 + +char keyboard_getchar(void); +void keyboard_handler(struct isr_frame *frame); + +#endif |