更新日期: 2022/06/01 来源: https://gitee.com/weharmony/kernel_liteos_a_note
TagTaskCB结构体 参考

#include <los_sched_pri.h>

成员变量

VOID * stackPointer
 
UINT16 taskStatus
 
UINT64 startTime
 
UINT64 waitTime
 
UINT64 irqStartTime
 
UINT32 irqUsedTime
 
INT32 timeSlice
 
SortLinkList sortList
 
const SchedOpsops
 
SchedPolicy sp
 
UINT32 stackSize
 
UINTPTR topOfStack
 
UINT32 taskID
 
TSK_ENTRY_FUNC taskEntry
 
VOID * joinRetval
 
VOID * taskMux
 
VOID * taskEvent
 
UINTPTR args [4]
 
CHAR taskName [OS_TCB_NAME_LEN]
 
LOS_DL_LIST pendList
 
LOS_DL_LIST threadList
 
UINT32 eventMask
 
UINT32 eventMode
 
OsCpupBase taskCpup
 
INT32 errorNo
 
UINT32 signal
 
sig_cb sig
 信号控制块,用于异步通信,类似于 linux singal模块 更多...
 
UINT16 currCpu
 
UINT16 lastCpu
 
UINT16 cpuAffiMask
 
UINT32 syncSignal
 
LockDep lockDep
 死锁依赖检测 更多...
 
SchedStat schedStat
 
UINTPTR archMmu
 
UINTPTR userArea
 用户空间的堆区开始位置 更多...
 
UINTPTR userMapBase
 用户空间的栈顶位置,内存来自用户空间,和topOfStack有本质的区别. 更多...
 
UINT32 userMapSize
 
FutexNode futex
 指明任务在等待哪把快锁,一次只等一锁,锁和任务的关系是(1:N)关系 更多...
 
UINT32 processID
 
LOS_DL_LIST joinList
 
LOS_DL_LIST lockList
 
UINTPTR waitID
 
UINT16 waitFlag
 
IpcTaskInfoipcTaskInfo
 任务间通讯信息结构体 更多...
 
UINTPTR pc
 pc寄存器 更多...
 
UINTPTR fp
 fp寄存器 更多...
 

详细描述

在文件 los_sched_pri.h360 行定义.

结构体成员变量说明

◆ archMmu

UINTPTR TagTaskCB::archMmu

在文件 los_sched_pri.h407 行定义.

◆ args

UINTPTR TagTaskCB::args[4]

Parameter, of which the maximum number is 4 | 入口函数的参数 例如 main (int argc,char *argv[])

在文件 los_sched_pri.h380 行定义.

◆ cpuAffiMask

UINT16 TagTaskCB::cpuAffiMask

CPU affinity mask, support up to 16 cores | CPU亲和力掩码,最多支持16核,亲和力很重要,多核情况下尽量一个任务在一个CPU核上运行,提高效率

在文件 los_sched_pri.h395 行定义.

◆ currCpu

UINT16 TagTaskCB::currCpu

CPU core number of this task is running on | 正在运行此任务的CPU内核号

在文件 los_sched_pri.h393 行定义.

◆ errorNo

INT32 TagTaskCB::errorNo

Error Num | 错误序号

在文件 los_sched_pri.h389 行定义.

◆ eventMask

UINT32 TagTaskCB::eventMask

Event mask | 任务对哪些事件进行屏蔽

在文件 los_sched_pri.h384 行定义.

◆ eventMode

UINT32 TagTaskCB::eventMode

Event mode | 事件三种模式(LOS_WAITMODE_AND,LOS_WAITMODE_OR,LOS_WAITMODE_CLR)

在文件 los_sched_pri.h385 行定义.

◆ fp

UINTPTR TagTaskCB::fp

fp寄存器

在文件 los_sched_pri.h425 行定义.

◆ futex

FutexNode TagTaskCB::futex

指明任务在等待哪把快锁,一次只等一锁,锁和任务的关系是(1:N)关系

在文件 los_sched_pri.h411 行定义.

◆ ipcTaskInfo

IpcTaskInfo* TagTaskCB::ipcTaskInfo

任务间通讯信息结构体

在文件 los_sched_pri.h421 行定义.

◆ irqStartTime

UINT64 TagTaskCB::irqStartTime

Interrupt start time | 任务中断开始时间

在文件 los_sched_pri.h366 行定义.

◆ irqUsedTime

UINT32 TagTaskCB::irqUsedTime

Interrupt consumption time | 任务中断消耗时间

在文件 los_sched_pri.h367 行定义.

◆ joinList

LOS_DL_LIST TagTaskCB::joinList

join list | 联结链表,允许任务之间相互释放彼此

在文件 los_sched_pri.h414 行定义.

◆ joinRetval

VOID* TagTaskCB::joinRetval

pthread adaption | 用来存储join线程的入口地址

在文件 los_sched_pri.h377 行定义.

◆ lastCpu

UINT16 TagTaskCB::lastCpu

CPU core number of this task is running on last time | 上次运行此任务的CPU内核号

在文件 los_sched_pri.h394 行定义.

◆ lockDep

LockDep TagTaskCB::lockDep

死锁依赖检测

在文件 los_sched_pri.h400 行定义.

◆ lockList

LOS_DL_LIST TagTaskCB::lockList

Hold the lock list | 该链表上挂的都是已持有的锁

在文件 los_sched_pri.h415 行定义.

◆ ops

const SchedOps* TagTaskCB::ops

在文件 los_sched_pri.h370 行定义.

◆ pc

UINTPTR TagTaskCB::pc

pc寄存器

在文件 los_sched_pri.h424 行定义.

◆ pendList

LOS_DL_LIST TagTaskCB::pendList

Task pend node | 如果任务阻塞时就通过它挂到各种阻塞情况的链表上,比如OsTaskWait时

在文件 los_sched_pri.h382 行定义.

◆ processID

UINT32 TagTaskCB::processID

Which belong process

在文件 los_sched_pri.h413 行定义.

◆ schedStat

SchedStat TagTaskCB::schedStat

Schedule statistics | 调度统计

在文件 los_sched_pri.h404 行定义.

◆ sig

sig_cb TagTaskCB::sig

信号控制块,用于异步通信,类似于 linux singal模块

在文件 los_sched_pri.h391 行定义.

◆ signal

UINT32 TagTaskCB::signal

Task signal | 任务信号类型,(SIGNAL_NONE,SIGNAL_KILL,SIGNAL_SUSPEND,SIGNAL_AFFI)

在文件 los_sched_pri.h390 行定义.

◆ sortList

SortLinkList TagTaskCB::sortList

Task sortlink node | 跟CPU捆绑的任务排序链表节点,上面挂的是就绪队列的下一个阶段,进入CPU要执行的任务队列

在文件 los_sched_pri.h369 行定义.

◆ sp

SchedPolicy TagTaskCB::sp

在文件 los_sched_pri.h371 行定义.

◆ stackPointer

VOID* TagTaskCB::stackPointer

Task stack pointer | 内核栈指针位置(SP)

在文件 los_sched_pri.h361 行定义.

◆ stackSize

UINT32 TagTaskCB::stackSize

Task stack size | 内核态栈大小,内存来自内核空间

在文件 los_sched_pri.h373 行定义.

◆ startTime

UINT64 TagTaskCB::startTime

The start time of each phase of task | 任务开始时间

在文件 los_sched_pri.h364 行定义.

◆ syncSignal

UINT32 TagTaskCB::syncSignal

Synchronization for signal handling | 用于CPU之间同步信号量

在文件 los_sched_pri.h397 行定义.

◆ taskCpup

OsCpupBase TagTaskCB::taskCpup

task cpu usage | CPU 使用统计

在文件 los_sched_pri.h387 行定义.

◆ taskEntry

TSK_ENTRY_FUNC TagTaskCB::taskEntry

Task entrance function | 任务执行入口地址

在文件 los_sched_pri.h376 行定义.

◆ taskEvent

VOID* TagTaskCB::taskEvent

Task-held event | task在等哪个事件

在文件 los_sched_pri.h379 行定义.

◆ taskID

UINT32 TagTaskCB::taskID

Task ID | 任务ID,任务池本质是一个大数组,ID就是数组的索引,默认 < 128

在文件 los_sched_pri.h375 行定义.

◆ taskMux

VOID* TagTaskCB::taskMux

Task-held mutex | task在等哪把锁

在文件 los_sched_pri.h378 行定义.

◆ taskName

CHAR TagTaskCB::taskName[OS_TCB_NAME_LEN]

Task name | 任务的名称

在文件 los_sched_pri.h381 行定义.

◆ taskStatus

UINT16 TagTaskCB::taskStatus

Task status | 各种状态标签,可以拥有多种标签,按位标识

在文件 los_sched_pri.h362 行定义.

◆ threadList

LOS_DL_LIST TagTaskCB::threadList

thread list | 挂到所属进程的线程链表上

在文件 los_sched_pri.h383 行定义.

◆ timeSlice

INT32 TagTaskCB::timeSlice

Task remaining time slice | 任务剩余时间片

在文件 los_sched_pri.h368 行定义.

◆ topOfStack

UINTPTR TagTaskCB::topOfStack

Task stack top | 内核态栈顶 bottom = top + size

在文件 los_sched_pri.h374 行定义.

◆ userArea

UINTPTR TagTaskCB::userArea

用户空间的堆区开始位置

在文件 los_sched_pri.h408 行定义.

◆ userMapBase

UINTPTR TagTaskCB::userMapBase

用户空间的栈顶位置,内存来自用户空间,和topOfStack有本质的区别.

在文件 los_sched_pri.h409 行定义.

◆ userMapSize

UINT32 TagTaskCB::userMapSize

user thread stack size ,real size : userMapSize + USER_STACK_MIN_SIZE | 用户栈大小

在文件 los_sched_pri.h410 行定义.

◆ waitFlag

UINT16 TagTaskCB::waitFlag

The type of child process that is waiting, belonging to a group or parent, a specific child process, or any child process | 任务在等待什么信息 ? (OS_TASK_WAIT_PROCESS | OS_TASK_WAIT_GID | OS_TASK_WAIT_LITEIPC ..) 往往用于被其他任务查看该任务在等待什么事件,如果事件到了就可以唤醒任务

在文件 los_sched_pri.h417 行定义.

◆ waitID

UINTPTR TagTaskCB::waitID

Wait for the PID or GID of the child process | 等待子进程的PID或GID

在文件 los_sched_pri.h416 行定义.

◆ waitTime

UINT64 TagTaskCB::waitTime

Task delay time, tick number | 设置任务调度延期时间

在文件 los_sched_pri.h365 行定义.


该结构体的文档由以下文件生成: