diff options
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 |