aboutsummaryrefslogtreecommitdiff
path: root/website/content/en/status/report-2023-01-2023-03/timerfd.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'website/content/en/status/report-2023-01-2023-03/timerfd.adoc')
-rw-r--r--website/content/en/status/report-2023-01-2023-03/timerfd.adoc20
1 files changed, 20 insertions, 0 deletions
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..b6d9ec7ee6
--- /dev/null
+++ b/website/content/en/status/report-2023-01-2023-03/timerfd.adoc
@@ -0,0 +1,20 @@
+=== Native Linux timerfd
+
+Links: +
+link:https://reviews.freebsd.org/D38459[Differential revision] URL: link:https://reviews.freebsd.org/D38459[]
+
+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 man:fork[2], and may be monitored via man:kevent[2], man:poll[2], or man: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.