Go to the source code of this file.
|
| #define | __vsf_task_func(__name) |
| |
| #define | vsf_task_func(__name) |
| |
| #define | __vsf_task(__name) |
| |
| #define | vsf_task(__name) |
| |
| #define | __implement_vsf_task(__name) |
| |
| #define | vsf_task_begin() |
| |
| #define | vsf_task_end() |
| |
| #define | vsf_task_state (vsf_this.fsm_state) |
| |
| #define | implement_vsf_task(__name) |
| |
| #define | imp_vsf_task(__name) |
| |
| #define | vsf_task_start vsf_teda_start |
| |
| #define | __def_vsf_task(__name, ...) |
| |
| #define | def_vsf_task(__name, ...) |
| |
| #define | define_vsf_task(__name, ...) |
| |
| #define | end_def_vsf_task(...) |
| |
| #define | end_define_vsf_task(...) |
| |
| #define | __declare_vsf_task(__name) |
| |
| #define | declare_vsf_task(__name) |
| |
| #define | dcl_vsf_task(__name) |
| |
| #define | prepare_vsf_task(__name, __task) |
| |
| #define | prp_vsf_task(__name, __task) |
| |
| #define | __init_vsf_task(__name, __task, __pri, ...) |
| |
| #define | init_vsf_task(__name, __task, __pri, ...) |
| |
| #define | vsf_task_call_task(__name, __target, ...) |
| |
| #define | vsf_task_call_sub(__name, __target, ...) |
| |
| #define | vsf_eda_call_task vsf_task_call_task |
| |
| #define | vsf_task_call_pt(__name, __target) |
| |
| #define | on_vsf_task_init() |
| |
| #define | on_vsf_task_fini() |
| |
| #define | on_vsf_task_evt(__evt) |
| |
| #define | vsf_task_wait_until(...) |
| |
◆ __vsf_task_func
| #define __vsf_task_func |
( |
| __name | ) |
|
Value:
#define __name
Definition hci_transport_aic8800.c:555
◆ vsf_task_func
| #define vsf_task_func |
( |
| __name | ) |
|
Value:
#define __vsf_task_func(__name)
Definition vsf_task.h:39
◆ __vsf_task
◆ vsf_task
Value:
#define __vsf_task(__name)
Definition vsf_task.h:42
◆ __implement_vsf_task
| #define __implement_vsf_task |
( |
| __name | ) |
|
Value:
{ \
vsf_task(
__name) *vsf_pthis = \
uint32_t uintptr_t
Definition stdint.h:38
int16_t vsf_evt_t
Definition vsf_eda.h:654
fsm_rt_t
Definition vsf_fsm.h:315
#define vsf_task_func(__name)
Definition vsf_task.h:40
#define vsf_task(__name)
Definition vsf_task.h:43
◆ vsf_task_begin
| #define vsf_task_begin |
( |
| ) |
|
◆ vsf_task_end
Value:
@ fsm_rt_on_going
fsm on-going
Definition vsf_fsm.h:318
◆ vsf_task_state
| #define vsf_task_state (vsf_this.fsm_state) |
◆ implement_vsf_task
| #define implement_vsf_task |
( |
| __name | ) |
|
Value:
#define __implement_vsf_task(__name)
Definition vsf_task.h:46
◆ imp_vsf_task
| #define imp_vsf_task |
( |
| __name | ) |
|
Value:
#define implement_vsf_task(__name)
Definition vsf_task.h:73
◆ vsf_task_start
◆ __def_vsf_task
| #define __def_vsf_task |
( |
| __name, |
|
|
| ... ) |
Value:
__VA_ARGS__ \
}; \
implement_ex(task_cb_##
__name, param); \
}; \
unsigned char uint8_t
Definition stdint.h:5
◆ def_vsf_task
| #define def_vsf_task |
( |
| __name, |
|
|
| ... ) |
Value:
#define __def_vsf_task(__name,...)
Definition vsf_task.h:83
◆ define_vsf_task
| #define define_vsf_task |
( |
| __name, |
|
|
| ... ) |
Value:
#define def_vsf_task(__name,...)
Definition vsf_task.h:108
◆ end_def_vsf_task
| #define end_def_vsf_task |
( |
| ... | ) |
|
◆ end_define_vsf_task
| #define end_define_vsf_task |
( |
| ... | ) |
|
◆ __declare_vsf_task
| #define __declare_vsf_task |
( |
| __name | ) |
|
◆ declare_vsf_task
| #define declare_vsf_task |
( |
| __name | ) |
|
Value:
#define __declare_vsf_task(__name)
Definition vsf_task.h:113
◆ dcl_vsf_task
| #define dcl_vsf_task |
( |
| __name | ) |
|
Value:
#define declare_vsf_task(__name)
Definition vsf_task.h:117
◆ prepare_vsf_task
| #define prepare_vsf_task |
( |
| __name, |
|
|
| __task ) |
Value: do {(__task)->fsm_state = 0; } while(0)
◆ prp_vsf_task
| #define prp_vsf_task |
( |
| __name, |
|
|
| __task ) |
Value:
#define prepare_vsf_task(__name, __task)
Definition vsf_task.h:120
◆ __init_vsf_task
| #define __init_vsf_task |
( |
| __name, |
|
|
| __task, |
|
|
| __pri, |
|
|
| ... ) |
Value: do { \
.priority = (__pri), \
.feature.is_subcall_has_return_value = true, \
__VA_ARGS__ \
}; \
prepare_vsf_task(
__name, &((__task)->param)); \
vsf_task_start(&((__task)->use_as__vsf_task_t), \
} while(0)
#define VSF_MACRO_SAFE_NAME(__NAME)
Definition vsf_preprocessor.h:32
◆ init_vsf_task
| #define init_vsf_task |
( |
| __name, |
|
|
| __task, |
|
|
| __pri, |
|
|
| ... ) |
Value:
#define __init_vsf_task(__name, __task, __pri,...)
Definition vsf_task.h:126
◆ vsf_task_call_task
| #define vsf_task_call_task |
( |
| __name, |
|
|
| __target, |
|
|
| ... ) |
Value:
fsm_rt_t(* vsf_task_entry_t)(uintptr_t target, vsf_evt_t evt)
Definition vsf_task.h:241
fsm_rt_t __vsf_eda_call_task(vsf_task_entry_t entry, uintptr_t param, size_t local_size)
Definition vsf_task.c:49
◆ vsf_task_call_sub
| #define vsf_task_call_sub |
( |
| __name, |
|
|
| __target, |
|
|
| ... ) |
Value:
(__target), \
(0, ##__VA_ARGS))) { \
}
@ VSF_ERR_NONE
none error
Definition __type.h:44
vsf_err_t __vsf_eda_call_eda(uintptr_t evthandler, uintptr_t param, size_t local_size)
Definition vsf_eda.c:730
◆ vsf_eda_call_task
◆ vsf_task_call_pt
| #define vsf_task_call_pt |
( |
| __name, |
|
|
| __target ) |
Value:
#define vsf_pt_func(__name)
Definition vsf_pt.h:180
#define vsf_task_call_sub(__name, __target,...)
Definition vsf_task.h:165
◆ on_vsf_task_init
| #define on_vsf_task_init |
( |
| ) |
|
Value:
@ VSF_EVT_INIT
Definition vsf_eda.h:605
◆ on_vsf_task_fini
| #define on_vsf_task_fini |
( |
| ) |
|
Value:
@ VSF_EVT_FINI
Definition vsf_eda.h:606
◆ on_vsf_task_evt
| #define on_vsf_task_evt |
( |
| __evt | ) |
|
◆ vsf_task_wait_until
| #define vsf_task_wait_until |
( |
| ... | ) |
|
Value: __VA_ARGS__ {} else { \
}
@ fsm_rt_wait_for_evt
Definition __type.h:80
- Note
- IMPORTANT For anything you want to wait, which is coming from vsf system, you can use vsf_task_wait_until() optionally. Those includues: VSF_EVT_XXXXX, semaphore, mutex and etc.
For VSF_EVT_XXXX, please use: vsf_task_wait_until( on_vsf_task_evt(VSF_EVT_XXXXX) ) ;
For semaphore, please use:
vsf_task_wait_until( vsf_sem_pend(...) ) ;
For time, please use:
vsf_task_wait_until( vsf_delay(...) ) ;
◆ vsf_task_t
◆ vsf_task_entry_t
◆ __vsf_eda_call_task()
- 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().