Merge tag 'imx-fixes' of git://git.pengutronix.de/git/imx/linux-2.6 into fixes
[linux-2.6-block.git] / include / linux / timex.h
index 7c5ceb20e03a8cf2195ae114e1f78905668158e5..5ec87c60b97c5029a5f58b4282a0428767be3746 100644 (file)
 #ifndef _LINUX_TIMEX_H
 #define _LINUX_TIMEX_H
 
-#include <linux/time.h>
+#include <uapi/linux/timex.h>
 
-#define NTP_API                4       /* NTP API version */
-
-/*
- * syscall interface - used (mainly by NTP daemon)
- * to discipline kernel clock oscillator
- */
-struct timex {
-       unsigned 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;    /* (read only, except for ADJ_SETOFFSET) */
-       long tick;              /* (modified) usecs between clock ticks */
-
-       long ppsfreq;           /* pps frequency (scaled ppm) (ro) */
-       long jitter;            /* pps jitter (us) (ro) */
-       int shift;              /* interval duration (s) (shift) (ro) */
-       long stabil;            /* pps stability (scaled ppm) (ro) */
-       long jitcnt;            /* jitter limit exceeded (ro) */
-       long calcnt;            /* calibration intervals (ro) */
-       long errcnt;            /* calibration errors (ro) */
-       long stbcnt;            /* stability limit exceeded (ro) */
-
-       int tai;                /* TAI offset (ro) */
-
-       int  :32; int  :32; int  :32; int  :32;
-       int  :32; int  :32; int  :32; int  :32;
-       int  :32; int  :32; int  :32;
-};
-
-/*
- * Mode codes (timex.mode)
- */
-#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_TAI                        0x0080  /* set TAI offset */
-#define ADJ_SETOFFSET          0x0100  /* add 'time' to current time */
-#define ADJ_MICRO              0x1000  /* select microsecond resolution */
-#define ADJ_NANO               0x2000  /* select nanosecond resolution */
-#define ADJ_TICK               0x4000  /* tick value */
-
-#ifdef __KERNEL__
 #define ADJ_ADJTIME            0x8000  /* switch between adjtime/adjtimex modes */
 #define ADJ_OFFSET_SINGLESHOT  0x0001  /* old-fashioned adjtime */
 #define ADJ_OFFSET_READONLY    0x2000  /* read-only adjtime */
-#else
-#define ADJ_OFFSET_SINGLESHOT  0x8001  /* old-fashioned adjtime */
-#define ADJ_OFFSET_SS_READ     0xa001  /* read-only adjtime */
-#endif
-
-/* NTP userland likes the MOD_ prefix better */
-#define MOD_OFFSET     ADJ_OFFSET
-#define MOD_FREQUENCY  ADJ_FREQUENCY
-#define MOD_MAXERROR   ADJ_MAXERROR
-#define MOD_ESTERROR   ADJ_ESTERROR
-#define MOD_STATUS     ADJ_STATUS
-#define MOD_TIMECONST  ADJ_TIMECONST
-#define MOD_TAI        ADJ_TAI
-#define MOD_MICRO      ADJ_MICRO
-#define MOD_NANO       ADJ_NANO
-
-
-/*
- * Status codes (timex.status)
- */
-#define STA_PLL                0x0001  /* enable PLL updates (rw) */
-#define STA_PPSFREQ    0x0002  /* enable PPS freq discipline (rw) */
-#define STA_PPSTIME    0x0004  /* enable PPS time discipline (rw) */
-#define STA_FLL                0x0008  /* select frequency-lock mode (rw) */
-
-#define STA_INS                0x0010  /* insert leap (rw) */
-#define STA_DEL                0x0020  /* delete leap (rw) */
-#define STA_UNSYNC     0x0040  /* clock unsynchronized (rw) */
-#define STA_FREQHOLD   0x0080  /* hold frequency (rw) */
-
-#define STA_PPSSIGNAL  0x0100  /* PPS signal present (ro) */
-#define STA_PPSJITTER  0x0200  /* PPS signal jitter exceeded (ro) */
-#define STA_PPSWANDER  0x0400  /* PPS signal wander exceeded (ro) */
-#define STA_PPSERROR   0x0800  /* PPS signal calibration error (ro) */
-
-#define STA_CLOCKERR   0x1000  /* clock hardware fault (ro) */
-#define STA_NANO       0x2000  /* resolution (0 = us, 1 = ns) (ro) */
-#define STA_MODE       0x4000  /* mode (0 = PLL, 1 = FLL) (ro) */
-#define STA_CLK                0x8000  /* clock source (0 = A, 1 = B) (ro) */
-
-/* read-only bits */
-#define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | \
-       STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK)
-
-/*
- * Clock states (time_state)
- */
-#define TIME_OK                0       /* clock synchronized, no leap second */
-#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_ERROR     5       /* clock not synchronized */
-#define TIME_BAD       TIME_ERROR /* bw compat */
-
-#ifdef __KERNEL__
 #include <linux/compiler.h>
 #include <linux/types.h>
 #include <linux/param.h>
@@ -261,6 +152,4 @@ int read_current_timer(unsigned long *timer_val);
 /* The clock frequency of the i8253/i8254 PIT */
 #define PIT_TICK_RATE 1193182ul
 
-#endif /* KERNEL */
-
 #endif /* LINUX_TIMEX_H */