summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2017-07-15 17:36:45 +0200
committerAndreas Baumann <mail@andreasbaumann.cc>2017-07-15 17:36:45 +0200
commit5631e68852081bb4e4eaa6e3bb3a53a4d024dff2 (patch)
tree0d853d7fc2f0fba446a445ef4e5422bec1925e1b /src
parent62906512c5938bff7f23e3abfd515c589c228d12 (diff)
downloadabaos-5631e68852081bb4e4eaa6e3bb3a53a4d024dff2.tar.gz
abaos-5631e68852081bb4e4eaa6e3bb3a53a4d024dff2.tar.bz2
moved keyboard driver into the global kernel context (away from the stack)
Diffstat (limited to 'src')
-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 734572c..2d34d4c 100644
--- a/src/kernel/kernel.c
+++ b/src/kernel/kernel.c
@@ -47,6 +47,7 @@ typedef struct {
memory_manager_t memory_manager;
vga_t vga;
mode_t mode;
+ keyboard_t keyboard;
mouse_t mouse;
desktop_t desktop;
window_t window1;
@@ -121,12 +122,11 @@ void kernel_main( void )
// hard-wired drivers
- keyboard_t keyboard;
- keyboard_init( &keyboard, &handle_keyboard_event, (void *)&global_context );
+ keyboard_init( &global_context.keyboard, &handle_keyboard_event, (void *)&global_context );
interrupt_handler_t keyboard_interrupt_handler;
- interrupt_handler_init( &keyboard_interrupt_handler, IRQ_BASE + 0x01, &interrupt, keyboard_handle_interrupt, &keyboard );
+ 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 *)&keyboard );
+ driver_manager_add_driver( &global_context.driver_manager, (driver_t *)&global_context.keyboard );
mouse_init( &global_context.mouse, &handle_mouse_event, global_context.vga_text.res_x, global_context.vga_text.res_y, (void *)&global_context );
interrupt_handler_t mouse_interrupt_handler;