summaryrefslogtreecommitdiff
path: root/src/kernel/kernel.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/kernel.c')
-rw-r--r--src/kernel/kernel.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/kernel/kernel.c b/src/kernel/kernel.c
index d708850..4314ca8 100644
--- a/src/kernel/kernel.c
+++ b/src/kernel/kernel.c
@@ -12,7 +12,7 @@
#include "interrupts.h"
#include "driver.h"
#include "keyboard.h"
-#include "mouse.h"
+#include "ps2mouse.h"
#include "pci.h"
#include "memorymanagement.h"
@@ -133,9 +133,10 @@ void kernel_main( void )
keyboard_init( global_context.keyboard, &handle_keyboard_event, &interrupt, (void *)&global_context );
driver_manager_add_driver( &global_context.driver_manager, (driver_t *)global_context.keyboard );
- global_context.mouse = (mouse_t *)malloc( sizeof( mouse_t ) );
- mouse_init( global_context.mouse, &handle_mouse_event, &interrupt, (void *)&global_context );
- mouse_set_resolution( global_context.mouse, global_context.vga_text.res_x, global_context.vga_text.res_y );
+ global_context.mouse = (mouse_t *)malloc( sizeof( ps2mouse_t ) );
+ ps2mouse_init( (ps2mouse_t *)global_context.mouse, &handle_mouse_event, &interrupt, (void *)&global_context );
+ ((mouse_vtable_t *)(global_context.mouse->base.vtable))->set_resolution( global_context.mouse, global_context.vga_text.res_x, global_context.vga_text.res_y );
+
driver_manager_add_driver( &global_context.driver_manager, (driver_t *)global_context.mouse );
// dynamically detected and registered drivers
@@ -372,7 +373,7 @@ static void switch_to_graphics_mode( global_context_t *global_context )
text_widget_init( &global_context->widget3, (widget_t *)&global_context->window3, 1, 1, global_context->window3.base.base.w - 2, global_context->window3.base.base.h - 2, VGA_COLOR_RED, s );
((composite_widget_vtable_t *)global_context->window3.base.base.vtable)->add_child( (composite_widget_t *)&global_context->window3, (widget_t *)&global_context->widget3 );
- mouse_set_resolution( mouse, vga->mode.x, vga->mode.y );
+ ((mouse_vtable_t *)(mouse->base.vtable))->set_resolution( mouse, vga->mode.x, vga->mode.y );
// enable Z buffering
vga_use_z_buffer( global_context->vga, true );
@@ -391,7 +392,7 @@ static void switch_to_text_mode( global_context_t *global_context )
if( vga_set_mode( vga, vga_make_mode( VGA_MODE_TYPE_TEXT, 640, 480, 4 ) ) ) {
vga_text_set_cursor( vga_text, vga_text->cursor_x, vga_text->cursor_y );
- mouse_set_resolution( mouse, vga_text->res_x, vga_text->res_y );
+ ((mouse_vtable_t *)(mouse->base.vtable))->set_resolution( mouse, vga_text->res_x, vga_text->res_y );
global_context->mode = MODE_TEXT;
}
}