1.\" 2.\" Copyright (c) 2003 Tom Rhodes 3.\" All rights reserved. 4.\" 5.\" Redistribution and use in source and binary forms, with or without 6.\" modification, are permitted provided that the following conditions 7.\" are met: 8.\" 1. Redistributions of source code must retain the above copyright 9.\" notice, this list of conditions and the following disclaimer. 10.\" 2. Redistributions in binary form must reproduce the above copyright 11.\" notice, this list of conditions and the following disclaimer in the 12.\" documentation and/or other materials provided with the distribution. 13.\" 14.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24.\" SUCH DAMAGE. 25.\" 26.\" $FreeBSD: src/lib/libc/sys/ntp_adjtime.2,v 1.1.2.1 2003/04/22 17:31:18 trhodes Exp $ 27.\" $DragonFly: src/lib/libc/sys/ntp_adjtime.2,v 1.5 2008/02/01 21:40:53 swildner Exp $ 28.\" 29.Dd April 1, 2003 30.Dt NTP_ADJTIME 2 31.Os 32.Sh NAME 33.Nm ntp_adjtime 34.Nd NTP daemon application interface 35.Sh LIBRARY 36.Lb libc 37.Sh SYNOPSIS 38.In sys/types.h 39.In sys/timex.h 40.Ft int 41.Fn ntp_adjtime "struct timex *tp" 42.Sh DESCRIPTION 43The 44.Fn ntp_adjtime 45system call is used as a kernel interface 46for the Network Time Protocol daemon, 47.Xr ntpd 8 . 48Certain fields of the 49.Vt timex 50structure are interpreted in either 51microseconds or nanoseconds, according to the state of the 52.Dv STA_NANO 53bit in the 54.Va status 55word. 56.Pp 57In the 58.Dx 59kernel, the 60.Fn ntp_adjtime 61and 62.Xr ntp_gettime 2 63system calls can be used to determine which 64resolution is in use, and to select either one at any time. 65The resolution selected affects the scaling of certain fields in the 66.Fn ntp_gettime 67and 68.Fn ntp_adjtime 69system calls. 70.Pp 71Take note that this 72.Tn API 73is extremely complex and stateful. 74Users should not attempt modification without first 75reviewing the 76.Xr ntpd 8 77sources in depth. 78.Bd -literal 79/* 80 * NTP daemon interface (ntp_adjtime()) - used to discipline CPU clock 81 * oscillator and determine status. 82 * 83 * Note: The offset, precision and jitter members are in microseconds if 84 * STA_NANO is zero and nanoseconds if not. 85 */ 86struct timex { 87 unsigned int modes; /* clock mode bits (wo) */ 88 long offset; /* time offset (ns/us) (rw) */ 89 long freq; /* frequency offset (scaled PPM) (rw) */ 90 long maxerror; /* maximum error (us) (rw) */ 91 long esterror; /* estimated error (us) (rw) */ 92 int status; /* clock status bits (rw) */ 93 long constant; /* poll interval (log2 s) (rw) */ 94 long precision; /* clock precision (ns/us) (ro) */ 95 long tolerance; /* clock frequency tolerance (scaled 96 * PPM) (ro) */ 97 /* 98 * The following read-only structure members are implemented 99 * only if the PPS signal discipline is configured in the 100 * kernel. They are included in all configurations to insure 101 * portability. 102 */ 103 long ppsfreq; /* PPS frequency (scaled PPM) (ro) */ 104 long jitter; /* PPS jitter (ns/us) (ro) */ 105 int shift; /* interval duration (s) (shift) (ro) */ 106 long stabil; /* PPS stability (scaled PPM) (ro) */ 107 long jitcnt; /* jitter limit exceeded (ro) */ 108 long calcnt; /* calibration intervals (ro) */ 109 long errcnt; /* calibration errors (ro) */ 110 long stbcnt; /* stability limit exceeded (ro) */ 111}; 112.Ed 113.Pp 114Upon successful completion, 115.Fn ntp_adjtime 116will fill the 117.Fa tp 118argument with the current clock state. 119.Sh RETURN VALUES 120.Rv -std ntp_adjtime 121.Pp 122Possible states of the clock are: 123.Pp 124.Bl -tag -compact -width ".Dv TIME_ERROR" 125.It Dv TIME_OK 126Everything okay, no leap second warning. 127.It Dv TIME_INS 128insert leap second warning. 129.It Dv TIME_DEL 130delete leap second warning. 131.It Dv TIME_OOP 132Leap second in progress. 133.It Dv TIME_WAIT 134Leap second has occurred. 135.It Dv TIME_ERROR 136Clock not synchronized. 137.El 138.Sh ERRORS 139The 140.Fn ntp_gettime 141system call may return 142.Er EPERM 143if the caller 144does not have sufficient permissions. 145.Sh SEE ALSO 146.Xr ntp_gettime 2 , 147.Xr ntpd 8 Pq Pa pkgsrc/net/openntpd 148.Sh AUTHORS 149This manual page was written by 150.An Tom Rhodes Aq trhodes@FreeBSD.org . 151