diff options
Diffstat (limited to 'common/uapi/ipc.c')
| -rw-r--r-- | common/uapi/ipc.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/common/uapi/ipc.c b/common/uapi/ipc.c index fa0376a..141b494 100644 --- a/common/uapi/ipc.c +++ b/common/uapi/ipc.c @@ -84,13 +84,16 @@ SYSCALL_DEFINE4(ipc_resp)(sys_arg_t d0, sys_arg_t d1, sys_arg_t d2, * * @param tid Thread ID to notify. * @param swap Whether to swap immediately if possible. - * @param a0 Argument 0. - * @param a1 Argument 1. * @return \ref OK and 0. */ -SYSCALL_DEFINE4(ipc_notify)(sys_arg_t tid, sys_arg_t swap, - sys_arg_t a0, sys_arg_t a1){ +SYSCALL_DEFINE2(ipc_notify)(sys_arg_t tid, sys_arg_t swap){ /** \todo masquerade as kernel call, set from to 0 and set us as - * notify type, with arguments a0 and a1 as user-configurable data. */ - return (struct sys_ret){ OK, 0, 0 /* type */, 0 /* from */, a0, a1 }; + * notify type, no arguments as that would require too much state + * handling for my liking. Instead, a server and a client have to agree + * on some rpc API, and ipc_notify is just used to asynchronously inform + * the client that it should check the status of its async operations. + * Arguably slower than directly telling the client which operation was + * finished, but this would require the kernel to keep track of a notify + * stack. While not impossible, probably too complex. */ + return (struct sys_ret){ OK, 0, 0 /* type */, 0 /* from */, 0, 0 }; } |
