2004-11-03 13:51:07 +00:00
|
|
|
.\" Copyright (c) 1995 Michael Chastain (mec@shell.portal.com), 15 April 1995.
|
2016-03-07 01:33:43 +00:00
|
|
|
.\" and Copyright (C) 2014, 2016 Michael Kerrisk <mtk.manpages@gmail.com>
|
2004-11-03 13:51:07 +00:00
|
|
|
.\"
|
getent.1, _syscall.2, acct.2, adjtimex.2, bdflush.2, brk.2, cacheflush.2, getsid.2, getxattr.2, inotify_add_watch.2, inotify_init.2, inotify_rm_watch.2, ioperm.2, ipc.2, listxattr.2, mlock.2, modify_ldt.2, mremap.2, nanosleep.2, outb.2, perf_event_open.2, ptrace.2, removexattr.2, s390_runtime_instr.2, sched_get_priority_max.2, sched_rr_get_interval.2, sched_setaffinity.2, sched_setparam.2, sched_setscheduler.2, sched_yield.2, setsid.2, setxattr.2, socketcall.2, unimplemented.2, aio_cancel.3, aio_error.3, aio_fsync.3, aio_read.3, aio_return.3, aio_suspend.3, aio_write.3, cfree.3, crypt.3, dlopen.3, encrypt.3, errno.3, fenv.3, ftime.3, ftw.3, getgrent_r.3, getpass.3, getpwent_r.3, getutent.3, hsearch.3, lio_listio.3, lockf.3, login.3, longjmp.3, perror.3, printf.3, scandirat.3, setjmp.3, strfmon.3, strtoimax.3, termios.3, ttyname.3, ualarm.3, updwtmp.3, wcstoimax.3, wordexp.3, console_ioctl.4, dsp56k.4, fd.4, hd.4, intro.4, lp.4, mem.4, null.4, ram.4, rtc.4, sk98lin.4, tty.4, ttyS.4, vcs.4, filesystems.5, group.5, host.conf.5, hosts.5, intro.5, issue.5, motd.5, networks.5, nologin.5, nsswitch.conf.5, passwd.5, proc.5, protocols.5, securetty.5, shells.5, termcap.5, ttytype.5, utmp.5, intro.6, armscii-8.7, ascii.7, bootparam.7, cp1251.7, environ.7, glob.7, intro.7, iso_8859-1.7, iso_8859-10.7, iso_8859-11.7, iso_8859-13.7, iso_8859-14.7, iso_8859-15.7, iso_8859-16.7, iso_8859-2.7, iso_8859-3.7, iso_8859-4.7, iso_8859-5.7, iso_8859-6.7, iso_8859-7.7, iso_8859-8.7, iso_8859-9.7, koi8-r.7, koi8-u.7, posixoptions.7, standards.7, unicode.7, utf-8.7, intro.8: s/GPLv2+_doc_full/GPLv2+_DOC_FULL/
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2013-03-10 09:29:46 +00:00
|
|
|
.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
|
2004-11-03 13:51:07 +00:00
|
|
|
.\" 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
|
getent.1, _syscall.2, acct.2, adjtimex.2, bdflush.2, brk.2, cacheflush.2, getsid.2, getxattr.2, inotify_add_watch.2, inotify_init.2, inotify_rm_watch.2, ioperm.2, ipc.2, listxattr.2, mlock.2, modify_ldt.2, mremap.2, nanosleep.2, outb.2, ptrace.2, removexattr.2, sched_get_priority_max.2, sched_rr_get_interval.2, sched_setaffinity.2, sched_setparam.2, sched_setscheduler.2, sched_yield.2, setsid.2, setxattr.2, socketcall.2, unimplemented.2, aio_cancel.3, aio_error.3, aio_fsync.3, aio_read.3, aio_return.3, aio_suspend.3, aio_write.3, cfree.3, crypt.3, dlopen.3, errno.3, fenv.3, ftime.3, ftw.3, getgrent_r.3, getpass.3, getpwent_r.3, getutent.3, hsearch.3, lio_listio.3, login.3, longjmp.3, perror.3, printf.3, scandirat.3, setjmp.3, strfmon.3, strtoimax.3, termios.3, ttyname.3, ualarm.3, wcstoimax.3, wordexp.3, console_ioctl.4, dsp56k.4, fd.4, hd.4, intro.4, lp.4, mem.4, null.4, ram.4, rtc.4, sk98lin.4, tty.4, ttyS.4, vcs.4, charmap.5, filesystems.5, ftpusers.5, gai.conf.5, group.5, host.conf.5, hosts.5, intro.5, issue.5, locale.5, motd.5, networks.5, nologin.5, nscd.conf.5, nss.5, nsswitch.conf.5, passwd.5, proc.5, protocols.5, securetty.5, shells.5, termcap.5, ttytype.5, utmp.5, intro.6, armscii-8.7, ascii.7, bootparam.7, cp1251.7, cpuset.7, environ.7, glob.7, intro.7, iso_8859-1.7, iso_8859-10.7, iso_8859-11.7, iso_8859-13.7, iso_8859-14.7, iso_8859-15.7, iso_8859-16.7, iso_8859-2.7, iso_8859-3.7, iso_8859-4.7, iso_8859-5.7, iso_8859-6.7, iso_8859-7.7, iso_8859-8.7, iso_8859-9.7, koi8-r.7, koi8-u.7, posixoptions.7, standards.7, unicode.7, utf-8.7, intro.8, ldconfig.8, nscd.8: Global fix: Update info in source comments on where to get a copy of the GPL
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2013-03-10 09:28:43 +00:00
|
|
|
.\" License along with this manual; if not, see
|
|
|
|
.\" <http://www.gnu.org/licenses/>.
|
getent.1, _syscall.2, acct.2, adjtimex.2, bdflush.2, brk.2, cacheflush.2, getsid.2, getxattr.2, inotify_add_watch.2, inotify_init.2, inotify_rm_watch.2, ioperm.2, ipc.2, listxattr.2, mlock.2, modify_ldt.2, mremap.2, nanosleep.2, outb.2, perf_event_open.2, ptrace.2, removexattr.2, s390_runtime_instr.2, sched_get_priority_max.2, sched_rr_get_interval.2, sched_setaffinity.2, sched_setparam.2, sched_setscheduler.2, sched_yield.2, setsid.2, setxattr.2, socketcall.2, unimplemented.2, aio_cancel.3, aio_error.3, aio_fsync.3, aio_read.3, aio_return.3, aio_suspend.3, aio_write.3, cfree.3, crypt.3, dlopen.3, encrypt.3, errno.3, fenv.3, ftime.3, ftw.3, getgrent_r.3, getpass.3, getpwent_r.3, getutent.3, hsearch.3, lio_listio.3, lockf.3, login.3, longjmp.3, perror.3, printf.3, scandirat.3, setjmp.3, strfmon.3, strtoimax.3, termios.3, ttyname.3, ualarm.3, updwtmp.3, wcstoimax.3, wordexp.3, console_ioctl.4, dsp56k.4, fd.4, hd.4, intro.4, lp.4, mem.4, null.4, ram.4, rtc.4, sk98lin.4, tty.4, ttyS.4, vcs.4, filesystems.5, group.5, host.conf.5, hosts.5, intro.5, issue.5, motd.5, networks.5, nologin.5, nsswitch.conf.5, passwd.5, proc.5, protocols.5, securetty.5, shells.5, termcap.5, ttytype.5, utmp.5, intro.6, armscii-8.7, ascii.7, bootparam.7, cp1251.7, environ.7, glob.7, intro.7, iso_8859-1.7, iso_8859-10.7, iso_8859-11.7, iso_8859-13.7, iso_8859-14.7, iso_8859-15.7, iso_8859-16.7, iso_8859-2.7, iso_8859-3.7, iso_8859-4.7, iso_8859-5.7, iso_8859-6.7, iso_8859-7.7, iso_8859-8.7, iso_8859-9.7, koi8-r.7, koi8-u.7, posixoptions.7, standards.7, unicode.7, utf-8.7, intro.8: Global fix: Add LICENSE_START(GPLv2+_doc_full)
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2013-03-10 09:28:44 +00:00
|
|
|
.\" %%%LICENSE_END
|
2004-11-03 13:51:07 +00:00
|
|
|
.\"
|
|
|
|
.\" Modified 1997-01-31 by Eric S. Raymond <esr@thyrsus.com>
|
|
|
|
.\" Modified 1997-07-30 by Paul Slootman <paul@wurtel.demon.nl>
|
2007-09-20 06:52:22 +00:00
|
|
|
.\" Modified 2004-05-27 by Michael Kerrisk <mtk.manpages@gmail.com>
|
2004-11-03 13:51:07 +00:00
|
|
|
.\"
|
locale.1, localedef.1, _exit.2, accept.2, access.2, acct.2, adjtimex.2, bdflush.2, bind.2, bpf.2, brk.2, chdir.2, chmod.2, chown.2, chroot.2, clock_nanosleep.2, clone.2, close.2, connect.2, copy_file_range.2, create_module.2, delete_module.2, dup.2, epoll_ctl.2, eventfd.2, execve.2, fallocate.2, fanotify_init.2, fcntl.2, flock.2, fork.2, fsync.2, futex.2, get_kernel_syms.2, getdomainname.2, getgroups.2, gethostname.2, getpagesize.2, getpeername.2, getsid.2, getsockname.2, getsockopt.2, gettimeofday.2, init_module.2, ioctl.2, ioctl_list.2, ioperm.2, iopl.2, kexec_load.2, kill.2, killpg.2, link.2, listen.2, llseek.2, lseek.2, madvise.2, memfd_create.2, mincore.2, mkdir.2, mknod.2, mmap.2, mount.2, nanosleep.2, nice.2, open.2, personality.2, pipe.2, poll.2, posix_fadvise.2, read.2, readahead.2, readlink.2, readv.2, recv.2, recvmmsg.2, rename.2, request_key.2, sched_setaffinity.2, sched_setattr.2, select.2, select_tut.2, semctl.2, semop.2, send.2, sendfile.2, sendmmsg.2, seteuid.2, setns.2, setpgid.2, setreuid.2, shutdown.2, sigaction.2, sigaltstack.2, signal.2, signalfd.2, sigpending.2, sigprocmask.2, sigsuspend.2, socketpair.2, splice.2, stat.2, statfs.2, stime.2, symlink.2, sync.2, syscall.2, syscalls.2, times.2, truncate.2, unlink.2, unshare.2, uselib.2, utimensat.2, vfork.2, vhangup.2, wait.2, wait4.2, write.2, a64l.3, abs.3, acos.3, acosh.3, addseverity.3, adjtime.3, aio_read.3, aio_write.3, asin.3, asinh.3, atan.3, atan2.3, atanh.3, atoi.3, backtrace.3, cbrt.3, ceil.3, cfree.3, clearenv.3, clock_getcpuclockid.3, clog10.3, cmsg.3, copysign.3, cos.3, cosh.3, ctermid.3, ctime.3, daemon.3, dirfd.3, div.3, dl_iterate_phdr.3, drand48.3, drand48_r.3, dysize.3, ecvt.3, ecvt_r.3, endian.3, erf.3, erfc.3, errno.3, exec.3, exp.3, exp2.3, expm1.3, fabs.3, fdim.3, ferror.3, fexecve.3, ffs.3, fgetgrent.3, fgetpwent.3, finite.3, flockfile.3, floor.3, fma.3, fmax.3, fmin.3, fmod.3, fopen.3, fpclassify.3, frexp.3, fseeko.3, fts.3, futimes.3, fwide.3, gamma.3, gcvt.3, getaddrinfo.3, getcwd.3, getdate.3, getdirentries.3, getdtablesize.3, getgrent.3, getgrent_r.3, getgrnam.3, getgrouplist.3, gethostbyname.3, gethostid.3, getline.3, getloadavg.3, getmntent.3, getnameinfo.3, getnetent_r.3, getpass.3, getprotoent_r.3, getpwent.3, getpwent_r.3, getpwnam.3, getrpcent_r.3, getservent_r.3, getspnam.3, getsubopt.3, getusershell.3, getutent.3, getw.3, gsignal.3, hypot.3, ilogb.3, inet.3, initgroups.3, insque.3, isalpha.3, isgreater.3, iswblank.3, j0.3, ldexp.3, lgamma.3, lio_listio.3, lockf.3, log.3, log10.3, log1p.3, log2.3, logb.3, lrint.3, lround.3, makedev.3, matherr.3, mbsnrtowcs.3, mkdtemp.3, mkfifo.3, mkstemp.3, mktemp.3, modf.3, mq_close.3, mq_getattr.3, mq_notify.3, mq_receive.3, mq_send.3, nan.3, nextafter.3, on_exit.3, open_memstream.3, opendir.3, perror.3, popen.3, posix_fallocate.3, posix_madvise.3, posix_memalign.3, posix_openpt.3, posix_spawn.3, pow.3, printf.3, profil.3, psignal.3, pthread_attr_setstack.3, pthread_setaffinity_np.3, putenv.3, putpwent.3, qecvt.3, rand.3, random.3, random_r.3, rcmd.3, readdir.3, realpath.3, remainder.3, remquo.3, rexec.3, rint.3, round.3, rpc.3, rpmatch.3, scalb.3, scalbln.3, scandir.3, scanf.3, seekdir.3, sem_wait.3, setbuf.3, setenv.3, setjmp.3, setnetgrent.3, siginterrupt.3, signbit.3, significand.3, sigset.3, sigsetops.3, sigvec.3, sigwait.3, sin.3, sinh.3, sleep.3, sockatmark.3, sqrt.3, statvfs.3, stpcpy.3, stpncpy.3, strdup.3, strerror.3, strftime.3, strlen.3, strnlen.3, strsep.3, strsignal.3, strtod.3, strtok.3, strtol.3, strtoul.3, syslog.3, system.3, tan.3, tanh.3, telldir.3, tempnam.3, termios.3, tgamma.3, timegm.3, timeradd.3, tmpfile.3, tmpnam.3, toascii.3, trunc.3, ttyslot.3, tzset.3, ualarm.3, unlocked_stdio.3, usleep.3, wcpcpy.3, wcpncpy.3, wcscasecmp.3, wcsdup.3, wcsncasecmp.3, wcsnlen.3, wcsnrtombs.3, wprintf.3, y0.3, pts.4, st.4, tty_ioctl.4, elf.5, gai.conf.5, group.5, locale.5, nsswitch.conf.5, proc.5, utmp.5, aio.7, capabilities.7, credentials.7, environ.7, epoll.7, fanotify.7, feature_test_macros.7, inotify.7, ip.7, mq_overview.7, namespaces.7, pipe.7, signal.7, socket.7, standards.7, svipc.7, symlink.7, time.7, unicode.7, unix.7: tstamp
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2016-03-15 03:46:01 +00:00
|
|
|
.TH ADJTIMEX 2 2016-03-15 "Linux" "Linux Programmer's Manual"
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH NAME
|
2016-03-06 22:32:05 +00:00
|
|
|
adjtimex, ntp_adjtime \- tune kernel clock
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH SYNOPSIS
|
2014-05-20 05:11:44 +00:00
|
|
|
.nf
|
2004-11-03 13:51:07 +00:00
|
|
|
.B #include <sys/timex.h>
|
2014-05-20 05:11:44 +00:00
|
|
|
|
2004-11-03 13:51:07 +00:00
|
|
|
.BI "int adjtimex(struct timex *" "buf" );
|
2016-03-06 22:32:05 +00:00
|
|
|
|
|
|
|
.BI "int ntp_adjtime(struct timex *" buf );
|
2014-05-20 05:11:44 +00:00
|
|
|
.fi
|
2004-11-03 13:51:07 +00:00
|
|
|
.SH DESCRIPTION
|
2014-06-18 13:09:00 +00:00
|
|
|
Linux uses David L. Mills' clock adjustment algorithm (see RFC\ 5905).
|
2004-11-03 13:51:07 +00:00
|
|
|
The system call
|
2005-10-19 06:54:38 +00:00
|
|
|
.BR adjtimex ()
|
2004-11-03 13:51:07 +00:00
|
|
|
reads and optionally sets adjustment parameters for this algorithm.
|
|
|
|
It takes a pointer to a
|
2007-04-12 22:42:49 +00:00
|
|
|
.I timex
|
2016-03-06 10:06:11 +00:00
|
|
|
structure, updates kernel parameters from (selected) field values,
|
|
|
|
and returns the same structure updated with the current kernel values.
|
2004-11-03 13:51:07 +00:00
|
|
|
This structure is declared as follows:
|
|
|
|
.PP
|
2007-12-19 06:16:04 +00:00
|
|
|
.in +4n
|
2004-11-03 13:51:07 +00:00
|
|
|
.nf
|
|
|
|
struct timex {
|
2015-01-06 15:36:23 +00:00
|
|
|
int modes; /* Mode selector */
|
|
|
|
long offset; /* Time offset; nanoseconds, if STA_NANO
|
2016-03-07 00:20:35 +00:00
|
|
|
status flag is set, otherwise
|
|
|
|
microseconds */
|
|
|
|
long freq; /* Frequency offset; see NOTES for units */
|
2015-01-06 15:36:23 +00:00
|
|
|
long maxerror; /* Maximum error (microseconds) */
|
|
|
|
long esterror; /* Estimated error (microseconds) */
|
|
|
|
int status; /* Clock command/status */
|
|
|
|
long constant; /* PLL (phase-locked loop) time constant */
|
2016-03-07 00:20:35 +00:00
|
|
|
long precision; /* Clock precision
|
|
|
|
(microseconds, read-only) */
|
|
|
|
long tolerance; /* Clock frequency tolerance (read-only);
|
|
|
|
see NOTES for units */
|
2014-12-30 14:20:35 +00:00
|
|
|
struct timeval time;
|
2015-01-06 15:36:23 +00:00
|
|
|
/* Current time (read-only, except for
|
|
|
|
ADJ_SETOFFSET); upon return, time.tv_usec
|
|
|
|
contains nanoseconds, if STA_NANO status
|
|
|
|
flag is set, otherwise microseconds */
|
|
|
|
long tick; /* Microseconds between clock ticks */
|
2016-03-07 00:20:35 +00:00
|
|
|
long ppsfreq; /* PPS (pulse per second) frequency
|
|
|
|
(read-only); see NOTES for units */
|
2015-01-06 15:36:23 +00:00
|
|
|
long jitter; /* PPS jitter (read-only); nanoseconds, if
|
|
|
|
STA_NANO status flag is set, otherwise
|
|
|
|
microseconds */
|
2016-03-07 00:20:35 +00:00
|
|
|
int shift; /* PPS interval duration
|
|
|
|
(seconds, read-only) */
|
|
|
|
long stabil; /* PPS stability (read-only);
|
|
|
|
see NOTES for units */
|
2016-03-07 00:07:54 +00:00
|
|
|
long jitcnt; /* PPS count of jitter limit exceeded
|
|
|
|
events (read-only) */
|
|
|
|
long calcnt; /* PPS count of calibration intervals
|
|
|
|
(read-only) */
|
|
|
|
long errcnt; /* PPS count of calibration errors
|
|
|
|
(read-only) */
|
|
|
|
long stbcnt; /* PPS count of stability limit exceeded
|
|
|
|
events (read-only) */
|
2015-01-06 15:36:23 +00:00
|
|
|
int tai; /* TAI offset, as set by previous ADJ_TAI
|
|
|
|
operation (seconds, read-only,
|
|
|
|
since Linux 2.6.26) */
|
2014-12-30 14:23:52 +00:00
|
|
|
/* Further padding bytes to allow for future expansion */
|
2004-11-03 13:51:07 +00:00
|
|
|
};
|
|
|
|
.fi
|
2007-12-19 06:16:04 +00:00
|
|
|
.in
|
2004-11-03 13:51:07 +00:00
|
|
|
.PP
|
|
|
|
The
|
|
|
|
.I modes
|
|
|
|
field determines which parameters, if any, to set.
|
2016-03-06 22:32:05 +00:00
|
|
|
(As described later in this page,
|
|
|
|
the constants used for
|
|
|
|
.BR ntp_adjtime ()
|
|
|
|
are equivalent but differently named.)
|
2014-12-30 13:54:24 +00:00
|
|
|
It is a bit mask containing a
|
2004-11-03 13:51:07 +00:00
|
|
|
.RI bitwise- or
|
|
|
|
combination of zero or more of the following bits:
|
2014-12-30 14:08:04 +00:00
|
|
|
.TP
|
2014-12-30 13:54:24 +00:00
|
|
|
.BR ADJ_OFFSET
|
2014-12-30 14:12:32 +00:00
|
|
|
Set time offset from
|
|
|
|
.IR buf.offset .
|
2016-03-04 13:06:47 +00:00
|
|
|
Since Linux 2.6.26,
|
|
|
|
.\" commit 074b3b87941c99bc0ce35385b5817924b1ed0c23
|
|
|
|
the supplied value is clamped to the range (\-0.5s, +0.5s).
|
|
|
|
In older kernels, an
|
2016-03-04 16:12:15 +00:00
|
|
|
.B EINVAL
|
2016-03-04 13:06:47 +00:00
|
|
|
error occurs if the supplied value is out of range.
|
2014-12-30 13:54:24 +00:00
|
|
|
.TP
|
|
|
|
.BR ADJ_FREQUENCY
|
2014-12-30 14:12:32 +00:00
|
|
|
Set frequency offset from
|
|
|
|
.IR buf.freq .
|
2016-03-04 13:27:40 +00:00
|
|
|
Since Linux 2.6.26,
|
|
|
|
.\" commit 074b3b87941c99bc0ce35385b5817924b1ed0c23
|
|
|
|
the supplied value is clamped to the range (\-32768000, +32768000).
|
|
|
|
In older kernels, an
|
2016-03-04 16:12:15 +00:00
|
|
|
.B EINVAL
|
2016-03-04 13:27:40 +00:00
|
|
|
error occurs if the supplied value is out of range.
|
2014-12-30 13:54:24 +00:00
|
|
|
.TP
|
|
|
|
.BR ADJ_MAXERROR
|
2014-12-30 14:12:32 +00:00
|
|
|
Set maximum time error from
|
|
|
|
.IR buf.maxerror .
|
2014-12-30 13:54:24 +00:00
|
|
|
.TP
|
|
|
|
.BR ADJ_ESTERROR
|
2014-12-30 14:12:32 +00:00
|
|
|
Set estimated time error from
|
|
|
|
.IR buf.esterror .
|
2014-12-30 13:54:24 +00:00
|
|
|
.TP
|
|
|
|
.BR ADJ_STATUS
|
2016-03-04 16:17:17 +00:00
|
|
|
Set clock status bits from
|
2014-12-30 14:12:32 +00:00
|
|
|
.IR buf.status .
|
2016-03-04 16:17:17 +00:00
|
|
|
A description of these bits is provided below.
|
2014-12-30 13:54:24 +00:00
|
|
|
.TP
|
|
|
|
.BR ADJ_TIMECONST
|
2014-12-30 14:12:32 +00:00
|
|
|
Set PLL time constant from
|
|
|
|
.IR buf.constant .
|
2014-06-18 13:08:28 +00:00
|
|
|
If the
|
|
|
|
.B STA_NANO
|
|
|
|
status flag (see below) is clear, the kernel adds 4 to this value.
|
2014-12-30 13:54:24 +00:00
|
|
|
.TP
|
2014-12-30 14:07:06 +00:00
|
|
|
.BR ADJ_SETOFFSET " (since Linux 2.6.29)"
|
|
|
|
.\" commit 094aa1881fdc1b8889b442eb3511b31f3ec2b762
|
|
|
|
.\" Author: Richard Cochran <richardcochran@gmail.com>
|
|
|
|
Add
|
|
|
|
.I buf.time
|
|
|
|
to the current time.
|
2014-06-18 05:53:35 +00:00
|
|
|
If
|
|
|
|
.I buf.status
|
|
|
|
includes the
|
|
|
|
.B ADJ_NANO
|
|
|
|
flag, then
|
|
|
|
.I buf.time.tv_usec
|
|
|
|
is interpreted as a nanosecond value;
|
|
|
|
otherwise it is interpreted as microseconds.
|
2014-12-30 14:07:06 +00:00
|
|
|
.TP
|
2014-12-30 14:03:29 +00:00
|
|
|
.BR ADJ_MICRO " (since Linux 2.6.36)"
|
|
|
|
.\" commit eea83d896e318bda54be2d2770d2c5d6668d11db
|
|
|
|
.\" Author: Roman Zippel <zippel@linux-m68k.org>
|
|
|
|
Select microsecond resolution.
|
|
|
|
.TP
|
|
|
|
.BR ADJ_NANO " (since Linux 2.6.36)"
|
|
|
|
.\" commit eea83d896e318bda54be2d2770d2c5d6668d11db
|
|
|
|
.\" Author: Roman Zippel <zippel@linux-m68k.org>
|
|
|
|
Select nanosecond resolution.
|
|
|
|
Only one of
|
|
|
|
.BR ADJ_MICRO
|
|
|
|
and
|
|
|
|
.BR ADJ_NANO
|
|
|
|
should be specified.
|
|
|
|
.TP
|
2014-12-30 13:54:24 +00:00
|
|
|
.BR ADJ_TAI " (since Linux 2.6.26)"
|
2014-12-30 14:57:50 +00:00
|
|
|
.\" commit 153b5d054ac2d98ea0d86504884326b6777f683d
|
|
|
|
Set TAI (Atomic International Time) offset from
|
2016-03-04 16:05:34 +00:00
|
|
|
.IR buf.constant .
|
2014-12-30 14:57:50 +00:00
|
|
|
|
|
|
|
.BR ADJ_TAI
|
|
|
|
should not be used in conjunction with
|
|
|
|
.BR ADJ_TIMECONST ,
|
|
|
|
since the latter mode also employs the
|
2016-03-04 16:05:34 +00:00
|
|
|
.IR buf.constant
|
2014-12-30 14:57:50 +00:00
|
|
|
field.
|
|
|
|
|
|
|
|
For a complete explanation of TAI
|
|
|
|
and the difference between TAI and UTC, see
|
|
|
|
.UR http://www.bipm.org/en/bipm/tai/tai.html
|
|
|
|
.I BIPM
|
2014-12-30 16:43:18 +00:00
|
|
|
.UE
|
2014-12-30 13:54:24 +00:00
|
|
|
.TP
|
|
|
|
.BR ADJ_TICK
|
2014-12-30 14:12:32 +00:00
|
|
|
Set tick value from
|
|
|
|
.IR buf.tick .
|
2014-06-17 15:29:14 +00:00
|
|
|
.PP
|
|
|
|
Alternatively,
|
|
|
|
.I modes
|
2014-06-18 05:43:31 +00:00
|
|
|
can be specified as either of the following (multibit mask) values,
|
|
|
|
in which case other bits should not be specified in
|
|
|
|
.IR modes :
|
|
|
|
.\" In general, the other bits are ignored, but ADJ_OFFSET_SINGLESHOT 0x8001
|
|
|
|
.\" ORed with ADJ_NANO (0x2000) gives 0xa0001 == ADJ_OFFSET_SS_READ!!
|
2014-12-30 13:54:24 +00:00
|
|
|
.TP
|
|
|
|
.BR ADJ_OFFSET_SINGLESHOT
|
2014-06-17 15:15:13 +00:00
|
|
|
.\" In user space, ADJ_OFFSET_SINGLESHOT is 0x8001
|
|
|
|
.\" In kernel space it is 0x0001, and must be ANDed with ADJ_ADJTIME (0x8000)
|
2014-12-30 13:54:24 +00:00
|
|
|
Old-fashioned
|
2014-06-17 15:15:13 +00:00
|
|
|
.BR adjtime ():
|
|
|
|
(gradually) adjust time by value specified in
|
2014-06-18 05:38:34 +00:00
|
|
|
.IR buf.offset ,
|
|
|
|
which specifies an adjustment in microseconds.
|
2014-06-17 15:20:35 +00:00
|
|
|
.TP
|
|
|
|
.BR ADJ_OFFSET_SS_READ " (functional since Linux 2.6.28)"
|
|
|
|
.\" In user space, ADJ_OFFSET_SS_READ is 0xa001
|
|
|
|
.\" In kernel space there is ADJ_OFFSET_READONLY (0x2000) anded with
|
|
|
|
.\" ADJ_ADJTIME (0x8000) and ADJ_OFFSET_SINGLESHOT (0x0001) to give 0xa001)
|
|
|
|
Return (in
|
2015-01-15 17:24:17 +00:00
|
|
|
.IR buf.offset )
|
2014-06-17 15:20:35 +00:00
|
|
|
the remaining amount of time to be adjusted after an earlier
|
|
|
|
.BR ADJ_OFFSET_SINGLESHOT
|
|
|
|
operation.
|
|
|
|
This feature was added in Linux 2.6.24,
|
|
|
|
.\" commit 52bfb36050c8529d9031d2c2513b281a360922ec
|
|
|
|
but did not work correctly
|
|
|
|
.\" commit 916c7a855174e3b53d182b97a26b2e27a29726a1
|
|
|
|
until Linux 2.6.28.
|
2004-11-03 13:51:07 +00:00
|
|
|
.PP
|
2014-06-17 15:20:35 +00:00
|
|
|
Ordinary users are restricted to a value of either 0 or
|
|
|
|
.B ADJ_OFFSET_SS_READ
|
|
|
|
for
|
2014-04-27 18:20:30 +00:00
|
|
|
.IR modes .
|
2004-11-03 13:51:07 +00:00
|
|
|
Only the superuser may set any parameters.
|
2014-12-30 12:52:02 +00:00
|
|
|
|
2014-12-30 14:29:10 +00:00
|
|
|
The
|
|
|
|
.I buf.status
|
|
|
|
field is a bit mask that is used to set and/or retrieve status
|
|
|
|
bits associated with the NTP implementation.
|
|
|
|
Some bits in the mask are both readable and settable,
|
|
|
|
while others are read-only.
|
|
|
|
.TP
|
2016-03-04 16:05:34 +00:00
|
|
|
.BR STA_PLL " (read-write)"
|
|
|
|
Enable phase-locked loop (PLL) updates via
|
2014-12-30 14:29:10 +00:00
|
|
|
.BR ADJ_OFFSET .
|
|
|
|
.TP
|
2016-03-04 16:05:34 +00:00
|
|
|
.BR STA_PPSFREQ " (read-write)"
|
|
|
|
Enable PPS (pulse-per-second) frequency discipline.
|
|
|
|
.TP
|
|
|
|
.BR STA_PPSTIME " (read-write)"
|
|
|
|
Enable PPS time discipline.
|
|
|
|
.TP
|
|
|
|
.BR STA_FLL " (read-write)"
|
|
|
|
Select frequency-locked loop (FLL) mode.
|
|
|
|
.TP
|
|
|
|
.BR STA_INS " (read-write)"
|
|
|
|
Insert a leap second after the last second of the UTC day,
|
|
|
|
thus extending the last minute of the day by one second.
|
|
|
|
Leap-second insertion will occur each day, so long as this flag remains set.
|
|
|
|
.\" John Stultz;
|
|
|
|
.\" Usually this is written as extending the day by one second,
|
|
|
|
.\" which is represented as:
|
|
|
|
.\" 23:59:59
|
|
|
|
.\" 23:59:60
|
|
|
|
.\" 00:00:00
|
2016-03-15 03:47:25 +00:00
|
|
|
.\"
|
2016-03-04 16:05:34 +00:00
|
|
|
.\" But since posix cannot represent 23:59:60, we repeat the last second:
|
|
|
|
.\" 23:59:59 + TIME_INS
|
|
|
|
.\" 23:59:59 + TIME_OOP
|
|
|
|
.\" 00:00:00 + TIME_WAIT
|
|
|
|
.\"
|
|
|
|
.TP
|
|
|
|
.BR STA_DEL " (read-write)"
|
2016-03-06 05:21:53 +00:00
|
|
|
Delete a leap second at the last second of the UTC day.
|
2016-03-04 16:05:34 +00:00
|
|
|
.\" John Stultz:
|
|
|
|
.\" Similarly the progression here is:
|
|
|
|
.\" 23:59:57 + TIME_DEL
|
|
|
|
.\" 23:59:58 + TIME_DEL
|
|
|
|
.\" 00:00:00 + TIME_WAIT
|
|
|
|
Leap second deletion will occur each day, so long as this flag
|
|
|
|
remains set.
|
2015-01-06 22:10:35 +00:00
|
|
|
.\" FIXME Does there need to be a statement that it is nonsensical to set
|
|
|
|
.\" to set both STA_INS and STA_DEL?
|
2014-12-30 14:29:10 +00:00
|
|
|
.TP
|
2016-03-04 16:05:34 +00:00
|
|
|
.BR STA_UNSYNC " (read-write)"
|
|
|
|
Clock unsynchronized.
|
|
|
|
.TP
|
|
|
|
.BR STA_FREQHOLD " (read-write)"
|
|
|
|
Hold frequency.
|
|
|
|
.\" Following text from John Stultz:
|
|
|
|
Normally adjustments made via
|
|
|
|
.B ADJ_OFFSET
|
|
|
|
result in dampened frequency adjustments also being made.
|
|
|
|
So a single call corrects the current offset,
|
|
|
|
but as offsets in the same direction are made repeatedly,
|
|
|
|
the small frequency adjustments will accumulate to fix the long-term skew.
|
2016-03-15 03:47:25 +00:00
|
|
|
|
2016-03-04 16:05:34 +00:00
|
|
|
This flag prevents the small frequency adjustment from being made
|
|
|
|
when correcting for an
|
|
|
|
.B ADJ_OFFSET
|
|
|
|
value.
|
|
|
|
.\" According to the Kernel Application Program Interface document,
|
|
|
|
.\" STA_FREQHOLD is not used by the NTP version 4 daemon
|
|
|
|
.TP
|
|
|
|
.BR STA_PPSSIGNAL " (read-only)"
|
|
|
|
A valid PPS (pulse-per-second) signal is present.
|
|
|
|
.TP
|
|
|
|
.BR STA_PPSJITTER " (read-only)"
|
|
|
|
PPS signal jitter exceeded.
|
|
|
|
.TP
|
|
|
|
.BR STA_PPSWANDER " (read-only)"
|
|
|
|
PPS signal wander exceeded.
|
|
|
|
.TP
|
|
|
|
.BR STA_PPSERROR " (read-only)"
|
|
|
|
PPS signal calibration error.
|
|
|
|
.TP
|
|
|
|
.BR STA_CLOCKERR " (read-only)"
|
|
|
|
Clock hardware fault.
|
|
|
|
.\" Not set in current kernel (4.5), but checked in a few places
|
|
|
|
.TP
|
|
|
|
.BR STA_NANO " (read-only; since Linux 2.6.26)"
|
2014-12-30 14:29:10 +00:00
|
|
|
.\" commit eea83d896e318bda54be2d2770d2c5d6668d11db
|
|
|
|
.\" Author: Roman Zippel <zippel@linux-m68k.org>
|
2016-03-04 16:05:34 +00:00
|
|
|
Resolution (0 = microsecond, 1 = nanoseconds).
|
2014-12-30 14:41:41 +00:00
|
|
|
Set via
|
2014-06-18 13:08:28 +00:00
|
|
|
.BR ADJ_NANO ,
|
|
|
|
cleared via
|
|
|
|
.BR ADJ_MICRO .
|
2014-12-30 14:29:10 +00:00
|
|
|
.TP
|
|
|
|
.BR STA_MODE " (since Linux 2.6.26)"
|
|
|
|
.\" commit eea83d896e318bda54be2d2770d2c5d6668d11db
|
|
|
|
.\" Author: Roman Zippel <zippel@linux-m68k.org>
|
2016-03-04 16:05:34 +00:00
|
|
|
Mode (0 = Phase Locked Loop, 1 = Frequency Locked Loop).
|
2014-12-30 14:29:10 +00:00
|
|
|
.TP
|
2016-03-04 16:05:34 +00:00
|
|
|
.BR STA_CLK " (read-only; since Linux 2.6.26)"
|
2014-12-30 14:29:10 +00:00
|
|
|
.\" commit eea83d896e318bda54be2d2770d2c5d6668d11db
|
|
|
|
.\" Author: Roman Zippel <zippel@linux-m68k.org>
|
2016-03-04 16:05:34 +00:00
|
|
|
Clock source (0 = A, 1 = B); currently unused.
|
2014-12-30 14:29:10 +00:00
|
|
|
.PP
|
|
|
|
Attempts to set read-only
|
|
|
|
.I status
|
|
|
|
bits are silently ignored.
|
2016-03-06 22:32:05 +00:00
|
|
|
.\"
|
|
|
|
.SS ntp_adjtime ()
|
|
|
|
The
|
|
|
|
.BR ntp_adjtime ()
|
|
|
|
library function
|
|
|
|
(described in the NTP "Kernel Application Program API", KAPI)
|
|
|
|
is a more portable interface for performing the same task as
|
|
|
|
.BR adjtimex ().
|
|
|
|
Other than the following points, it is identical to
|
|
|
|
.BR adjtime ():
|
|
|
|
.IP * 3
|
|
|
|
The constants used in
|
|
|
|
.I modes
|
|
|
|
are prefixed with "MOD_" rather than "ADJ_", and have the same suffixes (thus,
|
|
|
|
.BR MOD_OFFSET ,
|
|
|
|
.BR MOD_FREQUENCY ,
|
|
|
|
and so on), other than the exceptions noted in the following points.
|
|
|
|
.IP *
|
|
|
|
.BR MOD_CLKA
|
|
|
|
is the synonym for
|
|
|
|
.BR ADJ_OFFSET_SINGLESHOT .
|
|
|
|
.IP *
|
|
|
|
.BR MOD_CLKB
|
|
|
|
is the synonym for
|
|
|
|
.BR ADJ_TICK .
|
|
|
|
.IP *
|
|
|
|
The is no synonym for
|
|
|
|
.BR ADJ_OFFSET_SS_READ ,
|
|
|
|
which is not described in the KAPI.
|
getent.1, intro.1, time.1, _exit.2, _syscall.2, accept.2, access.2, acct.2, adjtimex.2, alarm.2, alloc_hugepages.2, arch_prctl.2, bdflush.2, bind.2, brk.2, cacheflush.2, capget.2, chdir.2, chmod.2, chown.2, chroot.2, clock_getres.2, clock_nanosleep.2, clone.2, close.2, connect.2, create_module.2, delete_module.2, dup.2, epoll_create.2, epoll_ctl.2, epoll_wait.2, eventfd.2, execve.2, exit_group.2, faccessat.2, fchmodat.2, fchownat.2, fcntl.2, flock.2, fork.2, fstatat.2, fsync.2, futex.2, futimesat.2, get_kernel_syms.2, get_robust_list.2, get_thread_area.2, getcpu.2, getdents.2, getdomainname.2, getgid.2, getgroups.2, gethostname.2, getitimer.2, getpagesize.2, getpeername.2, getpid.2, getpriority.2, getresuid.2, getrlimit.2, getrusage.2, getsid.2, getsockname.2, getsockopt.2, gettid.2, gettimeofday.2, getuid.2, getunwind.2, getxattr.2, idle.2, init_module.2, inotify_add_watch.2, inotify_init.2, inotify_rm_watch.2, intro.2, io_cancel.2, io_destroy.2, io_getevents.2, io_setup.2, io_submit.2, ioctl.2, ioctl_list.2, ioperm.2, iopl.2, ioprio_set.2, ipc.2, kcmp.2, kill.2, killpg.2, link.2, linkat.2, listen.2, listxattr.2, llseek.2, lookup_dcookie.2, lseek.2, madvise.2, migrate_pages.2, mincore.2, mkdir.2, mkdirat.2, mknod.2, mknodat.2, mlock.2, mmap.2, mmap2.2, modify_ldt.2, mount.2, move_pages.2, mprotect.2, mq_getsetattr.2, mremap.2, msgctl.2, msgget.2, msgop.2, msync.2, nanosleep.2, nfsservctl.2, nice.2, open.2, openat.2, outb.2, pause.2, pciconfig_read.2, perf_event_open.2, perfmonctl.2, personality.2, pipe.2, pivot_root.2, poll.2, posix_fadvise.2, prctl.2, pread.2, process_vm_readv.2, ptrace.2, query_module.2, quotactl.2, read.2, readahead.2, readdir.2, readlink.2, readlinkat.2, readv.2, reboot.2, recv.2, remap_file_pages.2, removexattr.2, rename.2, renameat.2, rmdir.2, rt_sigqueueinfo.2, sched_get_priority_max.2, sched_rr_get_interval.2, sched_setaffinity.2, sched_setparam.2, sched_setscheduler.2, sched_yield.2, select.2, semctl.2, semget.2, semop.2, send.2, sendfile.2, set_thread_area.2, set_tid_address.2, seteuid.2, setfsgid.2, setfsuid.2, setgid.2, setpgid.2, setresuid.2, setreuid.2, setsid.2, setuid.2, setup.2, setxattr.2, shmctl.2, shmget.2, shmop.2, shutdown.2, sigaction.2, sigaltstack.2, signal.2, signalfd.2, sigpending.2, sigprocmask.2, sigreturn.2, sigsuspend.2, sigwaitinfo.2, socket.2, socketcall.2, socketpair.2, splice.2, stat.2, statfs.2, stime.2, swapon.2, symlink.2, symlinkat.2, sync.2, sync_file_range.2, sysctl.2, sysfs.2, sysinfo.2, syslog.2, tee.2, time.2, timerfd_create.2, times.2, tkill.2, truncate.2, umask.2, umount.2, uname.2, unimplemented.2, unlink.2, unlinkat.2, uselib.2, ustat.2, utime.2, utimensat.2, vfork.2, vhangup.2, vm86.2, vmsplice.2, wait.2, wait4.2, write.2, CPU_SET.3, INFINITY.3, MB_CUR_MAX.3, MB_LEN_MAX.3, __setfpucw.3, a64l.3, abort.3, abs.3, acos.3, acosh.3, addseverity.3, adjtime.3, aio_cancel.3, aio_error.3, aio_fsync.3, aio_read.3, aio_return.3, aio_suspend.3, aio_write.3, alloca.3, argz_add.3, asin.3, asinh.3, asprintf.3, assert.3, assert_perror.3, atan.3, atan2.3, atanh.3, atexit.3, atof.3, atoi.3, backtrace.3, basename.3, bcmp.3, bcopy.3, bindresvport.3, bsd_signal.3, bsearch.3, bstring.3, btowc.3, btree.3, byteorder.3, bzero.3, cabs.3, cacos.3, cacosh.3, canonicalize_file_name.3, carg.3, casin.3, casinh.3, catan.3, catanh.3, catgets.3, catopen.3, cbrt.3, ccos.3, ccosh.3, ceil.3, cerf.3, cexp.3, cexp2.3, cfree.3, cimag.3, clearenv.3, clock.3, clock_getcpuclockid.3, clog.3, clog10.3, clog2.3, closedir.3, cmsg.3, confstr.3, conj.3, copysign.3, cos.3, cosh.3, cpow.3, cproj.3, creal.3, crypt.3, csin.3, csinh.3, csqrt.3, ctan.3, ctanh.3, ctermid.3, ctime.3, daemon.3, dbopen.3, des_crypt.3, difftime.3, dirfd.3, div.3, dl_iterate_phdr.3, dlopen.3, dprintf.3, drand48.3, drand48_r.3, dysize.3, ecvt.3, ecvt_r.3, encrypt.3, end.3, endian.3, envz_add.3, erf.3, erfc.3, err.3, errno.3, error.3, ether_aton.3, euidaccess.3, exec.3, exit.3, exp.3, exp10.3, exp2.3, expm1.3, fabs.3, fclose.3, fcloseall.3, fdim.3, fenv.3, ferror.3, fexecve.3, fflush.3, ffs.3, fgetgrent.3, fgetpwent.3, fgetwc.3, fgetws.3, finite.3, flockfile.3, floor.3, fma.3, fmax.3, fmemopen.3, fmin.3, fmod.3, fmtmsg.3, fnmatch.3, fopen.3, fpathconf.3, fpclassify.3, fpurge.3, fputwc.3, fputws.3, fread.3, frexp.3, fseek.3, fseeko.3, ftime.3, ftok.3, fts.3, ftw.3, futimes.3, fwide.3, gamma.3, gcvt.3, getaddrinfo.3, getaddrinfo_a.3, getauxval.3, getcontext.3, getcwd.3, getdate.3, getdirentries.3, getdtablesize.3, getenv.3, getfsent.3, getgrent.3, getgrent_r.3, getgrnam.3, getgrouplist.3, gethostbyname.3, gethostid.3, getipnodebyname.3, getline.3, getloadavg.3, getlogin.3, getmntent.3, getnameinfo.3, getnetent.3, getnetent_r.3, getopt.3, getpass.3, getprotoent.3, getprotoent_r.3, getpt.3, getpw.3, getpwent.3, getpwent_r.3, getpwnam.3, getrpcent.3, getrpcent_r.3, getrpcport.3, gets.3, getservent.3, getservent_r.3, getspnam.3, getttyent.3, getumask.3, getusershell.3, getutent.3, getw.3, getwchar.3, glob.3, grantpt.3, gsignal.3, hash.3, hsearch.3, hypot.3, iconv.3, iconv_close.3, iconv_open.3, ilogb.3, index.3, inet.3, inet_ntop.3, inet_pton.3, infnan.3, initgroups.3, insque.3, intro.3, isalpha.3, isatty.3, isgreater.3, iswalnum.3, iswalpha.3, iswblank.3, iswcntrl.3, iswctype.3, iswdigit.3, iswgraph.3, iswlower.3, iswprint.3, iswpunct.3, iswspace.3, iswupper.3, iswxdigit.3, j0.3, key_setsecret.3, ldexp.3, lgamma.3, lio_listio.3, localeconv.3, lockf.3, log.3, log10.3, log1p.3, log2.3, logb.3, login.3, longjmp.3, lrint.3, lround.3, lsearch.3, lseek64.3, makecontext.3, makedev.3, malloc.3, malloc_hook.3, mblen.3, mbrlen.3, mbrtowc.3, mbsinit.3, mbsnrtowcs.3, mbsrtowcs.3, mbstowcs.3, mbtowc.3, memccpy.3, memchr.3, memcmp.3, memcpy.3, memfrob.3, memmem.3, memmove.3, mempcpy.3, memset.3, mkdtemp.3, mkfifo.3, mkfifoat.3, mkstemp.3, mktemp.3, modf.3, mpool.3, mq_close.3, mq_getattr.3, mq_notify.3, mq_open.3, mq_receive.3, mq_send.3, mq_unlink.3, mtrace.3, nan.3, netlink.3, nextafter.3, nl_langinfo.3, offsetof.3, on_exit.3, opendir.3, openpty.3, perror.3, popen.3, posix_fallocate.3, posix_memalign.3, posix_openpt.3, pow.3, pow10.3, printf.3, profil.3, program_invocation_name.3, psignal.3, pthread_kill_other_threads_np.3, ptsname.3, putenv.3, putgrent.3, putpwent.3, puts.3, putwchar.3, qecvt.3, qsort.3, queue.3, raise.3, rand.3, random.3, random_r.3, rcmd.3, re_comp.3, readdir.3, realpath.3, recno.3, regex.3, remainder.3, remove.3, remquo.3, resolver.3, rewinddir.3, rexec.3, rint.3, round.3, rpc.3, rpmatch.3, rtime.3, rtnetlink.3, scalb.3, scalbln.3, scandir.3, scandirat.3, scanf.3, seekdir.3, sem_close.3, sem_destroy.3, sem_getvalue.3, sem_init.3, sem_open.3, sem_post.3, sem_unlink.3, sem_wait.3, setaliasent.3, setbuf.3, setenv.3, setjmp.3, setlocale.3, setlogmask.3, setnetgrent.3, shm_open.3, siginterrupt.3, signbit.3, significand.3, sigpause.3, sigqueue.3, sigset.3, sigsetops.3, sigvec.3, sin.3, sincos.3, sinh.3, sleep.3, sockatmark.3, sqrt.3, statvfs.3, stdarg.3, stdin.3, stdio.3, stdio_ext.3, stpcpy.3, stpncpy.3, strcasecmp.3, strcat.3, strchr.3, strcmp.3, strcoll.3, strcpy.3, strdup.3, strerror.3, strfmon.3, strfry.3, strftime.3, string.3, strlen.3, strnlen.3, strpbrk.3, strptime.3, strsep.3, strsignal.3, strspn.3, strstr.3, strtod.3, strtoimax.3, strtok.3, strtol.3, strtoul.3, strverscmp.3, strxfrm.3, swab.3, sysconf.3, syslog.3, system.3, sysv_signal.3, tan.3, tanh.3, tcgetpgrp.3, tcgetsid.3, telldir.3, tempnam.3, termios.3, tgamma.3, timegm.3, timeradd.3, tmpfile.3, tmpnam.3, toascii.3, toupper.3, towctrans.3, towlower.3, towupper.3, trunc.3, tsearch.3, ttyname.3, ttyslot.3, tzset.3, ualarm.3, ulimit.3, ungetwc.3, unlocked_stdio.3, unlockpt.3, updwtmp.3, usleep.3, wcpcpy.3, wcpncpy.3, wcrtomb.3, wcscasecmp.3, wcscat.3, wcschr.3, wcscmp.3, wcscpy.3, wcscspn.3, wcsdup.3, wcslen.3, wcsncasecmp.3, wcsncat.3, wcsncmp.3, wcsncpy.3, wcsnlen.3, wcsnrtombs.3, wcspbrk.3, wcsrchr.3, wcsrtombs.3, wcsspn.3, wcsstr.3, wcstoimax.3, wcstok.3, wcstombs.3, wcswidth.3, wctob.3, wctomb.3, wctrans.3, wctype.3, wcwidth.3, wmemchr.3, wmemcmp.3, wmemcpy.3, wmemmove.3, wmemset.3, wordexp.3, wprintf.3, xcrypt.3, xdr.3, y0.3, cciss.4, console.4, console_codes.4, console_ioctl.4, dsp56k.4, fd.4, full.4, hd.4, hpsa.4, initrd.4, intro.4, lp.4, mem.4, mouse.4, null.4, pts.4, ram.4, random.4, rtc.4, sk98lin.4, st.4, tty.4, ttyS.4, tty_ioctl.4, vcs.4, wavelan.4, acct.5, charmap.5, dir_colors.5, filesystems.5, ftpusers.5, group.5, host.conf.5, hosts.5, hosts.equiv.5, intro.5, issue.5, locale.5, motd.5, networks.5, nologin.5, nscd.conf.5, passwd.5, proc.5, protocols.5, resolv.conf.5, rpc.5, securetty.5, services.5, shells.5, termcap.5, ttytype.5, utmp.5, armscii-8.7, arp.7, ascii.7, bootparam.7, capabilities.7, charsets.7, complex.7, cp1251.7, credentials.7, ddp.7, environ.7, epoll.7, fifo.7, futex.7, glob.7, hier.7, icmp.7, inotify.7, intro.7, ip.7, ipv6.7, iso_8859-1.7, iso_8859-10.7, iso_8859-11.7, iso_8859-13.7, iso_8859-14.7, iso_8859-15.7, iso_8859-16.7, iso_8859-2.7, iso_8859-3.7, iso_8859-4.7, iso_8859-5.7, iso_8859-6.7, iso_8859-7.7, iso_8859-8.7, iso_8859-9.7, koi8-r.7, koi8-u.7, locale.7, mailaddr.7, man.7, mq_overview.7, netdevice.7, netlink.7, numa.7, packet.7, path_resolution.7, pipe.7, posixoptions.7, pthreads.7, pty.7, raw.7, regex.7, rtld-audit.7, rtnetlink.7, sem_overview.7, shm_overview.7, sigevent.7, signal.7, socket.7, standards.7, suffixes.7, svipc.7, tcp.7, termio.7, time.7, udp.7, udplite.7, unicode.7, unix.7, uri.7, utf-8.7, x25.7, nscd.8, sync.8, tzselect.8, zdump.8, zic.8: Global fix: remove unneeded double quotes in .SH headings
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2013-02-24 18:01:36 +00:00
|
|
|
.SH RETURN VALUE
|
2004-11-03 13:51:07 +00:00
|
|
|
On success,
|
2005-10-19 06:54:38 +00:00
|
|
|
.BR adjtimex ()
|
2016-03-06 22:32:05 +00:00
|
|
|
and
|
|
|
|
.BR ntp_adjtime ()
|
|
|
|
return the clock state; that is, one of the following values:
|
2014-06-17 10:00:37 +00:00
|
|
|
.TP 12
|
|
|
|
.BR TIME_OK
|
2016-03-06 05:21:53 +00:00
|
|
|
Clock synchronized, no leap second adjustment pending.
|
2014-06-17 10:00:37 +00:00
|
|
|
.TP
|
|
|
|
.BR TIME_INS
|
2016-03-04 16:05:34 +00:00
|
|
|
Indicates that a leap second will be added at the end of the UTC day.
|
2014-06-17 10:00:37 +00:00
|
|
|
.TP
|
|
|
|
.BR TIME_DEL
|
2016-03-06 05:21:53 +00:00
|
|
|
Indicates that a leap second will be deleted at the end of the UTC day.
|
2014-06-17 10:00:37 +00:00
|
|
|
.TP
|
|
|
|
.BR TIME_OOP
|
2016-03-04 16:05:34 +00:00
|
|
|
Insertion of a leap second is in progress.
|
2014-06-17 10:00:37 +00:00
|
|
|
.TP
|
|
|
|
.BR TIME_WAIT
|
2016-03-04 16:05:34 +00:00
|
|
|
A leap-second insertion or deletion has been completed.
|
|
|
|
This value will be returned until the next
|
|
|
|
.BR ADJ_STATUS
|
|
|
|
operation clears the
|
|
|
|
.B STA_INS
|
|
|
|
and
|
|
|
|
.B STA_DEL
|
|
|
|
flags.
|
2014-06-17 10:00:37 +00:00
|
|
|
.TP
|
2015-01-04 06:28:16 +00:00
|
|
|
.BR TIME_ERROR
|
2016-03-04 16:05:34 +00:00
|
|
|
The system clock is not synchronized to a reliable server.
|
|
|
|
This value is returned when any of the following holds true:
|
|
|
|
.RS
|
|
|
|
.IP * 3
|
|
|
|
Either
|
|
|
|
.B STA_UNSYNC
|
|
|
|
or
|
|
|
|
.B STA_CLOCKERR
|
|
|
|
is set.
|
|
|
|
.IP *
|
|
|
|
.B STA_PPSSIGNAL
|
|
|
|
is clear and either
|
|
|
|
.B STA_PPSFREQ
|
|
|
|
or
|
|
|
|
.B STA_PPSTIME
|
|
|
|
is set.
|
|
|
|
.IP *
|
|
|
|
.B STA_PPSTIME
|
|
|
|
and
|
|
|
|
.B STA_PPSJITTER
|
|
|
|
are both set.
|
|
|
|
.IP *
|
|
|
|
.B STA_PPSFREQ
|
|
|
|
is set and either
|
|
|
|
.B STA_PPSWANDER
|
|
|
|
or
|
|
|
|
.B STA_PPSJITTER
|
|
|
|
is set.
|
|
|
|
.RE
|
|
|
|
.IP
|
2015-01-04 06:28:16 +00:00
|
|
|
The symbolic name
|
|
|
|
.B TIME_BAD
|
|
|
|
is a synonym for
|
|
|
|
.BR TIME_ERROR ,
|
2015-01-06 15:37:22 +00:00
|
|
|
provided for backward compatibility.
|
2016-03-04 16:05:34 +00:00
|
|
|
.PP
|
adjtimex.2: Update a detail in adjtimex return value description
Starting with Linux 3.4, the time_state change is now asynchronous
and the call returns the time_state before it has been altered,
rather than after it was altered as the previous code did.
======================================================
Notes from Petr Gajdos
attached program behaves differently on 2.6 and 3.0 kernels:
*******************************************************
2.6.32.59-0.7-default
Insert LS
adjtimex() return code 1: insert leap second (TIME_INS)
Kernel leap second flag: STA_INS
Delete LS
adjtimex() return code 2: delete leap second (TIME_DEL)
Kernel leap second flag: STA_DEL
Insert LS again
adjtimex() return code 1: insert leap second (TIME_INS)
Kernel leap second flag: STA_INS
Delete LS again
adjtimex() return code 2: delete leap second (TIME_DEL)
Kernel leap second flag: STA_DEL
*******************************************************
3.0.101-0.35-default
sbsvt101:~/tmp # ./adjt
Insert LS
adjtimex() return code 0: clock synchronized (TIME_OK)
Kernel leap second flag: STA_INS
Delete LS
adjtimex() return code 1: insert leap second (TIME_INS)
Kernel leap second flag: STA_DEL
Insert LS again
adjtimex() return code 2: delete leap second (TIME_DEL)
Kernel leap second flag: STA_INS
Delete LS again
adjtimex() return code 1: insert leap second (TIME_INS)
Kernel leap second flag: STA_DEL
*******************************************************
The explanation provided by William Preston (in CC):
"""
in both cases you get the actual value of the global kernel variable
time_state.
The code changed between the two kernels in the way it handled this.
In 2.6.32.59 the adjtimex call starts a timer immediately with the
function ntp_start_leap_timer(), which sets the value of time_state
before returning to the user.
This means you will get the value TIME_INS / TIME_DEL back
immediately.
In 3.0.101, the timer has been removed and the value of time_state is
set when the microsecond field overflows. The function
second_overflow() handles this. This means the value of time_state
will not have been set when the syscall adjtimex returns, and so you
will almost certainly get the old state.
Incidentally if you remove the sleep() calls in the code for 3.0.101
you may instead see the state of TIME_OK when switching between
STA_INS / STA_DEL.
All this is completely normal and expected behaviour, since both
return the current state, however I agree it is not intuitive.
I would recommend calling adjtimex without a mode to get the actual
state of the system after waiting a second.
At the same time, William suggests the patch in the attachement.
Petr
=============== adjt.c ================
void adjtm(int);
int main()
{
printf("Insert LS\n");
adjtm(STA_INS);
sleep(2);
printf("\nDelete LS\n");
adjtm(STA_DEL);
sleep(2);
printf("\nInsert LS again\n");
adjtm(STA_INS);
sleep(2);
printf("\nDelete LS again\n");
adjtm(STA_DEL);
printf("\nRestoring initial state\n");
adjtm(0);
}
/*************************************/
/* Modify LS flag and print status */
/*************************************/
void adjtm(int ls)
{
struct timex tx;
int rc;
tx.modes = ADJ_STATUS;
tx.status = ls;
if ((rc = adjtimex(&tx)) == -1) {
perror("adjtimex()");
exit(1);
}
sleep(2);
tx.modes = 0;
rc = adjtimex(&tx);
printf("adjtimex() return code %d: ", rc);
switch (rc) {
case TIME_OK:
printf("clock synchronized (TIME_OK)\n");
break;
case TIME_INS:
printf("insert leap second (TIME_INS)\n");
break;
case TIME_DEL:
printf("delete leap second (TIME_DEL)\n");
break;
case TIME_OOP:
printf("leap second in progress (TIME_OOP)\n");
break;
case TIME_WAIT:
printf("leap second has occurred (TIME_WAIT)\n");
break;
case TIME_BAD:
printf("clock not synchronized (TIME_BAD)\n");
break;
default:
printf("Unknown return code: %i\n", rc);
break;
}
printf("Kernel leap second flag: ");
if (tx.status & STA_INS)
printf("STA_INS\n");
else if (tx.status & STA_DEL)
printf("STA_DEL\n");
else
printf("not set\n");
}
=======================================
Reported-by: Petr Gajdos <pgajdos@suse.cz>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2015-01-19 14:39:52 +00:00
|
|
|
Note that starting with Linux 3.4,
|
|
|
|
.\" commit 6b43ae8a619d17c4935c3320d2ef9e92bdeed05d changed to asynchronous
|
|
|
|
.\" operation, so we can no longer rely on the return code.
|
|
|
|
the call operates asynchronously and the return value usually will
|
|
|
|
not reflect a state change caused by the call itself.
|
2004-11-03 13:51:07 +00:00
|
|
|
.PP
|
2016-03-06 22:32:05 +00:00
|
|
|
On failure, these calls return \-1 and set
|
2004-11-03 13:51:07 +00:00
|
|
|
.IR errno .
|
|
|
|
.SH ERRORS
|
|
|
|
.TP
|
|
|
|
.B EFAULT
|
|
|
|
.I buf
|
|
|
|
does not point to writable memory.
|
|
|
|
.TP
|
2016-03-04 12:48:04 +00:00
|
|
|
.BR EINVAL " (kernels before Linux 2.6.26)"
|
2014-06-17 10:01:18 +00:00
|
|
|
An attempt was made to set
|
2016-03-04 13:27:40 +00:00
|
|
|
.I buf.freq
|
|
|
|
to a value outside the range (\-33554432, +33554432).
|
2016-03-13 18:00:57 +00:00
|
|
|
.\" From a quick glance, it appears there was no clamping or range check
|
2016-03-04 13:27:40 +00:00
|
|
|
.\" for buf.freq in kernels before 2.0
|
|
|
|
.TP
|
|
|
|
.BR EINVAL " (kernels before Linux 2.6.26)"
|
|
|
|
An attempt was made to set
|
2004-11-03 13:51:07 +00:00
|
|
|
.I buf.offset
|
2016-03-04 12:48:04 +00:00
|
|
|
to a value outside the permitted range.
|
|
|
|
In kernels before Linux 2.0, the permitted range was (\-131072, +131072).
|
|
|
|
From Linux 2.0 onwards, the permitted range was (\-512000, +512000).
|
2016-03-04 12:18:59 +00:00
|
|
|
.TP
|
|
|
|
.B EINVAL
|
|
|
|
An attempt was made to set
|
2004-11-03 13:51:07 +00:00
|
|
|
.I buf.status
|
2016-03-04 12:18:59 +00:00
|
|
|
to a value other than those listed above.
|
|
|
|
.TP
|
|
|
|
.B EINVAL
|
|
|
|
An attempt was made to set
|
2004-11-03 13:51:07 +00:00
|
|
|
.I buf.tick
|
2007-04-12 22:42:49 +00:00
|
|
|
to a value outside the range
|
2004-11-03 13:51:07 +00:00
|
|
|
.RB 900000/ HZ
|
2007-04-12 22:42:49 +00:00
|
|
|
to
|
2004-11-03 13:51:07 +00:00
|
|
|
.RB 1100000/ HZ ,
|
|
|
|
where
|
|
|
|
.B HZ
|
|
|
|
is the system timer interrupt frequency.
|
|
|
|
.TP
|
|
|
|
.B EPERM
|
2014-04-27 18:21:56 +00:00
|
|
|
.I buf.modes
|
2014-06-17 15:20:35 +00:00
|
|
|
is neither 0 nor
|
|
|
|
.BR ADJ_OFFSET_SS_READ ,
|
|
|
|
and the caller does not have sufficient privilege.
|
2014-06-18 13:35:23 +00:00
|
|
|
Under Linux, the
|
2004-11-03 13:51:07 +00:00
|
|
|
.B CAP_SYS_TIME
|
|
|
|
capability is required.
|
2016-03-07 01:49:38 +00:00
|
|
|
.SH ATTRIBUTES
|
|
|
|
For an explanation of the terms used in this section, see
|
|
|
|
.BR attributes (7).
|
|
|
|
.TS
|
|
|
|
allbox;
|
|
|
|
lb lb lb
|
|
|
|
l l l.
|
|
|
|
Interface Attribute Value
|
|
|
|
T{
|
|
|
|
.BR ntp_adjtime ()
|
|
|
|
T} Thread safety MT-Safe
|
|
|
|
.TE
|
getent.1, intro.1, time.1, _exit.2, _syscall.2, accept.2, access.2, acct.2, adjtimex.2, alarm.2, alloc_hugepages.2, arch_prctl.2, bdflush.2, bind.2, brk.2, cacheflush.2, capget.2, chdir.2, chmod.2, chown.2, chroot.2, clock_getres.2, clock_nanosleep.2, clone.2, close.2, connect.2, create_module.2, delete_module.2, dup.2, epoll_create.2, epoll_ctl.2, epoll_wait.2, eventfd.2, execve.2, exit_group.2, faccessat.2, fchmodat.2, fchownat.2, fcntl.2, flock.2, fork.2, fstatat.2, fsync.2, futex.2, futimesat.2, get_kernel_syms.2, get_robust_list.2, get_thread_area.2, getcpu.2, getdents.2, getdomainname.2, getgid.2, getgroups.2, gethostname.2, getitimer.2, getpagesize.2, getpeername.2, getpid.2, getpriority.2, getresuid.2, getrlimit.2, getrusage.2, getsid.2, getsockname.2, getsockopt.2, gettid.2, gettimeofday.2, getuid.2, getunwind.2, getxattr.2, idle.2, init_module.2, inotify_add_watch.2, inotify_init.2, inotify_rm_watch.2, intro.2, io_cancel.2, io_destroy.2, io_getevents.2, io_setup.2, io_submit.2, ioctl.2, ioctl_list.2, ioperm.2, iopl.2, ioprio_set.2, ipc.2, kcmp.2, kill.2, killpg.2, link.2, linkat.2, listen.2, listxattr.2, llseek.2, lookup_dcookie.2, lseek.2, madvise.2, migrate_pages.2, mincore.2, mkdir.2, mkdirat.2, mknod.2, mknodat.2, mlock.2, mmap.2, mmap2.2, modify_ldt.2, mount.2, move_pages.2, mprotect.2, mq_getsetattr.2, mremap.2, msgctl.2, msgget.2, msgop.2, msync.2, nanosleep.2, nfsservctl.2, nice.2, open.2, openat.2, outb.2, pause.2, pciconfig_read.2, perf_event_open.2, perfmonctl.2, personality.2, pipe.2, pivot_root.2, poll.2, posix_fadvise.2, prctl.2, pread.2, process_vm_readv.2, ptrace.2, query_module.2, quotactl.2, read.2, readahead.2, readdir.2, readlink.2, readlinkat.2, readv.2, reboot.2, recv.2, remap_file_pages.2, removexattr.2, rename.2, renameat.2, rmdir.2, rt_sigqueueinfo.2, sched_get_priority_max.2, sched_rr_get_interval.2, sched_setaffinity.2, sched_setparam.2, sched_setscheduler.2, sched_yield.2, select.2, semctl.2, semget.2, semop.2, send.2, sendfile.2, set_thread_area.2, set_tid_address.2, seteuid.2, setfsgid.2, setfsuid.2, setgid.2, setpgid.2, setresuid.2, setreuid.2, setsid.2, setuid.2, setup.2, setxattr.2, shmctl.2, shmget.2, shmop.2, shutdown.2, sigaction.2, sigaltstack.2, signal.2, signalfd.2, sigpending.2, sigprocmask.2, sigreturn.2, sigsuspend.2, sigwaitinfo.2, socket.2, socketcall.2, socketpair.2, splice.2, stat.2, statfs.2, stime.2, swapon.2, symlink.2, symlinkat.2, sync.2, sync_file_range.2, sysctl.2, sysfs.2, sysinfo.2, syslog.2, tee.2, time.2, timerfd_create.2, times.2, tkill.2, truncate.2, umask.2, umount.2, uname.2, unimplemented.2, unlink.2, unlinkat.2, uselib.2, ustat.2, utime.2, utimensat.2, vfork.2, vhangup.2, vm86.2, vmsplice.2, wait.2, wait4.2, write.2, CPU_SET.3, INFINITY.3, MB_CUR_MAX.3, MB_LEN_MAX.3, __setfpucw.3, a64l.3, abort.3, abs.3, acos.3, acosh.3, addseverity.3, adjtime.3, aio_cancel.3, aio_error.3, aio_fsync.3, aio_read.3, aio_return.3, aio_suspend.3, aio_write.3, alloca.3, argz_add.3, asin.3, asinh.3, asprintf.3, assert.3, assert_perror.3, atan.3, atan2.3, atanh.3, atexit.3, atof.3, atoi.3, backtrace.3, basename.3, bcmp.3, bcopy.3, bindresvport.3, bsd_signal.3, bsearch.3, bstring.3, btowc.3, btree.3, byteorder.3, bzero.3, cabs.3, cacos.3, cacosh.3, canonicalize_file_name.3, carg.3, casin.3, casinh.3, catan.3, catanh.3, catgets.3, catopen.3, cbrt.3, ccos.3, ccosh.3, ceil.3, cerf.3, cexp.3, cexp2.3, cfree.3, cimag.3, clearenv.3, clock.3, clock_getcpuclockid.3, clog.3, clog10.3, clog2.3, closedir.3, cmsg.3, confstr.3, conj.3, copysign.3, cos.3, cosh.3, cpow.3, cproj.3, creal.3, crypt.3, csin.3, csinh.3, csqrt.3, ctan.3, ctanh.3, ctermid.3, ctime.3, daemon.3, dbopen.3, des_crypt.3, difftime.3, dirfd.3, div.3, dl_iterate_phdr.3, dlopen.3, dprintf.3, drand48.3, drand48_r.3, dysize.3, ecvt.3, ecvt_r.3, encrypt.3, end.3, endian.3, envz_add.3, erf.3, erfc.3, err.3, errno.3, error.3, ether_aton.3, euidaccess.3, exec.3, exit.3, exp.3, exp10.3, exp2.3, expm1.3, fabs.3, fclose.3, fcloseall.3, fdim.3, fenv.3, ferror.3, fexecve.3, fflush.3, ffs.3, fgetgrent.3, fgetpwent.3, fgetwc.3, fgetws.3, finite.3, flockfile.3, floor.3, fma.3, fmax.3, fmemopen.3, fmin.3, fmod.3, fmtmsg.3, fnmatch.3, fopen.3, fpathconf.3, fpclassify.3, fpurge.3, fputwc.3, fputws.3, fread.3, frexp.3, fseek.3, fseeko.3, ftime.3, ftok.3, fts.3, ftw.3, futimes.3, fwide.3, gamma.3, gcvt.3, getaddrinfo.3, getaddrinfo_a.3, getauxval.3, getcontext.3, getcwd.3, getdate.3, getdirentries.3, getdtablesize.3, getenv.3, getfsent.3, getgrent.3, getgrent_r.3, getgrnam.3, getgrouplist.3, gethostbyname.3, gethostid.3, getipnodebyname.3, getline.3, getloadavg.3, getlogin.3, getmntent.3, getnameinfo.3, getnetent.3, getnetent_r.3, getopt.3, getpass.3, getprotoent.3, getprotoent_r.3, getpt.3, getpw.3, getpwent.3, getpwent_r.3, getpwnam.3, getrpcent.3, getrpcent_r.3, getrpcport.3, gets.3, getservent.3, getservent_r.3, getspnam.3, getttyent.3, getumask.3, getusershell.3, getutent.3, getw.3, getwchar.3, glob.3, grantpt.3, gsignal.3, hash.3, hsearch.3, hypot.3, iconv.3, iconv_close.3, iconv_open.3, ilogb.3, index.3, inet.3, inet_ntop.3, inet_pton.3, infnan.3, initgroups.3, insque.3, intro.3, isalpha.3, isatty.3, isgreater.3, iswalnum.3, iswalpha.3, iswblank.3, iswcntrl.3, iswctype.3, iswdigit.3, iswgraph.3, iswlower.3, iswprint.3, iswpunct.3, iswspace.3, iswupper.3, iswxdigit.3, j0.3, key_setsecret.3, ldexp.3, lgamma.3, lio_listio.3, localeconv.3, lockf.3, log.3, log10.3, log1p.3, log2.3, logb.3, login.3, longjmp.3, lrint.3, lround.3, lsearch.3, lseek64.3, makecontext.3, makedev.3, malloc.3, malloc_hook.3, mblen.3, mbrlen.3, mbrtowc.3, mbsinit.3, mbsnrtowcs.3, mbsrtowcs.3, mbstowcs.3, mbtowc.3, memccpy.3, memchr.3, memcmp.3, memcpy.3, memfrob.3, memmem.3, memmove.3, mempcpy.3, memset.3, mkdtemp.3, mkfifo.3, mkfifoat.3, mkstemp.3, mktemp.3, modf.3, mpool.3, mq_close.3, mq_getattr.3, mq_notify.3, mq_open.3, mq_receive.3, mq_send.3, mq_unlink.3, mtrace.3, nan.3, netlink.3, nextafter.3, nl_langinfo.3, offsetof.3, on_exit.3, opendir.3, openpty.3, perror.3, popen.3, posix_fallocate.3, posix_memalign.3, posix_openpt.3, pow.3, pow10.3, printf.3, profil.3, program_invocation_name.3, psignal.3, pthread_kill_other_threads_np.3, ptsname.3, putenv.3, putgrent.3, putpwent.3, puts.3, putwchar.3, qecvt.3, qsort.3, queue.3, raise.3, rand.3, random.3, random_r.3, rcmd.3, re_comp.3, readdir.3, realpath.3, recno.3, regex.3, remainder.3, remove.3, remquo.3, resolver.3, rewinddir.3, rexec.3, rint.3, round.3, rpc.3, rpmatch.3, rtime.3, rtnetlink.3, scalb.3, scalbln.3, scandir.3, scandirat.3, scanf.3, seekdir.3, sem_close.3, sem_destroy.3, sem_getvalue.3, sem_init.3, sem_open.3, sem_post.3, sem_unlink.3, sem_wait.3, setaliasent.3, setbuf.3, setenv.3, setjmp.3, setlocale.3, setlogmask.3, setnetgrent.3, shm_open.3, siginterrupt.3, signbit.3, significand.3, sigpause.3, sigqueue.3, sigset.3, sigsetops.3, sigvec.3, sin.3, sincos.3, sinh.3, sleep.3, sockatmark.3, sqrt.3, statvfs.3, stdarg.3, stdin.3, stdio.3, stdio_ext.3, stpcpy.3, stpncpy.3, strcasecmp.3, strcat.3, strchr.3, strcmp.3, strcoll.3, strcpy.3, strdup.3, strerror.3, strfmon.3, strfry.3, strftime.3, string.3, strlen.3, strnlen.3, strpbrk.3, strptime.3, strsep.3, strsignal.3, strspn.3, strstr.3, strtod.3, strtoimax.3, strtok.3, strtol.3, strtoul.3, strverscmp.3, strxfrm.3, swab.3, sysconf.3, syslog.3, system.3, sysv_signal.3, tan.3, tanh.3, tcgetpgrp.3, tcgetsid.3, telldir.3, tempnam.3, termios.3, tgamma.3, timegm.3, timeradd.3, tmpfile.3, tmpnam.3, toascii.3, toupper.3, towctrans.3, towlower.3, towupper.3, trunc.3, tsearch.3, ttyname.3, ttyslot.3, tzset.3, ualarm.3, ulimit.3, ungetwc.3, unlocked_stdio.3, unlockpt.3, updwtmp.3, usleep.3, wcpcpy.3, wcpncpy.3, wcrtomb.3, wcscasecmp.3, wcscat.3, wcschr.3, wcscmp.3, wcscpy.3, wcscspn.3, wcsdup.3, wcslen.3, wcsncasecmp.3, wcsncat.3, wcsncmp.3, wcsncpy.3, wcsnlen.3, wcsnrtombs.3, wcspbrk.3, wcsrchr.3, wcsrtombs.3, wcsspn.3, wcsstr.3, wcstoimax.3, wcstok.3, wcstombs.3, wcswidth.3, wctob.3, wctomb.3, wctrans.3, wctype.3, wcwidth.3, wmemchr.3, wmemcmp.3, wmemcpy.3, wmemmove.3, wmemset.3, wordexp.3, wprintf.3, xcrypt.3, xdr.3, y0.3, cciss.4, console.4, console_codes.4, console_ioctl.4, dsp56k.4, fd.4, full.4, hd.4, hpsa.4, initrd.4, intro.4, lp.4, mem.4, mouse.4, null.4, pts.4, ram.4, random.4, rtc.4, sk98lin.4, st.4, tty.4, ttyS.4, tty_ioctl.4, vcs.4, wavelan.4, acct.5, charmap.5, dir_colors.5, filesystems.5, ftpusers.5, group.5, host.conf.5, hosts.5, hosts.equiv.5, intro.5, issue.5, locale.5, motd.5, networks.5, nologin.5, nscd.conf.5, passwd.5, proc.5, protocols.5, resolv.conf.5, rpc.5, securetty.5, services.5, shells.5, termcap.5, ttytype.5, utmp.5, armscii-8.7, arp.7, ascii.7, bootparam.7, capabilities.7, charsets.7, complex.7, cp1251.7, credentials.7, ddp.7, environ.7, epoll.7, fifo.7, futex.7, glob.7, hier.7, icmp.7, inotify.7, intro.7, ip.7, ipv6.7, iso_8859-1.7, iso_8859-10.7, iso_8859-11.7, iso_8859-13.7, iso_8859-14.7, iso_8859-15.7, iso_8859-16.7, iso_8859-2.7, iso_8859-3.7, iso_8859-4.7, iso_8859-5.7, iso_8859-6.7, iso_8859-7.7, iso_8859-8.7, iso_8859-9.7, koi8-r.7, koi8-u.7, locale.7, mailaddr.7, man.7, mq_overview.7, netdevice.7, netlink.7, numa.7, packet.7, path_resolution.7, pipe.7, posixoptions.7, pthreads.7, pty.7, raw.7, regex.7, rtld-audit.7, rtnetlink.7, sem_overview.7, shm_overview.7, sigevent.7, signal.7, socket.7, standards.7, suffixes.7, svipc.7, tcp.7, termio.7, time.7, udp.7, udplite.7, unicode.7, unix.7, uri.7, utf-8.7, x25.7, nscd.8, sync.8, tzselect.8, zdump.8, zic.8: Global fix: remove unneeded double quotes in .SH headings
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2013-02-24 18:01:36 +00:00
|
|
|
.SH CONFORMING TO
|
2016-03-06 22:32:05 +00:00
|
|
|
Neither of these interfaces is described in POSIX.1
|
|
|
|
|
2007-05-12 09:06:04 +00:00
|
|
|
.BR adjtimex ()
|
2007-12-25 21:28:09 +00:00
|
|
|
is Linux-specific and should not be used in programs
|
2006-04-30 23:45:13 +00:00
|
|
|
intended to be portable.
|
2016-03-06 22:32:05 +00:00
|
|
|
|
2016-03-07 01:21:28 +00:00
|
|
|
The preferred API for the NTP daemon is
|
|
|
|
.BR ntp_adjtime (3).
|
2016-08-07 19:11:57 +00:00
|
|
|
.SH NOTES
|
|
|
|
In struct
|
|
|
|
.IR timex ,
|
|
|
|
.IR freq ,
|
|
|
|
.IR ppsfreq ,
|
|
|
|
and
|
|
|
|
.I stabil
|
|
|
|
are ppm (parts per million) with a 16-bit fractional part,
|
|
|
|
which means that a value of 1 in one of those fields
|
|
|
|
actually means 2^-16 ppm, and 2^16=65536 is 1 ppm.
|
|
|
|
This is the case for both input values (in the case of
|
|
|
|
.IR freq )
|
|
|
|
and output values.
|
|
|
|
|
|
|
|
The leap-second processing triggered by
|
|
|
|
.B STA_INS
|
|
|
|
and
|
|
|
|
.B STA_DEL
|
|
|
|
is done by the kernel in timer context
|
|
|
|
Thus, it will take one tick into the second
|
|
|
|
for the leap second to be inserted or deleted.
|
getent.1, intro.1, time.1, _exit.2, _syscall.2, accept.2, access.2, acct.2, adjtimex.2, alarm.2, alloc_hugepages.2, arch_prctl.2, bdflush.2, bind.2, brk.2, cacheflush.2, capget.2, chdir.2, chmod.2, chown.2, chroot.2, clock_getres.2, clock_nanosleep.2, clone.2, close.2, connect.2, create_module.2, delete_module.2, dup.2, epoll_create.2, epoll_ctl.2, epoll_wait.2, eventfd.2, execve.2, exit_group.2, faccessat.2, fchmodat.2, fchownat.2, fcntl.2, flock.2, fork.2, fstatat.2, fsync.2, futex.2, futimesat.2, get_kernel_syms.2, get_robust_list.2, get_thread_area.2, getcpu.2, getdents.2, getdomainname.2, getgid.2, getgroups.2, gethostname.2, getitimer.2, getpagesize.2, getpeername.2, getpid.2, getpriority.2, getresuid.2, getrlimit.2, getrusage.2, getsid.2, getsockname.2, getsockopt.2, gettid.2, gettimeofday.2, getuid.2, getunwind.2, getxattr.2, idle.2, init_module.2, inotify_add_watch.2, inotify_init.2, inotify_rm_watch.2, intro.2, io_cancel.2, io_destroy.2, io_getevents.2, io_setup.2, io_submit.2, ioctl.2, ioctl_list.2, ioperm.2, iopl.2, ioprio_set.2, ipc.2, kcmp.2, kill.2, killpg.2, link.2, linkat.2, listen.2, listxattr.2, llseek.2, lookup_dcookie.2, lseek.2, madvise.2, migrate_pages.2, mincore.2, mkdir.2, mkdirat.2, mknod.2, mknodat.2, mlock.2, mmap.2, mmap2.2, modify_ldt.2, mount.2, move_pages.2, mprotect.2, mq_getsetattr.2, mremap.2, msgctl.2, msgget.2, msgop.2, msync.2, nanosleep.2, nfsservctl.2, nice.2, open.2, openat.2, outb.2, pause.2, pciconfig_read.2, perf_event_open.2, perfmonctl.2, personality.2, pipe.2, pivot_root.2, poll.2, posix_fadvise.2, prctl.2, pread.2, process_vm_readv.2, ptrace.2, query_module.2, quotactl.2, read.2, readahead.2, readdir.2, readlink.2, readlinkat.2, readv.2, reboot.2, recv.2, remap_file_pages.2, removexattr.2, rename.2, renameat.2, rmdir.2, rt_sigqueueinfo.2, sched_get_priority_max.2, sched_rr_get_interval.2, sched_setaffinity.2, sched_setparam.2, sched_setscheduler.2, sched_yield.2, select.2, semctl.2, semget.2, semop.2, send.2, sendfile.2, set_thread_area.2, set_tid_address.2, seteuid.2, setfsgid.2, setfsuid.2, setgid.2, setpgid.2, setresuid.2, setreuid.2, setsid.2, setuid.2, setup.2, setxattr.2, shmctl.2, shmget.2, shmop.2, shutdown.2, sigaction.2, sigaltstack.2, signal.2, signalfd.2, sigpending.2, sigprocmask.2, sigreturn.2, sigsuspend.2, sigwaitinfo.2, socket.2, socketcall.2, socketpair.2, splice.2, stat.2, statfs.2, stime.2, swapon.2, symlink.2, symlinkat.2, sync.2, sync_file_range.2, sysctl.2, sysfs.2, sysinfo.2, syslog.2, tee.2, time.2, timerfd_create.2, times.2, tkill.2, truncate.2, umask.2, umount.2, uname.2, unimplemented.2, unlink.2, unlinkat.2, uselib.2, ustat.2, utime.2, utimensat.2, vfork.2, vhangup.2, vm86.2, vmsplice.2, wait.2, wait4.2, write.2, CPU_SET.3, INFINITY.3, MB_CUR_MAX.3, MB_LEN_MAX.3, __setfpucw.3, a64l.3, abort.3, abs.3, acos.3, acosh.3, addseverity.3, adjtime.3, aio_cancel.3, aio_error.3, aio_fsync.3, aio_read.3, aio_return.3, aio_suspend.3, aio_write.3, alloca.3, argz_add.3, asin.3, asinh.3, asprintf.3, assert.3, assert_perror.3, atan.3, atan2.3, atanh.3, atexit.3, atof.3, atoi.3, backtrace.3, basename.3, bcmp.3, bcopy.3, bindresvport.3, bsd_signal.3, bsearch.3, bstring.3, btowc.3, btree.3, byteorder.3, bzero.3, cabs.3, cacos.3, cacosh.3, canonicalize_file_name.3, carg.3, casin.3, casinh.3, catan.3, catanh.3, catgets.3, catopen.3, cbrt.3, ccos.3, ccosh.3, ceil.3, cerf.3, cexp.3, cexp2.3, cfree.3, cimag.3, clearenv.3, clock.3, clock_getcpuclockid.3, clog.3, clog10.3, clog2.3, closedir.3, cmsg.3, confstr.3, conj.3, copysign.3, cos.3, cosh.3, cpow.3, cproj.3, creal.3, crypt.3, csin.3, csinh.3, csqrt.3, ctan.3, ctanh.3, ctermid.3, ctime.3, daemon.3, dbopen.3, des_crypt.3, difftime.3, dirfd.3, div.3, dl_iterate_phdr.3, dlopen.3, dprintf.3, drand48.3, drand48_r.3, dysize.3, ecvt.3, ecvt_r.3, encrypt.3, end.3, endian.3, envz_add.3, erf.3, erfc.3, err.3, errno.3, error.3, ether_aton.3, euidaccess.3, exec.3, exit.3, exp.3, exp10.3, exp2.3, expm1.3, fabs.3, fclose.3, fcloseall.3, fdim.3, fenv.3, ferror.3, fexecve.3, fflush.3, ffs.3, fgetgrent.3, fgetpwent.3, fgetwc.3, fgetws.3, finite.3, flockfile.3, floor.3, fma.3, fmax.3, fmemopen.3, fmin.3, fmod.3, fmtmsg.3, fnmatch.3, fopen.3, fpathconf.3, fpclassify.3, fpurge.3, fputwc.3, fputws.3, fread.3, frexp.3, fseek.3, fseeko.3, ftime.3, ftok.3, fts.3, ftw.3, futimes.3, fwide.3, gamma.3, gcvt.3, getaddrinfo.3, getaddrinfo_a.3, getauxval.3, getcontext.3, getcwd.3, getdate.3, getdirentries.3, getdtablesize.3, getenv.3, getfsent.3, getgrent.3, getgrent_r.3, getgrnam.3, getgrouplist.3, gethostbyname.3, gethostid.3, getipnodebyname.3, getline.3, getloadavg.3, getlogin.3, getmntent.3, getnameinfo.3, getnetent.3, getnetent_r.3, getopt.3, getpass.3, getprotoent.3, getprotoent_r.3, getpt.3, getpw.3, getpwent.3, getpwent_r.3, getpwnam.3, getrpcent.3, getrpcent_r.3, getrpcport.3, gets.3, getservent.3, getservent_r.3, getspnam.3, getttyent.3, getumask.3, getusershell.3, getutent.3, getw.3, getwchar.3, glob.3, grantpt.3, gsignal.3, hash.3, hsearch.3, hypot.3, iconv.3, iconv_close.3, iconv_open.3, ilogb.3, index.3, inet.3, inet_ntop.3, inet_pton.3, infnan.3, initgroups.3, insque.3, intro.3, isalpha.3, isatty.3, isgreater.3, iswalnum.3, iswalpha.3, iswblank.3, iswcntrl.3, iswctype.3, iswdigit.3, iswgraph.3, iswlower.3, iswprint.3, iswpunct.3, iswspace.3, iswupper.3, iswxdigit.3, j0.3, key_setsecret.3, ldexp.3, lgamma.3, lio_listio.3, localeconv.3, lockf.3, log.3, log10.3, log1p.3, log2.3, logb.3, login.3, longjmp.3, lrint.3, lround.3, lsearch.3, lseek64.3, makecontext.3, makedev.3, malloc.3, malloc_hook.3, mblen.3, mbrlen.3, mbrtowc.3, mbsinit.3, mbsnrtowcs.3, mbsrtowcs.3, mbstowcs.3, mbtowc.3, memccpy.3, memchr.3, memcmp.3, memcpy.3, memfrob.3, memmem.3, memmove.3, mempcpy.3, memset.3, mkdtemp.3, mkfifo.3, mkfifoat.3, mkstemp.3, mktemp.3, modf.3, mpool.3, mq_close.3, mq_getattr.3, mq_notify.3, mq_open.3, mq_receive.3, mq_send.3, mq_unlink.3, mtrace.3, nan.3, netlink.3, nextafter.3, nl_langinfo.3, offsetof.3, on_exit.3, opendir.3, openpty.3, perror.3, popen.3, posix_fallocate.3, posix_memalign.3, posix_openpt.3, pow.3, pow10.3, printf.3, profil.3, program_invocation_name.3, psignal.3, pthread_kill_other_threads_np.3, ptsname.3, putenv.3, putgrent.3, putpwent.3, puts.3, putwchar.3, qecvt.3, qsort.3, queue.3, raise.3, rand.3, random.3, random_r.3, rcmd.3, re_comp.3, readdir.3, realpath.3, recno.3, regex.3, remainder.3, remove.3, remquo.3, resolver.3, rewinddir.3, rexec.3, rint.3, round.3, rpc.3, rpmatch.3, rtime.3, rtnetlink.3, scalb.3, scalbln.3, scandir.3, scandirat.3, scanf.3, seekdir.3, sem_close.3, sem_destroy.3, sem_getvalue.3, sem_init.3, sem_open.3, sem_post.3, sem_unlink.3, sem_wait.3, setaliasent.3, setbuf.3, setenv.3, setjmp.3, setlocale.3, setlogmask.3, setnetgrent.3, shm_open.3, siginterrupt.3, signbit.3, significand.3, sigpause.3, sigqueue.3, sigset.3, sigsetops.3, sigvec.3, sin.3, sincos.3, sinh.3, sleep.3, sockatmark.3, sqrt.3, statvfs.3, stdarg.3, stdin.3, stdio.3, stdio_ext.3, stpcpy.3, stpncpy.3, strcasecmp.3, strcat.3, strchr.3, strcmp.3, strcoll.3, strcpy.3, strdup.3, strerror.3, strfmon.3, strfry.3, strftime.3, string.3, strlen.3, strnlen.3, strpbrk.3, strptime.3, strsep.3, strsignal.3, strspn.3, strstr.3, strtod.3, strtoimax.3, strtok.3, strtol.3, strtoul.3, strverscmp.3, strxfrm.3, swab.3, sysconf.3, syslog.3, system.3, sysv_signal.3, tan.3, tanh.3, tcgetpgrp.3, tcgetsid.3, telldir.3, tempnam.3, termios.3, tgamma.3, timegm.3, timeradd.3, tmpfile.3, tmpnam.3, toascii.3, toupper.3, towctrans.3, towlower.3, towupper.3, trunc.3, tsearch.3, ttyname.3, ttyslot.3, tzset.3, ualarm.3, ulimit.3, ungetwc.3, unlocked_stdio.3, unlockpt.3, updwtmp.3, usleep.3, wcpcpy.3, wcpncpy.3, wcrtomb.3, wcscasecmp.3, wcscat.3, wcschr.3, wcscmp.3, wcscpy.3, wcscspn.3, wcsdup.3, wcslen.3, wcsncasecmp.3, wcsncat.3, wcsncmp.3, wcsncpy.3, wcsnlen.3, wcsnrtombs.3, wcspbrk.3, wcsrchr.3, wcsrtombs.3, wcsspn.3, wcsstr.3, wcstoimax.3, wcstok.3, wcstombs.3, wcswidth.3, wctob.3, wctomb.3, wctrans.3, wctype.3, wcwidth.3, wmemchr.3, wmemcmp.3, wmemcpy.3, wmemmove.3, wmemset.3, wordexp.3, wprintf.3, xcrypt.3, xdr.3, y0.3, cciss.4, console.4, console_codes.4, console_ioctl.4, dsp56k.4, fd.4, full.4, hd.4, hpsa.4, initrd.4, intro.4, lp.4, mem.4, mouse.4, null.4, pts.4, ram.4, random.4, rtc.4, sk98lin.4, st.4, tty.4, ttyS.4, tty_ioctl.4, vcs.4, wavelan.4, acct.5, charmap.5, dir_colors.5, filesystems.5, ftpusers.5, group.5, host.conf.5, hosts.5, hosts.equiv.5, intro.5, issue.5, locale.5, motd.5, networks.5, nologin.5, nscd.conf.5, passwd.5, proc.5, protocols.5, resolv.conf.5, rpc.5, securetty.5, services.5, shells.5, termcap.5, ttytype.5, utmp.5, armscii-8.7, arp.7, ascii.7, bootparam.7, capabilities.7, charsets.7, complex.7, cp1251.7, credentials.7, ddp.7, environ.7, epoll.7, fifo.7, futex.7, glob.7, hier.7, icmp.7, inotify.7, intro.7, ip.7, ipv6.7, iso_8859-1.7, iso_8859-10.7, iso_8859-11.7, iso_8859-13.7, iso_8859-14.7, iso_8859-15.7, iso_8859-16.7, iso_8859-2.7, iso_8859-3.7, iso_8859-4.7, iso_8859-5.7, iso_8859-6.7, iso_8859-7.7, iso_8859-8.7, iso_8859-9.7, koi8-r.7, koi8-u.7, locale.7, mailaddr.7, man.7, mq_overview.7, netdevice.7, netlink.7, numa.7, packet.7, path_resolution.7, pipe.7, posixoptions.7, pthreads.7, pty.7, raw.7, regex.7, rtld-audit.7, rtnetlink.7, sem_overview.7, shm_overview.7, sigevent.7, signal.7, socket.7, standards.7, suffixes.7, svipc.7, tcp.7, termio.7, time.7, udp.7, udplite.7, unicode.7, unix.7, uri.7, utf-8.7, x25.7, nscd.8, sync.8, tzselect.8, zdump.8, zic.8: Global fix: remove unneeded double quotes in .SH headings
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
2013-02-24 18:01:36 +00:00
|
|
|
.SH SEE ALSO
|
2004-11-03 13:51:07 +00:00
|
|
|
.BR settimeofday (2),
|
2006-04-30 23:45:13 +00:00
|
|
|
.BR adjtime (3),
|
2016-03-07 00:26:38 +00:00
|
|
|
.BR ntp_gettime (3),
|
2008-06-23 08:48:25 +00:00
|
|
|
.BR capabilities (7),
|
2013-08-07 07:16:39 +00:00
|
|
|
.BR time (7),
|
|
|
|
.BR adjtimex (8)
|
2016-03-04 16:05:34 +00:00
|
|
|
|
|
|
|
.ad l
|
2016-03-04 16:14:40 +00:00
|
|
|
.UR http://www.slac.stanford.edu/comp/unix/\:package/\:rtems/\:src/\:ssrlApps/\:ntpNanoclock/\:api.htm
|
2016-03-04 16:05:34 +00:00
|
|
|
NTP "Kernel Application Program Interface"
|
|
|
|
.UE
|