Differences between current version and previous revision of adjtimex(2).
Other diffs: Previous Major Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 2 | Last edited on Monday, October 28, 2002 8:45:20 pm | by PerryLorier | |
Older page: | version 1 | Last edited on Tuesday, June 4, 2002 12:23:39 am | by perry | Revert |
@@ -1,28 +1,18 @@
ADJTIMEX
!!!ADJTIMEX
-NAME
-SYNOPSIS
-DESCRIPTION
-RETURN VALUE
-ERRORS
-CONFORMING TO
-SEE ALSO
+
----
!!NAME
adjtimex - tune kernel clock
!!SYNOPSIS
+ __#include <sys/time>
+ __int adjtimex(struct timex *__''buf''__);__
-__#include __
-
-
-__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
@@ -30,92 +20,61 @@
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 */
-};
-
+
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 */
-#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.
+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 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 */
-#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''.
+On failure, __adjtimex__ returns -1 and sets ''errno''.
!!ERRORS
-__
EFAULT__
-
-
-
''buf'' does not point to writable 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.
+;[
EFAULT]:
''buf'' does not point to writable 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.
!!CONFORMING TO
-
__adjtimex__ is Linux specific and should not be used in
programs intended to be portable. There is a similar but
less general call __adjtime__ in SVr4.
+
!!SEE ALSO
-
settimeofday(2)
----