VSF Documented
vsf_simple.h File Reference

Go to the source code of this file.

Macros

#define static_task_instance(...)
 
#define features_used(...)
 
#define mem_sharable(...)
 
#define mem_nonsharable(...)
 
#define vsf_yield()
 
#define vsf_delay(__tick)
 
#define vsf_delay_ms(__ms)
 
#define vsf_delay_us(__us)
 
#define on_timeout()
 
#define vsf_mutex_init(__mutex_addr)
 
#define vsf_mutex_leave(__mutex_addr)
 
#define vsf_mutex_enter(__mutex_addr)
 
#define vsf_mutex_try_enter_timeout(__mutex_addr, __timeout)
 
#define vsf_mutex_try_enter_timeout_ms(__mutex_addr, __timeout)
 
#define vsf_mutex_try_enter_timeout_us(__mutex_addr, __timeout)
 
#define vsf_crit_init(__crit_addr)
 
#define vsf_crit_leave(__crit_addr)
 
#define vsf_crit_enter(__crit_addr)
 
#define vsf_crit_try_enter_timeout(__crit_addr, __timeout)
 
#define vsf_crit_try_enter_timeout_ms(__crit_addr, __timeout)
 
#define vsf_crit_try_enter_timeout_us(__crit_addr, __timeout)
 
#define vsf_sem_init(__psem, __cnt)
 
#define vsf_sem_post(__psem)
 
#define vsf_sem_pend(__psem)
 
#define vsf_sem_pend_timeout(__psem, __timeout)
 
#define vsf_sem_pend_timeout_ms(__psem, __timeout)
 
#define vsf_sem_pend_timeout_us(__psem, __timeout)
 
#define vsf_trig_init(__ptrig, __set, __auto_rst)
 
#define vsf_trig_set(__ptrig)
 
#define vsf_trig_reset(__ptrig)
 
#define vsf_trig_wait(__ptrig)
 
#define vsf_trig_wait_timeout(__ptrig, __timeout)
 
#define vsf_trig_wait_timeout_ms(__ptrig, __timeout)
 
#define vsf_trig_wait_timeout_us(__ptrig, __timeout)
 
#define vsf_call_eda(__entry, __param_addr)
 
#define vsf_call_fsm(__entry, __param_addr, ...)
 
#define vsf_call_peda4(__peda_name, __entry, __private_local_size, __peda_param_addr, __buff)
 
#define vsf_call_peda3(__peda_name, __entry, __private_local_size, __peda_param_addr)
 
#define vsf_call_peda2(__peda_name, __peda_param_addr, __buff)
 
#define vsf_call_peda1(__peda_name, __peda_param_addr)
 
#define vsf_call_peda(__peda_name, ...)
 

Functions

vsf_evt_t __vsf_delay (uint_fast32_t ms)
 
vsf_sync_reason_t __vsf_sem_pend (vsf_sem_t *sem_ptr, int_fast32_t time_out)
 
vsf_sync_reason_t __vsf_mutex_enter (vsf_mutex_t *mtx_ptr, int_fast32_t time_out)
 
vsf_evt_t __vsf_yield (void)
 
vsf_err_t __vsf_call_eda (uintptr_t evthandler, uintptr_t param, size_t local_size, size_t local_buff_size, uintptr_t local_buff)
 
fsm_rt_t __vsf_call_task (vsf_task_entry_t entry, uintptr_t param, size_t local_size)
 

Macro Definition Documentation

◆ static_task_instance

#define static_task_instance ( ...)
Value:
struct { \
uint_fast8_t fsm_state; \
__VA_ARGS__ \
} static VSF_MACRO_SAFE_NAME(local_cb), \
*this_ptr = &VSF_MACRO_SAFE_NAME(local_cb); \
VSF_UNUSED_PARAM(evt); \
VSF_UNUSED_PARAM(this_ptr);
unsigned char uint_fast8_t
Definition stdint.h:23
vsf_evt_t vsf_eda_get_cur_evt(void)
Definition vsf_eda.c:458
int16_t vsf_evt_t
Definition vsf_eda.h:654
#define VSF_MACRO_SAFE_NAME(__NAME)
Definition vsf_preprocessor.h:32

◆ features_used

#define features_used ( ...)
Value:
__VA_ARGS__

◆ mem_sharable

#define mem_sharable ( ...)
Value:
union {__VA_ARGS__};

◆ mem_nonsharable

#define mem_nonsharable ( ...)
Value:
__VA_ARGS__

◆ vsf_yield

#define vsf_yield ( )
Value:
for ( vsf_evt_t result = VSF_EVT_INVALID; \
result == VSF_EVT_INVALID;) \
if ((result =__vsf_yield(), result == VSF_EVT_YIELD))
@ VSF_EVT_YIELD
compatible with fsm_rt_on_going
Definition vsf_eda.h:598
@ VSF_EVT_INVALID
compatible with fsm_rt_err
Definition vsf_eda.h:596
vsf_evt_t __vsf_yield(void)
Definition vsf_simple_task.c:159

◆ vsf_delay

#define vsf_delay ( __tick)
Value:
unsigned int uint_fast32_t
Definition stdint.h:27
@ VSF_EVT_TIMER
Definition vsf_eda.h:612
vsf_evt_t __vsf_delay(uint_fast32_t ms)
Definition vsf_simple_task.c:50

◆ vsf_delay_ms

#define vsf_delay_ms ( __ms)
Value:
vsf_systimer_tick_t vsf_systimer_ms_to_tick(uint_fast32_t time_ms)
Definition linux_generic.c:440

◆ vsf_delay_us

#define vsf_delay_us ( __us)
Value:
vsf_systimer_tick_t vsf_systimer_us_to_tick(uint_fast32_t time_us)
Definition linux_generic.c:435

◆ on_timeout

#define on_timeout ( )
Value:
@ VSF_SYNC_TIMEOUT
Definition vsf_eda.h:1058

◆ vsf_mutex_init

#define vsf_mutex_init ( __mutex_addr)
Value:
vsf_eda_mutex_init(__mutex_addr)
#define vsf_eda_mutex_init(__pmtx)
Definition vsf_eda.h:87

◆ vsf_mutex_leave

#define vsf_mutex_leave ( __mutex_addr)
Value:
vsf_eda_mutex_leave(__mutex_addr)
#define vsf_eda_mutex_leave(__pmtx)
Definition vsf_eda.h:99

◆ vsf_mutex_enter

#define vsf_mutex_enter ( __mutex_addr)
Value:
reason == VSF_SYNC_CANCEL;) \
if ((reason =__vsf_mutex_enter((__mutex_addr), \
(-1)), reason == VSF_SYNC_GET))
vsf_sync_reason_t
Definition vsf_eda.h:1056
@ VSF_SYNC_GET
Definition vsf_eda.h:1060
@ VSF_SYNC_CANCEL
Definition vsf_eda.h:1061
vsf_sync_reason_t __vsf_mutex_enter(vsf_mutex_t *mtx_ptr, int_fast32_t time_out)
Definition vsf_simple_task.c:150

◆ vsf_mutex_try_enter_timeout

#define vsf_mutex_try_enter_timeout ( __mutex_addr,
__timeout )
Value:
reason == VSF_SYNC_CANCEL;) \
if ((reason =__vsf_mutex_enter((__mutex_addr), \
(__timeout)), \
(reason == VSF_SYNC_GET || reason = VSF_SYNC_TIMEOUT)))

◆ vsf_mutex_try_enter_timeout_ms

#define vsf_mutex_try_enter_timeout_ms ( __mutex_addr,
__timeout )
Value:
reason == VSF_SYNC_CANCEL;) \
if ((reason =__vsf_mutex_enter((__mutex_addr), \
vsf_systimer_ms_to_tick(__timeout)), \
(reason == VSF_SYNC_GET || reason == VSF_SYNC_TIMEOUT)))

◆ vsf_mutex_try_enter_timeout_us

#define vsf_mutex_try_enter_timeout_us ( __mutex_addr,
__timeout )
Value:
reason == VSF_SYNC_CANCEL;) \
if ((reason =__vsf_mutex_enter((__mutex_addr), \
vsf_systimer_us_to_tick(__timeout)), \
(reason == VSF_SYNC_GET || reason == VSF_SYNC_TIMEOUT)))

◆ vsf_crit_init

#define vsf_crit_init ( __crit_addr)
Value:
vsf_eda_crit_init(__crit_addr)
#define vsf_eda_crit_init(__pcrit)
Definition vsf_eda.h:106

◆ vsf_crit_leave

#define vsf_crit_leave ( __crit_addr)
Value:
vsf_eda_crit_leave(__crit_addr)
#define vsf_eda_crit_leave(__pcrit)
Definition vsf_eda.h:116

◆ vsf_crit_enter

#define vsf_crit_enter ( __crit_addr)
Value:
reason == VSF_SYNC_CANCEL;) \
if ((reason =__vsf_mutex_enter((__crit_addr), \
(-1)), reason == VSF_SYNC_GET))

◆ vsf_crit_try_enter_timeout

#define vsf_crit_try_enter_timeout ( __crit_addr,
__timeout )
Value:
reason == VSF_SYNC_CANCEL;) \
if ((reason =__vsf_mutex_enter((__crit_addr), \
(__timeout)), \
(reason == VSF_SYNC_GET || reason = VSF_SYNC_TIMEOUT)))

◆ vsf_crit_try_enter_timeout_ms

#define vsf_crit_try_enter_timeout_ms ( __crit_addr,
__timeout )
Value:
reason == VSF_SYNC_CANCEL;) \
if ((reason =__vsf_mutex_enter((__crit_addr), \
vsf_systimer_ms_to_tick(__timeout)), \
(reason == VSF_SYNC_GET || reason == VSF_SYNC_TIMEOUT)))

◆ vsf_crit_try_enter_timeout_us

#define vsf_crit_try_enter_timeout_us ( __crit_addr,
__timeout )
Value:
reason == VSF_SYNC_CANCEL;) \
if ((reason =__vsf_mutex_enter((__crit_addr), \
vsf_systimer_us_to_tick(__timeout)), \
(reason == VSF_SYNC_GET || reason == VSF_SYNC_TIMEOUT)))

◆ vsf_sem_init

#define vsf_sem_init ( __psem,
__cnt )
Value:
vsf_err_t vsf_eda_sync_init(vsf_sync_t *pthis, uint_fast16_t cur_value, uint_fast16_t max_value)
#define VSF_SYNC_MAX
Definition vsf_eda.h:55
#define VSF_SYNC_AUTO_RST
Definition vsf_eda.h:51

◆ vsf_sem_post

#define vsf_sem_post ( __psem)
Value:
#define vsf_eda_sem_post(__psem)
Definition vsf_eda.h:74

◆ vsf_sem_pend

#define vsf_sem_pend ( __psem)
Value:
reason == VSF_SYNC_CANCEL;) \
if ((reason =__vsf_sem_pend((__psem), \
(-1)), reason == VSF_SYNC_GET))
vsf_sync_reason_t __vsf_sem_pend(vsf_sem_t *sem_ptr, int_fast32_t time_out)
Definition vsf_simple_task.c:103

◆ vsf_sem_pend_timeout

#define vsf_sem_pend_timeout ( __psem,
__timeout )
Value:
reason == VSF_SYNC_CANCEL;) \
if ((reason =__vsf_sem_pend((__psem), \
(__timeout)), \
(reason == VSF_SYNC_GET || reason = VSF_SYNC_TIMEOUT)))

◆ vsf_sem_pend_timeout_ms

#define vsf_sem_pend_timeout_ms ( __psem,
__timeout )
Value:
reason == VSF_SYNC_CANCEL;) \
if ((reason =__vsf_sem_pend((__psem), \
vsf_systimer_ms_to_tick(__timeout)), \
(reason == VSF_SYNC_GET || reason == VSF_SYNC_TIMEOUT)))

◆ vsf_sem_pend_timeout_us

#define vsf_sem_pend_timeout_us ( __psem,
__timeout )
Value:
reason == VSF_SYNC_CANCEL;) \
if ((reason =__vsf_sem_pend((__psem), \
vsf_systimer_us_to_tick(__timeout)), \
(reason == VSF_SYNC_GET || reason == VSF_SYNC_TIMEOUT)))

◆ vsf_trig_init

#define vsf_trig_init ( __ptrig,
__set,
__auto_rst )
Value:
vsf_eda_trig_init(__ptrig, __set, __auto_rst)
#define vsf_eda_trig_init(__pevt, __set, __auto_rst)
Definition vsf_eda.h:120

◆ vsf_trig_set

#define vsf_trig_set ( __ptrig)
Value:
vsf_eda_trig_set((__ptrig))
#define vsf_eda_trig_set(__pevt,...)
Definition vsf_eda.h:129

◆ vsf_trig_reset

#define vsf_trig_reset ( __ptrig)
Value:
#define vsf_eda_trig_reset(__pevt)
Definition vsf_eda.h:132

◆ vsf_trig_wait

#define vsf_trig_wait ( __ptrig)
Value:
reason == VSF_SYNC_CANCEL;) \
if ((reason =__vsf_sem_pend((__ptrig), \
(-1)), reason == VSF_SYNC_GET))

◆ vsf_trig_wait_timeout

#define vsf_trig_wait_timeout ( __ptrig,
__timeout )
Value:
reason == VSF_SYNC_CANCEL;) \
if ((reason =__vsf_sem_pend((__ptrig), \
(__timeout)), \
(reason == VSF_SYNC_GET || reason = VSF_SYNC_TIMEOUT)))

◆ vsf_trig_wait_timeout_ms

#define vsf_trig_wait_timeout_ms ( __ptrig,
__timeout )
Value:
reason == VSF_SYNC_CANCEL;) \
if ((reason =__vsf_sem_pend((__ptrig), \
vsf_systimer_ms_to_tick(__timeout)), \
(reason == VSF_SYNC_GET || reason == VSF_SYNC_TIMEOUT)))

◆ vsf_trig_wait_timeout_us

#define vsf_trig_wait_timeout_us ( __ptrig,
__timeout )
Value:
reason == VSF_SYNC_CANCEL;) \
if ((reason =__vsf_sem_pend((__ptrig), \
vsf_systimer_us_to_tick(__timeout)), \
(reason == VSF_SYNC_GET || reason == VSF_SYNC_TIMEOUT)))

◆ vsf_call_eda

#define vsf_call_eda ( __entry,
__param_addr )
Value:
__vsf_call_eda( (vsf_fsm_entry_t)(__entry), \
(__param_addr), \
0, 0, 0)
vsf_err_t __vsf_call_eda(uintptr_t evthandler, uintptr_t param, size_t local_size, size_t local_buff_size, uintptr_t local_buff)
Definition vsf_simple_task.c:193

◆ vsf_call_fsm

#define vsf_call_fsm ( __entry,
__param_addr,
... )
Value:
__vsf_call_fsm( (vsf_fsm_entry_t)(__entry), \
(__param_addr), \
(0, ##__VA_ARGS__))

◆ vsf_call_peda4

#define vsf_call_peda4 ( __peda_name,
__entry,
__private_local_size,
__peda_param_addr,
__buff )
Value:
(uintptr_t)(__peda_param_addr), \
((sizeof(vsf_peda_local(__peda_name)) + 7) & ~0x07) + (__private_local_size),\
sizeof(vsf_peda_arg(__peda_name)), \
(uintptr_t)(__buff))
uint32_t uintptr_t
Definition stdint.h:38
#define vsf_peda_arg(__name)
Definition vsf_eda.h:195
#define vsf_peda_local(__name)
Definition vsf_eda.h:192

◆ vsf_call_peda3

#define vsf_call_peda3 ( __peda_name,
__entry,
__private_local_size,
__peda_param_addr )
Value:
(uintptr_t)(__peda_param_addr), \
((sizeof(vsf_peda_local(__peda_name)) + 7) & ~0x07) + (__private_local_size),\
sizeof(vsf_peda_arg(__peda_name)), \
0)

◆ vsf_call_peda2

#define vsf_call_peda2 ( __peda_name,
__peda_param_addr,
__buff )
Value:
(uintptr_t)(__peda_param_addr), \
sizeof(vsf_peda_local(__peda_name)), \
sizeof(vsf_peda_arg(__peda_name)), \
(uintptr_t)(__buff))
#define vsf_peda_func(__name)
Definition vsf_eda.h:198

◆ vsf_call_peda1

#define vsf_call_peda1 ( __peda_name,
__peda_param_addr )
Value:
(uintptr_t)(__peda_param_addr), \
sizeof(vsf_peda_local(__peda_name)), \
sizeof(vsf_peda_arg(__peda_name)), \
0)

◆ vsf_call_peda

#define vsf_call_peda ( __peda_name,
... )
Value:
__PLOOC_EVAL(vsf_call_peda, __VA_ARGS__) (__peda_name, __VA_ARGS__)
#define vsf_call_peda(__peda_name,...)
Definition vsf_simple.h:282

Function Documentation

◆ __vsf_delay()

vsf_evt_t __vsf_delay ( uint_fast32_t ms)
extern

◆ __vsf_sem_pend()

vsf_sync_reason_t __vsf_sem_pend ( vsf_sem_t * sem_ptr,
int_fast32_t time_out )
extern

◆ __vsf_mutex_enter()

vsf_sync_reason_t __vsf_mutex_enter ( vsf_mutex_t * mtx_ptr,
int_fast32_t time_out )
extern

◆ __vsf_yield()

vsf_evt_t __vsf_yield ( void )
extern

◆ __vsf_call_eda()

vsf_err_t __vsf_call_eda ( uintptr_t evthandler,
uintptr_t param,
size_t local_size,
size_t local_buff_size,
uintptr_t local_buff )
extern

◆ __vsf_call_task()

fsm_rt_t __vsf_call_task ( vsf_task_entry_t entry,
uintptr_t param,
size_t local_size )
extern
Generated from commit: vsfteam/vsf@ceb53fd