5#include "riscv_decls.h"
9#include "../../deps/riscv-opcodes/encoding.h"
15inline void snrt_wfi() {
asm volatile(
"wfi"); }
17inline void snrt_nop() {
asm volatile(
"nop" : : :); }
19inline void snrt_fence() {
asm volatile(
"fence" : : :); }
21inline uint32_t snrt_mcycle() {
23 asm volatile(
"csrr %0, mcycle" :
"=r"(r) : :
"memory");
35inline void snrt_interrupt_enable(uint32_t irq) { set_csr(mie, 1 << irq); }
43inline void snrt_interrupt_disable(uint32_t irq) { clear_csr(mie, 1 << irq); }
51inline void snrt_interrupt_global_enable(
void) {
52 set_csr(mstatus, MSTATUS_MIE);
58inline void snrt_interrupt_global_disable(
void) {
59 clear_csr(mstatus, MSTATUS_MIE);