diff options
| author | Miguel <m.i@gmx.at> | 2018-09-28 00:29:02 +0200 |
|---|---|---|
| committer | Miguel <m.i@gmx.at> | 2018-09-28 00:29:02 +0200 |
| commit | 9a29d452d03a63f39a80c0640b7747d8508568e2 (patch) | |
| tree | 05adc15fac805f019af21107a7e3d84135f483f9 /kernel | |
| parent | b3ec24b054fe36c7368048c3f1d0c46ed8fbb55e (diff) | |
moved mouse and kb, fixed mouse a bit
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/scheduler.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/kernel/scheduler.c b/kernel/scheduler.c index 5382053..20b69ed 100644 --- a/kernel/scheduler.c +++ b/kernel/scheduler.c @@ -16,15 +16,13 @@ #include "spinlock.h" #include "ringbuffer.h" #include "keyboard.h" +#include "mouse.h" #include "syscalls.h" #include "fs/ext2.h" #define NO_TASK 0xffffffff -//TODO: ugly! -extern ringbuffer kb_in; - -static volatile uint32_t pid=0; +static volatile uint32_t pid=0; // holds next pid, to be assigned to a process. static uint32_t nextPID() { @@ -278,13 +276,12 @@ void task_syscall_worker() while(1) { bool wake=false; - - // TODO: move to user programm! - x86_cli(); // disable temporarily mouse/kb/timer interrupts. - while(ringbuffer_has(&kb_in)){ - wake=true; - keyboard_handle(ringbuffer_get(&kb_in)); - } + + + //TODO: would be enough only to lock during ringbuffer acces!? + x86_cli(); // disable temporarily mouse/kb/timer interrupts. + wake|=keyboard_worker(); + wake|=mouse_worker(); x86_sti(); if(wake)scheduler_wake_all(); |
