diff options
Diffstat (limited to 'kernel/scheduler.c')
| -rw-r--r-- | kernel/scheduler.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/kernel/scheduler.c b/kernel/scheduler.c index bddd705..2112659 100644 --- a/kernel/scheduler.c +++ b/kernel/scheduler.c @@ -417,6 +417,7 @@ void task_syscall_worker() } } +// !!! REMEMBER THIS IS INSIDE AN INTERRUPT !!! volatile uint32_t task_syscall(uint32_t eax,uint32_t ebx, uint32_t ecx, uint32_t edx) { if(eax==2)while(1); @@ -427,6 +428,14 @@ volatile uint32_t task_syscall(uint32_t eax,uint32_t ebx, uint32_t ecx, uint32_t task_list[cpu][current_task[cpu]].ebx=ebx; task_list[cpu][current_task[cpu]].ecx=ecx; task_list[cpu][current_task[cpu]].edx=edx; + + // chance for some preparations // + int i=current_task[cpu]; + syscall_generic_prep(task_list[cpu][i].eax, + task_list[cpu][i].edx, + task_list[cpu][i].ecx, + task_list[cpu][i].ebx, + task_list[cpu][i].pid); return 1; } |
