aboutsummaryrefslogtreecommitdiff
path: root/common/uapi/ipc.c
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2022-06-12 16:18:47 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2022-06-12 16:18:47 +0300
commit62fc51338d7259c2ea39f38bd8c7d9552e9b2002 (patch)
tree87eb670ed58b3ce0d5c0e2ad39f5c633d9e10e40 /common/uapi/ipc.c
parent6c529c5c6c2d016d77b143171c5e27fbec0d2bfd (diff)
downloadkmi-62fc51338d7259c2ea39f38bd8c7d9552e9b2002.tar.gz
kmi-62fc51338d7259c2ea39f38bd8c7d9552e9b2002.zip
doxygen shows no warnings
+ Does not mean documentation is done, but it's a nice little achievement nonetheless.
Diffstat (limited to 'common/uapi/ipc.c')
-rw-r--r--common/uapi/ipc.c34
1 files changed, 32 insertions, 2 deletions
diff --git a/common/uapi/ipc.c b/common/uapi/ipc.c
index 8584673..4cdec0c 100644
--- a/common/uapi/ipc.c
+++ b/common/uapi/ipc.c
@@ -9,6 +9,13 @@
#include <apos/uapi.h>
#include <apos/tcb.h>
+/**
+ * IPC server notification syscall handler.
+ *
+ * @param callback Address of server callback.
+ * @return \ref ERR_EXT and \c 0 if process already is a server,
+ * \ref OK and \c 0 otherwise.
+ */
SYSCALL_DEFINE1(ipc_server)(sys_arg_t callback)
{
struct tcb *r = cur_tcb();
@@ -19,6 +26,14 @@ SYSCALL_DEFINE1(ipc_server)(sys_arg_t callback)
return (struct sys_ret){ OK, 0 };
}
+/**
+ * IPC request syscall handler.
+ *
+ * @param pid Process to request RPC to.
+ * @param d0 IPC argument 0.
+ * @param d1 IPC argument 1.
+ * @return \c d0 and \c d1.
+ */
SYSCALL_DEFINE3(ipc_req)(sys_arg_t pid, sys_arg_t d0, sys_arg_t d1)
{
struct tcb *r = get_tcb(pid);
@@ -27,13 +42,28 @@ SYSCALL_DEFINE3(ipc_req)(sys_arg_t pid, sys_arg_t d0, sys_arg_t d1)
return (struct sys_ret){ d0, d1 };
}
-SYSCALL_DEFINE3(ipc_fwd)(sys_arg_t tid, sys_arg_t d0, sys_arg_t d1)
+/**
+ * IPC forwarding syscall handler.
+ *
+ * @param pid Process to rquest RPC to.
+ * @param d0 IPC argument 0.
+ * @param d1 IPC argument 1.
+ * @return \c d0 and \c d1.
+ */
+SYSCALL_DEFINE3(ipc_fwd)(sys_arg_t pid, sys_arg_t d0, sys_arg_t d1)
{
- struct tcb *t = get_tcb(tid);
+ struct tcb *t = get_tcb(pid);
/* ditto */
return (struct sys_ret){ d0, d1 };
}
+/**
+ * IPC response syscall handler.
+ *
+ * @param d0 IPC return value 0.
+ * @param d1 IPC return value 1.
+ * @return \c d0 and \c d1.
+ */
SYSCALL_DEFINE2(ipc_resp)(sys_arg_t d0, sys_arg_t d1)
{
struct tcb *r = cur_tcb();