summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCigy Cyriac <CCyriac@fusionio.com>2010-08-10 19:18:11 -0400
committerJens Axboe <jaxboe@fusionio.com>2010-08-10 19:18:11 -0400
commit5f39d8f797fcf01bd94b89ef7ed2bdb76deb2601 (patch)
treea7a8fb386ecb39880abed804f9975258157a0458
parent304a47c7d94f407cc72a87025679a67f02288447 (diff)
downloadfio-5f39d8f797fcf01bd94b89ef7ed2bdb76deb2601.tar.gz
Add get_cpu_clock() for powerpc
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
-rw-r--r--arch/arch-ppc.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/arch/arch-ppc.h b/arch/arch-ppc.h
index 06115387..87198699 100644
--- a/arch/arch-ppc.h
+++ b/arch/arch-ppc.h
@@ -42,6 +42,23 @@ static inline int arch_ffz(unsigned long bitmask)
return 32;
return __ilog2(bitmask & -bitmask);
}
+
+static inline unsigned long long get_cpu_clock(void)
+{
+ unsigned int tbl, tbu0, tbu1;
+ unsigned long long ret;
+
+ do {
+ __asm__ __volatile__ ("mftbu %0" : "=r"(tbu0));
+ __asm__ __volatile__ ("mftb %0" : "=r"(tbl) );
+ __asm__ __volatile__ ("mftbu %0" : "=r"(tbu1));
+ } while (tbu0 != tbu1);
+
+ ret = (((unsigned long long)tbu0) << 32) | tbl;
+ return ret;
+}
+
#define ARCH_HAVE_FFZ
+#define ARCH_HAVE_CPU_CLOCK
#endif