From 1091fea9b41b5325b79373dbe74c0f72f443a6ad Mon Sep 17 00:00:00 2001 From: mpp Date: Sat, 22 Mar 1997 19:46:44 +0000 Subject: 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. --- share/man/man9/Makefile | 8 ++-- share/man/man9/inittodr.9 | 119 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 123 insertions(+), 4 deletions(-) create mode 100644 share/man/man9/inittodr.9 (limited to 'share/man') diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index 34fd17c..7448a1d 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -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 \ diff --git a/share/man/man9/inittodr.9 b/share/man/man9/inittodr.9 new file mode 100644 index 0000000..a4a9b5b --- /dev/null +++ b/share/man/man9/inittodr.9 @@ -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. -- cgit v1.1