diff options
| author | Miguel <m.i@gmx.at> | 2018-09-01 12:10:13 +0200 |
|---|---|---|
| committer | Miguel <m.i@gmx.at> | 2018-09-01 12:10:13 +0200 |
| commit | 51ab94a29f64de42e3dec3a3ef0ec6a94cda28a6 (patch) | |
| tree | c2cf5f0b31c2f80ac815dc366ece52a42983219f /kernel/usermode.c | |
| parent | d52c3d119dbbbf2a9573e7698a878cf74afdd08c (diff) | |
working on new syscalls
Diffstat (limited to 'kernel/usermode.c')
| -rw-r--r-- | kernel/usermode.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/kernel/usermode.c b/kernel/usermode.c index 1c039cb..3befefd 100644 --- a/kernel/usermode.c +++ b/kernel/usermode.c @@ -41,7 +41,7 @@ void userfunc() // we need enable here again (since the pushed eflags have it disabled)! x86_sti(); - // if we are pid 0, replace ourselves with /bin/init TODO: switch to usermode before! + // if we are pid 0, replace ourselves with /bin/init and enter via usermode if(task_get_current_pid()==0) { uint32_t alloc; @@ -50,12 +50,21 @@ void userfunc() usermode(entry_global); } - // kernel worker thread on pid1 + // kernel worker thread: SLEEPER if(task_get_current_pid()==1) { while(1) { - c1++; + __asm__("hlt"); + } + } + + // kernel worker thread: SYSCALL CHECKER + if(task_get_current_pid()==2) + { + while(1) + { + task_syscall_worker(); } } } |
