VSF Documented
vsf_pt.h File Reference

Go to the source code of this file.

Macros

#define __implement_vsf_pt(__name)
 
#define __implement_vsf_pt_ex(__name, __func_name)
 
#define __vsf_pt_state()
 
#define __vsf_pt_end()
 
#define __vsf_pt_entry(__state, ...)
 
#define vsf_pt_entry(...)
 
#define __vsf_pt_begin(__state)
 
#define vsf_pt_begin()
 
#define vsf_pt_end()
 
#define vsf_pt_wait_for_evt(__evt)
 
#define vsf_pt_wfe(__evt)
 
#define vsf_pt_yield()
 
#define vsf_pt_raw_next()
 
#define vsf_pt_raw_entry(...)
 
#define vsf_pt_wait_until(...)
 
#define __vsf_pt_call_sub(__name, __target, ...)
 
#define vsf_pt_call_sub(__name, __target)
 
#define vsf_pt_call_pt(__name, __target)
 
#define vsf_eda_call_pt(__name, __target)
 
#define __vsf_pt_call_task(__name, __target, ...)
 
#define vsf_pt_call_task(__name, __target, __ret_addr, ...)
 
#define vsf_pt_start   vsf_teda_start
 
#define implement_vsf_pt(__name)
 
#define implement_vsf_pt_ex(__name, __FUNC_NAME)
 
#define imp_vsf_pt(__name)
 
#define imp_vsf_pt_ex(__name, __FUNC_NAME)
 
#define __vsf_pt_func(__name)
 
#define vsf_pt_func(__name)
 
#define __vsf_pt(__name)
 
#define vsf_pt(__name)
 
#define __def_vsf_pt(__name, ...)
 
#define def_vsf_pt(__name, ...)
 
#define end_def_vsf_pt(...)
 
#define define_vsf_pt(__name, ...)
 
#define end_define_vsf_pt(...)
 
#define __declare_vsf_pt(__name)
 
#define declare_vsf_pt(__name)
 
#define dcl_vsf_pt(__name)
 
#define __init_vsf_pt(__name, __pt, __pri, ...)
 
#define vsf_pt_call_thread(__name, __target)
 
#define init_vsf_pt(__name, __pt, __pri, ...)
 

Typedefs

typedef vsf_teda_t vsf_pt_t
 
typedef vsf_eda_evthandler_t vsf_pt_entry_t
 

Macro Definition Documentation

◆ __implement_vsf_pt

#define __implement_vsf_pt ( __name)
Value:
{ \
__vsf_pt_common(__name) *vsf_pthis = \
((uintptr_t)local - sizeof(uintptr_t));
#define __vsf_pt_common(__name)
Definition __vsf_task_common.h:72
#define __implement_vsf_pt_common(__name, __arg0)
Definition __vsf_task_common.h:88
#define __name
Definition hci_transport_aic8800.c:555
uint32_t uintptr_t
Definition stdint.h:38

◆ __implement_vsf_pt_ex

#define __implement_vsf_pt_ex ( __name,
__func_name )
Value:
__implement_vsf_pt_common( __func_name, uintptr_t local) \
{ \
__vsf_pt_common(__name) *vsf_pthis = \
((uintptr_t)local - sizeof(uintptr_t));

◆ __vsf_pt_state

#define __vsf_pt_state ( )
Value:
(vsf_this.fsm_state)
#define vsf_this
Definition vsf_fsm.h:60

◆ __vsf_pt_end

#define __vsf_pt_end ( )
Value:
#define __vsf_pt_end_common()
Definition __vsf_task_common.h:52

◆ __vsf_pt_entry

#define __vsf_pt_entry ( __state,
... )
Value:
__vsf_pt_entry_common(__state, __VA_ARGS__)
#define __vsf_pt_entry_common(__state,...)
Definition __vsf_task_common.h:46

◆ vsf_pt_entry

#define vsf_pt_entry ( ...)
Value:
#define __vsf_pt_state()
Definition vsf_pt.h:62
#define __vsf_pt_entry(__state,...)
Definition vsf_pt.h:66

◆ __vsf_pt_begin

#define __vsf_pt_begin ( __state)
Value:
#define __vsf_pt_begin_common(__state)
Definition __vsf_task_common.h:33

◆ vsf_pt_begin

#define vsf_pt_begin ( )
Value:
__vsf_pt_begin(__vsf_pt_state())
#define VSF_UNUSED_PARAM(__VAL)
Definition __type.h:190

◆ vsf_pt_end

#define vsf_pt_end ( )
Value:
#define __vsf_pt_end()
Definition vsf_pt.h:63

◆ vsf_pt_wait_for_evt

#define vsf_pt_wait_for_evt ( __evt)
Value:
#define __vsf_pt_wfe_common(__state, __evt)
Definition __vsf_task_common.h:68

◆ vsf_pt_wfe

#define vsf_pt_wfe ( __evt)
Value:
#define vsf_pt_wait_for_evt(__evt)
Definition vsf_pt.h:79

◆ vsf_pt_yield

#define vsf_pt_yield ( )
Value:
void __vsf_eda_yield(void)
Definition vsf_eda.c:539
#define vsf_pt_entry(...)
Definition vsf_pt.h:68

◆ vsf_pt_raw_next

#define vsf_pt_raw_next ( )
Value:
#define __vsf_pt_raw_next_common(__state)
Definition __vsf_task_common.h:40

◆ vsf_pt_raw_entry

#define vsf_pt_raw_entry ( ...)
Value:
#define __vsf_pt_raw_entry_common(__state,...)
Definition __vsf_task_common.h:42

◆ vsf_pt_wait_until

#define vsf_pt_wait_until ( ...)
Value:
__VA_ARGS__ {} else { \
return ; \
}
Note
please use if-then clause in the vsf_pt_wait_until() ! E.g. ! vsf_pt_wait_until( if (...) ); ! ! ! NOTE: wait_for_one(), wait_for_any() and wait_for_all() can be seen as ! an if-then clause. So you can use them directly here. E.g. ! ! vsf_pt_wait_until( wait_for_one(&__user_grouped_evts, sem_evt_msk) ); !

◆ __vsf_pt_call_sub

#define __vsf_pt_call_sub ( __name,
__target,
... )
Value:
(uintptr_t)(__target), \
(0, ##__VA_ARGS__))
vsf_err_t __vsf_eda_call_eda(uintptr_t evthandler, uintptr_t param, size_t local_size)
Definition vsf_eda.c:730

◆ vsf_pt_call_sub

#define vsf_pt_call_sub ( __name,
__target )
Value:
__vsf_pt_call_sub(__name, (__target)); \
VSF_KERNEL_ASSERT(VSF_ERR_NONE == VSF_MACRO_SAFE_NAME(ret)); \
return ; \
vsf_pt_raw_entry();
vsf_err_t
Definition __type.h:42
@ VSF_ERR_NONE
none error
Definition __type.h:44
#define VSF_MACRO_SAFE_NAME(__NAME)
Definition vsf_preprocessor.h:32
#define vsf_pt_raw_next()
Definition vsf_pt.h:85

◆ vsf_pt_call_pt

#define vsf_pt_call_pt ( __name,
__target )
Value:
(__target)->fsm_state = 0; \
vsf_pt_call_sub(vsf_pt_func(__name), (__target))
#define vsf_pt_func(__name)
Definition vsf_pt.h:180

◆ vsf_eda_call_pt

#define vsf_eda_call_pt ( __name,
__target )
Value:
#define __vsf_pt_call_sub(__name, __target,...)
Definition vsf_pt.h:107

◆ __vsf_pt_call_task

#define __vsf_pt_call_task ( __name,
__target,
... )
Value:
(uintptr_t)(__target), \
(0, ##__VA_ARGS__))
fsm_rt_t __vsf_eda_call_task(vsf_task_entry_t entry, uintptr_t param, size_t local_size)
Definition vsf_task.c:49
fsm_rt_t(* vsf_task_entry_t)(uintptr_t target, vsf_evt_t evt)
Definition vsf_task.h:241

◆ vsf_pt_call_task

#define vsf_pt_call_task ( __name,
__target,
__ret_addr,
... )
Value:
do { \
vsf_pt_entry(); \
VSF_MCONNECT3(__vsf_pt_call_task,__LINE__,tReturn) = \
__vsf_pt_call_task(vsf_task_func(__name), (__target), (0, ##__VA_ARGS__));\
if (fsm_rt_on_going == \
VSF_MCONNECT3(__vsf_pt_call_task,__LINE__,tReturn)) { \
return ; \
} \
if (NULL != (__ret_addr)) { \
*(__ret_addr) = \
VSF_MCONNECT3(__vsf_pt_call_task,__LINE__,tReturn); \
} \
} while(0)
#define NULL
Definition lvgl.h:26
#define VSF_MCONNECT3(a, b, c)
Definition vsf_connect_macro.h:73
fsm_rt_t
Definition vsf_fsm.h:315
@ fsm_rt_on_going
fsm on-going
Definition vsf_fsm.h:318
#define __vsf_pt_call_task(__name, __target,...)
Definition vsf_pt.h:140
#define vsf_task_func(__name)
Definition vsf_task.h:40

◆ vsf_pt_start

#define vsf_pt_start   vsf_teda_start

◆ implement_vsf_pt

#define implement_vsf_pt ( __name)
Value:
#define __implement_vsf_pt(__name)
Definition vsf_pt.h:37

◆ implement_vsf_pt_ex

#define implement_vsf_pt_ex ( __name,
__FUNC_NAME )
Value:
#define __implement_vsf_pt_ex(__name, __func_name)
Definition vsf_pt.h:44

◆ imp_vsf_pt

#define imp_vsf_pt ( __name)
Value:
#define implement_vsf_pt(__name)
Definition vsf_pt.h:171

◆ imp_vsf_pt_ex

#define imp_vsf_pt_ex ( __name,
__FUNC_NAME )
Value:
#define implement_vsf_pt_ex(__name, __FUNC_NAME)
Definition vsf_pt.h:172

◆ __vsf_pt_func

#define __vsf_pt_func ( __name)
Value:
#define __vsf_pt_func_common(__name)
Definition __vsf_task_common.h:71

◆ vsf_pt_func

#define vsf_pt_func ( __name)
Value:
#define __vsf_pt_func(__name)
Definition vsf_pt.h:179

◆ __vsf_pt

#define __vsf_pt ( __name)

◆ vsf_pt

#define vsf_pt ( __name)
Value:
#define __vsf_pt(__name)
Definition vsf_pt.h:182

◆ __def_vsf_pt

#define __def_vsf_pt ( __name,
... )
Value:
uint8_t fsm_state; \
__VA_ARGS__)
#define __def_vsf_pt_common(__name,...)
Definition __vsf_task_common.h:74
unsigned char uint8_t
Definition stdint.h:5

◆ def_vsf_pt

#define def_vsf_pt ( __name,
... )
Value:
__def_vsf_pt(__name,__VA_ARGS__)
#define __def_vsf_pt(__name,...)
Definition vsf_pt.h:185

◆ end_def_vsf_pt

#define end_def_vsf_pt ( ...)

◆ define_vsf_pt

#define define_vsf_pt ( __name,
... )
Value:
def_vsf_pt(__name,__VA_ARGS__)
#define def_vsf_pt(__name,...)
Definition vsf_pt.h:190

◆ end_define_vsf_pt

#define end_define_vsf_pt ( ...)

◆ __declare_vsf_pt

#define __declare_vsf_pt ( __name)
Value:
__extern_vsf_pt_common(__name, uintptr_t local)
#define __declare_vsf_pt_common(__name)
Definition __vsf_task_common.h:83

◆ declare_vsf_pt

#define declare_vsf_pt ( __name)
Value:
#define __declare_vsf_pt(__name)
Definition vsf_pt.h:198

◆ dcl_vsf_pt

#define dcl_vsf_pt ( __name)
Value:
#define declare_vsf_pt(__name)
Definition vsf_pt.h:207

◆ __init_vsf_pt

#define __init_vsf_pt ( __name,
__pt,
__pri,
... )
Value:
do { \
.fn.evthandler = (vsf_pt_entry_t)__vsf_pt_func(__name), \
.priority = (__pri), \
.target = (uintptr_t)&((__pt)->param), \
__VA_ARGS__ \
}; \
(__pt)->param.fsm_state = 0; \
vsf_pt_start(&((__pt)->use_as__vsf_pt_t), \
} while(0)
Definition vsf_eda.h:758
vsf_eda_evthandler_t vsf_pt_entry_t
Definition vsf_pt.h:259

◆ vsf_pt_call_thread

#define vsf_pt_call_thread ( __name,
__target )
Value:
vsf_pt_raw_next(); \
vsf_eda_call_thread(__target); \
VSF_KERNEL_ASSERT(VSF_ERR_NONE == VSF_MACRO_SAFE_NAME(ret)); \
return ; \
vsf_pt_raw_entry();
#define vsf_eda_call_thread_prepare(__name, __thread_cb)
Definition vsf_thread.h:184

◆ init_vsf_pt

#define init_vsf_pt ( __name,
__pt,
__pri,
... )
Value:
__init_vsf_pt(__name, __pt, __pri, __VA_ARGS__)
#define __init_vsf_pt(__name, __pt, __pri,...)
Definition vsf_pt.h:210

Typedef Documentation

◆ vsf_pt_t

◆ vsf_pt_entry_t

Generated from commit: vsfteam/vsf@ceb53fd