summaryrefslogtreecommitdiff
path: root/kernel/scheduler.c
diff options
context:
space:
mode:
authorMiguel <m.i@gmx.at>2018-10-13 00:57:28 +0200
committerMiguel <m.i@gmx.at>2018-10-13 00:57:28 +0200
commit279f3336a8f6b31ca38bdd272c73aebd68fa88fe (patch)
treeb4bb4a21a4acf38eb810768ac6c1b099e2f18a58 /kernel/scheduler.c
parentb461c3558b2fe765a4bac512638b0acf5185b4bb (diff)
ncurses arrow keys working etc
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;
}