Import 2.3.18pre1
[davej-history.git] / include / asm-ppc / timex.h
blob4fac4ea39694fce8b3ee7f151fa4c52e2a757007
1 /*
2 * linux/include/asm-ppc/timex.h
4 * ppc architecture timex specifications
5 */
6 #ifndef _ASMppc_TIMEX_H
7 #define _ASMppc_TIMEX_H
9 #define CLOCK_TICK_RATE 1193180/* Underlying HZ */
10 #define CLOCK_TICK_FACTOR 20/* Factor of both 1000000 and CLOCK_TICK_RATE */
11 #define FINETUNE ((((((long)LATCH * HZ - CLOCK_TICK_RATE) << SHIFT_HZ) * \
12 (1000000/CLOCK_TICK_FACTOR) / (CLOCK_TICK_RATE/CLOCK_TICK_FACTOR)) \
13 << (SHIFT_SCALE-SHIFT_HZ)) / HZ)
15 typedefunsigned long cycles_t;
18 * For the "cycle" counter we use the timebase lower half.
19 * Currently only used on SMP.
21 * Since SMP kernels won't run on the PPC601 CPU (which doesn't have
22 * the timebase register) anyway, we don't bother checking the CPU version.
25 extern cycles_t cacheflush_time;
27 staticinline cycles_t get_cycles(void)
29 #ifdef __SMP__
30 cycles_t ret;
32 __asm__("mftb %0":"=r"(ret) : );
33 return ret;
34 #else
35 return0;
36 #endif
39 #endif
close