From a8e0c51c71fc973b400f6502382063553b82af5a Mon Sep 17 00:00:00 2001 From: David Woodhouse Date: Wed, 5 Jul 2006 11:24:26 +0100 Subject: [PATCH] [PATCH] powerpc: implement missing jiffies64_to_cputime64() asm-powerpc/cputime.h doesn't declare jiffies64_to_cputime64() or cputime64_sub(), and due to CONFIG_VIRT_CPU_ACCOUNTING it's not picking up the definition from asm-generic like x86-64 & friends do. Cc: Dave Jones Cc: Andrew Morton Signed-off-by: David Woodhouse Signed-off-by: Linus Torvalds --- include/asm-powerpc/cputime.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/include/asm-powerpc/cputime.h b/include/asm-powerpc/cputime.h index a21185d478..3108044852 100644 --- a/include/asm-powerpc/cputime.h +++ b/include/asm-powerpc/cputime.h @@ -43,6 +43,7 @@ typedef u64 cputime64_t; #define cputime64_zero ((cputime64_t)0) #define cputime64_add(__a, __b) ((__a) + (__b)) +#define cputime64_sub(__a, __b) ((__a) - (__b)) #define cputime_to_cputime64(__ct) (__ct) #ifdef __KERNEL__ @@ -74,6 +75,23 @@ static inline cputime_t jiffies_to_cputime(const unsigned long jif) return ct; } +static inline cputime64_t jiffies64_to_cputime64(const u64 jif) +{ + cputime_t ct; + u64 sec; + + /* have to be a little careful about overflow */ + ct = jif % HZ; + sec = jif / HZ; + if (ct) { + ct *= tb_ticks_per_sec; + do_div(ct, HZ); + } + if (sec) + ct += (cputime_t) sec * tb_ticks_per_sec; + return ct; +} + static inline u64 cputime64_to_jiffies64(const cputime_t ct) { return mulhdu(ct, __cputime_jiffies_factor); -- 2.39.5