summaryrefslogtreecommitdiffstats
path: root/include/linux/timex.h
diff options
context:
space:
mode:
authorjohn stultz <johnstul@us.ibm.com>2005-09-06 15:17:46 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2005-09-07 16:57:34 -0700
commitb149ee2233edf08fb59b11e879a2c5941929bcb8 (patch)
tree4ee8e066c4d69ac98afc37ab0ab62ae54271ce02 /include/linux/timex.h
parent6c231b7bab0aa6860cd9da2de8a064eddc34c146 (diff)
downloadblackbird-op-linux-b149ee2233edf08fb59b11e879a2c5941929bcb8.tar.gz
blackbird-op-linux-b149ee2233edf08fb59b11e879a2c5941929bcb8.zip
[PATCH] NTP: ntp-helper functions
This patch cleans up a commonly repeated set of changes to the NTP state variables by adding two helper inline functions: ntp_clear(): Clears the ntp state variables ntp_synced(): Returns 1 if the system is synced with a time server. This was compile tested for alpha, arm, i386, x86-64, ppc64, s390, sparc, sparc64. Signed-off-by: John Stultz <johnstul@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux/timex.h')
-rw-r--r--include/linux/timex.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/include/linux/timex.h b/include/linux/timex.h
index 74fdd07d3792..7e050a2cc35b 100644
--- a/include/linux/timex.h
+++ b/include/linux/timex.h
@@ -260,6 +260,29 @@ extern long pps_calcnt; /* calibration intervals */
extern long pps_errcnt; /* calibration errors */
extern long pps_stbcnt; /* stability limit exceeded */
+/**
+ * ntp_clear - Clears the NTP state variables
+ *
+ * Must be called while holding a write on the xtime_lock
+ */
+static inline void ntp_clear(void)
+{
+ time_adjust = 0; /* stop active adjtime() */
+ time_status |= STA_UNSYNC;
+ time_maxerror = NTP_PHASE_LIMIT;
+ time_esterror = NTP_PHASE_LIMIT;
+}
+
+/**
+ * ntp_synced - Returns 1 if the NTP status is not UNSYNC
+ *
+ */
+static inline int ntp_synced(void)
+{
+ return !(time_status & STA_UNSYNC);
+}
+
+
#ifdef CONFIG_TIME_INTERPOLATION
#define TIME_SOURCE_CPU 0
OpenPOWER on IntegriCloud