ADJTIMEX

Section: Linux Programmer's Manual (2)
Updated: 15 April 1995
Index Return to Main Contents
 

NAME

adjtimex - tune kernel clock  

SYNOPSIS

#include <sys/timex.h>

int adjtimex(struct timex *buf);  

DESCRIPTION

Linux uses David Mill's clock adjustment algorithm. adjtimex reads and optionally sets adjustment parameters for this algorithm.

adjtimex 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 mode;            /* mode selector */
    long offset;         /* time offset (usec) */
    long frequency;      /* frequency offset (scaled ppm) */
    long maxerror;       /* maximum error (usec) */
    long esterror;       /* estimated error (usec) */
    int status;          /* clock command/status */
    long time_constant;  /* pll time constant */
    long precision;      /* clock precision (usec) (read only) */
    long tolerance;      /* clock frequency tolerance (ppm)
                            (read only) */
    struct timeval time; /* (read only) */
    long tick;           /* usecs between clock ticks */
};

The mode 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 value of buf.status:

#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_BAD 4 /* clock not synchronized */

On failure, adjtimex returns -1 and sets errno.  

ERRORS

EFAULT
buf does not point to writeable memory.
EPERM
buf.mode is non-zero and the user is not super-user.
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.
 

SEE ALSO

settimeofday(2).


 

Index

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUE
ERRORS
SEE ALSO

This document was created by man2html, using the manual pages.
Time: 12:25:31 GMT, March 22, 2025