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