HARDCLOCK(9) Kernel Developer's Manual HARDCLOCK(9)

hardclockreal-time system clock

#include <sys/systm.h>

void
hardclock(struct clockframe *frame);

() 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.

() 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 ().
  • 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 () directly if the current interrupt priority is low enough.

hardclock() is implemented in the file sys/kern/kern_clock.c.

adjtime(2), hz(9), microtime(9), spl(9), timeout(9)

June 26, 2020 OpenBSD 7.5