18#ifndef __RV_GENERIC_H__
19#define __RV_GENERIC_H__
25#define __VSF_HEADER_ONLY_SHOW_ARCH_INFO__
27#undef __VSF_HEADER_ONLY_SHOW_ARCH_INFO__
36# define __BYTE_ORDER __LITTLE_ENDIAN
39#ifndef __VSF_ARCH_SYSTIMER_BITS
40# define __VSF_ARCH_SYSTIMER_BITS 64
44#ifndef VSF_ARCH_SWI_NUM
45# define VSF_ARCH_SWI_NUM 0
50#ifndef VSF_ARCH_CFG_CALLSTACK_TRACE
51# define VSF_ARCH_CFG_CALLSTACK_TRACE DISABLED
56#define vsf_arch_wakeup()
60#if VSF_SYSTIMER_CFG_IMPL_MODE != VSF_SYSTIMER_CFG_IMPL_NONE
61# if VSF_SYSTIMER_CFG_IMPL_MODE == VSF_SYSTIMER_IMPL_TICK_MODE
77 __asm
volatile(
"csrr %0, mstatus" :
"=r"(result) : );
84 __asm
volatile(
"csrrs %0, mstatus, %1" :
"=r"(result) :
"r"(level));
91 __asm
volatile(
"csrrci %0, mstatus, 8" :
"=r"(result) :);
98 __asm
volatile(
"csrrsi %0, mstatus, 8" :
"=r"(result) :);
104 __asm
volatile(
"wfi" : :);
107static VSF_CAL_ALWAYS_INLINE
void vsf_arch_set_stack(
uintptr_t stack,
uint32_t stack_size)
109 __asm
volatile(
"mv sp, %0" : :
"r"(stack) : );
112static VSF_CAL_ALWAYS_INLINE
uintptr_t vsf_arch_get_stack(
void)
115 __asm
volatile(
"mv %0, sp" :
"=r"(result) : );
119#if VSF_ARCH_CFG_CALLSTACK_TRACE == ENABLED
vsf_gint_state_t vsf_disable_interrupt(void)
Definition arm9_generic.c:176
vsf_gint_state_t vsf_get_interrupt(void)
Definition arm9_generic.c:164
void vsf_arch_sleep(uint32_t mode)
Definition arm9_generic.c:193
vsf_gint_state_t vsf_enable_interrupt(void)
Definition arm9_generic.c:181
vsf_gint_state_t vsf_set_interrupt(vsf_gint_state_t level)
Definition arm9_generic.c:169
uint64_t vsf_systimer_tick_t
Definition cortex_a_generic.h:70
int32_t vsf_systimer_tick_signed_t
Definition mcs51_generic.h:55
uint32_t vsf_gint_state_t
Definition rv_generic.h:68
void vsf_arch_add_text_region(vsf_arch_text_region_t *region)
Definition cortex_m_generic.c:582
uint_fast16_t vsf_arch_get_callstack(uintptr_t sp, uintptr_t *callstack, uint_fast16_t callstack_num)
Definition cortex_m_generic.c:592
uint32_t uintptr_t
Definition stdint.h:38
unsigned uint32_t
Definition stdint.h:9
int int32_t
Definition stdint.h:8
unsigned int uint_fast32_t
Definition stdint.h:27
unsigned long long uint64_t
Definition stdint.h:11
unsigned short uint_fast16_t
Definition stdint.h:25
Definition vsf_arch_abstraction.h:67