diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2017-07-20 09:31:30 +0200 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2017-07-20 09:31:30 +0200 |
commit | 7eae4edb86fc65b2e99bf81757aeb00392d8a60d (patch) | |
tree | 2ee5c92be2ca55dcd30dc3e9632bcfa4dfd9a095 /src/drivers/hdi/ps2/ps2keyboard.h | |
parent | 43fcc1ca57149c5a87502f0c23a2c85e4d28264a (diff) | |
download | abaos-7eae4edb86fc65b2e99bf81757aeb00392d8a60d.tar.gz abaos-7eae4edb86fc65b2e99bf81757aeb00392d8a60d.tar.bz2 |
added a virtual keyboard driver interface, made the PS/2 keyboard a specialization of it
Diffstat (limited to 'src/drivers/hdi/ps2/ps2keyboard.h')
-rw-r--r-- | src/drivers/hdi/ps2/ps2keyboard.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/drivers/hdi/ps2/ps2keyboard.h b/src/drivers/hdi/ps2/ps2keyboard.h new file mode 100644 index 0000000..a5b66ca --- /dev/null +++ b/src/drivers/hdi/ps2/ps2keyboard.h @@ -0,0 +1,33 @@ +#ifndef PS2KEYBOARD_H +#define PS2KEYBOARD_H + +#include <stdbool.h> + +#include "string.h" + +#include "interrupts.h" +#include "port.h" + +#include "keyboard.h" + +typedef struct { + keyboard_t base; + port8_t command_port; + port8_t data_port; + bool shift; + interrupt_handler_t interrupt_handler; +} ps2keyboard_t; + +typedef struct { + keyboard_vtable_t base; +} ps2keyboard_vtable_t; + +void ps2keyboard_init( ps2keyboard_t *ps2keyboard, keyboard_event_handler_t handler, interrupt_t *interrupt, void *context ); +void ps2keyboard_activate( void *obj ); +void ps2keyboard_deactivate( void *obj ); +void ps2keyboard_deinit( void *obj ); +void ps2keyboard_print_info( void *obj ); + +uint32_t ps2keyboard_handle_interrupt( interrupt_handler_t *handler, uint32_t esp ); + +#endif // PS2KEYBOARD_H |