HARDCLOCK(9)

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)