summaryrefslogtreecommitdiff
path: root/kernel/task.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/task.c')
-rw-r--r--kernel/task.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/kernel/task.c b/kernel/task.c
index 1474a64..000dc74 100644
--- a/kernel/task.c
+++ b/kernel/task.c
@@ -82,6 +82,7 @@ volatile uint32_t my_scheduler(uint32_t oldesp)
// this gets called by our clock interrupt regularly!
volatile uint32_t task_switch_next(uint32_t oldesp)
{
+ asm volatile("sti");
timer_tick();
@@ -146,12 +147,12 @@ volatile uint32_t task_fork(uint32_t oldesp)
return pid;
}
-char *argv_init[]={"/bin/init",NULL};
-char *env_init[]={NULL};
// init task (root of all other tasks / processes) //
volatile void task_init(pdirectory *dir)
{
+
+
// this is our main task on slot 0
task_list[0].parent=0;
task_list[0].active=true;
@@ -159,10 +160,12 @@ volatile void task_init(pdirectory *dir)
task_list[0].vmem=dir;
task_list[0].esp = 0; // will be set by next task_switch_next() call.
current_task=0;
+
+
+ switch_to_user_mode();
- syscall_execve("/bin/init",argv_init,env_init);
//syscall_execve("/bin/foolshell",argv_init,env_init);
-// syscall_execve("/bin/tput",argv,env);
+ //syscall_execve("/bin/tput",argv,env);
}