aboutsummaryrefslogtreecommitdiff
path: root/lib/std/os
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2023-10-06 16:10:16 -0700
committerGitHub <noreply@github.com>2023-10-06 16:10:16 -0700
commit2d0ddce309cbc0cac8a91e7aed5b3cdb988c9fa8 (patch)
tree00144f5dd1a57c59bf107656348ef0940776cf6b /lib/std/os
parentad6f8e3a5955df4d26478bc284919f4e5c8a6913 (diff)
parent8ce33795e95ea0390d320ea2acc60059b460941e (diff)
downloadzig-2d0ddce309cbc0cac8a91e7aed5b3cdb988c9fa8.tar.gz
zig-2d0ddce309cbc0cac8a91e7aed5b3cdb988c9fa8.zip
Merge pull request #17027 from Ratakor/master
std.os.linux: Add filled_sigset and pause()
Diffstat (limited to 'lib/std/os')
-rw-r--r--lib/std/os/linux.zig12
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/std/os/linux.zig b/lib/std/os/linux.zig
index acf31d1845..2ecb5da231 100644
--- a/lib/std/os/linux.zig
+++ b/lib/std/os/linux.zig
@@ -1042,6 +1042,14 @@ pub fn nanosleep(req: *const timespec, rem: ?*timespec) usize {
return syscall2(.nanosleep, @intFromPtr(req), @intFromPtr(rem));
}
+pub fn pause() usize {
+ if (@hasField(SYS, "pause")) {
+ return syscall0(.pause);
+ } else {
+ return syscall4(.ppoll, 0, 0, 0, 0);
+ }
+}
+
pub fn setuid(uid: uid_t) usize {
if (@hasField(SYS, "setuid32")) {
return syscall1(.setuid32, uid);
@@ -3350,7 +3358,9 @@ pub const Sigaction = extern struct {
restorer: ?*const fn () callconv(.C) void = null,
};
-pub const empty_sigset = [_]u32{0} ** @typeInfo(sigset_t).Array.len;
+const sigset_len = @typeInfo(sigset_t).Array.len;
+pub const empty_sigset = [_]u32{0} ** sigset_len;
+pub const filled_sigset = [_]u32{(1 << (31 & (usize_bits - 1))) - 1} ++ [_]u32{0} ** (sigset_len - 1);
pub const SFD = struct {
pub const CLOEXEC = O.CLOEXEC;