riscv-os/include/atomic_helpers.h
2025-04-26 18:24:51 +12:00

17 lines
1 KiB
C

#ifndef ATOMIC_HELPERS_H
#define ATOMIC_HELPERS_H
#define csrr(reg) \
({ \
uintptr_t temp; \
__asm__ volatile("csrr %0, " #reg : "=r"(temp)); \
temp; \
})
#define csrw(reg, val) \
({ \
uintptr_t temp = (uintptr_t)val; \
__asm__ volatile("csrw " #reg ", %0" ::"r"(temp)); \
})
#endif