From 0d00164c815d650fde178e941952e5efa5baf7d8 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Fri, 24 Sep 2021 21:02:49 +0100 Subject: netbsd aff timer api --- libc-test/semver/netbsd.txt | 7 +++++++ src/unix/bsd/netbsdlike/netbsd/mod.rs | 21 +++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/libc-test/semver/netbsd.txt b/libc-test/semver/netbsd.txt index fbb6277565..3e1604ff41 100644 --- a/libc-test/semver/netbsd.txt +++ b/libc-test/semver/netbsd.txt @@ -1209,6 +1209,7 @@ in6_pktinfo in_pktinfo initgroups ipc_perm +itimerspec kevent key_t killpg @@ -1380,6 +1381,12 @@ syscall sysctl sysctlbyname telldir +timer_create +timer_delete +timer_getoverrun +timer_gettime +timer_settime +timer_t timex truncate ttyname_r diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index 5946dbeaa8..e4a4a30289 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -13,6 +13,7 @@ pub type shmatt_t = ::c_uint; pub type cpuid_t = u64; pub type cpuset_t = _cpuset; pub type pthread_spin_t = ::c_uchar; +pub type timer_t = ::c_int; // elf.h @@ -120,6 +121,11 @@ s! { pub mq_curmsgs: ::c_long, } + pub struct itimerspec { + pub it_interval: ::timespec, + pub it_value: ::timespec, + } + pub struct sigset_t { __bits: [u32; 4], } @@ -2256,6 +2262,21 @@ extern "C" { ) -> ::size_t; pub fn iconv_close(cd: iconv_t) -> ::c_int; + pub fn timer_create( + clockid: ::clockid_t, + sevp: *mut ::sigevent, + timerid: *mut ::timer_t, + ) -> ::c_int; + pub fn timer_delete(timerid: ::timer_t) -> ::c_int; + pub fn timer_getoverrun(timerid: ::timer_t) -> ::c_int; + pub fn timer_gettime(timerid: ::timer_t, curr_value: *mut ::itimerspec) -> ::c_int; + pub fn timer_settime( + timerid: ::timer_t, + flags: ::c_int, + new_value: *const ::itimerspec, + old_value: *mut ::itimerspec, + ) -> ::c_int; + // Added in `NetBSD` 7.0 pub fn explicit_memset(b: *mut ::c_void, c: ::c_int, len: ::size_t); pub fn consttime_memequal(a: *const ::c_void, b: *const ::c_void, len: ::size_t) -> ::c_int; -- cgit v1.2.1