diff options
Diffstat (limited to 'src/lib/rethooks.zig')
-rw-r--r-- | src/lib/rethooks.zig | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/lib/rethooks.zig b/src/lib/rethooks.zig index bad4d55..e81125a 100644 --- a/src/lib/rethooks.zig +++ b/src/lib/rethooks.zig @@ -3,9 +3,16 @@ // SPDX-License-Identifier: AGPL-3.0-or-later pub fn terminate() linksection(".rethooks") callconv(.Naked) noreturn { - // Syscall #100011 is "terminate". + // Syscall #100001 is "open". + // Use the "/process/self/terminate" hook to terminate the thread. asm volatile ( - \\ li a7, 100011 + \\ mv a0, a2 + \\ mv a1, a3 + \\ mv t0, a0 + \\ li a7, 100001 \\ ecall + : + : [path_c] "{t0}" ("/process/self/terminate\x00".ptr), + : "a0", "a2", "a3", "a7" ); } |