summaryrefslogtreecommitdiff
path: root/src/kernel
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/kernel
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/kernel')
-rw-r--r--src/kernel/kernel.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/kernel/kernel.c b/src/kernel/kernel.c
index 7d38269..d38929c 100644
--- a/src/kernel/kernel.c
+++ b/src/kernel/kernel.c
@@ -124,14 +124,14 @@ void kernel_main( void )
// hard-wired drivers
global_context.keyboard = (keyboard_t *)malloc( sizeof( keyboard_t ) );
- keyboard_init( global_context.keyboard, &handle_keyboard_event, (void *)&global_context );
+ keyboard_init( global_context.keyboard, &handle_keyboard_event, &interrupt, (void *)&global_context );
interrupt_handler_t keyboard_interrupt_handler;
interrupt_handler_init( &keyboard_interrupt_handler, IRQ_BASE + 0x01, &interrupt, keyboard_handle_interrupt, global_context.keyboard );
interrupts_register_interrupt_handler( keyboard_interrupt_handler );
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, global_context.vga_text.res_x, global_context.vga_text.res_y, (void *)&global_context );
+ mouse_init( global_context.mouse, &handle_mouse_event, global_context.vga_text.res_x, global_context.vga_text.res_y, &interrupt, (void *)&global_context );
interrupt_handler_t mouse_interrupt_handler;
interrupt_handler_init( &mouse_interrupt_handler, IRQ_BASE + 0x0C, &interrupt, mouse_handle_interrupt, global_context.mouse );
interrupts_register_interrupt_handler( mouse_interrupt_handler );
@@ -147,11 +147,11 @@ void kernel_main( void )
puts( "Detecting devices via PCI.." );
pci_controller_t pci_controller;
pci_controller_init( &pci_controller );
- pci_controller_scan_and_register( &pci_controller, &global_context.driver_manager, &interrupt );
+ pci_controller_scan_and_register( &pci_controller, &global_context.driver_manager, &interrupt, &global_context );
// TODO: merge with the text mode vga_text_t object
global_context.vga = (vga_t *)malloc( sizeof( vga_t ) );
- vga_init( global_context.vga, &interrupt, NULL );
+ vga_init( global_context.vga, &interrupt, &global_context );
driver_manager_add_driver( &global_context.driver_manager, (driver_t *)global_context.vga );
puts( "Activating drivers" );