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