summaryrefslogtreecommitdiff
path: root/kernel/usermode.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/usermode.c')
-rw-r--r--kernel/usermode.c15
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();
}
}
}