• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/arch/powerpc/include/asm/
1#ifndef _ASM_POWERPC_TIMEX_H
2#define _ASM_POWERPC_TIMEX_H
3
4#ifdef __KERNEL__
5
6/*
7 * PowerPC architecture timex specifications
8 */
9
10#include <asm/cputable.h>
11#include <asm/reg.h>
12
13#define CLOCK_TICK_RATE	1024000 /* Underlying HZ */
14
15typedef unsigned long cycles_t;
16
17static inline cycles_t get_cycles(void)
18{
19#ifdef __powerpc64__
20	return mftb();
21#else
22	cycles_t ret;
23
24	/*
25	 * For the "cycle" counter we use the timebase lower half.
26	 * Currently only used on SMP.
27	 */
28
29	ret = 0;
30
31	__asm__ __volatile__(
32		"97:	mftb %0\n"
33		"99:\n"
34		".section __ftr_fixup,\"a\"\n"
35		".align 2\n"
36		"98:\n"
37		"	.long %1\n"
38		"	.long 0\n"
39		"	.long 97b-98b\n"
40		"	.long 99b-98b\n"
41		"	.long 0\n"
42		"	.long 0\n"
43		".previous"
44		: "=r" (ret) : "i" (CPU_FTR_601));
45	return ret;
46#endif
47}
48
49#endif	/* __KERNEL__ */
50#endif	/* _ASM_POWERPC_TIMEX_H */
51