diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2023-07-27 18:39:54 +0300 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2023-07-27 18:39:54 +0300 |
| commit | a26fb216729ba7a7d0fbfc97c2082c9db512aa36 (patch) | |
| tree | deb10d29615187bb0788b7b5ae82004909add3e5 /include | |
| parent | 8701c9b47319202e845fb12b3e7f7bc829b4c144 (diff) | |
| download | kmi-a26fb216729ba7a7d0fbfc97c2082c9db512aa36.tar.gz kmi-a26fb216729ba7a7d0fbfc97c2082c9db512aa36.zip | |
add ipc_kick
+ Tests will have to come later
Diffstat (limited to 'include')
| -rw-r--r-- | include/kmi/syscalls.h | 3 | ||||
| -rw-r--r-- | include/kmi/uapi.h | 24 |
2 files changed, 27 insertions, 0 deletions
diff --git a/include/kmi/syscalls.h b/include/kmi/syscalls.h index bb7891b..8ca6546 100644 --- a/include/kmi/syscalls.h +++ b/include/kmi/syscalls.h @@ -83,6 +83,9 @@ enum { /** Forward IPC request from client. */ SYS_IPC_FWD, + /** Kick request handling to someone else. */ + SYS_IPC_KICK, + /** IPC response from server. */ SYS_IPC_RESP, diff --git a/include/kmi/uapi.h b/include/kmi/uapi.h index ad4369f..526738a 100644 --- a/include/kmi/uapi.h +++ b/include/kmi/uapi.h @@ -552,6 +552,30 @@ SYSCALL_DECLARE5(ipc_req, pid, d0, d1, d2, d3); SYSCALL_DECLARE5(ipc_fwd, pid, d0, d1, d2, d3); /** + * Kicking syscall. + * Kicks the handling of an IPC req/fwd to someone else, jumping over the + * current process at ipc_resp(). + * + * I'm imagining that this is useful in cases where an init process connects a + * client to another server, and kicks the actual request handling to the + * server. Note that ipc_resp() returning the ID of the process that handled a + * request is useful in case the client and server should continue communicating + * with eachother instead of going through init every time. + * + * Otherwise identical to ipc_fwd(). + * + * @param t Current tcb. + * @param pid Process to kick req/fwd to. + * @param d0 First argument. + * @param d1 Second argument. + * @param d2 Third argument. + * @param d3 Fourth argument. + * + * Doesn't return. + */ +SYSCALL_DECLARE5(ipc_kick, pid, d0, d1, d2, d3); + +/** * Response syscall. * * @param t Current tcb. |
