diff options
Diffstat (limited to 'src/keyboard.h')
-rw-r--r-- | src/keyboard.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/keyboard.h b/src/keyboard.h index 167a901..6e1b6ca 100644 --- a/src/keyboard.h +++ b/src/keyboard.h @@ -7,6 +7,8 @@ #include "interrupts.h" #include "port.h" + +#include "driver.h" typedef enum { KEYBOARD_EVENT_TYPE_KEY_PRESSED, @@ -43,6 +45,7 @@ typedef struct { typedef void (*keyboard_event_handler_t)( keyboard_event_t *event, void *context ); typedef struct { + driver_t base; interrupt_t *interrupts; port8_t command_port; port8_t data_port; @@ -51,8 +54,14 @@ typedef struct { void *context; } keyboard_t; +typedef struct { + driver_vtable_t base; +} keyboard_vtable_t; + void keyboard_init( keyboard_t *keyboard, keyboard_event_handler_t handler, void *context ); -void keyboard_deinit( keyboard_t *keyboard ); +void keyboard_activate( void *obj ); +void keyboard_deactivate( void *obj ); +void keyboard_deinit( void *obj ); uint32_t keyboard_handle_interrupt( interrupt_handler_t *handler, uint32_t esp ); |