summaryrefslogtreecommitdiff
path: root/src/kernel/task/syscall.c
diff options
context:
space:
mode:
authorAlexis211 <alexis211@gmail.com>2010-03-23 16:34:36 +0100
committerAlexis211 <alexis211@gmail.com>2010-03-23 16:34:36 +0100
commitcbadacbb881200b601c7b53b29aa0c1b78747692 (patch)
treec3230c4d2dc8f75d126826954b80a37770ad26c7 /src/kernel/task/syscall.c
parent6266a24cd2f71a0bad0e55c1eedd480790868c0f (diff)
downloadTCE-cbadacbb881200b601c7b53b29aa0c1b78747692.tar.gz
TCE-cbadacbb881200b601c7b53b29aa0c1b78747692.zip
More work on IPC
Diffstat (limited to 'src/kernel/task/syscall.c')
-rw-r--r--src/kernel/task/syscall.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/kernel/task/syscall.c b/src/kernel/task/syscall.c
index 752864c..51c46f1 100644
--- a/src/kernel/task/syscall.c
+++ b/src/kernel/task/syscall.c
@@ -8,6 +8,7 @@
r->eax = name(r->ebx, r->ecx); }
#define CALL0V(name, scname) static void scname(struct registers* r) { name(); }
#define CALL1V(name, scname) static void scname(struct registers* r) { name(r->ebx); }
+#define CALL2V(name, scname) static void scname(struct registers* r) { name(r->ebx, r->ecx); }
CALL0V(thread_exit, thread_exit_sc);
CALL0V(tasking_switch, schedule_sc);
@@ -15,17 +16,23 @@ CALL1V(thread_sleep, thread_sleep_sc);
CALL1V(process_exit, process_exit_sc);
CALL1(monitor_write, printk_sc);
CALL1V(idt_waitIrq, irq_wait_sc);
+CALL0(proc_priv, proc_priv_sc);
+CALL2(shm_create, shm_create_sc);
+CALL1(shm_delete, shm_delete_sc);
static void thread_new_sc(struct registers* r) {
thread_new(current_thread->process, (thread_entry)r->ebx, (void*)r->ecx);
}
int_callback syscalls[] = {
- thread_exit_sc,
+ thread_exit_sc, //0
schedule_sc,
thread_sleep_sc,
process_exit_sc,
printk_sc,
- thread_new_sc,
+ thread_new_sc, //5
irq_wait_sc,
+ proc_priv_sc,
+ shm_create_sc,
+ shm_delete_sc,
0 };