void clockobj_caltime_to_timeout(struct clockobj *clkobj, const struct tm *tm, unsigned long rticks, struct timespec *ts) { struct timespec date; ticks_t ticks; clockobj_caltime_to_ticks(clkobj, tm, rticks, &ticks); __clockobj_ticks_to_timespec(clkobj, ticks, &date); timespec_sub(ts, &date, &clkobj->offset); }
u_long tm_set(u_long date, u_long time, u_long ticks) { struct service svc; struct tm tm; ticks_t t; int ret; COPPERPLATE_PROTECT(svc); ret = date_to_tmstruct(date, time, ticks, &tm); if (ret) goto out; clockobj_caltime_to_ticks(&psos_clock, &tm, ticks, &t); clockobj_set_date(&psos_clock, t, 0); out: COPPERPLATE_UNPROTECT(svc); return SUCCESS; }