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
52#ifndef VSF_ARCH_PRI_NUM
53# define VSF_ARCH_PRI_NUM 8
59#ifndef VSF_SYSTIMER_CFG_IMPL_MODE
60# define VSF_SYSTIMER_CFG_IMPL_MODE VSF_SYSTIMER_IMPL_WITH_COMP_TIMER
65#ifndef VSF_ARCH_CFG_CALLSTACK_TRACE
66# define VSF_ARCH_CFG_CALLSTACK_TRACE DISABLED
71#define vsf_arch_wakeup()
90#ifndef __VSF_ARCH_PRIO_DEFINED
91# define __VSF_ARCH_PRIO_DEFINED
95#if VSF_SYSTIMER_CFG_IMPL_MODE != VSF_SYSTIMER_CFG_IMPL_NONE
96# if VSF_SYSTIMER_CFG_IMPL_MODE == VSF_SYSTIMER_IMPL_TICK_MODE
116 __asm
volatile(
"wfi" : :);
119static VSF_CAL_ALWAYS_INLINE
void vsf_arch_set_stack(
uintptr_t stack,
uint32_t stack_size)
121 __asm
volatile(
"mv sp, %0" : :
"r"(stack) : );
124static VSF_CAL_ALWAYS_INLINE
uintptr_t vsf_arch_get_stack(
void)
127 __asm
volatile(
"mv %0, sp" :
"=r"(result) : );
141#if VSF_ARCH_USE_THREAD_REG == ENABLED && !defined(__cplusplus)
145 __asm
volatile(
"mv %0, gp" :
"=r"(result) : );
146 __asm
volatile(
"mv gp, %0" : :
"r"(
value));
149static VSF_CAL_ALWAYS_INLINE
uintptr_t vsf_arch_get_thread_reg(
void)
152 __asm
volatile(
"mv %0, gp" :
"=r"(result) : );
160# ifndef VSF_ARCH_SETJMP
161# define VSF_ARCH_SETJMP vsf_arch_rv_setjmp
163# ifndef VSF_ARCH_LONGJMP
164# define VSF_ARCH_LONGJMP vsf_arch_rv_longjmp
168#if VSF_ARCH_CFG_CALLSTACK_TRACE == ENABLED
void vsf_arch_sleep(uint32_t mode)
Definition arm9_generic.c:193
uint64_t vsf_systimer_tick_t
Definition cortex_a_generic.h:70
vsf_arch_prio_t
Definition cortex_a_generic.h:85
int32_t vsf_systimer_tick_signed_t
Definition mcs51_generic.h:55
uint32_t vsf_gint_state_t
Definition rv_generic.h:103
void vsf_arch_add_text_region(vsf_arch_text_region_t *region)
Definition cortex_m_generic.c:587
uint_fast16_t vsf_arch_get_callstack(uintptr_t sp, uintptr_t *callstack, uint_fast16_t callstack_num)
Definition cortex_m_generic.c:609
uint32_t uintptr_t
Definition stdint.h:38
unsigned uint32_t
Definition stdint.h:9
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
int int32_t
Definition stdint.h:8
Definition vsf_arch_abstraction.h:67
vk_av_control_value_t value
Definition vsf_audio.h:171