diff options
Diffstat (limited to 'kernel/task.c')
| -rw-r--r-- | kernel/task.c | 11 |
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); } |
