aboutsummaryrefslogtreecommitdiff
path: root/src/arm/linux/cp.h
diff options
context:
space:
mode:
authorMarat Dukhan <maratek@gmail.com>2017-05-08 06:16:45 +0000
committerMarat Dukhan <maratek@gmail.com>2017-05-08 06:16:45 +0000
commit3c98276d6008439d8faae3350e8bfa0f144c5bef (patch)
tree4bb002f558b52849e232d3190415970a56c106f1 /src/arm/linux/cp.h
parentd226627d39599f37aadaccee1755aa2a8bb8694c (diff)
downloadcpuinfo-3c98276d6008439d8faae3350e8bfa0f144c5bef.tar.gz
Working ARM + Linux version
Diffstat (limited to 'src/arm/linux/cp.h')
-rw-r--r--src/arm/linux/cp.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/arm/linux/cp.h b/src/arm/linux/cp.h
new file mode 100644
index 0000000..2914a95
--- /dev/null
+++ b/src/arm/linux/cp.h
@@ -0,0 +1,20 @@
+#include <stdint.h>
+
+
+static inline uint32_t read_fpsid(void) {
+ uint32_t fpsid;
+ __asm__ __volatile__("MRC p10, 0x7, %[fpsid], cr0, cr0, 0" : [fpsid] "=r" (fpsid));
+ return fpsid;
+}
+
+static inline uint32_t read_mvfr0(void) {
+ uint32_t mvfr0;
+ __asm__ __volatile__("MRC p10, 0x7, %[mvfr0], cr7, cr0, 0" : [mvfr0] "=r" (mvfr0));
+ return mvfr0;
+}
+
+static inline uint32_t read_wcid(void) {
+ uint32_t wcid;
+ __asm__ __volatile__("MRC p1, 0, %[wcid], c0, c0" : [wcid] "=r" (wcid));
+ return wcid;
+}