VSF Documented
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
vsf_eda.h File Reference
#include "kernel/vsf_kernel_cfg.h"
#include "hal/arch/vsf_arch.h"
#include "service/vsf_service.h"
#include "./vsf_kernel_common.h"
#include "utilities/ooc_class.h"

Go to the source code of this file.

Data Structures

struct  vsf_cpu_usage_ctx_t
 
struct  vsf_cpu_usage_t
 
union  vsf_eda_feature_t
 
union  __vsf_eda_state_t
 
union  __vsf_eda_flag_t
 
union  __vsf_eda_fn_t
 
struct  __vsf_eda_frame_state_t
 
class  __vsf_eda_frame_t
 
struct  vsf_eda_cfg_t
 
class  vsf_eda_t
 
class  vsf_teda_t
 
class  vsf_callback_timer_t
 
class  vsf_sync_t
 
class  vsf_sync_owner_t
 
struct  vsf_bmpevt_adapter_op_t
 
class  vsf_bmpevt_adapter_t
 
class  vsf_bmpevt_adapter_eda_t
 
class  vsf_bmpevt_pender_t
 
class  vsf_bmpevt_t
 
struct  vsf_eda_queue_op_t
 
class  vsf_eda_queue_t
 
struct  vsf_bmpevt_adapter_sync_t
 
struct  vsf_bmpevt_adapter_bmpevt_t
 
struct  vsf_kernel_cfg_t
 

Macros

#define VSF_SYNC_AUTO_RST   0x0000
 
#define VSF_SYNC_MANUAL_RST   0x8000
 
#define VSF_SYNC_HAS_OWNER   0x8000
 
#define VSF_SYNC_MAX   0x7FFF
 
#define VSF_KERNEL_CFG_EDA_USER_BITLEN   5
 
#define __vsf_eda_sem_init2(__psem, __init_cnt, __max_cnt)    vsf_eda_sync_init((__psem), (__init_cnt), (__max_cnt) | VSF_SYNC_AUTO_RST)
 
#define __vsf_eda_sem_init1(__psem, __init_cnt)    __vsf_eda_sem_init2((__psem), (__init_cnt), VSF_SYNC_MAX)
 
#define __vsf_eda_sem_init0(__psem)    __vsf_eda_sem_init1((__psem), 0)
 
#define vsf_eda_sem_init(__psem, ...)    __PLOOC_EVAL(__vsf_eda_sem_init, __VA_ARGS__)((__psem), ##__VA_ARGS__)
 
#define vsf_eda_sem_post(__psem)   vsf_eda_sync_increase((__psem))
 
#define __vsf_eda_sem_pend1(__psem, __timeout)   vsf_eda_sync_decrease((__psem), (__timeout))
 
#define __vsf_eda_sem_pend0(__psem)   __vsf_eda_sem_pend1((__psem), -1)
 
#define vsf_eda_sem_pend(__psem, ...)    __PLOOC_EVAL(__vsf_eda_sem_pend, __VA_ARGS__)((__psem), ##__VA_ARGS__)
 
#define vsf_eda_sem_post_isr(__psem)   vsf_eda_sync_increase_isr((__psem))
 
#define vsf_eda_mutex_init(__pmtx)
 
#define __vsf_eda_mutex_enter1(__pmtx, __timeout)    vsf_eda_sync_decrease(&((__pmtx)->use_as__vsf_sync_t), (__timeout))
 
#define __vsf_eda_mutex_enter0(__pmtx)   __vsf_eda_mutex_enter1((__pmtx), -1)
 
#define vsf_eda_mutex_enter(__pmtx, ...)    __PLOOC_EVAL(__vsf_eda_mutex_enter, __VA_ARGS__)((__pmtx), ##__VA_ARGS__)
 
#define vsf_eda_mutex_leave(__pmtx)    vsf_eda_sync_increase(&((__pmtx)->use_as__vsf_sync_t))
 
#define vsf_eda_mutex_leave_isr(__pmtx)   vsf_eda_sync_increase_isr(&(__pmtx)->use_as__vsf_sync_t)
 
#define vsf_eda_crit_init(__pcrit)    vsf_eda_mutex_init((__pcrit))
 
#define __vsf_eda_crit_enter1(__pcrit, __timeout)    vsf_eda_mutex_enter((__pcrit), (__timeout))
 
#define __vsf_eda_crit_enter0(__pcrit)   __vsf_eda_crit_enter1((__pcrit), -1)
 
#define vsf_eda_crit_enter(__pcrit, ...)    __PLOOC_EVAL(__vsf_eda_crit_enter, __VA_ARGS__)((__pcrit), ##__VA_ARGS__)
 
#define vsf_eda_crit_leave(__pcrit)    vsf_eda_mutex_leave((__pcrit))
 
#define vsf_eda_trig_init(__pevt, __set, __auto_rst)
 
#define vsf_eda_trig_set0(__pevt)   vsf_eda_sync_increase((__pevt))
 
#define vsf_eda_trig_set1(__pevt, __manual)    __vsf_eda_sync_increase_ex((__pevt), NULL, (__manual))
 
#define vsf_eda_trig_set(__pevt, ...)    __PLOOC_EVAL(vsf_eda_trig_set, __VA_ARGS__)((__pevt), ##__VA_ARGS__)
 
#define vsf_eda_trig_reset(__pevt)   vsf_eda_sync_force_reset((__pevt))
 
#define __vsf_eda_trig_wait1(__pevt, __timeout)    vsf_eda_sync_decrease((__pevt), (__timeout))
 
#define __vsf_eda_trig_wait0(__pevt)   __vsf_eda_trig_wait1((__pevt), -1)
 
#define vsf_eda_trig_wait(__pevt, ...)    __PLOOC_EVAL(__vsf_eda_trig_wait, __VA_ARGS__)((__pevt), ##__VA_ARGS__)
 
#define vsf_eda_trig_set_isr(__pevt)   vsf_eda_sync_increase_isr((__pevt))
 
#define __vsf_eda_crit_npb_init(__pcrit)    vsf_eda_sync_init((__pcrit), 1, 1 | VSF_SYNC_AUTO_RST)
 
#define __vsf_eda_crit_npb_enter1(__pcrit, __timeout)    vsf_eda_sync_decrease((__pcrit), (__timeout))
 
#define __vsf_eda_crit_npb_enter0(__pcrit)   __vsf_eda_crit_npb_enter1((__pcrit), -1)
 
#define __vsf_eda_crit_npb_enter(__pcrit, ...)    __PLOOC_EVAL(__vsf_eda_crit_npb_enter, __VA_ARGS__)((__pcrit), ##__VA_ARGS__)
 
#define __vsf_eda_crit_npb_leave(__pcrit)    vsf_eda_sync_increase((__pcrit))
 
#define __vsf_eda_init2(__eda, __priority, __feature)    __vsf_eda_init((__eda), (__priority), (__feature))
 
#define __vsf_eda_init1(__eda, __priority)    __vsf_eda_init2((__eda), (__priority), (vsf_eda_feature_t){.value = 0})
 
#define __vsf_eda_init0(__eda)    __vsf_eda_init1((__eda), vsf_prio_inherit)
 
#define vsf_eda_init(__eda, ...)    __PLOOC_EVAL(__vsf_eda_init, __VA_ARGS__)((__eda), ##__VA_ARGS__)
 
#define vsf_teda_init(__teda, ...)   vsf_eda_init(&(__teda)->use_as__vsf_eda_t, ##__VA_ARGS__)
 
#define vsf_eda_return(...)   __vsf_eda_return((uintptr_t)(0, ##__VA_ARGS__))
 
#define vsf_systimer_get_ms()   vsf_systimer_tick_to_ms(vsf_systimer_get_tick())
 
#define vsf_systimer_get_us()   vsf_systimer_tick_to_us(vsf_systimer_get_tick())
 
#define vsf_eda_call_eda(__evthandler, ...)    __vsf_eda_call_eda((uintptr_t)__evthandler, NULL, (0, ##__VA_ARGS))
 
#define vsf_eda_call_param_eda(__param_evthandler, __param, ...)
 
#define vsf_eda_get_local(...)    __vsf_eda_get_local((vsf_eda_t *)(vsf_eda_get_cur(), ##__VA_ARGS__))
 
#define __vsf_peda_local(__name)   peda_local_##__name
 
#define vsf_peda_local(__name)   __vsf_peda_local(__name)
 
#define __vsf_peda_arg(__name)   peda_arg_##__name
 
#define vsf_peda_arg(__name)   __vsf_peda_arg(__name)
 
#define __vsf_peda_func(__name)   vsf_peda_func_##__name
 
#define vsf_peda_func(__name)   __vsf_peda_func(__name)
 
#define __vsf_peda_param(__name)   peda_cb_##__name
 
#define vsf_peda_param(__name)   __vsf_peda_param(__name)
 
#define __declare_vsf_peda_ctx(__name)
 
#define declare_vsf_peda_ctx(__name)   __declare_vsf_peda_ctx(__name)
 
#define dcl_vsf_peda_ctx(__name)    declare_vsf_peda_ctx(__name)
 
#define __declare_vsf_peda(__name)
 
#define declare_vsf_peda(__name)   __declare_vsf_peda(__name)
 
#define dcl_vsf_peda(__name)    declare_vsf_peda(__name)
 
#define declare_vsf_peda_methods1(__decoration, __name)
 
#define declare_vsf_peda_methods2(__decoration, __name, __func1)
 
#define declare_vsf_peda_methods3(__decoration, __name, __func1, __func2)
 
#define declare_vsf_peda_methods4(__name, __func1, __func2, __func3)
 
#define declare_vsf_peda_methods5( __decoration, __name, __func1, __func2, __func3, __func4)
 
#define declare_vsf_peda_methods6( __decoration, __name, __func1, __func2, __func3, __func4, __func5)
 
#define declare_vsf_peda_methods7( __decoration, __name, __func1, __func2, __func3, __func4, __func5, __func6)
 
#define declare_vsf_peda_methods8( __decoration, __name, __func1, __func2, __func3, __func4, __func5, __func6, __func7)
 
#define declare_vsf_peda_methods(__decoration, ...)
 
#define dcl_vsf_peda_methods(__decoration, ...)    declare_vsf_peda_methods(__decoration, __VA_ARGS__)
 
#define __def_vsf_peda_ctx4(__name, __param, __arg, __local)
 
#define __def_vsf_peda4(__name, __param, __arg, __local)
 
#define __def_vsf_peda_ctx3(__name, __param, __arg)
 
#define __def_vsf_peda3(__name, __param, __arg)
 
#define __def_vsf_peda_ctx2(__name, __param)
 
#define __def_vsf_peda_ctx1(__name)    __def_vsf_peda_ctx2(__name, )
 
#define __def_vsf_peda2(__name, __param)
 
#define __def_vsf_peda1(__name)
 
#define def_vsf_peda(...)    __PLOOC_EVAL(__def_vsf_peda, __VA_ARGS__) (__VA_ARGS__)
 
#define end_def_vsf_peda(...)
 
#define def_vsf_peda_ctx(...)    __PLOOC_EVAL(__def_vsf_peda_ctx, __VA_ARGS__)(__VA_ARGS__)
 
#define end_def_vsf_peda_ctx(...)
 
#define define_vsf_peda_ctx(__name, ...)    def_vsf_peda_ctx(__name, __VA_ARGS__)
 
#define end_define_vsf_peda_ctx(...)
 
#define def_locals(...)   ,##__VA_ARGS__
 
#define end_def_locals(...)
 
#define define_locals(...)   ,##__VA_ARGS__
 
#define end_define_locals(...)
 
#define def_args(...)   ,__VA_ARGS__
 
#define end_def_args(...)
 
#define define_args(...)   ,__VA_ARGS__
 
#define end_define_args(...)
 
#define define_arguments(...)   ,__VA_ARGS__
 
#define end_define_arguments(...)
 
#define define_parameters(...)   __VA_ARGS__
 
#define end_define_parameters(...)
 
#define vsf_peda_start   vsf_teda_start
 
#define __init_vsf_peda(__name, __param_eda, __pri, ...)
 
#define init_vsf_peda(__name, __param_eda, __pri, ...)    __init_vsf_peda(__name, (__param_eda), (__pri), __VA_ARGS__)
 
#define __implement_vsf_peda2(__name, __func_name)
 
#define __implement_vsf_peda1(__name)
 
#define vsf_peda_begin()
 
#define vsf_peda_end()    }
 
#define implement_vsf_peda(...)    __PLOOC_EVAL(__implement_vsf_peda, __VA_ARGS__)(__VA_ARGS__)
 
#define imp_vsf_peda(...)    implement_vsf_peda(__VA_ARGS__)
 
#define vsf_eda_call_peda(__name, __param)
 
#define vsf_local   (*vsf_plocal)
 
#define vsf_this   (*vsf_pthis)
 
#define vsf_eda_mutex_try_enter   vsf_eda_mutex_enter
 
#define vsf_eda_crit_try_enter   vsf_eda_crit_enter
 
#define VSF_KERNEL_TIMEOUT_TICK_T   int_fast64_t
 
#define __VSF_BITMAP_EVT_DEFINED__
 
#define VSF_BMPEVT_OR   0
 
#define VSF_BMPEVT_AND   1
 

Typedefs

typedef VSF_KERNEL_TIMEOUT_TICK_T vsf_timeout_tick_t
 
typedef struct vsf_cpu_usage_ctx_t vsf_cpu_usage_ctx_t
 
typedef struct vsf_cpu_usage_t vsf_cpu_usage_t
 
typedef int16_t vsf_evt_t
 
typedef void(* vsf_eda_evthandler_t) (vsf_eda_t *eda, vsf_evt_t evt)
 
typedef void(* vsf_eda_on_terminate_t) (vsf_eda_t *eda)
 
typedef void(* vsf_param_eda_evthandler_t) (uintptr_t target, vsf_evt_t evt)
 
typedef uint8_t __vsf_eda_feature_word
 
typedef uint16_t __vsf_eda_flag_word
 
typedef union vsf_eda_feature_t vsf_eda_feature_t
 
typedef union __vsf_eda_state_t __vsf_eda_state_t
 
typedef union __vsf_eda_flag_t __vsf_eda_flag_t
 
typedef union __vsf_eda_fn_t __vsf_eda_fn_t
 
typedef struct __vsf_eda_frame_state_t __vsf_eda_frame_state_t
 
typedef struct vsf_eda_cfg_t vsf_eda_cfg_t
 
typedef struct vsf_bmpevt_adapter_op_t vsf_bmpevt_adapter_op_t
 
typedef struct vsf_eda_queue_op_t vsf_eda_queue_op_t
 
typedef struct vsf_eda_queue_t vsf_osa_queue_t
 define alias for vsf_eda_queue_t. osa means os-aware
 
typedef struct vsf_eda_queue_op_t vsf_osa_queue_op_t
 
typedef vsf_teda_t vsf_peda_t
 
typedef enum vsf_sync_reason_t vsf_sync_reason_t
 
typedef vsf_sync_t vsf_sem_t
 
typedef vsf_sync_t vsf_trig_t
 
typedef vsf_sync_t __vsf_crit_npb_t
 
typedef vsf_sync_owner_t vsf_mutex_t
 
typedef vsf_mutex_t vsf_crit_t
 
typedef struct vsf_bmpevt_adapter_sync_t vsf_bmpevt_adapter_sync_t
 
typedef struct vsf_bmpevt_adapter_bmpevt_t vsf_bmpevt_adapter_bmpevt_t
 
typedef enum vsf_kernel_error_t vsf_kernel_error_t
 
typedef struct vsf_kernel_cfg_t vsf_kernel_cfg_t
 

Enumerations

enum  {
  VSF_EVT_INVALID = -1 ,
  VSF_EVT_NONE = 0 ,
  VSF_EVT_YIELD = 1 ,
  VSF_EVT_SIGNAL = 2 ,
  VSF_EVT_SYSTEM = 0x100 ,
  VSF_EVT_DUMMY = VSF_EVT_SYSTEM + 0 ,
  VSF_EVT_INIT = VSF_EVT_SYSTEM + 1 ,
  VSF_EVT_FINI = VSF_EVT_SYSTEM + 2 ,
  VSF_EVT_ENTER = VSF_EVT_SYSTEM + 3 ,
  VSF_EVT_EXIT = VSF_EVT_SYSTEM + 4 ,
  VSF_EVT_RETURN = VSF_EVT_EXIT ,
  VSF_EVT_TIMER = VSF_EVT_SYSTEM + 5 ,
  VSF_EVT_SYNC = VSF_EVT_SYSTEM + 6 ,
  VSF_EVT_SYNC_CANCEL = VSF_EVT_SYSTEM + 7 ,
  VSF_EVT_SYNC_POLL = VSF_EVT_SYSTEM + 8 ,
  VSF_EVT_MESSAGE = VSF_EVT_SYSTEM + 9 ,
  VSF_EVT_USER = VSF_EVT_SYSTEM + 10
}
 
enum  {
  VSF_KERNEL_EVT_CALLBACK_TIMER = VSF_EVT_USER + 0 ,
  VSF_KERNEL_EVT_CALLBACK_TIMER_ADD = VSF_EVT_USER + 1 ,
  VSF_KERNEL_EVT_QUEUE_SEND_NOTIFY = VSF_EVT_USER + 2 ,
  VSF_KERNEL_EVT_QUEUE_RECV_NOTIFY = VSF_EVT_USER + 3
}
 
enum  vsf_sync_reason_t {
  VSF_SYNC_FAIL ,
  VSF_SYNC_TIMEOUT ,
  VSF_SYNC_PENDING ,
  VSF_SYNC_GET ,
  VSF_SYNC_CANCEL
}
 
enum  vsf_kernel_error_t {
  VSF_KERNEL_ERR_NONE = 0 ,
  VSF_KERNEL_ERR_INVALID_CONTEXT ,
  VSF_KERNEL_ERR_INVALID_USAGE ,
  VSF_KERNEL_ERR_EDA_DOES_NOT_SUPPORT_TIMER ,
  VSF_KERNEL_ERR_SHOULD_NOT_USE_PRIO_INHERIT_IN_IDLE_OR_ISR
}
 

Functions

void vsf_systimer_on_tick (void)
 
vsf_systimer_tick_t vsf_systimer_get_tick (void)
 
vsf_systimer_tick_t vsf_systimer_get_duration (vsf_systimer_tick_t from_time, vsf_systimer_tick_t to_time)
 
vsf_systimer_tick_t vsf_systimer_get_elapsed (vsf_systimer_tick_t from_time)
 
vsf_err_t vsf_eda_go_to (uintptr_t evthandler)
 
vsf_err_t vsf_eda_start (vsf_eda_t *pthis, vsf_eda_cfg_t *cfg)
 
vsf_eda_tvsf_eda_get_cur (void)
 
vsf_evt_t vsf_eda_get_cur_evt (void)
 
void * vsf_eda_get_cur_msg (void)
 
bool vsf_eda_is_stack_owner (vsf_eda_t *pthis)
 
bool __vsf_eda_return (uintptr_t return_value)
 
uintptr_t vsf_eda_get_return_value (void)
 
void __vsf_eda_yield (void)
 
void vsf_eda_cpu_usage_start (vsf_eda_t *pthis, vsf_cpu_usage_ctx_t *ctx)
 
void vsf_eda_cpu_usage_stop (vsf_eda_t *pthis)
 
void vsf_eda_set_user_value (uint8_t value)
 
uint8_t vsf_eda_get_user_value (void)
 
vsf_err_t __vsf_eda_call_eda_prepare (uintptr_t evthandler, uintptr_t param, size_t local_size)
 
vsf_err_t __vsf_eda_call_eda (uintptr_t evthandler, uintptr_t param, size_t local_size)
 
vsf_err_t __vsf_eda_go_to_ex (uintptr_t evthandler, uintptr_t param)
 
vsf_err_t __vsf_eda_call_eda_ex_prepare (uintptr_t func, uintptr_t param, __vsf_eda_frame_state_t state, bool is_sub_call)
 
vsf_err_t __vsf_eda_call_eda_ex (uintptr_t func, uintptr_t param, __vsf_eda_frame_state_t state, bool is_sub_call)
 
uintptr_t __vsf_eda_get_local (vsf_eda_t *pthis)
 
vsf_err_t vsf_eda_target_set (uintptr_t param)
 
uintptr_t vsf_eda_target_get (void)
 
vsf_err_t vsf_teda_start (vsf_teda_t *pthis, vsf_eda_cfg_t *cfg)
 
vsf_err_t vsf_teda_set_timer (vsf_systimer_tick_t tick)
 
vsf_err_t vsf_teda_set_timer_ex (vsf_teda_t *pthis, vsf_systimer_tick_t tick)
 
vsf_err_t vsf_teda_cancel_timer (void)
 
vsf_err_t __vsf_teda_cancel_timer (vsf_teda_t *pthis)
 
void vsf_callback_timer_init (vsf_callback_timer_t *timer)
 
vsf_err_t vsf_callback_timer_add (vsf_callback_timer_t *timer, vsf_systimer_tick_t tick)
 
vsf_err_t vsf_callback_timer_remove (vsf_callback_timer_t *timer)
 
vsf_err_t vsf_callback_timer_add_isr (vsf_callback_timer_t *timer, vsf_systimer_tick_t tick)
 
vsf_err_t vsf_callback_timer_remove_isr (vsf_callback_timer_t *timer)
 
uintptr_t vsf_irq_enter (void)
 
void vsf_irq_leave (uintptr_t ctx)
 
vsf_err_t vsf_eda_post_evt (vsf_eda_t *pthis, vsf_evt_t evt)
 
vsf_err_t vsf_eda_post_msg (vsf_eda_t *pthis, void *msg)
 
vsf_err_t vsf_eda_post_evt_msg (vsf_eda_t *pthis, vsf_evt_t evt, void *msg)
 
vsf_err_t vsf_eda_sync_init (vsf_sync_t *pthis, uint_fast16_t cur_value, uint_fast16_t max_value)
 
vsf_err_t vsf_eda_sync_increase_isr (vsf_sync_t *pthis)
 
vsf_err_t vsf_eda_sync_increase (vsf_sync_t *pthis)
 
vsf_err_t vsf_eda_sync_increase_ex (vsf_sync_t *pthis, vsf_eda_t *eda)
 
vsf_err_t __vsf_eda_sync_increase_ex (vsf_sync_t *pthis, vsf_eda_t *eda, bool manual)
 
vsf_err_t __vsf_eda_sync_decrease_ex (vsf_sync_t *pthis, vsf_timeout_tick_t timeout, vsf_eda_t *eda, bool manual)
 
void vsf_eda_sync_force_reset (vsf_sync_t *pthis)
 
vsf_err_t vsf_eda_sync_decrease (vsf_sync_t *pthis, vsf_timeout_tick_t timeout)
 
vsf_err_t vsf_eda_sync_decrease_ex (vsf_sync_t *pthis, vsf_timeout_tick_t timeout, vsf_eda_t *eda)
 
void vsf_eda_sync_cancel (vsf_sync_t *pthis)
 
vsf_sync_reason_t vsf_eda_sync_get_reason (vsf_sync_t *pthis, vsf_evt_t evt)
 
vsf_err_t vsf_eda_bmpevt_init (vsf_bmpevt_t *pthis, uint_fast8_t adapter_count)
 
vsf_err_t vsf_eda_bmpevt_set (vsf_bmpevt_t *pthis, uint_fast32_t mask)
 
vsf_err_t vsf_eda_bmpevt_reset (vsf_bmpevt_t *pthis, uint_fast32_t mask)
 
vsf_err_t vsf_eda_bmpevt_cancel (vsf_bmpevt_t *pthis, uint_fast32_t mask)
 
vsf_err_t vsf_eda_bmpevt_pend (vsf_bmpevt_t *pthis, vsf_bmpevt_pender_t *pender, vsf_timeout_tick_t timeout)
 
vsf_sync_reason_t vsf_eda_bmpevt_poll (vsf_bmpevt_t *pthis, vsf_bmpevt_pender_t *pender, vsf_evt_t evt)
 
vsf_err_t vsf_eda_queue_init (vsf_eda_queue_t *pthis, uint_fast16_t max)
 
vsf_err_t vsf_eda_queue_send (vsf_eda_queue_t *pthis, void *node, vsf_timeout_tick_t timeout)
 
vsf_err_t vsf_eda_queue_send_ex (vsf_eda_queue_t *pthis, void *node, vsf_timeout_tick_t timeout, vsf_eda_t *eda)
 
vsf_sync_reason_t vsf_eda_queue_send_get_reason (vsf_eda_queue_t *pthis, vsf_evt_t evt, void *node)
 
vsf_err_t vsf_eda_queue_recv (vsf_eda_queue_t *pthis, void **node, vsf_timeout_tick_t timeout)
 
vsf_err_t vsf_eda_queue_recv_ex (vsf_eda_queue_t *pthis, void **node, vsf_timeout_tick_t timeout, vsf_eda_t *eda)
 
vsf_sync_reason_t vsf_eda_queue_recv_get_reason (vsf_eda_queue_t *pthis, vsf_evt_t evt, void **node)
 
uint_fast16_t vsf_eda_queue_get_cnt (vsf_eda_queue_t *pthis)
 
void vsf_eda_queue_cancel (vsf_eda_queue_t *pthis)
 
vsf_err_t vsf_eda_queue_send_isr (vsf_eda_queue_t *pthis, void *node)
 
vsf_err_t vsf_eda_queue_recv_isr (vsf_eda_queue_t *pthis, void **node)
 

Variables

const vsf_bmpevt_adapter_op_t vsf_eda_bmpevt_adapter_sync_op
 
const vsf_bmpevt_adapter_op_t vsf_eda_bmpevt_adapter_bmpevt_op
 

Macro Definition Documentation

◆ VSF_SYNC_AUTO_RST

#define VSF_SYNC_AUTO_RST   0x0000

\NOTE: Make sure #include "utilities/ooc_class.h" is close to the class ! definition and there is NO ANY OTHER module-interface-header file ! included in this file

◆ VSF_SYNC_MANUAL_RST

#define VSF_SYNC_MANUAL_RST   0x8000

◆ VSF_SYNC_HAS_OWNER

#define VSF_SYNC_HAS_OWNER   0x8000

◆ VSF_SYNC_MAX

#define VSF_SYNC_MAX   0x7FFF

◆ VSF_KERNEL_CFG_EDA_USER_BITLEN

#define VSF_KERNEL_CFG_EDA_USER_BITLEN   5

◆ __vsf_eda_sem_init2

#define __vsf_eda_sem_init2 (   __psem,
  __init_cnt,
  __max_cnt 
)     vsf_eda_sync_init((__psem), (__init_cnt), (__max_cnt) | VSF_SYNC_AUTO_RST)

◆ __vsf_eda_sem_init1

#define __vsf_eda_sem_init1 (   __psem,
  __init_cnt 
)     __vsf_eda_sem_init2((__psem), (__init_cnt), VSF_SYNC_MAX)

◆ __vsf_eda_sem_init0

#define __vsf_eda_sem_init0 (   __psem)     __vsf_eda_sem_init1((__psem), 0)

◆ vsf_eda_sem_init

#define vsf_eda_sem_init (   __psem,
  ... 
)     __PLOOC_EVAL(__vsf_eda_sem_init, __VA_ARGS__)((__psem), ##__VA_ARGS__)

◆ vsf_eda_sem_post

#define vsf_eda_sem_post (   __psem)    vsf_eda_sync_increase((__psem))

◆ __vsf_eda_sem_pend1

#define __vsf_eda_sem_pend1 (   __psem,
  __timeout 
)    vsf_eda_sync_decrease((__psem), (__timeout))

◆ __vsf_eda_sem_pend0

#define __vsf_eda_sem_pend0 (   __psem)    __vsf_eda_sem_pend1((__psem), -1)

◆ vsf_eda_sem_pend

#define vsf_eda_sem_pend (   __psem,
  ... 
)     __PLOOC_EVAL(__vsf_eda_sem_pend, __VA_ARGS__)((__psem), ##__VA_ARGS__)

◆ vsf_eda_sem_post_isr

#define vsf_eda_sem_post_isr (   __psem)    vsf_eda_sync_increase_isr((__psem))

◆ vsf_eda_mutex_init

#define vsf_eda_mutex_init (   __pmtx)
Value:
vsf_eda_sync_init( &((__pmtx)->use_as__vsf_sync_t), \
vsf_err_t vsf_eda_sync_init(vsf_sync_t *pthis, uint_fast16_t cur_value, uint_fast16_t max_value)
#define VSF_SYNC_HAS_OWNER
Definition vsf_eda.h:53
#define VSF_SYNC_AUTO_RST
Definition vsf_eda.h:51

◆ __vsf_eda_mutex_enter1

#define __vsf_eda_mutex_enter1 (   __pmtx,
  __timeout 
)     vsf_eda_sync_decrease(&((__pmtx)->use_as__vsf_sync_t), (__timeout))

◆ __vsf_eda_mutex_enter0

#define __vsf_eda_mutex_enter0 (   __pmtx)    __vsf_eda_mutex_enter1((__pmtx), -1)

◆ vsf_eda_mutex_enter

#define vsf_eda_mutex_enter (   __pmtx,
  ... 
)     __PLOOC_EVAL(__vsf_eda_mutex_enter, __VA_ARGS__)((__pmtx), ##__VA_ARGS__)

◆ vsf_eda_mutex_leave

#define vsf_eda_mutex_leave (   __pmtx)     vsf_eda_sync_increase(&((__pmtx)->use_as__vsf_sync_t))

◆ vsf_eda_mutex_leave_isr

#define vsf_eda_mutex_leave_isr (   __pmtx)    vsf_eda_sync_increase_isr(&(__pmtx)->use_as__vsf_sync_t)

◆ vsf_eda_crit_init

#define vsf_eda_crit_init (   __pcrit)     vsf_eda_mutex_init((__pcrit))

◆ __vsf_eda_crit_enter1

#define __vsf_eda_crit_enter1 (   __pcrit,
  __timeout 
)     vsf_eda_mutex_enter((__pcrit), (__timeout))

◆ __vsf_eda_crit_enter0

#define __vsf_eda_crit_enter0 (   __pcrit)    __vsf_eda_crit_enter1((__pcrit), -1)

◆ vsf_eda_crit_enter

#define vsf_eda_crit_enter (   __pcrit,
  ... 
)     __PLOOC_EVAL(__vsf_eda_crit_enter, __VA_ARGS__)((__pcrit), ##__VA_ARGS__)

◆ vsf_eda_crit_leave

#define vsf_eda_crit_leave (   __pcrit)     vsf_eda_mutex_leave((__pcrit))

◆ vsf_eda_trig_init

#define vsf_eda_trig_init (   __pevt,
  __set,
  __auto_rst 
)
Value:
vsf_eda_sync_init((__pevt), (__set), \
1 | ((__auto_rst) ? VSF_SYNC_AUTO_RST : VSF_SYNC_MANUAL_RST))
#define VSF_SYNC_MANUAL_RST
Definition vsf_eda.h:52

◆ vsf_eda_trig_set0

#define vsf_eda_trig_set0 (   __pevt)    vsf_eda_sync_increase((__pevt))

◆ vsf_eda_trig_set1

#define vsf_eda_trig_set1 (   __pevt,
  __manual 
)     __vsf_eda_sync_increase_ex((__pevt), NULL, (__manual))

◆ vsf_eda_trig_set

#define vsf_eda_trig_set (   __pevt,
  ... 
)     __PLOOC_EVAL(vsf_eda_trig_set, __VA_ARGS__)((__pevt), ##__VA_ARGS__)

◆ vsf_eda_trig_reset

#define vsf_eda_trig_reset (   __pevt)    vsf_eda_sync_force_reset((__pevt))

◆ __vsf_eda_trig_wait1

#define __vsf_eda_trig_wait1 (   __pevt,
  __timeout 
)     vsf_eda_sync_decrease((__pevt), (__timeout))

◆ __vsf_eda_trig_wait0

#define __vsf_eda_trig_wait0 (   __pevt)    __vsf_eda_trig_wait1((__pevt), -1)

◆ vsf_eda_trig_wait

#define vsf_eda_trig_wait (   __pevt,
  ... 
)     __PLOOC_EVAL(__vsf_eda_trig_wait, __VA_ARGS__)((__pevt), ##__VA_ARGS__)

◆ vsf_eda_trig_set_isr

#define vsf_eda_trig_set_isr (   __pevt)    vsf_eda_sync_increase_isr((__pevt))

◆ __vsf_eda_crit_npb_init

#define __vsf_eda_crit_npb_init (   __pcrit)     vsf_eda_sync_init((__pcrit), 1, 1 | VSF_SYNC_AUTO_RST)

◆ __vsf_eda_crit_npb_enter1

#define __vsf_eda_crit_npb_enter1 (   __pcrit,
  __timeout 
)     vsf_eda_sync_decrease((__pcrit), (__timeout))

◆ __vsf_eda_crit_npb_enter0

#define __vsf_eda_crit_npb_enter0 (   __pcrit)    __vsf_eda_crit_npb_enter1((__pcrit), -1)

◆ __vsf_eda_crit_npb_enter

#define __vsf_eda_crit_npb_enter (   __pcrit,
  ... 
)     __PLOOC_EVAL(__vsf_eda_crit_npb_enter, __VA_ARGS__)((__pcrit), ##__VA_ARGS__)

◆ __vsf_eda_crit_npb_leave

#define __vsf_eda_crit_npb_leave (   __pcrit)     vsf_eda_sync_increase((__pcrit))

◆ __vsf_eda_init2

#define __vsf_eda_init2 (   __eda,
  __priority,
  __feature 
)     __vsf_eda_init((__eda), (__priority), (__feature))

◆ __vsf_eda_init1

#define __vsf_eda_init1 (   __eda,
  __priority 
)     __vsf_eda_init2((__eda), (__priority), (vsf_eda_feature_t){.value = 0})

◆ __vsf_eda_init0

#define __vsf_eda_init0 (   __eda)     __vsf_eda_init1((__eda), vsf_prio_inherit)

◆ vsf_eda_init

#define vsf_eda_init (   __eda,
  ... 
)     __PLOOC_EVAL(__vsf_eda_init, __VA_ARGS__)((__eda), ##__VA_ARGS__)

◆ vsf_teda_init

#define vsf_teda_init (   __teda,
  ... 
)    vsf_eda_init(&(__teda)->use_as__vsf_eda_t, ##__VA_ARGS__)

◆ vsf_eda_return

#define vsf_eda_return (   ...)    __vsf_eda_return((uintptr_t)(0, ##__VA_ARGS__))

◆ vsf_systimer_get_ms

#define vsf_systimer_get_ms ( )    vsf_systimer_tick_to_ms(vsf_systimer_get_tick())

◆ vsf_systimer_get_us

#define vsf_systimer_get_us ( )    vsf_systimer_tick_to_us(vsf_systimer_get_tick())

◆ vsf_eda_call_eda

#define vsf_eda_call_eda (   __evthandler,
  ... 
)     __vsf_eda_call_eda((uintptr_t)__evthandler, NULL, (0, ##__VA_ARGS))

◆ vsf_eda_call_param_eda

#define vsf_eda_call_param_eda (   __param_evthandler,
  __param,
  ... 
)
Value:
__vsf_eda_call_eda( (uintptr_t)__param_evthandler, \
(uintptr_t)__param, \
(0, ##__VA_ARGS__))
uint32_t uintptr_t
Definition stdint.h:38
vsf_err_t __vsf_eda_call_eda(uintptr_t evthandler, uintptr_t param, size_t local_size)
Definition vsf_eda.c:721

◆ vsf_eda_get_local

#define vsf_eda_get_local (   ...)     __vsf_eda_get_local((vsf_eda_t *)(vsf_eda_get_cur(), ##__VA_ARGS__))

◆ __vsf_peda_local

#define __vsf_peda_local (   __name)    peda_local_##__name

◆ vsf_peda_local

#define vsf_peda_local (   __name)    __vsf_peda_local(__name)

◆ __vsf_peda_arg

#define __vsf_peda_arg (   __name)    peda_arg_##__name

◆ vsf_peda_arg

#define vsf_peda_arg (   __name)    __vsf_peda_arg(__name)

◆ __vsf_peda_func

#define __vsf_peda_func (   __name)    vsf_peda_func_##__name

◆ vsf_peda_func

#define vsf_peda_func (   __name)    __vsf_peda_func(__name)

◆ __vsf_peda_param

#define __vsf_peda_param (   __name)    peda_cb_##__name

◆ vsf_peda_param

#define vsf_peda_param (   __name)    __vsf_peda_param(__name)

◆ __declare_vsf_peda_ctx

#define __declare_vsf_peda_ctx (   __name)
Value:
typedef struct vsf_peda_param(__name) vsf_peda_param(__name); \
typedef struct vsf_peda_arg(__name) vsf_peda_arg(__name); \
typedef struct vsf_peda_local(__name) vsf_peda_local(__name);
#define __name
Definition hci_transport_aic8800.c:552
#define vsf_peda_param(__name)
Definition vsf_eda.h:202
#define vsf_peda_arg(__name)
Definition vsf_eda.h:195
#define vsf_peda_local(__name)
Definition vsf_eda.h:192

◆ declare_vsf_peda_ctx

#define declare_vsf_peda_ctx (   __name)    __declare_vsf_peda_ctx(__name)

◆ dcl_vsf_peda_ctx

#define dcl_vsf_peda_ctx (   __name)     declare_vsf_peda_ctx(__name)

◆ __declare_vsf_peda

#define __declare_vsf_peda (   __name)
Value:
typedef struct __name __name; \
__declare_vsf_peda_ctx(__name)

◆ declare_vsf_peda

#define declare_vsf_peda (   __name)    __declare_vsf_peda(__name)

◆ dcl_vsf_peda

#define dcl_vsf_peda (   __name)     declare_vsf_peda(__name)

◆ declare_vsf_peda_methods1

#define declare_vsf_peda_methods1 (   __decoration,
  __name 
)
Value:
__decoration \
struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt);
int16_t vsf_evt_t
Definition vsf_eda.h:654
#define declare_vsf_peda_ctx(__name)
Definition vsf_eda.h:209
#define vsf_peda_func(__name)
Definition vsf_eda.h:198

◆ declare_vsf_peda_methods2

#define declare_vsf_peda_methods2 (   __decoration,
  __name,
  __func1 
)
Value:
__decoration \
struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func1( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt);

◆ declare_vsf_peda_methods3

#define declare_vsf_peda_methods3 (   __decoration,
  __name,
  __func1,
  __func2 
)
Value:
__decoration \
struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func1( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func2( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt);

◆ declare_vsf_peda_methods4

#define declare_vsf_peda_methods4 (   __name,
  __func1,
  __func2,
  __func3 
)
Value:
__decoration \
struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func1( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func2( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func3( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt);

◆ declare_vsf_peda_methods5

#define declare_vsf_peda_methods5 (   __decoration,
  __name,
  __func1,
  __func2,
  __func3,
  __func4 
)
Value:
__decoration \
struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func1( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func2( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func3( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func4( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt);

◆ declare_vsf_peda_methods6

#define declare_vsf_peda_methods6 (   __decoration,
  __name,
  __func1,
  __func2,
  __func3,
  __func4,
  __func5 
)
Value:
__decoration \
struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func1( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func2( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func3( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func4( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func5( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt);

◆ declare_vsf_peda_methods7

#define declare_vsf_peda_methods7 (   __decoration,
  __name,
  __func1,
  __func2,
  __func3,
  __func4,
  __func5,
  __func6 
)
Value:
__decoration \
struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func1( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func2( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func3( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func4( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func5( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func6( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt);

◆ declare_vsf_peda_methods8

#define declare_vsf_peda_methods8 (   __decoration,
  __name,
  __func1,
  __func2,
  __func3,
  __func4,
  __func5,
  __func6,
  __func7 
)
Value:
__decoration \
struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func1( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func2( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func3( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func4( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func5( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func6( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt); \
__decoration \
void __func7( struct vsf_peda_local(__name) *vsf_pthis,\
vsf_evt_t evt);

◆ declare_vsf_peda_methods

#define declare_vsf_peda_methods (   __decoration,
  ... 
)
Value:
__PLOOC_EVAL(declare_vsf_peda_methods, __VA_ARGS__) \
(__decoration, __VA_ARGS__)
#define declare_vsf_peda_methods(__decoration,...)
Definition vsf_eda.h:368

◆ dcl_vsf_peda_methods

#define dcl_vsf_peda_methods (   __decoration,
  ... 
)     declare_vsf_peda_methods(__decoration, __VA_ARGS__)

◆ __def_vsf_peda_ctx4

#define __def_vsf_peda_ctx4 (   __name,
  __param,
  __arg,
  __local 
)
Value:
struct vsf_peda_param(__name) { \
__param \
}; \
struct vsf_peda_arg(__name) { \
__arg \
}; \
struct vsf_peda_local(__name) { \
implement(vsf_peda_arg(__name)) \
__local \
};

◆ __def_vsf_peda4

#define __def_vsf_peda4 (   __name,
  __param,
  __arg,
  __local 
)
Value:
__def_vsf_peda_ctx4(__name, __param, __arg, __local) \
struct __name { \
implement(vsf_peda_t) \
implement_ex(vsf_peda_param(__name), param) \
};
Definition vsf_eda.h:834
#define __def_vsf_peda_ctx4(__name, __param, __arg, __local)
Definition vsf_eda.h:390

◆ __def_vsf_peda_ctx3

#define __def_vsf_peda_ctx3 (   __name,
  __param,
  __arg 
)
Value:
struct vsf_peda_param(__name) { \
__param \
}; \
struct vsf_peda_arg(__name) { \
__arg \
}; \
struct vsf_peda_local(__name) { \
implement(vsf_peda_arg(__name)) \
};

◆ __def_vsf_peda3

#define __def_vsf_peda3 (   __name,
  __param,
  __arg 
)
Value:
__def_vsf_peda_ctx3(__name, __param, __arg) \
struct __name { \
implement(vsf_peda_t) \
implement_ex(vsf_peda_param(__name), param) \
};
#define __def_vsf_peda_ctx3(__name, __param, __arg)
Definition vsf_eda.h:424

◆ __def_vsf_peda_ctx2

#define __def_vsf_peda_ctx2 (   __name,
  __param 
)
Value:
struct vsf_peda_param(__name) { \
__param \
}; \
struct vsf_peda_arg(__name) { \
}; \
struct vsf_peda_local(__name) { \
implement(vsf_peda_arg(__name)) \
};

◆ __def_vsf_peda_ctx1

#define __def_vsf_peda_ctx1 (   __name)     __def_vsf_peda_ctx2(__name, )

◆ __def_vsf_peda2

#define __def_vsf_peda2 (   __name,
  __param 
)
Value:
struct __name { \
implement(vsf_peda_t) \
implement_ex(vsf_peda_param(__name), param) \
};
#define __def_vsf_peda_ctx2(__name, __param)
Definition vsf_eda.h:457

◆ __def_vsf_peda1

#define __def_vsf_peda1 (   __name)
Value:
struct __name { \
implement(vsf_peda_t) \
implement_ex(vsf_peda_param(__name), param) \
};
#define __def_vsf_peda_ctx1(__name)
Definition vsf_eda.h:468

◆ def_vsf_peda

#define def_vsf_peda (   ...)     __PLOOC_EVAL(__def_vsf_peda, __VA_ARGS__) (__VA_ARGS__)

◆ end_def_vsf_peda

#define end_def_vsf_peda (   ...)

◆ def_vsf_peda_ctx

#define def_vsf_peda_ctx (   ...)     __PLOOC_EVAL(__def_vsf_peda_ctx, __VA_ARGS__)(__VA_ARGS__)

◆ end_def_vsf_peda_ctx

#define end_def_vsf_peda_ctx (   ...)

◆ define_vsf_peda_ctx

#define define_vsf_peda_ctx (   __name,
  ... 
)     def_vsf_peda_ctx(__name, __VA_ARGS__)

◆ end_define_vsf_peda_ctx

#define end_define_vsf_peda_ctx (   ...)

◆ def_locals

#define def_locals (   ...)    ,##__VA_ARGS__

◆ end_def_locals

#define end_def_locals (   ...)

◆ define_locals

#define define_locals (   ...)    ,##__VA_ARGS__

◆ end_define_locals

#define end_define_locals (   ...)

◆ def_args

#define def_args (   ...)    ,__VA_ARGS__

◆ end_def_args

#define end_def_args (   ...)

◆ define_args

#define define_args (   ...)    ,__VA_ARGS__

◆ end_define_args

#define end_define_args (   ...)

◆ define_arguments

#define define_arguments (   ...)    ,__VA_ARGS__

◆ end_define_arguments

#define end_define_arguments (   ...)

◆ define_parameters

#define define_parameters (   ...)    __VA_ARGS__

◆ end_define_parameters

#define end_define_parameters (   ...)

◆ vsf_peda_start

#define vsf_peda_start   vsf_teda_start

◆ __init_vsf_peda

#define __init_vsf_peda (   __name,
  __param_eda,
  __pri,
  ... 
)
Value:
do { \
.priority = (__pri), \
.target = (uintptr_t)&((__param_eda)->param), \
.local_size = sizeof(vsf_peda_local(__name)), \
__VA_ARGS__ \
}; \
vsf_peda_start((vsf_peda_t *)(__param_eda), \
} while(0)
Definition vsf_eda.h:755
__vsf_eda_fn_t fn
Definition vsf_eda.h:756
vsf_param_eda_evthandler_t param_evthandler
Definition vsf_eda.h:733
void(* vsf_param_eda_evthandler_t)(uintptr_t target, vsf_evt_t evt)
Definition vsf_eda.h:658
#define VSF_MACRO_SAFE_NAME(__NAME)
Definition vsf_preprocessor.h:32

◆ init_vsf_peda

#define init_vsf_peda (   __name,
  __param_eda,
  __pri,
  ... 
)     __init_vsf_peda(__name, (__param_eda), (__pri), __VA_ARGS__)

◆ __implement_vsf_peda2

#define __implement_vsf_peda2 (   __name,
  __func_name 
)
Value:
void __func_name( struct vsf_peda_local(__name) *vsf_plocal, \
vsf_evt_t evt) \
{ \
vsf_peda_param(__name) *vsf_pthis = \
((uintptr_t)vsf_plocal - sizeof(uintptr_t)); \
VSF_UNUSED_PARAM(vsf_pthis); \
VSF_KERNEL_ASSERT(NULL != vsf_pthis || NULL != vsf_plocal);
#define NULL
Definition stddef.h:52

◆ __implement_vsf_peda1

#define __implement_vsf_peda1 (   __name)
Value:
void vsf_peda_func(__name)( struct vsf_peda_local(__name) *vsf_plocal, \
vsf_evt_t evt) \
{ \
vsf_peda_param(__name) *vsf_pthis = \
((uintptr_t)vsf_plocal - sizeof(uintptr_t)); \
VSF_UNUSED_PARAM(vsf_pthis); \
VSF_KERNEL_ASSERT(NULL != vsf_pthis || NULL != vsf_plocal);

◆ vsf_peda_begin

#define vsf_peda_begin ( )

◆ vsf_peda_end

#define vsf_peda_end ( )     }

◆ implement_vsf_peda

#define implement_vsf_peda (   ...)     __PLOOC_EVAL(__implement_vsf_peda, __VA_ARGS__)(__VA_ARGS__)

◆ imp_vsf_peda

#define imp_vsf_peda (   ...)     implement_vsf_peda(__VA_ARGS__)

◆ vsf_eda_call_peda

#define vsf_eda_call_peda (   __name,
  __param 
)
Value:
(__param), \
#define vsf_eda_call_param_eda(__param_evthandler, __param,...)
Definition vsf_eda.h:183

◆ vsf_local

#define vsf_local   (*vsf_plocal)

◆ vsf_this

#define vsf_this   (*vsf_pthis)

◆ vsf_eda_mutex_try_enter

#define vsf_eda_mutex_try_enter   vsf_eda_mutex_enter

◆ vsf_eda_crit_try_enter

#define vsf_eda_crit_try_enter   vsf_eda_crit_enter

◆ VSF_KERNEL_TIMEOUT_TICK_T

#define VSF_KERNEL_TIMEOUT_TICK_T   int_fast64_t

◆ __VSF_BITMAP_EVT_DEFINED__

#define __VSF_BITMAP_EVT_DEFINED__

◆ VSF_BMPEVT_OR

#define VSF_BMPEVT_OR   0

◆ VSF_BMPEVT_AND

#define VSF_BMPEVT_AND   1

Typedef Documentation

◆ vsf_timeout_tick_t

◆ vsf_cpu_usage_ctx_t

◆ vsf_cpu_usage_t

◆ vsf_evt_t

typedef int16_t vsf_evt_t

◆ vsf_eda_evthandler_t

typedef void(* vsf_eda_evthandler_t) (vsf_eda_t *eda, vsf_evt_t evt)

◆ vsf_eda_on_terminate_t

typedef void(* vsf_eda_on_terminate_t) (vsf_eda_t *eda)

◆ vsf_param_eda_evthandler_t

typedef void(* vsf_param_eda_evthandler_t) (uintptr_t target, vsf_evt_t evt)

◆ __vsf_eda_feature_word

◆ __vsf_eda_flag_word

◆ vsf_eda_feature_t

◆ __vsf_eda_state_t

◆ __vsf_eda_flag_t

◆ __vsf_eda_fn_t

◆ __vsf_eda_frame_state_t

◆ vsf_eda_cfg_t

typedef struct vsf_eda_cfg_t vsf_eda_cfg_t

◆ vsf_bmpevt_adapter_op_t

◆ vsf_eda_queue_op_t

◆ vsf_osa_queue_t

define alias for vsf_eda_queue_t. osa means os-aware

◆ vsf_osa_queue_op_t

◆ vsf_peda_t

◆ vsf_sync_reason_t

◆ vsf_sem_t

◆ vsf_trig_t

◆ __vsf_crit_npb_t

◆ vsf_mutex_t

◆ vsf_crit_t

◆ vsf_bmpevt_adapter_sync_t

◆ vsf_bmpevt_adapter_bmpevt_t

◆ vsf_kernel_error_t

◆ vsf_kernel_cfg_t

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
VSF_EVT_INVALID 

compatible with fsm_rt_err

\ note wait for invalid also means wait for any evt

VSF_EVT_NONE 

compatible with fsm_rt_cpl

VSF_EVT_YIELD 

compatible with fsm_rt_on_going

VSF_EVT_SIGNAL 
VSF_EVT_SYSTEM 
VSF_EVT_DUMMY 
VSF_EVT_INIT 
VSF_EVT_FINI 
VSF_EVT_ENTER 
VSF_EVT_EXIT 
VSF_EVT_RETURN 
VSF_EVT_TIMER 
VSF_EVT_SYNC 
VSF_EVT_SYNC_CANCEL 
VSF_EVT_SYNC_POLL 
VSF_EVT_MESSAGE 
VSF_EVT_USER 

◆ anonymous enum

anonymous enum
Enumerator
VSF_KERNEL_EVT_CALLBACK_TIMER 
VSF_KERNEL_EVT_CALLBACK_TIMER_ADD 
VSF_KERNEL_EVT_QUEUE_SEND_NOTIFY 
VSF_KERNEL_EVT_QUEUE_RECV_NOTIFY 

◆ vsf_sync_reason_t

Enumerator
VSF_SYNC_FAIL 
VSF_SYNC_TIMEOUT 
VSF_SYNC_PENDING 
VSF_SYNC_GET 
VSF_SYNC_CANCEL 

◆ vsf_kernel_error_t

Enumerator
VSF_KERNEL_ERR_NONE 
VSF_KERNEL_ERR_INVALID_CONTEXT 
VSF_KERNEL_ERR_INVALID_USAGE 
VSF_KERNEL_ERR_EDA_DOES_NOT_SUPPORT_TIMER 
VSF_KERNEL_ERR_SHOULD_NOT_USE_PRIO_INHERIT_IN_IDLE_OR_ISR 

Function Documentation

◆ vsf_systimer_on_tick()

void vsf_systimer_on_tick ( void  )
extern

◆ vsf_systimer_get_tick()

vsf_systimer_tick_t vsf_systimer_get_tick ( void  )
extern

◆ vsf_systimer_get_duration()

vsf_systimer_tick_t vsf_systimer_get_duration ( vsf_systimer_tick_t  from_time,
vsf_systimer_tick_t  to_time 
)
extern

◆ vsf_systimer_get_elapsed()

vsf_systimer_tick_t vsf_systimer_get_elapsed ( vsf_systimer_tick_t  from_time)
extern

◆ vsf_eda_go_to()

vsf_err_t vsf_eda_go_to ( uintptr_t  evthandler)
extern

◆ vsf_eda_start()

vsf_err_t vsf_eda_start ( vsf_eda_t pthis,
vsf_eda_cfg_t cfg 
)

override the is_use_frame flag

◆ vsf_eda_get_cur()

vsf_eda_t * vsf_eda_get_cur ( void  )
extern

◆ vsf_eda_get_cur_evt()

vsf_evt_t vsf_eda_get_cur_evt ( void  )
extern

◆ vsf_eda_get_cur_msg()

void * vsf_eda_get_cur_msg ( void  )
extern

◆ vsf_eda_is_stack_owner()

bool vsf_eda_is_stack_owner ( vsf_eda_t pthis)
extern

◆ __vsf_eda_return()

bool __vsf_eda_return ( uintptr_t  return_value)
extern
Note
automatically free a frame if the top eda doesn't set ! is_use_frame

< top frame

< not force frame

◆ vsf_eda_get_return_value()

uintptr_t vsf_eda_get_return_value ( void  )
extern

◆ __vsf_eda_yield()

void __vsf_eda_yield ( void  )
extern

◆ vsf_eda_cpu_usage_start()

void vsf_eda_cpu_usage_start ( vsf_eda_t pthis,
vsf_cpu_usage_ctx_t ctx 
)
extern

◆ vsf_eda_cpu_usage_stop()

void vsf_eda_cpu_usage_stop ( vsf_eda_t pthis)
extern

◆ vsf_eda_set_user_value()

void vsf_eda_set_user_value ( uint8_t  value)
extern

◆ vsf_eda_get_user_value()

uint8_t vsf_eda_get_user_value ( void  )
extern

◆ __vsf_eda_call_eda_prepare()

vsf_err_t __vsf_eda_call_eda_prepare ( uintptr_t  evthandler,
uintptr_t  param,
size_t  local_size 
)

◆ __vsf_eda_call_eda()

vsf_err_t __vsf_eda_call_eda ( uintptr_t  evthandler,
uintptr_t  param,
size_t  local_size 
)
extern

◆ __vsf_eda_go_to_ex()

vsf_err_t __vsf_eda_go_to_ex ( uintptr_t  evthandler,
uintptr_t  param 
)
extern

◆ __vsf_eda_call_eda_ex_prepare()

vsf_err_t __vsf_eda_call_eda_ex_prepare ( uintptr_t  func,
uintptr_t  param,
__vsf_eda_frame_state_t  state,
bool  is_sub_call 
)
extern
Note
please NEVER do following things. If param is NULL, please let frame->param to be NULL

if (NULL == param) { frame->param = pthis; //!< point to the current eda } else { frame->param = param; }

◆ __vsf_eda_call_eda_ex()

vsf_err_t __vsf_eda_call_eda_ex ( uintptr_t  func,
uintptr_t  param,
__vsf_eda_frame_state_t  state,
bool  is_sub_call 
)
extern

◆ __vsf_eda_get_local()

uintptr_t __vsf_eda_get_local ( vsf_eda_t pthis)
extern

◆ vsf_eda_target_set()

vsf_err_t vsf_eda_target_set ( uintptr_t  param)
extern

◆ vsf_eda_target_get()

uintptr_t vsf_eda_target_get ( void  )
extern

◆ vsf_teda_start()

vsf_err_t vsf_teda_start ( vsf_teda_t pthis,
vsf_eda_cfg_t cfg 
)
extern

◆ vsf_teda_set_timer()

vsf_err_t vsf_teda_set_timer ( vsf_systimer_tick_t  tick)
extern

◆ vsf_teda_set_timer_ex()

vsf_err_t vsf_teda_set_timer_ex ( vsf_teda_t pthis,
vsf_systimer_tick_t  tick 
)
extern

◆ vsf_teda_cancel_timer()

vsf_err_t vsf_teda_cancel_timer ( void  )
extern

◆ __vsf_teda_cancel_timer()

vsf_err_t __vsf_teda_cancel_timer ( vsf_teda_t pthis)
extern

◆ vsf_callback_timer_init()

void vsf_callback_timer_init ( vsf_callback_timer_t timer)
extern

◆ vsf_callback_timer_add()

vsf_err_t vsf_callback_timer_add ( vsf_callback_timer_t timer,
vsf_systimer_tick_t  tick 
)
extern

◆ vsf_callback_timer_remove()

vsf_err_t vsf_callback_timer_remove ( vsf_callback_timer_t timer)
extern

◆ vsf_callback_timer_add_isr()

vsf_err_t vsf_callback_timer_add_isr ( vsf_callback_timer_t timer,
vsf_systimer_tick_t  tick 
)
extern

◆ vsf_callback_timer_remove_isr()

vsf_err_t vsf_callback_timer_remove_isr ( vsf_callback_timer_t timer)
extern

◆ vsf_irq_enter()

uintptr_t vsf_irq_enter ( void  )
extern

◆ vsf_irq_leave()

void vsf_irq_leave ( uintptr_t  ctx)
extern

◆ vsf_eda_post_evt()

vsf_err_t vsf_eda_post_evt ( vsf_eda_t pthis,
vsf_evt_t  evt 
)
extern

◆ vsf_eda_post_msg()

vsf_err_t vsf_eda_post_msg ( vsf_eda_t pthis,
void *  msg 
)
extern

◆ vsf_eda_post_evt_msg()

vsf_err_t vsf_eda_post_evt_msg ( vsf_eda_t pthis,
vsf_evt_t  evt,
void *  msg 
)
extern

◆ vsf_eda_sync_init()

vsf_err_t vsf_eda_sync_init ( vsf_sync_t pthis,
uint_fast16_t  cur_value,
uint_fast16_t  max_value 
)
extern

◆ vsf_eda_sync_increase_isr()

vsf_err_t vsf_eda_sync_increase_isr ( vsf_sync_t pthis)
extern

◆ vsf_eda_sync_increase()

vsf_err_t vsf_eda_sync_increase ( vsf_sync_t pthis)
extern

◆ vsf_eda_sync_increase_ex()

vsf_err_t vsf_eda_sync_increase_ex ( vsf_sync_t pthis,
vsf_eda_t eda 
)
extern

◆ __vsf_eda_sync_increase_ex()

vsf_err_t __vsf_eda_sync_increase_ex ( vsf_sync_t pthis,
vsf_eda_t eda,
bool  manual 
)
extern

◆ __vsf_eda_sync_decrease_ex()

vsf_err_t __vsf_eda_sync_decrease_ex ( vsf_sync_t pthis,
vsf_timeout_tick_t  timeout,
vsf_eda_t eda,
bool  manual 
)
extern

◆ vsf_eda_sync_force_reset()

void vsf_eda_sync_force_reset ( vsf_sync_t pthis)
extern

◆ vsf_eda_sync_decrease()

vsf_err_t vsf_eda_sync_decrease ( vsf_sync_t pthis,
vsf_timeout_tick_t  timeout 
)
extern

◆ vsf_eda_sync_decrease_ex()

vsf_err_t vsf_eda_sync_decrease_ex ( vsf_sync_t pthis,
vsf_timeout_tick_t  timeout,
vsf_eda_t eda 
)
extern

◆ vsf_eda_sync_cancel()

void vsf_eda_sync_cancel ( vsf_sync_t pthis)
extern

◆ vsf_eda_sync_get_reason()

vsf_sync_reason_t vsf_eda_sync_get_reason ( vsf_sync_t pthis,
vsf_evt_t  evt 
)
extern

◆ vsf_eda_bmpevt_init()

vsf_err_t vsf_eda_bmpevt_init ( vsf_bmpevt_t pthis,
uint_fast8_t  adapter_count 
)
extern

◆ vsf_eda_bmpevt_set()

vsf_err_t vsf_eda_bmpevt_set ( vsf_bmpevt_t pthis,
uint_fast32_t  mask 
)
extern

◆ vsf_eda_bmpevt_reset()

vsf_err_t vsf_eda_bmpevt_reset ( vsf_bmpevt_t pthis,
uint_fast32_t  mask 
)
extern

◆ vsf_eda_bmpevt_cancel()

vsf_err_t vsf_eda_bmpevt_cancel ( vsf_bmpevt_t pthis,
uint_fast32_t  mask 
)
extern

◆ vsf_eda_bmpevt_pend()

vsf_err_t vsf_eda_bmpevt_pend ( vsf_bmpevt_t pthis,
vsf_bmpevt_pender_t pender,
vsf_timeout_tick_t  timeout 
)
extern

◆ vsf_eda_bmpevt_poll()

vsf_sync_reason_t vsf_eda_bmpevt_poll ( vsf_bmpevt_t pthis,
vsf_bmpevt_pender_t pender,
vsf_evt_t  evt 
)
extern

◆ vsf_eda_queue_init()

vsf_err_t vsf_eda_queue_init ( vsf_eda_queue_t pthis,
uint_fast16_t  max 
)
extern

◆ vsf_eda_queue_send()

vsf_err_t vsf_eda_queue_send ( vsf_eda_queue_t pthis,
void *  node,
vsf_timeout_tick_t  timeout 
)
extern

◆ vsf_eda_queue_send_ex()

vsf_err_t vsf_eda_queue_send_ex ( vsf_eda_queue_t pthis,
void *  node,
vsf_timeout_tick_t  timeout,
vsf_eda_t eda 
)
extern

◆ vsf_eda_queue_send_get_reason()

vsf_sync_reason_t vsf_eda_queue_send_get_reason ( vsf_eda_queue_t pthis,
vsf_evt_t  evt,
void *  node 
)
extern

◆ vsf_eda_queue_recv()

vsf_err_t vsf_eda_queue_recv ( vsf_eda_queue_t pthis,
void **  node,
vsf_timeout_tick_t  timeout 
)
extern

◆ vsf_eda_queue_recv_ex()

vsf_err_t vsf_eda_queue_recv_ex ( vsf_eda_queue_t pthis,
void **  node,
vsf_timeout_tick_t  timeout,
vsf_eda_t eda 
)
extern

◆ vsf_eda_queue_recv_get_reason()

vsf_sync_reason_t vsf_eda_queue_recv_get_reason ( vsf_eda_queue_t pthis,
vsf_evt_t  evt,
void **  node 
)
extern

◆ vsf_eda_queue_get_cnt()

uint_fast16_t vsf_eda_queue_get_cnt ( vsf_eda_queue_t pthis)
extern

◆ vsf_eda_queue_cancel()

void vsf_eda_queue_cancel ( vsf_eda_queue_t pthis)
extern

◆ vsf_eda_queue_send_isr()

vsf_err_t vsf_eda_queue_send_isr ( vsf_eda_queue_t pthis,
void *  node 
)
extern

◆ vsf_eda_queue_recv_isr()

vsf_err_t vsf_eda_queue_recv_isr ( vsf_eda_queue_t pthis,
void **  node 
)
extern

Variable Documentation

◆ vsf_eda_bmpevt_adapter_sync_op

const vsf_bmpevt_adapter_op_t vsf_eda_bmpevt_adapter_sync_op
extern

◆ vsf_eda_bmpevt_adapter_bmpevt_op

const vsf_bmpevt_adapter_op_t vsf_eda_bmpevt_adapter_bmpevt_op
extern