XFusion API v1.3.0
载入中...
搜索中...
未找到
xf_osal_thread.h 文件参考

定义、创建和控制线程函数。 更多...

#include "xf_osal_def.h"
#include "xf_osal_kernel.h"
xf_osal_thread.h 的引用(Include)关系图:

浏览源代码.

结构体

struct  _xf_osal_thread_attr_t
 线程的属性结构。 更多...
 

宏定义

#define __NO_RETURN   __attribute__((__noreturn__))
 
#define XF_OSAL_DETACHED   0x00000000U
 
#define XF_OSAL_JOINABLE   0x00000001U
 
#define XF_OSAL_UNPRIVILEGED   0x00000002U
 
#define XF_OSAL_PRIVIEGED   0x00000004U
 
#define MAX_BITS_TASK_NOTIFY   31U
 FreeRTOS 对接中,用户可用的线程通知位数(bit0 ~ bit30)。
 
#define THREAD_FLAGS_INVALID_BITS   (~((1UL << MAX_BITS_TASK_NOTIFY) - 1U))
 FreeRTOS 对接里,无效(保留)事件位掩码(bit31)。
 

类型定义

typedef enum _xf_osal_priority_t xf_osal_priority_t
 线程优先级。
 
typedef struct _xf_osal_thread_attr_t xf_osal_thread_attr_t
 线程的属性结构。
 
typedef void * xf_osal_thread_t
 线程句柄。
 
typedef void(* xf_osal_thread_func_t) (void *argument)
 线程的入口函数。
 

枚举

enum  _xf_osal_priority_t {
  XF_OSAL_PRIORITY_NONE = 0 , XF_OSAL_PRIORITY_IDLE = 1 , XF_OSAL_PRIORITY_LOW = 8 , XF_OSAL_PRIORITY_LOW1 = 8 + 1 ,
  XF_OSAL_PRIORITY_LOW2 = 8 + 2 , XF_OSAL_PRIORITY_LOW3 = 8 + 3 , XF_OSAL_PRIORITY_LOW4 = 8 + 4 , XF_OSAL_PRIORITY_LOW5 = 8 + 5 ,
  XF_OSAL_PRIORITY_LOW6 = 8 + 6 , XF_OSAL_PRIORITY_LOW7 = 8 + 7 , XF_OSAL_PRIORITY_BELOW_NORMAL = 16 , XF_OSAL_PRIORITY_BELOW_NORMAL1 = 16 + 1 ,
  XF_OSAL_PRIORITY_BELOW_NORMAL2 = 16 + 2 , XF_OSAL_PRIORITY_BELOW_NORMAL3 = 16 + 3 , XF_OSAL_PRIORITY_BELOW_NORMAL4 = 16 + 4 , XF_OSAL_PRIORITY_BELOW_NORMAL5 = 16 + 5 ,
  XF_OSAL_PRIORITY_BELOW_NORMAL6 = 16 + 6 , XF_OSAL_PRIORITY_BELOW_NORMAL7 = 16 + 7 , XF_OSAL_PRIORITY_NORMOL = 24 , XF_OSAL_PRIORITY_NORMOL1 = 24 + 1 ,
  XF_OSAL_PRIORITY_NORMOL2 = 24 + 2 , XF_OSAL_PRIORITY_NORMOL3 = 24 + 3 , XF_OSAL_PRIORITY_NORMOL4 = 24 + 4 , XF_OSAL_PRIORITY_NORMOL5 = 24 + 5 ,
  XF_OSAL_PRIORITY_NORMOL6 = 24 + 6 , XF_OSAL_PRIORITY_NORMOL7 = 24 + 7 , XF_OSAL_PRIORITY_ABOVE_NORMAL = 32 , XF_OSAL_PRIORITY_ABOVE_NORMAL1 = 32 + 1 ,
  XF_OSAL_PRIORITY_ABOVE_NORMAL2 = 32 + 2 , XF_OSAL_PRIORITY_ABOVE_NORMAL3 = 32 + 3 , XF_OSAL_PRIORITY_ABOVE_NORMAL4 = 32 + 4 , XF_OSAL_PRIORITY_ABOVE_NORMAL5 = 32 + 5 ,
  XF_OSAL_PRIORITY_ABOVE_NORMAL6 = 32 + 6 , XF_OSAL_PRIORITY_ABOVE_NORMAL7 = 32 + 7 , XF_OSAL_PRIORITY_HIGH = 40 , XF_OSAL_PRIORITY_HIGH1 = 40 + 1 ,
  XF_OSAL_PRIORITY_HIGH2 = 40 + 2 , XF_OSAL_PRIORITY_HIGH3 = 40 + 3 , XF_OSAL_PRIORITY_HIGH4 = 40 + 4 , XF_OSAL_PRIORITY_HIGH5 = 40 + 5 ,
  XF_OSAL_PRIORITY_HIGH6 = 40 + 6 , XF_OSAL_PRIORITY_HIGH7 = 40 + 7 , XF_OSAL_PRIORITY_REALTIME = 48 , XF_OSAL_PRIORITY_REALTIME1 = 48 + 1 ,
  XF_OSAL_PRIORITY_REALTIME2 = 48 + 2 , XF_OSAL_PRIORITY_REALTIME3 = 48 + 3 , XF_OSAL_PRIORITY_REALTIME4 = 48 + 4 , XF_OSAL_PRIORITY_REALTIME5 = 48 + 5 ,
  XF_OSAL_PRIORITY_REALTIME6 = 48 + 6 , XF_OSAL_PRIORITY_REALTIME7 = 48 + 7 , XF_OSAL_PRIORITY_ISR = 56 , XF_OSAL_PRIORITY_ERROR = -1 ,
  XF_OSAL_PRIORITY_RESERVED = 0x7FFFFFFF
}
 线程优先级。 更多...
 

函数

xf_osal_thread_t xf_osal_thread_create (xf_osal_thread_func_t func, void *argument, const xf_osal_thread_attr_t *attr)
 创建一个线程并将其添加到活动线程中。
 
const char * xf_osal_thread_get_name (xf_osal_thread_t thread)
 获取线程的名称。
 
xf_osal_thread_t xf_osal_thread_get_current (void)
 返回当前正在运行的线程的线程句柄。
 
xf_osal_state_t xf_osal_thread_get_state (xf_osal_thread_t thread)
 获取线程的当前线程状态。
 
uint32_t xf_osal_thread_get_stack_space (xf_osal_thread_t thread)
 根据执行过程中的栈记录获取线程的可用堆栈空间。
 
xf_err_t xf_osal_thread_set_priority (xf_osal_thread_t thread, xf_osal_priority_t priority)
 更改线程的优先级。
 
xf_osal_priority_t xf_osal_thread_get_priority (xf_osal_thread_t thread)
 获取线程的当前优先级。
 
xf_err_t xf_osal_thread_yield (void)
 将控制权传递给处于状态 READY 的下一个线程。
 
xf_err_t xf_osal_thread_suspend (xf_osal_thread_t thread)
 暂停指定线程的执行,使其进入 BLOCKED 状态。
 
xf_err_t xf_osal_thread_resume (xf_osal_thread_t thread)
 恢复线程的执行。
 
xf_err_t xf_osal_thread_delete (xf_osal_thread_t thread)
 终止线程的执行。
 
uint32_t xf_osal_thread_get_count (void)
 获取活动线程的数量。
 
uint32_t xf_osal_thread_enumerate (xf_osal_thread_t *thread_array, uint32_t array_items)
 列出活动线程。
 
xf_err_t xf_osal_thread_notify_set (xf_osal_thread_t thread, uint32_t notify)
 设置线程的指定线程标志。
 
xf_err_t xf_osal_thread_notify_clear (uint32_t notify)
 清除当前运行线程的指定线程标志。
 
uint32_t xf_osal_thread_notify_get (void)
 获取当前正在运行的线程的当前线程标志。
 
xf_err_t xf_osal_thread_notify_wait (uint32_t notify, uint32_t options, uint32_t timeout)
 当前运行线程等待一个或多个线程标志变为有信号状态。
 
xf_err_t xf_osal_delay (uint32_t ticks)
 (睡眠)等待超时。
 
xf_err_t xf_osal_delay_until (uint32_t ticks)
 (睡眠)等到指定时间刻度。
 
xf_err_t xf_osal_delay_ms (uint32_t ms)
 (睡眠)等待超时,以 ms 为单位。
 

详细描述

定义、创建和控制线程函数。

作者
cangyu(sky.k.nosp@m.irto.nosp@m.@qq.c.nosp@m.om)
版本
0.1
日期
2023-12-06

在文件 xf_osal_thread.h 中定义.