Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.
1: /***************************************************************************** 2: * * 3: * Copyright (c) David L. Mills 1993 * 4: * * 5: * Permission to use, copy, modify, and distribute this software and its * 6: * documentation for any purpose and without fee is hereby granted, provided * 7: * that the above copyright notice appears in all copies and that both the * 8: * copyright notice and this permission notice appear in supporting * 9: * documentation, and that the name University of Delaware not be used in * 10: * advertising or publicity pertaining to distribution of the software * 11: * without specific, written prior permission. The University of Delaware * 12: * makes no representations about the suitability this software for any * 13: * purpose. It is provided "as is" without express or implied warranty. * 14: * * 15: *****************************************************************************/ 16: 17: /* 18: * Modification history timex.h 19: * 20: * 29 Dec 97 Russell King 21: * Moved CLOCK_TICK_RATE, CLOCK_TICK_FACTOR and FINETUNE to asm/timex.h 22: * for ARM machines 23: * 24: * 9 Jan 97 Adrian Sun 25: * Shifted LATCH define to allow access to alpha machines. 26: * 27: * 26 Sep 94 David L. Mills 28: * Added defines for hybrid phase/frequency-lock loop. 29: * 30: * 19 Mar 94 David L. Mills 31: * Moved defines from kernel routines to header file and added new 32: * defines for PPS phase-lock loop. 33: * 34: * 20 Feb 94 David L. Mills 35: * Revised status codes and structures for external clock and PPS 36: * signal discipline. 37: * 38: * 28 Nov 93 David L. Mills 39: * Adjusted parameters to improve stability and increase poll 40: * interval. 41: * 42: * 17 Sep 93 David L. Mills 43: * Created file $NTP/include/sys/timex.h 44: * 07 Oct 93 Torsten Duwe 45: * Derived linux/timex.h 46: * 1995-08-13 Torsten Duwe 47: * kernel PLL updated to 1994-12-13 specs (rfc-1589) 48: * 1997-08-30 Ulrich Windl 49: * Added new constant NTP_PHASE_LIMIT 50: * 2004-08-12 Christoph Lameter 51: * Reworked time interpolation logic 52: */ 53: #ifndef _UAPI_LINUX_TIMEX_H 54: #define _UAPI_LINUX_TIMEX_H 55: 56: #include <linux/time.h> 57: 58: #define NTP_API 4 /* NTP API version */ 59: 60: /* 61: * syscall interface - used (mainly by NTP daemon) 62: * to discipline kernel clock oscillator 63: */ 64: struct timex { 65: unsigned int modes; /* mode selector */ 66: long offset; /* time offset (usec) */ 67: long freq; /* frequency offset (scaled ppm) */ 68: long maxerror; /* maximum error (usec) */ 69: long esterror; /* estimated error (usec) */ 70: int status; /* clock command/status */ 71: long constant; /* pll time constant */ 72: long precision; /* clock precision (usec) (read only) */ 73: long tolerance; /* clock frequency tolerance (ppm) 74: * (read only) 75: */ 76: struct timeval time; /* (read only, except for ADJ_SETOFFSET) */ 77: long tick; /* (modified) usecs between clock ticks */ 78: 79: long ppsfreq; /* pps frequency (scaled ppm) (ro) */ 80: long jitter; /* pps jitter (us) (ro) */ 81: int shift; /* interval duration (s) (shift) (ro) */ 82: long stabil; /* pps stability (scaled ppm) (ro) */ 83: long jitcnt; /* jitter limit exceeded (ro) */ 84: long calcnt; /* calibration intervals (ro) */ 85: long errcnt; /* calibration errors (ro) */ 86: long stbcnt; /* stability limit exceeded (ro) */ 87: 88: int tai; /* TAI offset (ro) */ 89: 90: int :32; int :32; int :32; int :32; 91: int :32; int :32; int :32; int :32; 92: int :32; int :32; int :32; 93: }; 94: 95: /* 96: * Mode codes (timex.mode) 97: */ 98: #define ADJ_OFFSET 0x0001 /* time offset */ 99: #define ADJ_FREQUENCY 0x0002 /* frequency offset */ 100: #define ADJ_MAXERROR 0x0004 /* maximum time error */ 101: #define ADJ_ESTERROR 0x0008 /* estimated time error */ 102: #define ADJ_STATUS 0x0010 /* clock status */ 103: #define ADJ_TIMECONST 0x0020 /* pll time constant */ 104: #define ADJ_TAI 0x0080 /* set TAI offset */ 105: #define ADJ_SETOFFSET 0x0100 /* add 'time' to current time */ 106: #define ADJ_MICRO 0x1000 /* select microsecond resolution */ 107: #define ADJ_NANO 0x2000 /* select nanosecond resolution */ 108: #define ADJ_TICK 0x4000 /* tick value */ 109: 110: #ifndef __KERNEL__ 111: #define ADJ_OFFSET_SINGLESHOT 0x8001 /* old-fashioned adjtime */ 112: #define ADJ_OFFSET_SS_READ 0xa001 /* read-only adjtime */ 113: #endif 114: 115: /* NTP userland likes the MOD_ prefix better */ 116: #define MOD_OFFSET ADJ_OFFSET 117: #define MOD_FREQUENCY ADJ_FREQUENCY 118: #define MOD_MAXERROR ADJ_MAXERROR 119: #define MOD_ESTERROR ADJ_ESTERROR 120: #define MOD_STATUS ADJ_STATUS 121: #define MOD_TIMECONST ADJ_TIMECONST 122: #define MOD_TAI ADJ_TAI 123: #define MOD_MICRO ADJ_MICRO 124: #define MOD_NANO ADJ_NANO 125: 126: 127: /* 128: * Status codes (timex.status) 129: */ 130: #define STA_PLL 0x0001 /* enable PLL updates (rw) */ 131: #define STA_PPSFREQ 0x0002 /* enable PPS freq discipline (rw) */ 132: #define STA_PPSTIME 0x0004 /* enable PPS time discipline (rw) */ 133: #define STA_FLL 0x0008 /* select frequency-lock mode (rw) */ 134: 135: #define STA_INS 0x0010 /* insert leap (rw) */ 136: #define STA_DEL 0x0020 /* delete leap (rw) */ 137: #define STA_UNSYNC 0x0040 /* clock unsynchronized (rw) */ 138: #define STA_FREQHOLD 0x0080 /* hold frequency (rw) */ 139: 140: #define STA_PPSSIGNAL 0x0100 /* PPS signal present (ro) */ 141: #define STA_PPSJITTER 0x0200 /* PPS signal jitter exceeded (ro) */ 142: #define STA_PPSWANDER 0x0400 /* PPS signal wander exceeded (ro) */ 143: #define STA_PPSERROR 0x0800 /* PPS signal calibration error (ro) */ 144: 145: #define STA_CLOCKERR 0x1000 /* clock hardware fault (ro) */ 146: #define STA_NANO 0x2000 /* resolution (0 = us, 1 = ns) (ro) */ 147: #define STA_MODE 0x4000 /* mode (0 = PLL, 1 = FLL) (ro) */ 148: #define STA_CLK 0x8000 /* clock source (0 = A, 1 = B) (ro) */ 149: 150: /* read-only bits */ 151: #define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | \ 152: STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK) 153: 154: /* 155: * Clock states (time_state) 156: */ 157: #define TIME_OK 0 /* clock synchronized, no leap second */ 158: #define TIME_INS 1 /* insert leap second */ 159: #define TIME_DEL 2 /* delete leap second */ 160: #define TIME_OOP 3 /* leap second in progress */ 161: #define TIME_WAIT 4 /* leap second has occurred */ 162: #define TIME_ERROR 5 /* clock not synchronized */ 163: #define TIME_BAD TIME_ERROR /* bw compat */ 164: 165: 166: #endif /* _UAPI_LINUX_TIMEX_H */ 167: