aboutsummaryrefslogtreecommitdiff
path: root/common/uapi
diff options
context:
space:
mode:
Diffstat (limited to 'common/uapi')
-rw-r--r--common/uapi/dispatch.c3
-rw-r--r--common/uapi/ipc.c17
2 files changed, 14 insertions, 6 deletions
diff --git a/common/uapi/dispatch.c b/common/uapi/dispatch.c
index 97fc0d8..5e2e788 100644
--- a/common/uapi/dispatch.c
+++ b/common/uapi/dispatch.c
@@ -17,7 +17,8 @@ static const sys_t syscall_table[] = {
/* ipc */
[SYS_IPC_SERVER] = sys_ipc_server,
- [SYS_IPC_REQ] = sys_ipc_req,
+ [SYS_IPC_REQ_PROC] = sys_ipc_req_proc,
+ [SYS_IPC_REQ_THREAD] = sys_ipc_req_thread,
[SYS_IPC_RESP] = sys_ipc_resp,
/* proc */
diff --git a/common/uapi/ipc.c b/common/uapi/ipc.c
index d7c9d16..0d2d287 100644
--- a/common/uapi/ipc.c
+++ b/common/uapi/ipc.c
@@ -11,16 +11,23 @@ SYSCALL_DEFINE1(ipc_server)(sys_arg_t callback)
return (struct sys_ret){ OK, 0 };
}
-SYSCALL_DEFINE3(ipc_req)(sys_arg_t tid, sys_arg_t d0, sys_arg_t d1)
+SYSCALL_DEFINE3(ipc_req_proc)(sys_arg_t pid, sys_arg_t d0, sys_arg_t d1)
{
- struct tcb *r = get_tcb(tid);
- /* something like jump_to_callback(t) */
+ struct tcb *r = get_tcb(pid);
+ /* TODO: something like jump_to_callback(t) */
return (struct sys_ret){ d0, d1 };
}
-SYSCALL_DEFINE3(ipc_resp)(sys_arg_t tid, sys_arg_t d0, sys_arg_t d1)
+SYSCALL_DEFINE3(ipc_req_thread)(sys_arg_t tid, sys_arg_t d0, sys_arg_t d1)
{
- struct tcb *r = get_tcb(tid);
+ struct tcb *t = get_tcb(tid);
+ /* ditto */
+ return (struct sys_ret){ d0, d1 };
+}
+
+SYSCALL_DEFINE2(ipc_resp)(sys_arg_t d0, sys_arg_t d1)
+{
+ struct tcb *r = cur_tcb();
/* something like return_from_callback(t, r) */
return (struct sys_ret){ d0, d1 };
}