Native Linux timerfd
Contact: Jake Freeland <jfree@FreeBSD.org>
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 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.
Last modified on: April 14, 2023 by Lorenzo Salvadore