aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/include/asm/cputime.h
diff options
context:
space:
mode:
authorTony Luck <tony.luck@intel.com>2008-08-01 13:13:32 -0400
committerTony Luck <tony.luck@intel.com>2008-08-01 13:21:21 -0400
commit7f30491ccd28627742e37899453ae20e3da8e18f (patch)
tree7291c0a26ed3a31acf9542857af3981d278f5de8 /arch/ia64/include/asm/cputime.h
parent94ad374a0751f40d25e22e036c37f7263569d24c (diff)
[IA64] Move include/asm-ia64 to arch/ia64/include/asm
After moving the the include files there were a few clean-ups: 1) Some files used #include <asm-ia64/xyz.h>, changed to <asm/xyz.h> 2) Some comments alerted maintainers to look at various header files to make matching updates if certain code were to be changed. Updated these comments to use the new include paths. 3) Some header files mentioned their own names in initial comments. Just deleted these self references. Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/include/asm/cputime.h')
-rw-r--r--arch/ia64/include/asm/cputime.h109
1 files changed, 109 insertions, 0 deletions
diff --git a/arch/ia64/include/asm/cputime.h b/arch/ia64/include/asm/cputime.h
new file mode 100644
index 00000000000..d20b998cb91
--- /dev/null
+++ b/arch/ia64/include/asm/cputime.h
@@ -0,0 +1,109 @@
1/*
2 * Definitions for measuring cputime on ia64 machines.
3 *
4 * Based on <asm-powerpc/cputime.h>.
5 *
6 * Copyright (C) 2007 FUJITSU LIMITED
7 * Copyright (C) 2007 Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
8 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * as published by the Free Software Foundation; either version
12 * 2 of the License, or (at your option) any later version.
13 *
14 * If we have CONFIG_VIRT_CPU_ACCOUNTING, we measure cpu time in nsec.
15 * Otherwise we measure cpu time in jiffies using the generic definitions.
16 */
17
18#ifndef __IA64_CPUTIME_H
19#define __IA64_CPUTIME_H
20
21#ifndef CONFIG_VIRT_CPU_ACCOUNTING
22#include <asm-generic/cputime.h>
23#else
24
25#include <linux/time.h>
26#include <linux/jiffies.h>
27#include <asm/processor.h>
28
29typedef u64 cputime_t;
30typedef u64 cputime64_t;
31
32#define cputime_zero ((cputime_t)0)
33#define cputime_max ((~((cputime_t)0) >> 1) - 1)
34#define cputime_add(__a, __b) ((__a) + (__b))
35#define cputime_sub(__a, __b) ((__a) - (__b))
36#define cputime_div(__a, __n) ((__a) / (__n))
37#define cputime_halve(__a) ((__a) >> 1)
38#define cputime_eq(__a, __b) ((__a) == (__b))
39#define cputime_gt(__a, __b) ((__a) > (__b))
40#define cputime_ge(__a, __b) ((__a) >= (__b))
41#define cputime_lt(__a, __b) ((__a) < (__b))
42#define cputime_le(__a, __b) ((__a) <= (__b))
43
44#define cputime64_zero ((cputime64_t)0)
45#define cputime64_add(__a, __b) ((__a) + (__b))
46#define cputime64_sub(__a, __b) ((__a) - (__b))
47#define cputime_to_cputime64(__ct) (__ct)
48
49/*
50 * Convert cputime <-> jiffies (HZ)
51 */
52#define cputime_to_jiffies(__ct) ((__ct) / (NSEC_PER_SEC / HZ))
53#define jiffies_to_cputime(__jif) ((__jif) * (NSEC_PER_SEC / HZ))
54#define cputime64_to_jiffies64(__ct) ((__ct) / (NSEC_PER_SEC / HZ))
55#define jiffies64_to_cputime64(__jif) ((__jif) * (NSEC_PER_SEC / HZ))
56
57/*
58 * Convert cputime <-> milliseconds
59 */
60#define cputime_to_msecs(__ct) ((__ct) / NSEC_PER_MSEC)
61#define msecs_to_cputime(__msecs) ((__msecs) * NSEC_PER_MSEC)
62
63/*
64 * Convert cputime <-> seconds
65 */
66#define cputime_to_secs(__ct) ((__ct) / NSEC_PER_SEC)
67#define secs_to_cputime(__secs) ((__secs) * NSEC_PER_SEC)
68
69/*
70 * Convert cputime <-> timespec (nsec)
71 */
72static inline cputime_t timespec_to_cputime(const struct timespec *val)
73{
74 cputime_t ret = val->tv_sec * NSEC_PER_SEC;
75 return (ret + val->tv_nsec);
76}
77static inline void cputime_to_timespec(const cputime_t ct, struct timespec *val)
78{
79 val->tv_sec = ct / NSEC_PER_SEC;
80 val->tv_nsec = ct % NSEC_PER_SEC;
81}
82
83/*
84 * Convert cputime <-> timeval (msec)
85 */
86static inline cputime_t timeval_to_cputime(struct timeval *val)
87{
88 cputime_t ret = val->tv_sec * NSEC_PER_SEC;
89 return (ret + val->tv_usec * NSEC_PER_USEC);
90}
91static inline void cputime_to_timeval(const cputime_t ct, struct timeval *val)
92{
93 val->tv_sec = ct / NSEC_PER_SEC;
94 val->tv_usec = (ct % NSEC_PER_SEC) / NSEC_PER_USEC;
95}
96
97/*
98 * Convert cputime <-> clock (USER_HZ)
99 */
100#define cputime_to_clock_t(__ct) ((__ct) / (NSEC_PER_SEC / USER_HZ))
101#define clock_t_to_cputime(__x) ((__x) * (NSEC_PER_SEC / USER_HZ))
102
103/*
104 * Convert cputime64 to clock.
105 */
106#define cputime64_to_clock_t(__ct) cputime_to_clock_t((cputime_t)__ct)
107
108#endif /* CONFIG_VIRT_CPU_ACCOUNTING */
109#endif /* __IA64_CPUTIME_H */