From 54ea0bbcdddc9e13ed98415d8883f03d59392509 Mon Sep 17 00:00:00 2001 From: David CARLIER Date: Fri, 19 May 2023 12:44:08 +0100 Subject: [PATCH] std.c: exposing timer api --- lib/std/c.zig | 5 +++++ lib/std/c/dragonfly.zig | 2 ++ lib/std/c/freebsd.zig | 2 ++ lib/std/c/linux.zig | 1 + lib/std/c/netbsd.zig | 2 ++ lib/std/c/solaris.zig | 2 ++ 6 files changed, 14 insertions(+) diff --git a/lib/std/c.zig b/lib/std/c.zig index c0ee29445a..67c676f0dd 100644 --- a/lib/std/c.zig +++ b/lib/std/c.zig @@ -408,6 +408,11 @@ pub extern "c" fn setlogmask(maskpri: c_int) c_int; pub extern "c" fn if_nametoindex([*:0]const u8) c_int; +pub extern "c" fn timer_create(clockid: c.clockid_t, sevp: *c.sigevent, timerid: *c.timer_t) c_int; +pub extern "c" fn timer_delete(timerid: c.timer_t) c_int; +pub extern "c" fn timer_settime(timerid: c.timer_t, flags: c_int, new_value: *const c.itimerspec, old_value: *c.itimerspec) c_int; +pub extern "c" fn timer_gettime(timerid: c.timer_t, flags: c_int, curr_value: *c.itimerspec) c_int; + pub const max_align_t = if (builtin.abi == .msvc) f64 else if (builtin.target.isDarwin()) diff --git a/lib/std/c/dragonfly.zig b/lib/std/c/dragonfly.zig index 824fc2757e..c3086ff329 100644 --- a/lib/std/c/dragonfly.zig +++ b/lib/std/c/dragonfly.zig @@ -1162,3 +1162,5 @@ pub const sigevent = extern struct { }; pub const PTHREAD_STACK_MIN = 16 * 1024; + +pub const timer_t = *opaque {}; diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig index b351128b03..8e8a576564 100644 --- a/lib/std/c/freebsd.zig +++ b/lib/std/c/freebsd.zig @@ -2586,6 +2586,8 @@ pub const sigevent = extern struct { }, }; +pub const timer_t = *opaque {}; + pub const MIN = struct { pub const INCORE = 0x1; pub const REFERENCED = 0x2; diff --git a/lib/std/c/linux.zig b/lib/std/c/linux.zig index 17ce6eb3bd..d5add70033 100644 --- a/lib/std/c/linux.zig +++ b/lib/std/c/linux.zig @@ -100,6 +100,7 @@ pub const stack_t = linux.stack_t; pub const tcflag_t = linux.tcflag_t; pub const termios = linux.termios; pub const time_t = linux.time_t; +pub const timer_t = linux.timer_t; pub const timespec = linux.timespec; pub const timeval = linux.timeval; pub const timezone = linux.timezone; diff --git a/lib/std/c/netbsd.zig b/lib/std/c/netbsd.zig index 67ed0f6ed9..5a848c4808 100644 --- a/lib/std/c/netbsd.zig +++ b/lib/std/c/netbsd.zig @@ -1723,3 +1723,5 @@ pub extern "c" fn ptrace(request: c_int, pid: pid_t, addr: ?*anyopaque, data: c_ /// TODO refines if necessary pub const PTHREAD_STACK_MIN = 16 * 1024; + +pub const timer_t = *opaque {}; diff --git a/lib/std/c/solaris.zig b/lib/std/c/solaris.zig index 4aeae190d0..3a6708613b 100644 --- a/lib/std/c/solaris.zig +++ b/lib/std/c/solaris.zig @@ -1948,3 +1948,5 @@ pub const sigevent = extern struct { }; pub const PTHREAD_STACK_MIN = if (@sizeOf(usize) == 8) 8 * 1024 else 4 * 1024; + +pub const timer_t = *opaque {};