diff options
Diffstat (limited to 'pk/pcr.h')
-rw-r--r-- | pk/pcr.h | 23 |
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 |