VSF Documented
Macros | Functions
vsf_task.c File Reference
#include "../vsf_kernel_cfg.h"
#include "./vsf_task.h"

Macros

#define __VSF_EDA_CLASS_INHERIT__
 

Functions

fsm_rt_t __vsf_eda_call_task (vsf_task_entry_t entry, uintptr_t param, size_t local_size)
 
void __vsf_eda_task_evthandler_process_return_value (vsf_eda_t *pthis, vsf_evt_t evt)
 

Macro Definition Documentation

◆ __VSF_EDA_CLASS_INHERIT__

#define __VSF_EDA_CLASS_INHERIT__

Function Documentation

◆ __vsf_eda_call_task()

fsm_rt_t __vsf_eda_call_task ( vsf_task_entry_t  entry,
uintptr_t  param,
size_t  local_size 
)
Note
  • if VSF_ERR_NOT_ENOUGH_RESOURCES is detected, yield and try it again (automatically). For tasks sharing the same frame pool, if the pool is too small, only task performance will be affected, and all sub-task call will work when frame is allocated.
  • if the frame is allocated and pushed to the stack, we should yield to let the sub-task run.

Since in either way, we will yield, no need to handle the return value of vsf_eda_call().

◆ __vsf_eda_task_evthandler_process_return_value()

void __vsf_eda_task_evthandler_process_return_value ( vsf_eda_t pthis,
vsf_evt_t  evt 
)

< no param

< no local

< it is a pure eda

return fsm_rt_err

call sub fsm later

delay, wait_for, mutex_pend, sem_pend and etc...