summaryrefslogtreecommitdiff
path: root/src/kernel/task/syscall.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/task/syscall.c')
-rw-r--r--src/kernel/task/syscall.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/kernel/task/syscall.c b/src/kernel/task/syscall.c
index 51c46f1..dd909e0 100644
--- a/src/kernel/task/syscall.c
+++ b/src/kernel/task/syscall.c
@@ -6,9 +6,12 @@
r->eax = name(r->ebx); }
#define CALL2(name, scname) static void scname(struct registers* r) { \
r->eax = name(r->ebx, r->ecx); }
+#define CALL3(name, scname) static void scname(struct registers* r) { \
+ r->eax = name(r->ebx, r->ecx, r->edx); }
#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); }
+#define CALL3V(name, scname) static void scname(struct registers* r) { name(r->ebx, r->ecx, r->edx); }
CALL0V(thread_exit, thread_exit_sc);
CALL0V(tasking_switch, schedule_sc);
@@ -19,6 +22,15 @@ CALL1V(idt_waitIrq, irq_wait_sc);
CALL0(proc_priv, proc_priv_sc);
CALL2(shm_create, shm_create_sc);
CALL1(shm_delete, shm_delete_sc);
+CALL0(object_create, object_create_sc);
+CALL1(object_owned, object_owned_sc);
+CALL1V(object_close, object_close_sc);
+CALL3(request_get, request_get_sc);
+CALL1(request_has, request_has_sc);
+CALL3V(request_answer, request_answer_sc);
+CALL3(request_mapShm, request_mapShm_sc);
+CALL2(request, request_sc);
+CALL2(send_msg, send_msg_sc);
static void thread_new_sc(struct registers* r) {
thread_new(current_thread->process, (thread_entry)r->ebx, (void*)r->ecx);
@@ -35,4 +47,13 @@ int_callback syscalls[] = {
proc_priv_sc,
shm_create_sc,
shm_delete_sc,
+ object_create_sc, //10
+ object_owned_sc,
+ object_close_sc,
+ request_get_sc,
+ request_has_sc,
+ request_answer_sc, //15
+ request_mapShm_sc,
+ request_sc,
+ send_msg_sc,
0 };