X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Flinux%2Ftimes.h;h=ff00f334ffaa4ce984ddcd88598289a1daaa2674;hb=4e4f43fe003969bdaa246374b90e16708a22ef79;hp=a682537f812e52e1aa806f6c19d41f11414d34ec;hpb=86090fcac5e27b630656fe3d963a6b80e26dac44;p=linux-2.6.git diff --git a/include/linux/times.h b/include/linux/times.h index a682537f8..ff00f334f 100644 --- a/include/linux/times.h +++ b/include/linux/times.h @@ -2,15 +2,21 @@ #define _LINUX_TIMES_H #ifdef __KERNEL__ +#include #include #include #include -#if (HZ % USER_HZ)==0 -# define jiffies_to_clock_t(x) ((x) / (HZ / USER_HZ)) +static inline clock_t jiffies_to_clock_t(long x) +{ +#if (TICK_NSEC % (NSEC_PER_SEC / USER_HZ)) == 0 + return x / (HZ / USER_HZ); #else -# define jiffies_to_clock_t(x) ((clock_t) jiffies_64_to_clock_t((u64) x)) + u64 tmp = (u64)x * TICK_NSEC; + do_div(tmp, (NSEC_PER_SEC / USER_HZ)); + return (long)tmp; #endif +} static inline unsigned long clock_t_to_jiffies(unsigned long x) { @@ -34,7 +40,7 @@ static inline unsigned long clock_t_to_jiffies(unsigned long x) static inline u64 jiffies_64_to_clock_t(u64 x) { -#if (HZ % USER_HZ)==0 +#if (TICK_NSEC % (NSEC_PER_SEC / USER_HZ)) == 0 do_div(x, HZ / USER_HZ); #else /* @@ -42,8 +48,8 @@ static inline u64 jiffies_64_to_clock_t(u64 x) * but even this doesn't overflow in hundreds of years * in 64 bits, so.. */ - x *= USER_HZ; - do_div(x, HZ); + x *= TICK_NSEC; + do_div(x, (NSEC_PER_SEC / USER_HZ)); #endif return x; }