[PATCH] pcmcia: new suspend core
[pandora-kernel.git] / kernel / time.c
index 245d595..b94bfa8 100644 (file)
@@ -561,6 +561,28 @@ void getnstimeofday(struct timespec *tv)
 EXPORT_SYMBOL_GPL(getnstimeofday);
 #endif
 
+void getnstimestamp(struct timespec *ts)
+{
+       unsigned int seq;
+       struct timespec wall2mono;
+
+       /* synchronize with settimeofday() changes */
+       do {
+               seq = read_seqbegin(&xtime_lock);
+               getnstimeofday(ts);
+               wall2mono = wall_to_monotonic;
+       } while(unlikely(read_seqretry(&xtime_lock, seq)));
+
+       /* adjust to monotonicaly-increasing values */
+       ts->tv_sec += wall2mono.tv_sec;
+       ts->tv_nsec += wall2mono.tv_nsec;
+       while (unlikely(ts->tv_nsec >= NSEC_PER_SEC)) {
+               ts->tv_nsec -= NSEC_PER_SEC;
+               ts->tv_sec++;
+       }
+}
+EXPORT_SYMBOL_GPL(getnstimestamp);
+
 #if (BITS_PER_LONG < 64)
 u64 get_jiffies_64(void)
 {