Add inittodr(9) to document how the system clock is initialized.
Obtained from NetBSD and then modified to reflect how things work in FreeBSD, along with some minor changes to make a few points clearer.
This commit is contained in:
parent
de1543a46d
commit
4035c9100d
@ -1,10 +1,10 @@
|
||||
# $Id: Makefile,v 1.21 1997/03/03 17:59:51 dfr Exp $
|
||||
# $Id: Makefile,v 1.22 1997/03/22 19:09:28 mpp Exp $
|
||||
|
||||
MAN9= MD5.9 at_shutdown.9 at_fork.9 at_exit.9 boot.9 cd.9 copy.9 \
|
||||
devfs_add_devswf.9 \
|
||||
devfs_link.9 fetch.9 ifnet.9 intro.9 panic.9 psignal.9 rtalloc.9 \
|
||||
rtentry.9 scsiconf.9 sd.9 sleep.9 spl.9 st.9 store.9 style.9 \
|
||||
time.9 timeout.9 uio.9 \
|
||||
devfs_link.9 fetch.9 ifnet.9 intro.9 inittodr.9 panic.9 psignal.9 \
|
||||
rtalloc.9 rtentry.9 scsiconf.9 sd.9 sleep.9 spl.9 st.9 store.9 \
|
||||
style.9 time.9 timeout.9 uio.9 \
|
||||
vnode.9 vget.9 vput.9 vref.9 vrele.9 VOP_ABORTOP.9 VOP_ACCESS.9 \
|
||||
VOP_ADVLOCK.9 VOP_ATTRIB.9 VOP_BLKATOFF.9 VOP_BWRITE.9 VOP_CREATE.9 \
|
||||
VOP_FSYNC.9 VOP_GETPAGES.9 VOP_INACTIVE.9 VOP_IOCTL.9 VOP_LINK.9 \
|
||||
|
119
share/man/man9/inittodr.9
Normal file
119
share/man/man9/inittodr.9
Normal file
@ -0,0 +1,119 @@
|
||||
.\" $NetBSD: inittodr.9,v 1.2 1996/03/27 21:16:06 jtc Exp $
|
||||
.\"
|
||||
.\" Copyright (c) 1994 Christopher G. Demetriou
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\" 3. All advertising materials mentioning features or use of this software
|
||||
.\" must display the following acknowledgement:
|
||||
.\" This product includes software developed by Christopher G. Demetriou
|
||||
.\" for the NetBSD Project.
|
||||
.\" 3. The name of the author may not be used to endorse or promote products
|
||||
.\" derived from this software without specific prior written permission
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.Dd March 22, 1997
|
||||
.Dt INITTODR 9
|
||||
.Os FreeBSD
|
||||
.Sh NAME
|
||||
.Nm inittodr
|
||||
.Nd initialize system time
|
||||
.Sh SYNOPSIS
|
||||
.Ft void
|
||||
.Fn inittodr "time_t base"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn 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
|
||||
.Fa base .
|
||||
How the
|
||||
.Fa base
|
||||
value is obtained will vary depending on the
|
||||
root file system type.
|
||||
The heuristics used include:
|
||||
.Bl -bullet
|
||||
.It
|
||||
If the battery-backed clock has a valid time, it is used.
|
||||
.\" .It
|
||||
.\" If the battery-backed clock does not have a valid time, and
|
||||
.\" the time provided in
|
||||
.\" .Fa base
|
||||
.\" is within reason,
|
||||
.\" .Fa base
|
||||
.\" is used as the current time.
|
||||
.\" .It
|
||||
.\" If the battery-backed clock appears invalid, and
|
||||
.\" .Fa base
|
||||
.\" appears non-sensical or was not provided (was given as zero),
|
||||
.\" a arbitrary base (typically some time in the late 1970s)
|
||||
.\" will be used.
|
||||
.It
|
||||
If the battery-backed clock does not have a valid time,
|
||||
the time provided in
|
||||
.Fa base
|
||||
will be used.
|
||||
.El
|
||||
.Pp
|
||||
Once a system time has been determined, it is stored in the
|
||||
.Va time
|
||||
variable.
|
||||
.Sh DIAGNOSTICS
|
||||
The
|
||||
.Fn inittodr
|
||||
function prints diagnostic messages if it has trouble figuring
|
||||
out the system time. Conditions that can cause diagnostic
|
||||
messages to be printed include:
|
||||
.Bl -bullet
|
||||
.It
|
||||
The battery-backed clock's time appears nonsensical.
|
||||
.\" .It
|
||||
.\" The
|
||||
.\" .Fa base
|
||||
.\" time appears nonsensical.
|
||||
.\" .It
|
||||
.\" The
|
||||
.\" .Fa base
|
||||
.\" time and the battery-backed clock's time differ by a large amount.
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr resettodr 9 ,
|
||||
.Xr time 9
|
||||
.Sh BUGS
|
||||
On many systems,
|
||||
.Fn inittodr
|
||||
has to convert from
|
||||
a time expressed in terms of year, month, day, hours, minutes,
|
||||
and seconds to
|
||||
.Va time ,
|
||||
expressed in seconds. Many of the implementations could share code,
|
||||
but do not.
|
||||
.Pp
|
||||
Each system's heuristics for picking the correct time are slightly
|
||||
different.
|
||||
.Pp
|
||||
The
|
||||
.Tn FreeBSD
|
||||
implementation should do a better job of validating the time provided in
|
||||
.Fa base
|
||||
when the battery-backed clock is unusable. Currently it unconditionally
|
||||
sets the system clock to this value.
|
Loading…
Reference in New Issue
Block a user