/* * $Id: kern_time.c,v 1.2 2007/11/23 13:37:43 nbrk Exp $ */ #include #include #include #include /* * Kernel time-related stuff. */ struct rtcops sysrtcops = {NULL, NULL, NULL}; /* system will use this to control rtc hardware */ struct timedata systimedata; void sysclock_init(void) { /* * Start system clock. */ /* panic if driver haven't configured rtcops for us */ if (sysrtcops.ro_sethz == NULL) panic("sysclock_init: clock init failed; can't find rtc driver entry points (sysrtcops is null)\n"); /* configure hardware */ sysrtcops.ro_sethz(HZ); } void sysclock(void) { /* * Process one system tick. * RTC interrupt handler will call us; remember that we are in interrupt mode here. */ /* update time data */ systimedata.td_seconds = sysrtcops.ro_getsec(); /* TODO kick scheduler */ sched_tick(); }