mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
timerfd: Namespace pollution adjustments
Do not pollute userspace with <sys/proc.h>, instead declare struct thread
when _KERNEL is defined.
Include <sys/time.h> instead of <sys/timespec.h>. This causes intentional
namespace pollution that mimics Linux. g/musl libcs include <time.h> in
their <sys/timerfd.h>, exposing clock gettime, settime functions and
CLOCK_ macro constants. Ports like Chromium expect this namespace
pollution and fail without it.
MFC After: 3 days
Reviewed by: imp, markj
Differential Revision: https://reviews.freebsd.org/D41641
(cherry picked from commit fb5daae920bae84e3eec8175bf9e46304c3b2ae6)
This commit is contained in:
parent
27d567847b
commit
8bcf9a87c7
1 changed files with 8 additions and 2 deletions
|
|
@ -30,8 +30,12 @@
|
|||
|
||||
#include <sys/types.h>
|
||||
#include <sys/fcntl.h>
|
||||
#include <sys/proc.h>
|
||||
#include <sys/timespec.h>
|
||||
/*
|
||||
* We only need <sys/timespec.h>, but glibc pollutes the namespace
|
||||
* with <time.h>. This pollution is expected by most programs, so
|
||||
* reproduce it by including <sys/time.h> here.
|
||||
*/
|
||||
#include <sys/time.h>
|
||||
|
||||
typedef uint64_t timerfd_t;
|
||||
|
||||
|
|
@ -54,6 +58,8 @@ __END_DECLS
|
|||
|
||||
#else /* _KERNEL */
|
||||
|
||||
struct thread;
|
||||
|
||||
int kern_timerfd_create(struct thread *td, int clockid, int flags);
|
||||
int kern_timerfd_gettime(struct thread *td, int fd,
|
||||
struct itimerspec *curr_value);
|
||||
|
|
|
|||
Loading…
Reference in a new issue