VSF Documented
Macros | Typedefs
vsf_pt.h File Reference
#include "./kernel/vsf_kernel_cfg.h"
#include "../vsf_eda.h"
#include "./__vsf_task_common.h"

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()   (vsf_this.fsm_state)
 
#define __vsf_pt_end()   __vsf_pt_end_common()
 
#define __vsf_pt_entry(__state, ...)    __vsf_pt_entry_common(__state, __VA_ARGS__)
 
#define vsf_pt_entry(...)    __vsf_pt_entry(__vsf_pt_state(), __VA_ARGS__)
 
#define __vsf_pt_begin(__state)   __vsf_pt_begin_common(__state)
 
#define vsf_pt_begin()
 
#define vsf_pt_end()   __vsf_pt_end() }
 
#define vsf_pt_wait_for_evt(__evt)   __vsf_pt_wfe_common(__vsf_pt_state(), __evt)
 
#define vsf_pt_wfe(__evt)   vsf_pt_wait_for_evt(__evt)
 
#define vsf_pt_yield()   vsf_pt_entry(__vsf_eda_yield();)
 
#define vsf_pt_raw_next()   __vsf_pt_raw_next_common(__vsf_pt_state())
 
#define vsf_pt_raw_entry(...)   __vsf_pt_raw_entry_common(__vsf_pt_state(), __VA_ARGS__)
 
#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)    __vsf_pt_call_sub(vsf_pt_func(__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)   __implement_vsf_pt(__name)
 
#define implement_vsf_pt_ex(__name, __FUNC_NAME)    __implement_vsf_pt_ex(__name, __FUNC_NAME)
 
#define imp_vsf_pt(__name)   implement_vsf_pt(__name)
 
#define imp_vsf_pt_ex(__name, __FUNC_NAME)    implement_vsf_pt_ex(__name, __FUNC_NAME)
 
#define __vsf_pt_func(__name)   __vsf_pt_func_common(__name)
 
#define vsf_pt_func(__name)   __vsf_pt_func(__name)
 
#define __vsf_pt(__name)   __vsf_pt_common(__name)
 
#define vsf_pt(__name)   __vsf_pt(__name)
 
#define __def_vsf_pt(__name, ...)
 
#define def_vsf_pt(__name, ...)   __def_vsf_pt(__name,__VA_ARGS__)
 
#define end_def_vsf_pt(...)
 
#define define_vsf_pt(__name, ...)   def_vsf_pt(__name,__VA_ARGS__)
 
#define end_define_vsf_pt(...)
 
#define __declare_vsf_pt(__name)
 
#define declare_vsf_pt(__name)   __declare_vsf_pt(__name)
 
#define dcl_vsf_pt(__name)   declare_vsf_pt(__name)
 
#define __init_vsf_pt(__name, __pt, __pri, ...)
 
#define vsf_pt_call_thread(__name, __target)
 
#define init_vsf_pt(__name, __pt, __pri, ...)    __init_vsf_pt(__name, __pt, __pri, __VA_ARGS__)
 

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:552
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 ( )    (vsf_this.fsm_state)

◆ __vsf_pt_end

#define __vsf_pt_end ( )    __vsf_pt_end_common()

◆ __vsf_pt_entry

#define __vsf_pt_entry (   __state,
  ... 
)     __vsf_pt_entry_common(__state, __VA_ARGS__)

◆ vsf_pt_entry

#define vsf_pt_entry (   ...)     __vsf_pt_entry(__vsf_pt_state(), __VA_ARGS__)

◆ __vsf_pt_begin

#define __vsf_pt_begin (   __state)    __vsf_pt_begin_common(__state)

◆ vsf_pt_begin

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

◆ vsf_pt_end

#define vsf_pt_end ( )    __vsf_pt_end() }

◆ vsf_pt_wait_for_evt

#define vsf_pt_wait_for_evt (   __evt)    __vsf_pt_wfe_common(__vsf_pt_state(), __evt)

◆ vsf_pt_wfe

#define vsf_pt_wfe (   __evt)    vsf_pt_wait_for_evt(__evt)

◆ vsf_pt_yield

#define vsf_pt_yield ( )    vsf_pt_entry(__vsf_eda_yield();)

◆ vsf_pt_raw_next

#define vsf_pt_raw_next ( )    __vsf_pt_raw_next_common(__vsf_pt_state())

◆ vsf_pt_raw_entry

#define vsf_pt_raw_entry (   ...)    __vsf_pt_raw_entry_common(__vsf_pt_state(), __VA_ARGS__)

◆ vsf_pt_wait_until

#define vsf_pt_wait_until (   ...)
Value:
__VA_ARGS__ {} else { \
return ; \
}
#define vsf_pt_entry(...)
Definition vsf_pt.h:68
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:721

◆ 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 
)     __vsf_pt_call_sub(vsf_pt_func(__name), (__target))

◆ __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 stddef.h:52
#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)    __implement_vsf_pt(__name)

◆ implement_vsf_pt_ex

#define implement_vsf_pt_ex (   __name,
  __FUNC_NAME 
)     __implement_vsf_pt_ex(__name, __FUNC_NAME)

◆ imp_vsf_pt

#define imp_vsf_pt (   __name)    implement_vsf_pt(__name)

◆ imp_vsf_pt_ex

#define imp_vsf_pt_ex (   __name,
  __FUNC_NAME 
)     implement_vsf_pt_ex(__name, __FUNC_NAME)

◆ __vsf_pt_func

#define __vsf_pt_func (   __name)    __vsf_pt_func_common(__name)

◆ vsf_pt_func

#define vsf_pt_func (   __name)    __vsf_pt_func(__name)

◆ __vsf_pt

#define __vsf_pt (   __name)    __vsf_pt_common(__name)

◆ vsf_pt

#define vsf_pt (   __name)    __vsf_pt(__name)

◆ __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,
  ... 
)    __def_vsf_pt(__name,__VA_ARGS__)

◆ end_def_vsf_pt

#define end_def_vsf_pt (   ...)

◆ define_vsf_pt

#define define_vsf_pt (   __name,
  ... 
)    def_vsf_pt(__name,__VA_ARGS__)

◆ 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)    __declare_vsf_pt(__name)

◆ dcl_vsf_pt

#define dcl_vsf_pt (   __name)    declare_vsf_pt(__name)

◆ __init_vsf_pt

#define __init_vsf_pt (   __name,
  __pt,
  __pri,
  ... 
)
Value:
do { \
.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:755
__vsf_eda_fn_t fn
Definition vsf_eda.h:756
vsf_eda_evthandler_t evthandler
Definition vsf_eda.h:732
vsf_eda_evthandler_t vsf_pt_entry_t
Definition vsf_pt.h:259
#define __vsf_pt_func(__name)
Definition vsf_pt.h:179

◆ 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,
  ... 
)     __init_vsf_pt(__name, __pt, __pri, __VA_ARGS__)

Typedef Documentation

◆ vsf_pt_t

◆ vsf_pt_entry_t