HARDCLOCK(9) | Kernel Developer's Manual | 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), timeout(9)

June 26, 2020 | Debian