From df7d1cab87fdb609bd951dbd1b3bebfc3322a13a Mon Sep 17 00:00:00 2001 From: Marian Ohligs Date: Mon, 19 Sep 2011 00:29:16 +0200 Subject: [PATCH] - increase legibility (add kb_init & kb_finish) --- arch/x86/kernel/kb.c | 11 ++++++++++- drivers/char/stdio.c | 12 ++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/arch/x86/kernel/kb.c b/arch/x86/kernel/kb.c index 237c3280..aabf040c 100644 --- a/arch/x86/kernel/kb.c +++ b/arch/x86/kernel/kb.c @@ -28,7 +28,15 @@ kb_buffer_t kb_buffer = {NULL, 0, 0, 0 }; -void kb_flush() { +void kb_init(size_t size, tid_t tid) { + kb_buffer.buffer = kmalloc(size * sizeof(char)); + kb_buffer.size = 0; + kb_buffer.maxsize = size; + kb_buffer.tid = tid; + return; +} + +void kb_finish() { kfree(kb_buffer.buffer, (kb_buffer.maxsize * sizeof(char))); kb_buffer.buffer = NULL; kb_buffer.size = 0; @@ -37,6 +45,7 @@ void kb_flush() { return; } + /* * KBDUS means US Keyboard Layout. This is a scancode table * used to layout a standard US keyboard. I have left some diff --git a/drivers/char/stdio.c b/drivers/char/stdio.c index 3289be19..9a260ec1 100644 --- a/drivers/char/stdio.c +++ b/drivers/char/stdio.c @@ -56,19 +56,15 @@ static int null_close(fildes_t* file) static ssize_t stdio_read(fildes_t* file, uint8_t* buffer, size_t size) { #ifdef CONFIG_KEYBOARD - kb_buffer.buffer = kmalloc(size * sizeof(char)); - kb_buffer.maxsize = size; - kb_buffer.size = 0; - kb_buffer.tid = per_core(current_task)->id; - block_current_task(); - //per_core(current_task)->status = TASK_BLOCKED; - reschedule(); + kb_init(size, per_core(current_task)->id); + block_current_task(); + reschedule(); size = kb_buffer.size; memcpy(buffer, kb_buffer.buffer, size); /*cleaning up */ - kb_flush(); + kb_finish(); //kprintf("Size: %i, offset: %i, buffer: %s", size, buffer, offset); file->offset += size;