#define TIMER_ABSTIME 1 int clock_nanosleep(int clock_id, int flags, struct timespec *time, struct timespec *remaining);
This syscall sleeps the callee thread for the passed time with the requested clock. If interrupted by a signal or similar, it returns the remaining time that could not be waited.
Unlike what POSIX mandates, this syscall will always need remaining to
be a valid structure. clock_id takes the same value as clock.
flags can be one of the following:
TIMER_ABSTIMEInstead of an increment on top of the current time, time is taken as an
absolute time (ideally in the future!).
The syscall returns 0 on success or -1 on failure, with the
following errno:
EFAULTtime or remaining point to non accessible memory.
EINVALOne of the passed values is not valid.
EPERMMAC did not allow this.