diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2017-07-15 21:14:10 +0200 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2017-07-15 21:14:10 +0200 |
commit | 21c1989527191fa3739984a167d7a1cf939cfd6b (patch) | |
tree | 616c12b7cefde87570a4615fbd3ac13a91287bc3 /src/drivers/hdi/ps2/mouse.c | |
parent | cfc0bfa213a94a6dee80c15047026547847da91c (diff) | |
download | abaos-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/mouse.c')
-rw-r--r-- | src/drivers/hdi/ps2/mouse.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/drivers/hdi/ps2/mouse.c b/src/drivers/hdi/ps2/mouse.c index 1421729..169f994 100644 --- a/src/drivers/hdi/ps2/mouse.c +++ b/src/drivers/hdi/ps2/mouse.c @@ -85,16 +85,17 @@ static mouse_vtable_t const mouse_vtable = { } }; -void mouse_init( mouse_t *mouse, mouse_event_handler_t handler, const uint32_t res_x, const uint32_t res_y, void *context ) +void mouse_init( mouse_t *mouse, mouse_event_handler_t handler, const uint32_t res_x, const uint32_t res_y, interrupt_t *interrupt, void *context ) { memset( mouse, 0, sizeof( mouse_t ) ); + + driver_init( (driver_t *)mouse, interrupt, context ); // TODO: we should probe for wheel mouse and more than 3 packets mouse->nof_packets = DEFAULT_NOF_PACKETS; mouse_set_resolution( mouse, res_x, res_y ); mouse->handler = handler; - mouse->context = context; port8_init( &mouse->command_port, 0x64 ); port8_init( &mouse->data_port, 0x60 ); @@ -185,7 +186,7 @@ uint32_t mouse_handle_interrupt( interrupt_handler_t *handler, uint32_t esp ) } event.cursor_x = mouse->cursor_x; event.cursor_y = mouse->cursor_y; - mouse->handler( &event, mouse->context ); + mouse->handler( &event, mouse->base.context ); } } mouse->buttons = mouse->buf[0]; @@ -222,7 +223,7 @@ uint32_t mouse_handle_interrupt( interrupt_handler_t *handler, uint32_t esp ) event.cursor_x = mouse->cursor_x; event.cursor_y = mouse->cursor_y; - mouse->handler( &event, mouse->context ); + mouse->handler( &event, mouse->base.context ); } break; |