Finish implementation of the terminal

This commit is contained in:
Baptiste Wicht 2014-03-31 23:08:50 +02:00
parent 75b1381064
commit 380db5f28d

View File

@ -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<size_t>(key);
task.d2 = reinterpret_cast<size_t>(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<size_t>(key);
task.d2 = reinterpret_cast<size_t>(this);
scheduler::irq_register_tasklet(task);
}
size_t stdio::virtual_terminal::read_input(char* buffer, size_t max){
size_t read = 0;
char c;