12#if XF_OSAL_THREAD_IS_ENABLE || defined(__DOXYGEN__)
14#ifndef __XF_OSAL_THREAD_H__
15#define __XF_OSAL_THREAD_H__
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
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
64#define THREAD_FLAGS_INVALID_BITS (~((1UL << MAX_BITS_TASK_NOTIFY) - 1U))
423 uint32_t notify, uint32_t options, uint32_t timeout);
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_REALTIME3
@ XF_OSAL_PRIORITY_REALTIME1
@ 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_ABOVE_NORMAL4
@ XF_OSAL_PRIORITY_NORMOL2
@ XF_OSAL_PRIORITY_NORMOL1
@ XF_OSAL_PRIORITY_ABOVE_NORMAL7
@ XF_OSAL_PRIORITY_NORMOL6
@ XF_OSAL_PRIORITY_ABOVE_NORMAL1
@ XF_OSAL_PRIORITY_REALTIME
@ XF_OSAL_PRIORITY_ABOVE_NORMAL2
@ XF_OSAL_PRIORITY_BELOW_NORMAL7
@ XF_OSAL_PRIORITY_REALTIME6
@ XF_OSAL_PRIORITY_BELOW_NORMAL3
@ XF_OSAL_PRIORITY_ABOVE_NORMAL5
@ XF_OSAL_PRIORITY_ABOVE_NORMAL
@ XF_OSAL_PRIORITY_BELOW_NORMAL1
@ 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_NORMOL4
@ XF_OSAL_PRIORITY_NORMOL7
@ XF_OSAL_PRIORITY_NORMOL5
@ XF_OSAL_PRIORITY_REALTIME4
int32_t xf_err_t
整形错误类型。 错误码具体值见 xf_err_code_t.
static xf_osal_thread_t thread[2]
xf_osal_priority_t priority