diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2011-12-15 08:56:09 -0500 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2011-12-15 08:56:19 -0500 |
commit | 648616343cdbe904c585a6c12e323d3b3c72e46f (patch) | |
tree | 514bce1b52663db4ab5662b637c764cf3c2ed1eb /include/asm-generic | |
parent | 55b02d2f4445ad625213817a1736bf2884d32547 (diff) |
[S390] cputime: add sparse checking and cleanup
Make cputime_t and cputime64_t nocast to enable sparse checking to
detect incorrect use of cputime. Drop the cputime macros for simple
scalar operations. The conversion macros are still needed.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'include/asm-generic')
-rw-r--r-- | include/asm-generic/cputime.h | 62 |
1 files changed, 28 insertions, 34 deletions
diff --git a/include/asm-generic/cputime.h b/include/asm-generic/cputime.h index 62ce6823c0f2..77202e2c9fc5 100644 --- a/include/asm-generic/cputime.h +++ b/include/asm-generic/cputime.h | |||
@@ -4,70 +4,64 @@ | |||
4 | #include <linux/time.h> | 4 | #include <linux/time.h> |
5 | #include <linux/jiffies.h> | 5 | #include <linux/jiffies.h> |
6 | 6 | ||
7 | typedef unsigned long cputime_t; | 7 | typedef unsigned long __nocast cputime_t; |
8 | 8 | ||
9 | #define cputime_zero (0UL) | ||
10 | #define cputime_one_jiffy jiffies_to_cputime(1) | 9 | #define cputime_one_jiffy jiffies_to_cputime(1) |
11 | #define cputime_max ((~0UL >> 1) - 1) | 10 | #define cputime_to_jiffies(__ct) (__force unsigned long)(__ct) |
12 | #define cputime_add(__a, __b) ((__a) + (__b)) | ||
13 | #define cputime_sub(__a, __b) ((__a) - (__b)) | ||
14 | #define cputime_div(__a, __n) ((__a) / (__n)) | ||
15 | #define cputime_halve(__a) ((__a) >> 1) | ||
16 | #define cputime_eq(__a, __b) ((__a) == (__b)) | ||
17 | #define cputime_gt(__a, __b) ((__a) > (__b)) | ||
18 | #define cputime_ge(__a, __b) ((__a) >= (__b)) | ||
19 | #define cputime_lt(__a, __b) ((__a) < (__b)) | ||
20 | #define cputime_le(__a, __b) ((__a) <= (__b)) | ||
21 | #define cputime_to_jiffies(__ct) (__ct) | ||
22 | #define cputime_to_scaled(__ct) (__ct) | 11 | #define cputime_to_scaled(__ct) (__ct) |
23 | #define jiffies_to_cputime(__hz) (__hz) | 12 | #define jiffies_to_cputime(__hz) (__force cputime_t)(__hz) |
24 | 13 | ||
25 | typedef u64 cputime64_t; | 14 | typedef u64 __nocast cputime64_t; |
26 | 15 | ||
27 | #define cputime64_zero (0ULL) | 16 | #define cputime64_to_jiffies64(__ct) (__force u64)(__ct) |
28 | #define cputime64_add(__a, __b) ((__a) + (__b)) | 17 | #define jiffies64_to_cputime64(__jif) (__force cputime64_t)(__jif) |
29 | #define cputime64_sub(__a, __b) ((__a) - (__b)) | ||
30 | #define cputime64_to_jiffies64(__ct) (__ct) | ||
31 | #define jiffies64_to_cputime64(__jif) (__jif) | ||
32 | #define cputime_to_cputime64(__ct) ((u64) __ct) | ||
33 | #define cputime64_gt(__a, __b) ((__a) > (__b)) | ||
34 | 18 | ||
35 | #define nsecs_to_cputime64(__ct) nsecs_to_jiffies64(__ct) | 19 | #define nsecs_to_cputime64(__ct) \ |
20 | jiffies64_to_cputime64(nsecs_to_jiffies64(__ct)) | ||
36 | 21 | ||
37 | 22 | ||
38 | /* | 23 | /* |
39 | * Convert cputime to microseconds and back. | 24 | * Convert cputime to microseconds and back. |
40 | */ | 25 | */ |
41 | #define cputime_to_usecs(__ct) jiffies_to_usecs(__ct) | 26 | #define cputime_to_usecs(__ct) \ |
42 | #define usecs_to_cputime(__msecs) usecs_to_jiffies(__msecs) | 27 | jiffies_to_usecs(cputime_to_jiffies(__ct)); |
28 | #define usecs_to_cputime(__msecs) \ | ||
29 | jiffies_to_cputime(usecs_to_jiffies(__msecs)); | ||
43 | 30 | ||
44 | /* | 31 | /* |
45 | * Convert cputime to seconds and back. | 32 | * Convert cputime to seconds and back. |
46 | */ | 33 | */ |
47 | #define cputime_to_secs(jif) ((jif) / HZ) | 34 | #define cputime_to_secs(jif) (cputime_to_jiffies(jif) / HZ) |
48 | #define secs_to_cputime(sec) ((sec) * HZ) | 35 | #define secs_to_cputime(sec) jiffies_to_cputime((sec) * HZ) |
49 | 36 | ||
50 | /* | 37 | /* |
51 | * Convert cputime to timespec and back. | 38 | * Convert cputime to timespec and back. |
52 | */ | 39 | */ |
53 | #define timespec_to_cputime(__val) timespec_to_jiffies(__val) | 40 | #define timespec_to_cputime(__val) \ |
54 | #define cputime_to_timespec(__ct,__val) jiffies_to_timespec(__ct,__val) | 41 | jiffies_to_cputime(timespec_to_jiffies(__val)) |
42 | #define cputime_to_timespec(__ct,__val) \ | ||
43 | jiffies_to_timespec(cputime_to_jiffies(__ct),__val) | ||
55 | 44 | ||
56 | /* | 45 | /* |
57 | * Convert cputime to timeval and back. | 46 | * Convert cputime to timeval and back. |
58 | */ | 47 | */ |
59 | #define timeval_to_cputime(__val) timeval_to_jiffies(__val) | 48 | #define timeval_to_cputime(__val) \ |
60 | #define cputime_to_timeval(__ct,__val) jiffies_to_timeval(__ct,__val) | 49 | jiffies_to_cputime(timeval_to_jiffies(__val)) |
50 | #define cputime_to_timeval(__ct,__val) \ | ||
51 | jiffies_to_timeval(cputime_to_jiffies(__ct),__val) | ||
61 | 52 | ||
62 | /* | 53 | /* |
63 | * Convert cputime to clock and back. | 54 | * Convert cputime to clock and back. |
64 | */ | 55 | */ |
65 | #define cputime_to_clock_t(__ct) jiffies_to_clock_t(__ct) | 56 | #define cputime_to_clock_t(__ct) \ |
66 | #define clock_t_to_cputime(__x) clock_t_to_jiffies(__x) | 57 | jiffies_to_clock_t(cputime_to_jiffies(__ct)) |
58 | #define clock_t_to_cputime(__x) \ | ||
59 | jiffies_to_cputime(clock_t_to_jiffies(__x)) | ||
67 | 60 | ||
68 | /* | 61 | /* |
69 | * Convert cputime64 to clock. | 62 | * Convert cputime64 to clock. |
70 | */ | 63 | */ |
71 | #define cputime64_to_clock_t(__ct) jiffies_64_to_clock_t(__ct) | 64 | #define cputime64_to_clock_t(__ct) \ |
65 | jiffies_64_to_clock_t(cputime64_to_jiffies64(__ct)) | ||
72 | 66 | ||
73 | #endif | 67 | #endif |