FreeBSD manual
download PDF document: inittodr.9.pdf
INITTODR(9) FreeBSD 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
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:
o If the battery-backed clock has a valid time, it is used.
o 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
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:
o 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.
FreeBSD 14.0-RELEASE-p11 March 22, 1997 FreeBSD 14.0-RELEASE-p11