initialize system time
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
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.
Each system's heuristics for picking the correct time are slightly different.