
- Linux System Calls - Home
- A
- accept
- access
- acct
- add_key
- adjtimex
- afs_syscall
- alarm
- alloc_hugepages
- arch_prctl
- B
- bdflush
- bind
- break
- brk
- C
- cacheflush
- chdir
- chmod
- chown
- chroot
- clone2
- clone
- close
- connect
- create_module
- creat
- D
- dup2
- dup
- E
- epoll_create
- epoll_ctl
- epoll_wait
- execve
- exit_group
- _exit
- exit
- _Exit
- F
- faccessat
- fattch
- fchdir
- fchmodat
- fchmod
- fchownat
- fchown
- fcntl
- fdatasync
- fdetach
- flock
- fork
- free_hugepages
- fstatat
- fstatfs
- fstat
- fstatvfs
- fsync
- ftruncate
- futex
- futimesat
- G
- getcontext
- getcwd
- getdents
- getdomainname
- getdtablesize
- getegid
- geteuid
- getgid
- getgroups
- gethostid
- gethostname
- getitimer
- get_kernel_syms
- get_mempolicy
- getmsg
- getpagesize
- getpeername
- getpgid
- getpgrp
- getpid
- getpmsg
- getppid
- getpriority
- getresgid
- getresuid
- getrlimit
- get_robust_list
- getrusage
- getsid
- getsockname
- getsockopt
- get_thread_area
- gettid
- gettimeofday
- getuid
- getunwind
- gtty
- I
- idle
- inb
- inb_p
- init_module
- inl
- inl_p
- inotify_add_watch
- inotify_init
- inotify_rm_watch
- insb
- insl
- insw
- intro
- inw
- inw_p
- io_cancel
- ioctl
- ioctl_list
- io_destroy
- io_getevents
- ioperm
- iopl
- ioprio_get
- ioprio_set
- io_setup
- io_submit
- ipc
- isastream
- K
- kexec_load
- keyctl
- kill
- killpg
- L
- lchown
- linkat
- link
- listen
- _llseek
- llseek
- lock
- lookup_dcookie
- lseek
- lstat
- M
- madvise
- mincore
- mkdirat
- mkdir
- mknodat
- mknod
- mlockall
- mlock
- mmap2
- mmap
- modify_ldt
- mount
- move_pages
- mprotect
- mpx
- mq_getsetattr
- mremap
- msgctl
- msgget
- msgop
- msgrcv
- msgsnd
- msync
- multiplexer
- munlockall
- munlock
- munmap
- N
- nanosleep
- _newselect
- nfsservctl
- nice
- O
- obsolete
- oldfstat
- oldlstat
- oldolduname
- oldstat
- olduname
- openat
- open
- outb
- outb_p
- outl
- outl_p
- outsb
- outsl
- outsw
- outw
- outw_p
- P
- path_resolution
- pause
- perfmonctl
- personality
- pipe
- pivot_root
- poll
- posix_fadvise
- ppoll
- prctl
- pread
- prof
- pselect
- ptrace
- putmsg
- putpmsg
- pwrite
- Q
- query_module
- quotactl
- R
- readahead
- readdir
- read
- readlinkat
- readlink
- readv
- reboot
- recvfrom
- recv
- recvmsg
- remap_file_pages
- renameat
- rename
- request_key
- restart_syscall
- rmdir
- rtas
- rt_sigaction
- rt_sigpending
- rt_sigprocmask
- rt_sigqueueinfo
- rt_sigreturn
- rt_sigsuspend
- rt_sigtimedwait
- S
- sbrk
- sched_getaffinity
- sched_getparam
- sched_get_priority_max
- sched_get_priority_min
- sched_getscheduler
- sched_rr_get_interval
- sched_setaffinity
- sched_setparam
- sched_setscheduler
- sched_yield
- security
- select
- select_tut
- semctl
- semget
- semop
- semtimedop
- sendfile
- send
- sendmsg
- sendto
- setcontext
- setdomainname
- setegid
- seteuid
- setfsgid
- setfsuid
- setgid
- setgroups
- sethostid
- sethostname
- setitimer
- setpgid
- setpgrp
- setpriority
- setregid
- setresgid
- setresuid
- setreuid
- setrlimit
- set_robust_list
- setsid
- setsockopt
- set_thread_area
- set_tid_address
- settimeofday
- setuid
- setup
- sgetmask
- shmat
- shmctl
- shmdt
- shmget
- shmop
- shutdown
- sigaction
- sigaltstack
- signal
- sigpending
- sigprocmask
- sigqueue
- sigreturn
- sigsuspend
- sigtimedwait
- sigwaitinfo
- socketcall
- socket
- socketpair
- splice
- spu_create
- spufs
- spu_run
- ssetmask
- statfs64
- statfs
- stat
- statvfs
- stime
- stty
- swapcontext
- swapoff
- swapon
- symlinkat
- symlink
- sync_file_range
- sync
- _syscall
- syscall
- syscalls
- _sysctl
- sysctl
- sysfs
- sysinfo
- syslog
- T
- tee
- tgkill
- time
- timer_create
- timer_delete
- timer_getoverrun
- timer_gettime
- timer_settime
- times
- tkill
- truncate
- tux
- U
- umask
- umount2
- umount
- uname
- undocumented
- unimplemented
- unlinkat
- unlink
- unshare
- uselib
- ustat
- utime
- utimes
- V
- vfork
- vhangup
- vm86
- vm86old
- vmsplice
- vserver
- W
- wait3
- wait4
- wait
- waitid
- waitpid
- write
- writev
adjtimex() System Call in Linux
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:
#define ADJ_OFFSET 0x0001 /* time offset */ #define ADJ_FREQUENCY 0x0002 /* frequency offset */ #define ADJ_MAXERROR 0x0004 /* maximum time error */ #define ADJ_ESTERROR 0x0008 /* estimated time error */ #define ADJ_STATUS 0x0010 /* clock status */ #define ADJ_TIMECONST 0x0020 /* pll time constant */ #define ADJ_TICK 0x4000 /* tick value */ #define ADJ_OFFSET_SINGLESHOT 0x8001 /* old-fashioned adjtime() */ |
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:
#define TIME_OK 0 /* clock synchronized */ #define TIME_INS 1 /* insert leap second */ #define TIME_DEL 2 /* delete leap second */ #define TIME_OOP 3 /* leap second in progress */ #define TIME_WAIT 4 /* leap second has occurred */ #define TIME_BAD 5 /* clock not synchronized */ |
On failure, adjtimex() returns -1 and sets errno.
ERRORS
Tag | Description |
---|---|
EFAULT | buf does not point to writable memory. |
EINVAL | An attempt is made to setbuf.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.