XFusion API v1.3.0
载入中...
搜索中...
未找到
xf_ctask.h
浏览该文件的文档.
1
12#ifndef __XF_CTASK_H__
13#define __XF_CTASK_H__
14
15/* ==================== [Includes] ========================================== */
16
17#include "../kernel/xf_task_kernel.h"
18
28#if XF_TASK_CONTEXT_IS_ENABLE
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
34/* ==================== [Defines] =========================================== */
35
40#define XF_TASK_TYPE_CTASK XF_TASK_TYPE_ctask
41
42/* ==================== [Typedefs] ========================================== */
43
47typedef void *xf_ctask_queue_t;
48
55
56/* ==================== [Global Prototypes] ================================= */
57
68static inline
70 xf_task_manager_t manager, xf_task_func_t func, void *func_arg,
71 uint16_t priority, size_t stack_size)
72{
73 xf_ctask_config_t config = {.stack_size = stack_size};
74 return xf_task_create_with_manager(manager, XF_TASK_TYPE_CTASK, func, func_arg, priority, &config);
75}
76
83void xf_ctask_delay_with_manager(xf_task_manager_t manager, uint32_t delay_ms);
84
94 xf_task_manager_t manager, const size_t size, const size_t count);
95
109xf_err_t xf_ctask_queue_send(xf_ctask_queue_t queue, void *buffer, uint32_t timeout);
110
124xf_err_t xf_ctask_queue_receive(xf_ctask_queue_t queue, void *buffer, uint32_t timeout);
125
126/* ==================== [Macros] ============================================ */
127
128#ifdef __cplusplus
129} /* extern "C" */
130#endif
131
132#endif // XF_TASK_CONTEXT_IS_ENABLE
133
139#endif // __XF_TASK_CONTEXT_H__
void xf_ctask_delay_with_manager(xf_task_manager_t manager, uint32_t delay_ms)
ctask 专用 delay 函数,在 ctask 中才能使用。不会影响调度器。
Definition xf_ctask.c:70
xf_err_t xf_ctask_queue_receive(xf_ctask_queue_t queue, void *buffer, uint32_t timeout)
消息队列接收。
Definition xf_ctask.c:173
struct _xf_ctask_config_t xf_ctask_config_t
ctask 的传入参数。
xf_err_t xf_ctask_queue_send(xf_ctask_queue_t queue, void *buffer, uint32_t timeout)
消息队列发送。
Definition xf_ctask.c:123
#define XF_TASK_TYPE_CTASK
ctask 类型值。 XF_TASK_TYPE_ctask 通过 xf_task_reg.inc 拼接而来。
Definition xf_ctask.h:40
xf_ctask_queue_t xf_ctask_queue_create_with_manager(xf_task_manager_t manager, const size_t size, const size_t count)
创建 ctask 的消息队列。此消息队列仅供 ctask 使用。
Definition xf_ctask.c:89
void * xf_ctask_queue_t
ctask 任务队列句柄。
Definition xf_ctask.h:47
static xf_task_t xf_ctask_create_with_manager(xf_task_manager_t manager, xf_task_func_t func, void *func_arg, uint16_t priority, size_t stack_size)
在指定的任务管理器中创建 ctask。
Definition xf_ctask.h:69
int32_t xf_err_t
整形错误类型。 错误码具体值见 xf_err_code_t.
Definition xf_err.h:69
static xf_osal_queue_t queue
Definition xf_main.c:35
ctask 的传入参数。
Definition xf_ctask.h:52
xf_task_t xf_task_create_with_manager(xf_task_manager_t manager, xf_task_type_t type, xf_task_func_t func, void *func_arg, uint16_t priority, void *config)
在指定任务管理器下创建任务。
void(* xf_task_func_t)(xf_task_t task)
任务调用函数原型。
void * xf_task_manager_t
任务管理器句柄。
void * xf_task_t
任务句柄。