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 systems 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.
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 clocks time appears nonsensical.