summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2017-06-08 11:28:58 +0200
committerAndreas Baumann <mail@andreasbaumann.cc>2017-06-08 11:28:58 +0200
commit4ec0b9a98f124daaebaf13b5e7dfc5e8350a1ae9 (patch)
tree6f9100beb29977a97952cb175af2463c3207b578
parent043626539b4dedcde511a4159c9e9270f97f2fa4 (diff)
downloadabaos-4ec0b9a98f124daaebaf13b5e7dfc5e8350a1ae9.tar.gz
abaos-4ec0b9a98f124daaebaf13b5e7dfc5e8350a1ae9.tar.bz2
unified mouse and keyboard driver interface (towards a generic driver manager interface
-rw-r--r--src/kernel.c2
-rw-r--r--src/mouse.c8
-rw-r--r--src/mouse.h2
3 files changed, 7 insertions, 5 deletions
diff --git a/src/kernel.c b/src/kernel.c
index 353ee76..9202325 100644
--- a/src/kernel.c
+++ b/src/kernel.c
@@ -58,7 +58,7 @@ void entry( void )
puts( "Initializing PS/2 mouse" );
mouse_t mouse;
- mouse_init( &mouse, &handle_mouse_event, (void *)&vga, vga.res_x, vga.res_y );
+ mouse_init( &mouse, &handle_mouse_event, (void *)&vga );
interrupt_handler_t mouse_interrupt_handler;
interrupt_handler_init( &mouse_interrupt_handler, IRQ_BASE + 0x0C, &interrupt, mouse_handle_interrupt, &mouse );
interrupts_register_interrupt_handler( mouse_interrupt_handler );
diff --git a/src/mouse.c b/src/mouse.c
index a68b5f2..c7708ae 100644
--- a/src/mouse.c
+++ b/src/mouse.c
@@ -76,15 +76,17 @@ static void set_sample_rate( mouse_t *mouse, uint8_t samples )
read_ack( mouse );
}
-void mouse_init( mouse_t *mouse, mouse_event_handler_t handler, void *context, uint32_t res_x, uint32_t res_y )
+void mouse_init( mouse_t *mouse, mouse_event_handler_t handler, void *context )
{
memset( mouse, 0, sizeof( mouse_t ) );
// TODO: we should probe for wheel mouse and more than 3 packets
mouse->nof_packets = DEFAULT_NOF_PACKETS;
- mouse->res_x = res_x;
- mouse->res_y = res_y;
+ vga_t *vga = (vga_t *)context;
+
+ mouse->res_x = vga->res_x;
+ mouse->res_y = vga->res_y;
mouse->cursor_x = mouse->res_x / 2;
mouse->cursor_y = mouse->res_y / 2;
mouse->handler = handler;
diff --git a/src/mouse.h b/src/mouse.h
index 8099922..561f0c7 100644
--- a/src/mouse.h
+++ b/src/mouse.h
@@ -47,7 +47,7 @@ typedef struct {
void *context;
} mouse_t;
-void mouse_init( mouse_t *mouse, mouse_event_handler_t handler, void *context, uint32_t res_x, uint32_t res_y );
+void mouse_init( mouse_t *mouse, mouse_event_handler_t handler, void *context );
void mouse_deinit( mouse_t *mouse );
uint32_t mouse_handle_interrupt( interrupt_handler_t *handler, uint32_t esp );