From 804319799586961052a9e4f283ad94d5018ce5fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sat, 31 Aug 2024 03:24:55 +0200 Subject: [PATCH] std.os.linux: Add clock_nanosleep() syscall wrapper. --- lib/std/os/linux.zig | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lib/std/os/linux.zig b/lib/std/os/linux.zig index 90298bc7cd..9039acedee 100644 --- a/lib/std/os/linux.zig +++ b/lib/std/os/linux.zig @@ -1456,6 +1456,16 @@ pub fn clock_settime(clk_id: i32, tp: *const timespec) usize { return syscall2(.clock_settime, @as(usize, @bitCast(@as(isize, clk_id))), @intFromPtr(tp)); } +pub fn clock_nanosleep(clockid: clockid_t, flags: TIMER, request: *const timespec, remain: ?*timespec) usize { + return syscall4( + .clock_nanosleep, + @intFromEnum(clockid), + @as(u32, @bitCast(flags)), + @intFromPtr(request), + @intFromPtr(remain), + ); +} + pub fn gettimeofday(tv: ?*timeval, tz: ?*timezone) usize { return syscall2(.gettimeofday, @intFromPtr(tv), @intFromPtr(tz)); } @@ -4527,6 +4537,11 @@ pub const clockid_t = enum(u32) { _, }; +pub const TIMER = packed struct(u32) { + ABSTIME: bool, + _: u31 = 0, +}; + pub const CSIGNAL = 0x000000ff; pub const CLONE = struct {