From 5793a61eb824a7b97e9bab5913b595a778205cef Mon Sep 17 00:00:00 2001 From: Kimplul Date: Sun, 22 May 2022 15:05:39 +0300 Subject: improved tcb handling in preparation for processes --- common/uapi/dispatch.c | 3 ++- common/uapi/ipc.c | 17 ++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) (limited to 'common/uapi') 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 }; } -- cgit v1.3