xref: /minix3/minix/lib/libc/sys/clock_settime.c (revision 433d6423c39e34ec4b79c950597bb2d236f886be)
1 #include <sys/cdefs.h>
2 #include <lib.h>
3 #include "namespace.h"
4 
5 #include <string.h>
6 #include <time.h>
7 
8 #ifdef __weak_alias
9 __weak_alias(clock_settime, __clock_settime50);
10 #endif
11 
clock_settime(clockid_t clock_id,const struct timespec * ts)12 int clock_settime(clockid_t clock_id, const struct timespec *ts)
13 {
14   message m;
15 
16   memset(&m, 0, sizeof(m));
17   m.m_lc_pm_time.clk_id = clock_id;
18   m.m_lc_pm_time.now = 1; /* set time immediately. don't use adjtime() method. */
19   m.m_lc_pm_time.sec = ts->tv_sec;
20   m.m_lc_pm_time.nsec = ts->tv_nsec;
21 
22   if (_syscall(PM_PROC_NR, PM_CLOCK_SETTIME, &m) < 0)
23   	return -1;
24 
25   return 0;
26 }
27 
28