summaryrefslogtreecommitdiff
path: root/src/drivers/hdi/ps2/keyboard.c
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2017-07-15 21:14:10 +0200
committerAndreas Baumann <mail@andreasbaumann.cc>2017-07-15 21:14:10 +0200
commit21c1989527191fa3739984a167d7a1cf939cfd6b (patch)
tree616c12b7cefde87570a4615fbd3ac13a91287bc3 /src/drivers/hdi/ps2/keyboard.c
parentcfc0bfa213a94a6dee80c15047026547847da91c (diff)
downloadabaos-21c1989527191fa3739984a167d7a1cf939cfd6b.tar.gz
abaos-21c1989527191fa3739984a167d7a1cf939cfd6b.tar.bz2
started to make driver construtors similar (keyboard, mouse)
passing context around to pci scanning function for driver initialization
Diffstat (limited to 'src/drivers/hdi/ps2/keyboard.c')
-rw-r--r--src/drivers/hdi/ps2/keyboard.c7
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;
}