summaryrefslogtreecommitdiff
path: root/src/drivers/hdi/ps2/mouse.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/hdi/ps2/mouse.c')
-rw-r--r--src/drivers/hdi/ps2/mouse.c9
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;