24#if VSF_USE_KERNEL == ENABLED
49# if VSF_KERNEL_CFG_ENTRY_IS_MAIN == ENABLED
50# define VSF_USER_ENTRY user_main
52# define VSF_USER_ENTRY main
56#if VSF_OS_CFG_PRIORITY_NUM > 1
64# define VSF_SCHED_SAFE_CODE_REGION VSF_FORCED_SCHED_SAFE_CODE_REGION
78# define __vsf_sched_safe(...) __vsf_forced_sched_safe(__VA_ARGS__)
90# define vsf_sched_lock() vsf_forced_sched_lock()
102# define vsf_sched_unlock(__level) vsf_forced_sched_unlock((vsf_sched_lock_status_t)(__level))
114# define vsf_sched_safe() vsf_forced_sched_safe()
126# define vsf_sched_safe_exit() vsf_forced_sched_safe_exit()
136# define VSF_SCHED_SAFE_CODE_REGION DEFAULT_CODE_REGION_NONE
144# define vsf_sched_lock() 0
152# define vsf_sched_unlock(__level) VSF_UNUSED_PARAM(__level)
160# define vsf_sched_safe() if (1)
162# if (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L) && !defined(__cplusplus)
169# define __vsf_sched_safe(__code) __code
177# define __vsf_sched_safe(...) __VA_ARGS__
186# define vsf_sched_safe_exit()
200#define vsf_protect_scheduler() vsf_sched_lock()
212#define vsf_unprotect_scheduler(__state) vsf_sched_unlock((__state))
216#if __VSF_OS_SWI_NUM > 0
229#define __vsf_forced_sched_safe(...) \
231 vsf_sched_lock_status_t VSF_MACRO_SAFE_NAME(status) = vsf_forced_sched_lock();\
233 vsf_forced_sched_unlock(VSF_MACRO_SAFE_NAME(status)); \
246#define vsf_forced_sched_safe() vsf_protect_region(&vsf_protect_region_sched)
258#define vsf_forced_sched_safe_exit() vsf_forced_sched_unlock(VSF_MACRO_SAFE_NAME(status))
271#define vsf_protect_sched() (vsf_protect_t)vsf_protect_scheduler()
283#define vsf_unprotect_sched(__prot) vsf_unprotect_scheduler(__prot)
286#if VSF_KERNEL_THREAD_USE_HOST == ENABLED
287# ifdef VSF_ARCH_IRQ_REQUEST_SUPPORT_MANUAL_RESET
298# define __vsf_kernel_host_request_init(__req) __vsf_arch_irq_request_init((__req), true)
310# define __vsf_kernel_host_request_init(__req) __vsf_arch_irq_request_init(__req)
323# define __vsf_kernel_host_request_fini(__req) __vsf_arch_irq_request_fini(__req)
335# define __vsf_kernel_host_request_send(__req) __vsf_arch_irq_request_send(__req)
347# define __vsf_kernel_host_request_pend(__req) __vsf_arch_irq_request_pend(__req)
349# ifdef VSF_ARCH_IRQ_SUPPORT_STACK
370# define __vsf_kernel_host_thread_init(__thread, __name, __entry, __prio, __stack, __stacksize)\
371 __vsf_arch_irq_init(__thread, __name, __entry, __prio, __stack, __stacksize)
393# define __vsf_kernel_host_thread_init(__thread, __name, __entry, __prio, __stack, __stacksize)\
394 __vsf_arch_irq_init(__thread, __name, __entry, __prio)
411# define __vsf_kernel_host_thread_restart(__thread, __request_pending) \
412 __vsf_arch_irq_restart((__thread), (__request_pending))
424# define __vsf_kernel_host_thread_exit(__thread) __vsf_arch_irq_exit(__thread)
440#define vsf_sleep(...) __vsf_sleep((0, ##__VA_ARGS__))
455#ifdef __VSF_OS_CFG_EVTQ_LIST
460#if __VSF_KERNEL_CFG_EDA_FRAME_POOL == ENABLED
471 #if __VSF_OS_SWI_NUM > 0
486#if __VSF_KERNEL_CFG_EVTQ_EN == ENABLED
489# if defined(__VSF_OS_CFG_EVTQ_ARRAY)
493# if defined(__VSF_OS_CFG_EVTQ_LIST)
502#if __VSF_KERNEL_CFG_EDA_FRAME_POOL == ENABLED
512#if __VSF_OS_SWI_NUM > 0
516# define vsf_protect_region_sched vsf_protect_region_none
543#ifndef WEAK_VSF_KERNEL_ERR_REPORT
557#if VSF_KERNEL_CFG_CPU_USAGE == ENABLED
583#if __VSF_OS_SWI_NUM > 0
Definition vsf_eda.h:1784
vsf_arch_prio_t
Definition cortex_a_generic.h:85
unsigned short uint16_t
Definition stdint.h:7
unsigned char uint8_t
Definition stdint.h:5
uint8_t extra[VSF_OS_CFG_EDA_FRAME_POOL_EXTRA_SIZE]
Definition vsf_os.h:463
__vsf_eda_frame_t frame
Definition vsf_os.h:462
Definition code_region.h:268
Context for per-task CPU usage sampling; the user provides the ctx storage and must keep it valid unt...
Definition vsf_eda.h:1624
vsf_evtq_t * queue_array
Definition vsf_os.h:488
struct vsf_kernel_resource_t::@903 frame_stack
struct vsf_kernel_resource_t::@901 arch
uint16_t node_cnt
Definition vsf_os.h:495
struct vsf_kernel_resource_t::@901::@904 sched_prio
struct vsf_kernel_resource_t::@902 evt_queue
uint16_t queue_cnt
Definition vsf_os.h:498
uint16_t frame_cnt
Definition vsf_os.h:505
vsf_prio_t highest
Definition vsf_os.h:480
Definition vsf_arch_abstraction.h:61
vsf_kernel_error_t
Kernel error codes reported to vsf_kernel_err_report()
Definition vsf_eda.h:2355
vsf_prio_t
Kernel priority enumeration.
Definition vsf_kernel_common.h:55
void vsf_cpu_usage_start(vsf_cpu_usage_ctx_t *ctx)
Start CPU usage measurement.
Definition vsf_os.c:529
void __vsf_kernel_os_start(void)
__vsf_kernel_os_start and __vsf_kernel_os_run_priority are ONLY used when embedded weak vsf_main_entr...
Definition vsf_os.c:599
#define vsf_protect_region_sched
Definition vsf_os.h:516
__vsf_eda_frame_buffer_t struct vsf_kernel_resource_t vsf_kernel_resource_t
vsf_arch_prio_t vsf_sched_lock_status_t
Scheduler lock status, returned by vsf_sched_lock() / vsf_forced_sched_lock() and passed back to vsf_...
Definition vsf_os.h:453
void vsf_cpu_usage_stop(void)
Stop CPU usage measurement.
Definition vsf_os.c:539
void __vsf_sleep(int level)
Implementation of vsf_sleep(), put the CPU into sleep (low-power) mode.
Definition vsf_os.c:484
vsf_evt_node_t struct __vsf_eda_frame_buffer_t __vsf_eda_frame_buffer_t
void __vsf_kernel_os_run_priority(vsf_prio_t priority)
Run the event queue of the given priority (dispatch pending events)
Definition vsf_os.c:592
void vsf_kernel_err_report(enum vsf_kernel_error_t err)
Report a kernel error.
Definition vsf_eda.c:409
#define vsf_pool_item(__name)
Definition vsf_pool.h:259
#define dcl_vsf_pool(__name)
Definition vsf_pool.h:264
#define def_vsf_pool(__name, __type)
Definition vsf_pool.h:271