diff options
Diffstat (limited to 'src/drivers/hdi/ps2/keyboard.c')
-rw-r--r-- | src/drivers/hdi/ps2/keyboard.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/drivers/hdi/ps2/keyboard.c b/src/drivers/hdi/ps2/keyboard.c index ccae3e7..1c5f978 100644 --- a/src/drivers/hdi/ps2/keyboard.c +++ b/src/drivers/hdi/ps2/keyboard.c @@ -73,16 +73,17 @@ static keyboard_vtable_t const keyboard_vtable = { } }; -void keyboard_init( keyboard_t *keyboard, keyboard_event_handler_t handler, void *context ) +void keyboard_init( keyboard_t *keyboard, keyboard_event_handler_t handler, interrupt_t *interrupt, void *context ) { memset( keyboard, 0, sizeof( keyboard_t ) ); + driver_init( (driver_t *)keyboard, interrupt, context ); + port8_init( &keyboard->command_port, 0x64 ); port8_init( &keyboard->data_port, 0x60 ); keyboard->shift = false; keyboard->handler = handler; - keyboard->context = context; ((driver_t *)keyboard)->vtable = (driver_vtable_t *)&keyboard_vtable; } @@ -315,7 +316,7 @@ uint32_t keyboard_handle_interrupt( interrupt_handler_t *handler, uint32_t esp ) event.key = KEYBOARD_KEY_ESC; } - keyboard->handler( &event, keyboard->context ); + keyboard->handler( &event, keyboard->base.context ); return esp; } |