1c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef _ASM_GENERIC_CPUTIME_H
2c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define _ASM_GENERIC_CPUTIME_H
3c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
4c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#include <linux/time.h>
5c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#include <linux/jiffies.h>
6c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
7c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querutypedef unsigned long cputime_t;
8c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
9c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_zero			(0UL)
10c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_max			((~0UL >> 1) - 1)
11c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_add(__a, __b)		((__a) +  (__b))
12c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_sub(__a, __b)		((__a) -  (__b))
13c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_div(__a, __n)		((__a) /  (__n))
14c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_halve(__a)		((__a) >> 1)
15c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_eq(__a, __b)		((__a) == (__b))
16c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_gt(__a, __b)		((__a) >  (__b))
17c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_ge(__a, __b)		((__a) >= (__b))
18c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_lt(__a, __b)		((__a) <  (__b))
19c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_le(__a, __b)		((__a) <= (__b))
20c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_to_jiffies(__ct)	(__ct)
21c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define jiffies_to_cputime(__hz)	(__hz)
22c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
23c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querutypedef u64 cputime64_t;
24c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
25c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime64_zero (0ULL)
26c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime64_add(__a, __b)		((__a) + (__b))
27c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime64_sub(__a, __b)		((__a) - (__b))
28c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime64_to_jiffies64(__ct)	(__ct)
29c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define jiffies64_to_cputime64(__jif)	(__jif)
30c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_to_cputime64(__ct)	((u64) __ct)
31c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
32c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
33c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/*
34c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Convert cputime to milliseconds and back.
35c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru */
36c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_to_msecs(__ct)		jiffies_to_msecs(__ct)
37c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define msecs_to_cputime(__msecs)	msecs_to_jiffies(__msecs)
38c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
39c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/*
40c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Convert cputime to seconds and back.
41c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru */
42c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_to_secs(jif)		((jif) / HZ)
43c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define secs_to_cputime(sec)		((sec) * HZ)
44c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
45c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/*
46c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Convert cputime to timespec and back.
47c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru */
48c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define timespec_to_cputime(__val)	timespec_to_jiffies(__val)
49c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_to_timespec(__ct,__val)	jiffies_to_timespec(__ct,__val)
50c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
51c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/*
52c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Convert cputime to timeval and back.
53c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru */
54c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define timeval_to_cputime(__val)	timeval_to_jiffies(__val)
55c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_to_timeval(__ct,__val)	jiffies_to_timeval(__ct,__val)
56c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
57c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/*
58c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Convert cputime to clock and back.
59c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru */
60c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime_to_clock_t(__ct)	jiffies_to_clock_t(__ct)
61c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define clock_t_to_cputime(__x)		clock_t_to_jiffies(__x)
62c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
63c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/*
64c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Convert cputime64 to clock.
65c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru */
66c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define cputime64_to_clock_t(__ct)	jiffies_64_to_clock_t(__ct)
67c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
68c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif
69