XFusion API v1.3.0
载入中...
搜索中...
未找到
xf_task_kernel.h
浏览该文件的文档.
1
12#ifndef __XF_TASK_KERNEL_H__
13#define __XF_TASK_KERNEL_H__
14
15/* ==================== [Includes] ========================================== */
16
17#include "xf_task_manager.h"
18
28#ifdef __cplusplus
29extern "C" {
30#endif
31
32/* ==================== [Defines] =========================================== */
33
34/* ==================== [Typedefs] ========================================== */
35
41typedef void (*xf_task_func_t)(xf_task_t task);
42
54
58typedef enum _xf_task_type_t {
60#define XF_TASK_REG_ENUM
61#include "../task/xf_task_reg.inc"
64
65/* ==================== [Global Prototypes] ================================= */
66
79 void *func_arg, uint16_t priority, void *config);
80
87
94
102
110
118
119#if XF_TASK_HUNGER_IS_ENABLE
120
127void xf_task_feel_hungery_enable(xf_task_t task, uint32_t hunger_time);
128
135
136#endif // XF_TASK_HUNGER_IS_ENABLE
137
150
163
173
181
189
197
207xf_err_t xf_task_set_priority(xf_task_t task, uint16_t priority);
208
219xf_err_t xf_task_set_delay(xf_task_t task, uint32_t delay_ms);
220
232
233#if XF_TASK_USER_DATA_IS_ENABLE
234
245
253
254#endif // XF_TASK_USER_DATA_IS_ENABLE
255
256/* ==================== [Macros] ============================================ */
257
258#ifdef __cplusplus
259} /* extern "C" */
260#endif
261
267#endif // __XF_TASK_KERNEL_H__
int32_t xf_err_t
整形错误类型。 错误码具体值见 xf_err_code_t.
Definition xf_err.h:69
static void task(xf_task_t task)
Definition xf_main.c:45
void(* xf_task_func_t)(xf_task_t task)
任务调用函数原型。
xf_err_t xf_task_set_user_data(xf_task_t task, void *user_data)
设置当前任务的 user_data。
xf_err_t xf_task_set_delay(xf_task_t task, uint32_t delay_ms)
设置任务的延时。
xf_err_t xf_task_set_priority(xf_task_t task, uint16_t priority)
设置当前任务的优先级。
xf_err_t xf_task_suspend(xf_task_t task)
任务进入挂起。挂起态的任务不会参与调度。
_xf_task_state_t
任务状态枚举。
@ XF_TASK_STATE_SUSPEND
@ XF_TASK_STATE_DELETE
@ XF_TASK_STATE_READY
@ XF_TASK_STATE_RUNNING
@ _XF_TASK_STATE_NONE
@ XF_TASK_STATE_BLOCKED
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)
在指定任务管理器下创建任务。
xf_task_state_t xf_task_get_state(xf_task_t task)
获取当前任务的状态。
enum _xf_task_type_t xf_task_type_t
任务类型,通过注册表 xf_task_reg.inc 生成相关的内容。
void xf_task_reset(xf_task_t task)
任务重置。将任务的一些参数进行重置。
uint16_t xf_task_get_priority(xf_task_t task)
获取当前任务的优先级。
xf_err_t xf_task_set_func(xf_task_t task, xf_task_func_t func, void *arg)
设置当前任务的执行函数(某些种类任务可能不适用)。
enum _xf_task_state_t xf_task_state_t
任务状态枚举。
_xf_task_type_t
任务类型,通过注册表 xf_task_reg.inc 生成相关的内容。
@ _XF_TASK_TYPE_MAX
@ _XF_TASK_TYPE_NONE
xf_task_manager_t xf_task_get_manager(xf_task_t task)
从任务获取管理器对象。
void xf_task_feel_hungery_enable(xf_task_t task, uint32_t hunger_time)
启用任务感受饥饿的功能。
xf_err_t xf_task_trigger(xf_task_t task)
任务触发。无论是否到达唤醒时间,都会触发。
void * xf_task_get_arg(xf_task_t task)
从任务对象获取任务自定义参数。
void xf_task_feel_hungery_disable(xf_task_t task)
禁用任务感受饥饿功能。
void * xf_task_get_user_data(xf_task_t task)
获取当前任务的 user_data。
xf_task_type_t xf_task_get_type(xf_task_t task)
获取当前任务类型。
void xf_task_delete(xf_task_t task)
任务删除函数。将任务加入销毁队列,并设置任务为删除态。
xf_err_t xf_task_resume(xf_task_t task)
任务从挂起中恢复,进入调度。
int32_t xf_task_get_timeout(xf_task_t task)
获取任务的超时时间。
任务管理器。
void * xf_task_manager_t
任务管理器句柄。
void * xf_task_t
任务句柄。