All of this information (and more) is in the timeout(9) manpage. Can I kill this comment?
Index: timeout.h =================================================================== RCS file: /cvs/src/sys/sys/timeout.h,v retrieving revision 1.40 diff -u -p -r1.40 timeout.h --- timeout.h 15 Oct 2020 20:03:44 -0000 1.40 +++ timeout.h 25 May 2021 18:27:37 -0000 @@ -27,30 +27,6 @@ #ifndef _SYS_TIMEOUT_H_ #define _SYS_TIMEOUT_H_ -/* - * Interface for handling time driven events in the kernel. - * - * The basic component of this API is the struct timeout. The user should not - * touch the internals of this structure, but it's the users responsibility - * to allocate and deallocate timeouts. - * - * The functions used to manipulate timeouts are: - * - timeout_set(timeout, function, argument) - * Initializes a timeout struct to call the function with the argument. - * A timeout only needs to be initialized once. - * - timeout_add(timeout, ticks) - * Schedule this timeout to run in "ticks" ticks (there are hz ticks in - * one second). You may not touch the timeout with timeout_set once the - * timeout is scheduled. A second call to timeout_add with an already - * scheduled timeout will cause the old timeout to be canceled and the - * new will be scheduled. - * - timeout_del(timeout) - * Remove the timeout from the timeout queue. It's legal to remove - * a timeout that has already happened. - * - * These functions may be called in interrupt context (anything below splhigh). - */ - #include <sys/time.h> struct circq {