VSF Documented
Macros | Functions
vsf_simple.h File Reference
#include "kernel/vsf_kernel_cfg.h"
#include "../../vsf_eda.h"
#include "./vsf_simple_bmpevt.h"
#include "../../task/vsf_task.h"

Go to the source code of this file.

Macros

#define static_task_instance(...)
 
#define features_used(...)   __VA_ARGS__
 
#define mem_sharable(...)   union {__VA_ARGS__};
 
#define mem_nonsharable(...)   __VA_ARGS__
 
#define vsf_yield()
 
#define vsf_delay(__tick)    if (VSF_EVT_TIMER == __vsf_delay((uint_fast32_t)__tick))
 
#define vsf_delay_ms(__ms)    if (VSF_EVT_TIMER == __vsf_delay((uint_fast32_t)vsf_systimer_ms_to_tick(__ms)))
 
#define vsf_delay_us(__us)    if (VSF_EVT_TIMER == __vsf_delay((uint_fast32_t)vsf_systimer_us_to_tick(__us)))
 
#define on_timeout()    if (VSF_SYNC_TIMEOUT == vsf_eda_get_cur_evt())
 
#define vsf_mutex_init(__mutex_addr)   vsf_eda_mutex_init(__mutex_addr)
 
#define vsf_mutex_leave(__mutex_addr)   vsf_eda_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)   vsf_eda_crit_init(__crit_addr)
 
#define vsf_crit_leave(__crit_addr)   vsf_eda_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)    vsf_eda_sync_init((__psem), (__cnt), VSF_SYNC_MAX | VSF_SYNC_AUTO_RST)
 
#define vsf_sem_post(__psem)   vsf_eda_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)    vsf_eda_trig_init(__ptrig, __set, __auto_rst)
 
#define vsf_trig_set(__ptrig)   vsf_eda_trig_set((__ptrig))
 
#define vsf_trig_reset(__ptrig)   vsf_eda_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, ...)    __PLOOC_EVAL(vsf_call_peda, __VA_ARGS__) (__peda_name, __VA_ARGS__)
 

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:452
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 (   ...)    __VA_ARGS__

◆ mem_sharable

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

◆ mem_nonsharable

#define mem_nonsharable (   ...)    __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)     if (VSF_EVT_TIMER == __vsf_delay((uint_fast32_t)__tick))

◆ vsf_delay_ms

#define vsf_delay_ms (   __ms)     if (VSF_EVT_TIMER == __vsf_delay((uint_fast32_t)vsf_systimer_ms_to_tick(__ms)))

◆ vsf_delay_us

#define vsf_delay_us (   __us)     if (VSF_EVT_TIMER == __vsf_delay((uint_fast32_t)vsf_systimer_us_to_tick(__us)))

◆ on_timeout

#define on_timeout ( )     if (VSF_SYNC_TIMEOUT == vsf_eda_get_cur_evt())

◆ vsf_mutex_init

#define vsf_mutex_init (   __mutex_addr)    vsf_eda_mutex_init(__mutex_addr)

◆ vsf_mutex_leave

#define vsf_mutex_leave (   __mutex_addr)    vsf_eda_mutex_leave(__mutex_addr)

◆ 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:1053
@ VSF_SYNC_GET
Definition vsf_eda.h:1057
@ VSF_SYNC_CANCEL
Definition vsf_eda.h:1058
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_SYNC_TIMEOUT
Definition vsf_eda.h:1055

◆ 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_systimer_tick_t vsf_systimer_ms_to_tick(uint_fast32_t time_ms)
Definition linux_generic.c:440

◆ 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_systimer_tick_t vsf_systimer_us_to_tick(uint_fast32_t time_us)
Definition linux_generic.c:435

◆ vsf_crit_init

#define vsf_crit_init (   __crit_addr)    vsf_eda_crit_init(__crit_addr)

◆ vsf_crit_leave

#define vsf_crit_leave (   __crit_addr)    vsf_eda_crit_leave(__crit_addr)

◆ 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 
)     vsf_eda_sync_init((__psem), (__cnt), VSF_SYNC_MAX | VSF_SYNC_AUTO_RST)

◆ vsf_sem_post

#define vsf_sem_post (   __psem)    vsf_eda_sem_post((__psem))

◆ 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 
)     vsf_eda_trig_init(__ptrig, __set, __auto_rst)

◆ vsf_trig_set

#define vsf_trig_set (   __ptrig)    vsf_eda_trig_set((__ptrig))

◆ vsf_trig_reset

#define vsf_trig_reset (   __ptrig)    vsf_eda_trig_reset((__ptrig))

◆ 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,
  ... 
)     __PLOOC_EVAL(vsf_call_peda, __VA_ARGS__) (__peda_name, __VA_ARGS__)

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