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

# NAME

`hardclock` — real-time timer

# SYNOPSIS

void
`hardclock`(struct clockframe *frame);

# DESCRIPTION

The `hardclock`() function is called hz(9) times per second. It implements the real-time system clock. The argument frame is an opaque, machine-dependent structure that encapsulates the previous machine state.

The `hardclock`() performs different tasks such as:

- Run the current process's virtual and profile time (decrease the corresponding timers, if they are activated, and generate `SIGVTALRM` or `SIGPROF`, respectively).
- Increment the time-of-day, taking care of any ntpd(8) or adjtime(2) induced changes and leap seconds, as well as any necessary compensations to keep in sync with PPS signals or external clocks, if support for this is in the kernel (see options(4)).
- Schedule softclock interrupts if any callouts should be triggered (see callout(9)).

# SEE ALSO

adjtime(2), ntp_adjtime(2), signal(7), ntpd(8), callout(9), hz(9)

March 25, 2010 | NetBSD 11.0