Name
adjtimex — tune kernel clock
Synopsis
#include <sys/timex.h>
int
adjtimex( |
struct timex * |
buf); |
DESCRIPTION
Linux uses David L. Mills' clock adjustment algorithm (see
RFC 1305). The system call adjtimex() reads and optionally sets
adjustment parameters for this algorithm. It takes a pointer
to a timex
structure, updates kernel parameters from field values, and
returns the same structure with current kernel values. This
structure is declared as follows:
| struct |
timex { |
| |
int |
|
modes; |
/* mode selector */ |
| |
long |
|
offset; |
/* time offset (usec) */ |
| |
long |
|
freq; |
/* frequency offset (scaled ppm) */ |
| |
long |
|
maxerror; |
/* maximum error (usec) */ |
| |
long |
|
esterror; |
/* estimated error (usec) */ |
| |
int |
|
status; |
/* clock command/status */ |
| |
long |
|
constant; |
/* pll time constant */ |
| |
long |
|
precision; |
/* clock precision (usec) (read only) */ |
| |
long |
|
tolerance; |
/* clock frequency tolerance (ppm) (read only) */ |
| |
struct timeval |
|
time; |
/* current time (read only) */ |
| |
long |
|
tick; |
/* usecs between clock ticks */ |
| }; |
The modes field
determines which parameters, if any, to set. It may contain a
bitwise-or
combination of zero or more of the following bits:
Ordinary users are restricted to a zero value for
mode. Only the
superuser may set any parameters.
RETURN VALUE
On success, adjtimex()
returns the clock state:
On failure, adjtimex()
returns −1 and sets errno.
ERRORS
- EFAULT
-
buf does not
point to writable memory.
- EINVAL
-
An attempt is made to set buf.offset to a value
outside the range −131071 to +131071, or to set
buf.status to
a value other than those listed above, or to set
buf.tick to a
value outside the range 900000/HZ to 1100000/HZ, where HZ is the system timer interrupt
frequency.
- EPERM
-
buf.mode
is non-zero and the caller does not have sufficient
privilege. Under Linux the CAP_SYS_TIME capability is
required.
CONFORMING TO
adjtimex() is Linux specific
and should not be used in programs intended to be portable.
See adjtime(3) for a more
portable, but less flexible, method of adjusting the system
clock.
SEE ALSO
settimeofday(2), adjtime(3), capabilities(7)
Copyright (c) 1995 Michael Chastain (mec@shell.portal.com), 15 April 1995.
This is free documentation; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of
the License, or (at your option) any later version.
The GNU General Public License's references to "object code"
and "executables" are to be interpreted as the output of any
document formatting or typesetting system, including
intermediate and printed output.
This manual is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public
License along with this manual; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
USA.
Modified 1997-01-31 by Eric S. Raymond <esr@thyrsus.com>
Modified 1997-07-30 by Paul Slootman <paul@wurtel.demon.nl>
Modified 2004-05-27 by Michael Kerrisk <mtk-manpages@gmx.net>
|