From 75dbecd06b211abe99023d4e2e9b951af074ae28 Mon Sep 17 00:00:00 2001 From: Nicholas Robinson Date: Mon, 18 May 2026 14:20:10 -0400 Subject: [PATCH] feat(android): add timer_[create, delete, getoverrun, gettime, settime] Add timer_create, timer_delete, timer_getoverrun, timer_gettime, and timer_settime to the Android extern block. These are standard POSIX per-process timer functions provided by Bionic but missing from the libc crate's Android bindings. --- libc-test/semver/android.txt | 5 +++++ src/unix/linux_like/android/mod.rs | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/libc-test/semver/android.txt b/libc-test/semver/android.txt index 5797d6e0482d9..9cdf6dfcce1f3 100644 --- a/libc-test/semver/android.txt +++ b/libc-test/semver/android.txt @@ -4075,6 +4075,11 @@ tgkill time time_t timegm +timer_create +timer_delete +timer_getoverrun +timer_gettime +timer_settime timerfd_create timerfd_gettime timerfd_settime diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 7495c994af4e3..c6dd17697adae 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -3501,6 +3501,20 @@ extern "C" { new_value: *const itimerspec, old_value: *mut itimerspec, ) -> c_int; + pub fn timer_create( + clockid: crate::clockid_t, + sevp: *mut crate::sigevent, + timerid: *mut crate::timer_t, + ) -> c_int; + pub fn timer_delete(timerid: crate::timer_t) -> c_int; + pub fn timer_getoverrun(timerid: crate::timer_t) -> c_int; + pub fn timer_gettime(timerid: crate::timer_t, curr_value: *mut crate::itimerspec) -> c_int; + pub fn timer_settime( + timerid: crate::timer_t, + flags: c_int, + new_value: *const crate::itimerspec, + old_value: *mut crate::itimerspec, + ) -> c_int; pub fn syscall(num: c_long, ...) -> c_long; pub fn sched_getaffinity( pid: crate::pid_t,