--- linux-2.6.19/include/linux/jiffies.h 2006-12-12 00:32:00.000000000 +0100 +++ linux-2.6.19-ed/include/linux/jiffies.h 2006-12-12 00:41:40.000000000 +0100 @@ -80,6 +80,11 @@ */ extern u64 __jiffy_data jiffies_64; extern unsigned long volatile __jiffy_data jiffies; +/* + * Some subsystems need small deltas and can store 32 bits timestamps + * instead of 'long', to save space on 64bits platforms. + */ +#define jiffies_32 ((u32)jiffies) #if (BITS_PER_LONG < 64) u64 get_jiffies_64(void); @@ -131,6 +136,22 @@ static inline u64 get_jiffies_64(void) #define time_before_eq64(a,b) time_after_eq64(b,a) /* + * Same as above, but does so with 32bits types. + * These must be used when using jiffies_32 + */ +#define time_after32(a,b) \ + (typecheck(__u32, a) && \ + typecheck(__u32, b) && \ + ((__s32)(b) - (__s32)(a) < 0)) +#define time_before32(a,b) time_after32(b,a) + +#define time_after_eq32(a,b) \ + (typecheck(__u32, a) && \ + typecheck(__u32, b) && \ + ((__s32)(a) - (__s32)(b) >= 0)) +#define time_before_eq32(a,b) time_after_eq32(b,a) + +/* * Have the 32 bit jiffies value wrap 5 minutes after boot * so jiffies wrap bugs show up earlier. */