aboutsummaryrefslogtreecommitdiff
path: root/arch/riscv/include/csr.h
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2021-12-20 12:28:30 +0200
committerKimplul <kimi.h.kuparinen@gmail.com>2021-12-20 12:37:55 +0200
commitdc2e2cc9dc9d7790e23dd9a4ccc265d7bb6d76aa (patch)
treeee12863bb4aab536810bbe13638bf21317b37658 /arch/riscv/include/csr.h
parent98255910aa82c27d04ba79704086eca2310b3075 (diff)
downloadkmi-dc2e2cc9dc9d7790e23dd9a4ccc265d7bb6d76aa.tar.gz
kmi-dc2e2cc9dc9d7790e23dd9a4ccc265d7bb6d76aa.zip
Added init back
Diffstat (limited to 'arch/riscv/include/csr.h')
-rw-r--r--arch/riscv/include/csr.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/riscv/include/csr.h b/arch/riscv/include/csr.h
index 70e60bb..bd02b04 100644
--- a/arch/riscv/include/csr.h
+++ b/arch/riscv/include/csr.h
@@ -37,6 +37,9 @@
#define EXC_LOAD_PAGE_FAULT 13
#define EXC_STORE_PAGE_FAULT 15
+/* status CSR bits */
+#define SSTATUS_SUM (1 << 18)
+
/* directly lifted from Linux:/arch/riscv/include/asm/asm.h:9-13 */
#ifdef __ASSEMBLY__
#define __ASM_STR(x) x
@@ -50,4 +53,10 @@
#define csr_write(csr, val)\
__asm__ ("csrw " __ASM_STR(csr) ", %0" : : "rK" (val) : "memory")
+#define csr_set(csr, val)\
+ __asm__ ("csrs " __ASM_STR(csr) ", %0" : : "rK" (val) : "memory")
+
+#define csr_clear(csr, val)\
+ __asm__ ("csrc " __ASM_STR(csr) ", %0" : : "rK" (val) : "memory")
+
#endif /* APOS_CSR_H */