aboutsummaryrefslogtreecommitdiff
path: root/pk/pcr.h
diff options
context:
space:
mode:
Diffstat (limited to 'pk/pcr.h')
-rw-r--r--pk/pcr.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/pk/pcr.h b/pk/pcr.h
new file mode 100644
index 0000000..23e6185
--- /dev/null
+++ b/pk/pcr.h
@@ -0,0 +1,23 @@
+#ifndef _RISCV_COP0_H
+#define _RISCV_COP0_H
+
+#define SR_ET 0x0000000000000001
+#define SR_PS 0x0000000000000004
+#define SR_S 0x0000000000000008
+#define SR_EF 0x0000000000000010
+#define SR_UX 0x0000000000000020
+#define SR_KX 0x0000000000000040
+#define SR_IM 0x000000000000FF00
+
+#ifndef __ASSEMBLER__
+
+#define mtpcr(val,reg) ({ long __tmp = (long)(val); \
+ asm volatile ("mtpcr %0,$%1"::"r"(__tmp),"i"(reg)); })
+
+#define mfpcr(reg) ({ long __tmp; \
+ asm volatile ("mfpcr %0,$%1" : "=r"(__tmp) : "i"(reg)); \
+ __tmp; })
+
+#endif
+
+#endif