From 380db5f28d273981308dcfb89095319c5dba91cb Mon Sep 17 00:00:00 2001 From: Baptiste Wicht Date: Mon, 31 Mar 2014 23:08:50 +0200 Subject: [PATCH] Finish implementation of the terminal --- kernel/src/terminal.cpp | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/kernel/src/terminal.cpp b/kernel/src/terminal.cpp index 74c12a2a..6d7f07e9 100644 --- a/kernel/src/terminal.cpp +++ b/kernel/src/terminal.cpp @@ -35,6 +35,21 @@ void stdio::virtual_terminal::print(char key){ k_print(key); } +void stdio::virtual_terminal::send_input(char key){ + //Some input may arrive before the scheduler is started + //Loose them + if(!scheduler::is_started()){ + return; + } + + scheduler::tasklet task; + task.fun = &tasklet_handle_input; + task.d1 = static_cast(key); + task.d2 = reinterpret_cast(this); + + scheduler::irq_register_tasklet(task); +} + void stdio::virtual_terminal::handle_input(char key){ if(canonical){ //Key released @@ -76,21 +91,6 @@ void stdio::virtual_terminal::handle_input(char key){ } } -void stdio::virtual_terminal::send_input(char key){ - //Some input may arrive before the scheduler is started - //Loose them - if(!scheduler::is_started()){ - return; - } - - scheduler::tasklet task; - task.fun = &tasklet_handle_input; - task.d1 = static_cast(key); - task.d2 = reinterpret_cast(this); - - scheduler::irq_register_tasklet(task); -} - size_t stdio::virtual_terminal::read_input(char* buffer, size_t max){ size_t read = 0; char c;