table of contents
INITTODR(9) | Kernel Developer's Manual | INITTODR(9) |
NAME¶
inittodr
—
initialize system time
SYNOPSIS¶
#include <sys/types.h>
#include <sys/systm.h>
void
inittodr
(time_t
base);
DESCRIPTION¶
Theinittodr
() 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 obtained from the root
file system, as given in base. How the
base value is obtained will vary depending on the root
file system type. The heuristics used include:
- If the battery-backed clock has a valid time, it is used.
- If the battery-backed clock does not have a valid time, the time provided in base will be used.
Once a system time has been determined, it is stored in the time variable.
DIAGNOSTICS¶
Theinittodr
() 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.
SEE ALSO¶
resettodr(9), time(9)BUGS¶
On many systems,inittodr
() has to convert from a time
expressed in terms of year, month, day, hours, minutes, and seconds to
time, expressed in seconds. Many of the implementations
could share code, but do not.
Each system's heuristics for picking the correct time are slightly different.
The FreeBSD implementation should do a better job of validating the time provided in base when the battery-backed clock is unusable. Currently it unconditionally sets the system clock to this value.
March 22, 1997 | Linux 4.19.0-10-amd64 |