zig/lib/std/os
Brandon Black 04071d64bb std.os.linux.setsid(): return raw syscall0 result
When not linking libc on 64-bit Linux and calling posix.setsid(),
we get a type error at compile time inside of posix.errno().  This
is because posix.errno()'s non-libc branch expects a usize-sized
value, which is what all the error-returning os.linux syscalls
return, and linux.setsid() instead returned a pid_t, which is only
32 bits wide.

This and the other 3 pid-related calls just below it (getpid(),
getppid(), and gettid()) are the only Linux syscall examples here
that are casting their return values to pid_t. For the other 3
this makes sense: those calls are documented to have no possible
errors and always return a valid pid_t value.

However, setsid() actually can return the error EPERM, and
therefore needs to return the raw value from syscall0 for
posix.errno() to process like normal.

Additionally, posix.setsid() needs an @intCast(rc) for the success
case as a result, like most other such cases.
2025-09-12 07:19:01 -05:00
..
linux std.os.linux: powerpc syscalls clobber ctr and xer 2025-08-28 07:41:22 +02:00
plan9 zig fmt 2025-07-16 10:27:39 -07:00
uefi std.Io: delete GenericReader 2025-08-29 17:14:26 -07:00
windows update format strings in os/windows/test.zig 2025-07-08 08:46:31 -07:00
emscripten.zig sigset_t: sigemptyset() and sigfillset() are functions that return sigset_t 2025-04-30 20:32:04 -07:00
freebsd.zig std.os.freebsd.copy_file_range: add missing error.Unexpected 2025-07-08 16:53:02 -07:00
linux.zig std.os.linux.setsid(): return raw syscall0 result 2025-09-12 07:19:01 -05:00
plan9.zig sigset_t: sigemptyset() and sigfillset() are functions that return sigset_t 2025-04-30 20:32:04 -07:00
uefi.zig std.Io: delete GenericReader 2025-08-29 17:14:26 -07:00
wasi.zig wasi: fix wasm-wasi-musl constants 2025-02-09 09:08:11 +01:00
windows.zig std.os.windows: map RtlGenRandom() failure to error.SystemResources 2025-08-08 07:25:26 +02:00