XFusion API v1.3.0
载入中...
搜索中...
未找到
xf_osal_thread.h
浏览该文件的文档.
1
12#if XF_OSAL_THREAD_IS_ENABLE || defined(__DOXYGEN__)
13
14#ifndef __XF_OSAL_THREAD_H__
15#define __XF_OSAL_THREAD_H__
16
17/* ==================== [Includes] ========================================== */
18
19#include "xf_osal_def.h"
20#include "xf_osal_kernel.h"
21
31#ifdef __cplusplus
32extern "C" {
33#endif
34
35/* ==================== [Defines] =========================================== */
36
37#ifndef __NO_RETURN
38# if defined(__CC_ARM)
39# define __NO_RETURN __declspec(noreturn)
40# elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
41# define __NO_RETURN __attribute__((__noreturn__))
42# elif defined(__GNUC__)
43# define __NO_RETURN __attribute__((__noreturn__))
44# elif defined(__ICCARM__)
45# define __NO_RETURN __noreturn
46# else
47# define __NO_RETURN
48# endif
49#endif
50
51#define XF_OSAL_DETACHED 0x00000000U
52#define XF_OSAL_JOINABLE 0x00000001U
53#define XF_OSAL_UNPRIVILEGED 0x00000002U
54#define XF_OSAL_PRIVIEGED 0x00000004U
59#define MAX_BITS_TASK_NOTIFY 31U
60
64#define THREAD_FLAGS_INVALID_BITS (~((1UL << MAX_BITS_TASK_NOTIFY) - 1U))
65
66/* ==================== [Typedefs] ========================================== */
67
76typedef enum _xf_osal_priority_t {
129 XF_OSAL_PRIORITY_RESERVED = 0x7FFFFFFF
131
155
159typedef void *xf_osal_thread_t;
160
164typedef void (*xf_osal_thread_func_t)(void *argument);
165
166/* ==================== [Global Prototypes] ================================= */
167
186 xf_osal_thread_func_t func, void *argument, const xf_osal_thread_attr_t *attr);
187
197
208
218
228
245
257
273
292
320
336
347
361 xf_osal_thread_t *thread_array, uint32_t array_items);
362
379
393
402
423 uint32_t notify, uint32_t options, uint32_t timeout);
424
439xf_err_t xf_osal_delay(uint32_t ticks);
440
456
472
473/* ==================== [Macros] ============================================ */
474
475#ifdef __cplusplus
476} /* extern "C" */
477#endif
478
484#endif // __XF_OSAL_THREAD_H__
485
486#endif // XF_OSAL_THREAD_IS_ENABLE
enum _xf_osal_state_t xf_osal_state_t
线程状态或内核状态。
uint32_t xf_osal_thread_get_stack_space(xf_osal_thread_t thread)
根据执行过程中的栈记录获取线程的可用堆栈空间。
xf_err_t xf_osal_thread_delete(xf_osal_thread_t thread)
终止线程的执行。
xf_osal_thread_t xf_osal_thread_get_current(void)
返回当前正在运行的线程的线程句柄。
xf_err_t xf_osal_delay(uint32_t ticks)
(睡眠)等待超时。
const char * xf_osal_thread_get_name(xf_osal_thread_t thread)
获取线程的名称。
struct _xf_osal_thread_attr_t xf_osal_thread_attr_t
线程的属性结构。
xf_osal_thread_t xf_osal_thread_create(xf_osal_thread_func_t func, void *argument, const xf_osal_thread_attr_t *attr)
创建一个线程并将其添加到活动线程中。
xf_err_t xf_osal_delay_until(uint32_t ticks)
(睡眠)等到指定时间刻度。
xf_err_t xf_osal_thread_suspend(xf_osal_thread_t thread)
暂停指定线程的执行,使其进入 BLOCKED 状态。
enum _xf_osal_priority_t xf_osal_priority_t
线程优先级。
uint32_t xf_osal_thread_notify_get(void)
获取当前正在运行的线程的当前线程标志。
uint32_t xf_osal_thread_enumerate(xf_osal_thread_t *thread_array, uint32_t array_items)
列出活动线程。
uint32_t xf_osal_thread_get_count(void)
获取活动线程的数量。
xf_err_t xf_osal_thread_yield(void)
将控制权传递给处于状态 READY 的下一个线程。
void(* xf_osal_thread_func_t)(void *argument)
线程的入口函数。
void * xf_osal_thread_t
线程句柄。
xf_err_t xf_osal_delay_ms(uint32_t ms)
(睡眠)等待超时,以 ms 为单位。
xf_osal_state_t xf_osal_thread_get_state(xf_osal_thread_t thread)
获取线程的当前线程状态。
xf_err_t xf_osal_thread_resume(xf_osal_thread_t thread)
恢复线程的执行。
xf_osal_priority_t xf_osal_thread_get_priority(xf_osal_thread_t thread)
获取线程的当前优先级。
xf_err_t xf_osal_thread_notify_clear(uint32_t notify)
清除当前运行线程的指定线程标志。
xf_err_t xf_osal_thread_notify_wait(uint32_t notify, uint32_t options, uint32_t timeout)
当前运行线程等待一个或多个线程标志变为有信号状态。
xf_err_t xf_osal_thread_set_priority(xf_osal_thread_t thread, xf_osal_priority_t priority)
更改线程的优先级。
_xf_osal_priority_t
线程优先级。
xf_err_t xf_osal_thread_notify_set(xf_osal_thread_t thread, uint32_t notify)
设置线程的指定线程标志。
@ XF_OSAL_PRIORITY_ABOVE_NORMAL3
@ XF_OSAL_PRIORITY_RESERVED
@ XF_OSAL_PRIORITY_HIGH3
@ XF_OSAL_PRIORITY_REALTIME3
@ XF_OSAL_PRIORITY_REALTIME1
@ XF_OSAL_PRIORITY_ERROR
@ XF_OSAL_PRIORITY_HIGH4
@ XF_OSAL_PRIORITY_LOW4
@ XF_OSAL_PRIORITY_LOW6
@ XF_OSAL_PRIORITY_NONE
@ XF_OSAL_PRIORITY_ABOVE_NORMAL6
@ XF_OSAL_PRIORITY_NORMOL
@ XF_OSAL_PRIORITY_BELOW_NORMAL
@ XF_OSAL_PRIORITY_BELOW_NORMAL2
@ XF_OSAL_PRIORITY_BELOW_NORMAL6
@ XF_OSAL_PRIORITY_HIGH2
@ XF_OSAL_PRIORITY_LOW3
@ XF_OSAL_PRIORITY_ABOVE_NORMAL4
@ XF_OSAL_PRIORITY_HIGH5
@ XF_OSAL_PRIORITY_NORMOL2
@ XF_OSAL_PRIORITY_LOW5
@ XF_OSAL_PRIORITY_NORMOL1
@ XF_OSAL_PRIORITY_ABOVE_NORMAL7
@ XF_OSAL_PRIORITY_NORMOL6
@ XF_OSAL_PRIORITY_ABOVE_NORMAL1
@ XF_OSAL_PRIORITY_LOW2
@ XF_OSAL_PRIORITY_REALTIME
@ XF_OSAL_PRIORITY_ABOVE_NORMAL2
@ XF_OSAL_PRIORITY_BELOW_NORMAL7
@ XF_OSAL_PRIORITY_HIGH7
@ XF_OSAL_PRIORITY_LOW7
@ XF_OSAL_PRIORITY_REALTIME6
@ XF_OSAL_PRIORITY_IDLE
@ XF_OSAL_PRIORITY_ISR
@ XF_OSAL_PRIORITY_BELOW_NORMAL3
@ XF_OSAL_PRIORITY_LOW1
@ XF_OSAL_PRIORITY_ABOVE_NORMAL5
@ XF_OSAL_PRIORITY_HIGH
@ XF_OSAL_PRIORITY_ABOVE_NORMAL
@ XF_OSAL_PRIORITY_BELOW_NORMAL1
@ XF_OSAL_PRIORITY_HIGH1
@ XF_OSAL_PRIORITY_NORMOL3
@ XF_OSAL_PRIORITY_BELOW_NORMAL4
@ XF_OSAL_PRIORITY_REALTIME7
@ XF_OSAL_PRIORITY_REALTIME5
@ XF_OSAL_PRIORITY_REALTIME2
@ XF_OSAL_PRIORITY_BELOW_NORMAL5
@ XF_OSAL_PRIORITY_LOW
@ XF_OSAL_PRIORITY_HIGH6
@ XF_OSAL_PRIORITY_NORMOL4
@ XF_OSAL_PRIORITY_NORMOL7
@ XF_OSAL_PRIORITY_NORMOL5
@ XF_OSAL_PRIORITY_REALTIME4
int32_t xf_err_t
整形错误类型。 错误码具体值见 xf_err_code_t.
Definition xf_err.h:69
static xf_osal_thread_t thread[2]
Definition xf_main.c:43
线程的属性结构。
xf_osal_priority_t priority
xf_osal 内部公共定义、函数、数据。
调度器内核控制。