INITTODR(9) | Kernel Developer's Manual | INITTODR(9) |
inittodr
—
initialize system time
#include
<sys/types.h>
#include <sys/systm.h>
void
inittodr
(time_t
base);
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 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:
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:
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 | Debian |