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

# NAME

`inittodr` — initialize system time

# SYNOPSIS

void
`inittodr`(time_t base);

# DESCRIPTION

The `inittodr`() function determines the time and sets the system clock. It tries to pick the correct time using a set of heuristics that examine the system's battery-backed clock and the time reported by the file system, as given in base. Those heuristics include:

- If the battery-backed clock has a valid time, it is used.
- If the battery-backed clock does not have a valid time, and the time provided in base is within reason, base is used as the current time.
- If the battery-backed clock appears invalid, and base appears nonsensical or was not provided (was given as zero), an arbitrary base (typically some time in the late 1970s) will be used.

Once a system time has been determined, it is passed to the `tc_setclock`() function.

# DIAGNOSTICS

The `inittodr`() function prints diagnostic messages if it has trouble figuring out the system time. Conditions that can cause diagnostic messages to be printed include:

- The battery-backed clock's time appears nonsensical.
- The base time appears nonsensical.
- The base time and the battery-backed clock's time differ by a large amount.

# SEE ALSO

microtime(9), resettodr(9)

# BUGS

Each system's heuristics for picking the correct time are slightly different.

June 26, 2020 | Debian