1 /* 2 * Copyright (c) 2024 Meta Platforms 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #ifndef ZEPHYR_INCLUDE_ZEPHYR_ARCH_RISCV_REG_H_ 8 #define ZEPHYR_INCLUDE_ZEPHYR_ARCH_RISCV_REG_H_ 9 10 #include <zephyr/sys/util.h> 11 12 #define reg_read(reg) \ 13 ({ \ 14 register unsigned long __rv; \ 15 __asm__ volatile("mv %0, " STRINGIFY(reg) : "=r"(__rv)); \ 16 __rv; \ 17 }) 18 19 #define reg_write(reg, val) ({ __asm__("mv " STRINGIFY(reg) ", %0" : : "r"(val)); }) 20 21 #endif /* ZEPHYR_INCLUDE_ZEPHYR_ARCH_RISCV_REG_H_ */ 22