diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/timex.h | 73 |
1 files changed, 37 insertions, 36 deletions
diff --git a/include/linux/timex.h b/include/linux/timex.h index 9007313b5b71..998a55d80acf 100644 --- a/include/linux/timex.h +++ b/include/linux/timex.h | |||
| @@ -53,47 +53,11 @@ | |||
| 53 | #ifndef _LINUX_TIMEX_H | 53 | #ifndef _LINUX_TIMEX_H |
| 54 | #define _LINUX_TIMEX_H | 54 | #define _LINUX_TIMEX_H |
| 55 | 55 | ||
| 56 | #include <linux/compiler.h> | ||
| 57 | #include <linux/time.h> | 56 | #include <linux/time.h> |
| 58 | 57 | ||
| 59 | #include <asm/param.h> | ||
| 60 | |||
| 61 | #define NTP_API 4 /* NTP API version */ | 58 | #define NTP_API 4 /* NTP API version */ |
| 62 | 59 | ||
| 63 | /* | 60 | /* |
| 64 | * SHIFT_KG and SHIFT_KF establish the damping of the PLL and are chosen | ||
| 65 | * for a slightly underdamped convergence characteristic. SHIFT_KH | ||
| 66 | * establishes the damping of the FLL and is chosen by wisdom and black | ||
| 67 | * art. | ||
| 68 | * | ||
| 69 | * MAXTC establishes the maximum time constant of the PLL. With the | ||
| 70 | * SHIFT_KG and SHIFT_KF values given and a time constant range from | ||
| 71 | * zero to MAXTC, the PLL will converge in 15 minutes to 16 hours, | ||
| 72 | * respectively. | ||
| 73 | */ | ||
| 74 | #define SHIFT_PLL 4 /* PLL frequency factor (shift) */ | ||
| 75 | #define SHIFT_FLL 2 /* FLL frequency factor (shift) */ | ||
| 76 | #define MAXTC 10 /* maximum time constant (shift) */ | ||
| 77 | |||
| 78 | /* | ||
| 79 | * SHIFT_USEC defines the scaling (shift) of the time_freq and | ||
| 80 | * time_tolerance variables, which represent the current frequency | ||
| 81 | * offset and maximum frequency tolerance. | ||
| 82 | */ | ||
| 83 | #define SHIFT_USEC 16 /* frequency offset scale (shift) */ | ||
| 84 | #define PPM_SCALE (NSEC_PER_USEC << (NTP_SCALE_SHIFT - SHIFT_USEC)) | ||
| 85 | #define PPM_SCALE_INV_SHIFT 19 | ||
| 86 | #define PPM_SCALE_INV ((1ll << (PPM_SCALE_INV_SHIFT + NTP_SCALE_SHIFT)) / \ | ||
| 87 | PPM_SCALE + 1) | ||
| 88 | |||
| 89 | #define MAXPHASE 500000000l /* max phase error (ns) */ | ||
| 90 | #define MAXFREQ 500000 /* max frequency error (ns/s) */ | ||
| 91 | #define MAXFREQ_SCALED ((s64)MAXFREQ << NTP_SCALE_SHIFT) | ||
| 92 | #define MINSEC 256 /* min interval between updates (s) */ | ||
| 93 | #define MAXSEC 2048 /* max interval between updates (s) */ | ||
| 94 | #define NTP_PHASE_LIMIT ((MAXPHASE / NSEC_PER_USEC) << 5) /* beyond max. dispersion */ | ||
| 95 | |||
| 96 | /* | ||
| 97 | * syscall interface - used (mainly by NTP daemon) | 61 | * syscall interface - used (mainly by NTP daemon) |
| 98 | * to discipline kernel clock oscillator | 62 | * to discipline kernel clock oscillator |
| 99 | */ | 63 | */ |
| @@ -199,9 +163,46 @@ struct timex { | |||
| 199 | #define TIME_BAD TIME_ERROR /* bw compat */ | 163 | #define TIME_BAD TIME_ERROR /* bw compat */ |
| 200 | 164 | ||
| 201 | #ifdef __KERNEL__ | 165 | #ifdef __KERNEL__ |
| 166 | #include <linux/compiler.h> | ||
| 167 | #include <linux/types.h> | ||
| 168 | #include <linux/param.h> | ||
| 169 | |||
| 202 | #include <asm/timex.h> | 170 | #include <asm/timex.h> |
| 203 | 171 | ||
| 204 | /* | 172 | /* |
| 173 | * SHIFT_KG and SHIFT_KF establish the damping of the PLL and are chosen | ||
| 174 | * for a slightly underdamped convergence characteristic. SHIFT_KH | ||
| 175 | * establishes the damping of the FLL and is chosen by wisdom and black | ||
| 176 | * art. | ||
| 177 | * | ||
| 178 | * MAXTC establishes the maximum time constant of the PLL. With the | ||
| 179 | * SHIFT_KG and SHIFT_KF values given and a time constant range from | ||
| 180 | * zero to MAXTC, the PLL will converge in 15 minutes to 16 hours, | ||
| 181 | * respectively. | ||
| 182 | */ | ||
| 183 | #define SHIFT_PLL 4 /* PLL frequency factor (shift) */ | ||
| 184 | #define SHIFT_FLL 2 /* FLL frequency factor (shift) */ | ||
| 185 | #define MAXTC 10 /* maximum time constant (shift) */ | ||
| 186 | |||
| 187 | /* | ||
| 188 | * SHIFT_USEC defines the scaling (shift) of the time_freq and | ||
| 189 | * time_tolerance variables, which represent the current frequency | ||
| 190 | * offset and maximum frequency tolerance. | ||
| 191 | */ | ||
| 192 | #define SHIFT_USEC 16 /* frequency offset scale (shift) */ | ||
| 193 | #define PPM_SCALE (NSEC_PER_USEC << (NTP_SCALE_SHIFT - SHIFT_USEC)) | ||
| 194 | #define PPM_SCALE_INV_SHIFT 19 | ||
| 195 | #define PPM_SCALE_INV ((1ll << (PPM_SCALE_INV_SHIFT + NTP_SCALE_SHIFT)) / \ | ||
| 196 | PPM_SCALE + 1) | ||
| 197 | |||
| 198 | #define MAXPHASE 500000000l /* max phase error (ns) */ | ||
| 199 | #define MAXFREQ 500000 /* max frequency error (ns/s) */ | ||
| 200 | #define MAXFREQ_SCALED ((s64)MAXFREQ << NTP_SCALE_SHIFT) | ||
| 201 | #define MINSEC 256 /* min interval between updates (s) */ | ||
| 202 | #define MAXSEC 2048 /* max interval between updates (s) */ | ||
| 203 | #define NTP_PHASE_LIMIT ((MAXPHASE / NSEC_PER_USEC) << 5) /* beyond max. dispersion */ | ||
| 204 | |||
| 205 | /* | ||
| 205 | * kernel variables | 206 | * kernel variables |
| 206 | * Note: maximum error = NTP synch distance = dispersion + delay / 2; | 207 | * Note: maximum error = NTP synch distance = dispersion + delay / 2; |
| 207 | * estimated error = NTP dispersion. | 208 | * estimated error = NTP dispersion. |
