The specialfd interface acts as a syscall wrapper for the creation of
Linux special file descriptors (e.g. eventfd, timerfd). Attempt to
simplify the interface by removing switch statements and moving
fd-specific code into respective user_*fd functions.
As more special fds are added, the switch statement would become crowded
and difficult to work with. This approach attempts to make the interface
more modular.
This is the first patch in a series to support native timerfd:
https://reviews.freebsd.org/D38459