diff --git a/website/content/en/status/report-2023-01-2023-03/timerfd.adoc b/website/content/en/status/report-2023-01-2023-03/timerfd.adoc new file mode 100644 index 0000000000..0b971fc047 --- /dev/null +++ b/website/content/en/status/report-2023-01-2023-03/timerfd.adoc @@ -0,0 +1,22 @@ +=== Native Linux timerfd + +Links: + +link:https://reviews.freebsd.org/D38459[Differential revision] URL: link:https://reviews.freebsd.org/D38459[https://reviews.freebsd.org/D38459] + +Contact: Jake Freeland + +The timerfd facility is a set of Linux-standard system calls that operate on interval timers. +These timers are analogous to per-process timers but are represented by a file descriptor, rather than a process. +These file descriptors may be passed to other processes, are preserved across fork(2), and may be monitored via kevent(2), poll(2), or select(2). + +A timerfd implementation in FreeBSD already exists for Linux compatibility, but +link:https://reviews.freebsd.org/D38459[this differential revision] +makes the interface native. +The goal behind this change is to ease the FreeBSD porting process for programs that include timerfd. + +This specific implementation avoids adding new names to the system call table. +Instead, timerfd_create() is wrapped by the specialfd() system call. +The timerfd_gettime() and timerfd_settime() calls are wrapped ioctl()s. + +Developers that wish to support FreeBSD should avoid using timerfd. +The kqueue() EVFILT_TIMER filter is preferred for establishing arbitrary timers.