fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / include / linux / jiffies.h
index 329ebcf..0ec6e28 100644 (file)
@@ -74,7 +74,7 @@
 #define __jiffy_data  __attribute__((section(".data")))
 
 /*
- * The 64-bit value is not volatile - you MUST NOT read it
+ * The 64-bit value is not atomic - you MUST NOT read it
  * without sampling the sequence number in xtime_lock.
  * get_jiffies_64() will do this for you as appropriate.
  */
@@ -115,6 +115,21 @@ static inline u64 get_jiffies_64(void)
         ((long)(a) - (long)(b) >= 0))
 #define time_before_eq(a,b)    time_after_eq(b,a)
 
+/* Same as above, but does so with platform independent 64bit types.
+ * These must be used when utilizing jiffies_64 (i.e. return value of
+ * get_jiffies_64() */
+#define time_after64(a,b)      \
+       (typecheck(__u64, a) && \
+        typecheck(__u64, b) && \
+        ((__s64)(b) - (__s64)(a) < 0))
+#define time_before64(a,b)     time_after64(b,a)
+
+#define time_after_eq64(a,b)   \
+       (typecheck(__u64, a) && \
+        typecheck(__u64, b) && \
+        ((__s64)(a) - (__s64)(b) >= 0))
+#define time_before_eq64(a,b)  time_after_eq64(b,a)
+
 /*
  * Have the 32 bit jiffies value wrap 5 minutes after boot
  * so jiffies wrap bugs show up earlier.