From 586aeaedcfa2ef5b008985f41d9b3a3cf9b43dec Mon Sep 17 00:00:00 2001 From: Baptiste Wicht Date: Thu, 30 Jan 2014 17:29:35 +0100 Subject: [PATCH] Complete keyboard implementation --- kernel/src/keyboard.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/kernel/src/keyboard.cpp b/kernel/src/keyboard.cpp index b27ed20f..ea58e69a 100644 --- a/kernel/src/keyboard.cpp +++ b/kernel/src/keyboard.cpp @@ -102,6 +102,10 @@ volatile uint8_t count; spinlock lock; sleep_queue queue; +void give_char(scheduler::pid_t pid, char t){ + scheduler::get_process(pid).regs.eax = t; +} + void keyboard_handler(const interrupt::syscall_regs&){ auto key = static_cast(in_byte(0x60)); @@ -116,8 +120,7 @@ void keyboard_handler(const interrupt::syscall_regs&){ ++count; } else { auto pid = queue.wake_up(); - - //TODO Give key to process pid + give_char(pid, key); } } } @@ -140,8 +143,7 @@ void keyboard::get_char_blocking(){ --count; auto pid = scheduler::get_pid(); - - //TODO Give key to process pid + give_char(pid, key); } else { //Wait for a char queue.sleep();