NAME
hardclock
—
real-time system clock
SYNOPSIS
#include
<sys/systm.h>
void
hardclock
(struct clockframe
*frame);
DESCRIPTION
hardclock
()
implements the real-time system clock, interrupting
hz(9)
times a second. The argument frame is an opaque,
machine dependent structure that encapsulates the previous machine
state.
hardclock
()
performs a variety of time related housekeeping tasks, such as:
- If the current process has virtual or profiling interval timers, update the timers and deliver appropriate signals.
- If there is no separate statistics clock, execute
statclock
(). - Increment the time of day, implementing any adjustments requested by adjtime(2) or required as a result of running an NTP daemon or other configured external clock.
- Update the real-time timeout queue, calling
softclock
() directly if the current interrupt priority is low enough.
CODE REFERENCES
hardclock
() is implemented in the file
sys/kern/kern_clock.c.
SEE ALSO
adjtime(2), hz(9), microtime(9), spl(9), time_second(9), timeout(9)