summaryrefslogtreecommitdiff
path: root/src/keyboard.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/keyboard.h')
-rw-r--r--src/keyboard.h11
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 );