📄 jwl-gtf_tcb.h
字号:
/********************************************************************************************************
* JWL-GTF *
* 实时多任务操作系统 *
* *
* 作者:JWL-GTF *
* 日期:2004/03/18 *
* 修改日期:2004/04/01 *
* *
* 功能说明:任务的相关块的定义 *
*********************************************************************************************************/
#include "JWL-GTF.H"
/*调度器是否调度*/
jwl_gtf_u8 jwl_gtf_TaskSchEnable; /*为0则调度,否则不能调度*/
/*任务ID号*/
jwl_gtf_u16 jwl_gtf_IDNext; /*下一个任务ID号*/
/*最大任务数*/
jwl_gtf_u16 jwl_gtf_Task_Max=jwl_gtf_MaxTask; /*最大任务数*/
/*任务是否可相同的优先级*/
#define jwl_gtf_SchPolicy jwl_gtf_BitSchEnable /*调度策略*/
/*同优先级任务处理方式*/
#if jwl_gtf_SchPolicy==jwl_gtf_MulSchEnable
jwl_gtf_bool jwl_gtf_MulSchMethod=jwl_gtf_TaskFIFO; /*相优先级任务处理规则*/
#endif
/*超时时间相同等待方式*/
bool_gtf_bool jwl_gtf_TaskWaitMethod=jwl_gtf_TaskWaitFIFO; /*等待方式*/
/*所有无事件被挂任务是否可以取消*/
#define jwl_gtf_ResumeAllTask jwl_gtf_True /*可以取消*/
/*JWL-GTF 任务块*/
typedef struct
{
jwl_gtf_u16 jwl_gtf_TaskName[jwl_gtf_NameMaxLen]; /*任务名字长度*/
jwl_gtf_u8 jwl_gtf_TaskID; /*任务ID号,是由系统分配,且唯一的*/
jwl_gtf_u8 jwl_gtf_TaskPro; /*任务优先级*/
jwl_gtf_bool jwl_gtf_TaskStatus; /*任务状态*/
jwl_gtf_u16 jwl_gtf_TimeOut; /*超时时间*/
jwl_gtf_s8 jwl_gtf_RetCode; /*唤醒时返回码*/
#if jwl_gtf_SchPolicy==jwl_gtf_MulSchEnable
jwl_gtf_u16 jwl_gtf_MulTaskC; /*同优先级运行时间计数*/
jwl_gtf_List *jwl_gtf_SameProiLink; /*同优先级链表指针*/
#endif
jwl_gtf_List *jwl_gtf_Link; /*所有任务链接指针,按优先级的高低顺序排列*/
jwl_gtf_List *jwl_gtf_WaitTLink; /*超时链表*/
#if jwl_gtf_ResumeAllTask==jwl_gtf_True
jwl_gtf_List *jwl_gtf_HupUpLink; /*非事件挂起队列指针*/
#endif
#if Mutex||ConVar
jwl_gtf_List *jwl_gtf_EvenLink; /*事件链表*/
#endif
#if Mutex
jwl_gtf_Mutex *jwl_gtf_Mutex; /*互斥指针*/
#endif
#if ConVar
jwl_gtf_ConVar *jwl_gtf_ConVar; /*信号量指针*/
#endif
jwl_gtf_void (*jwl_gtf_task)(jwl_gtf_void *); /*进程入口函数*/
jwl_gtf_void *jwl_gtf_param; /*进程入口参数,没有参数为jwl_gtf_NULL*/
jwl_gtf_void *jwl_gtf_PrivateDate; /*任务私有数据指针*/
jwl_gtf_reg *jwl_gtf_Taskstack; /*任务堆栈*/
}jwl_gtf_TaskCB;
/*空闲态任务指针*/
jwl_gtf_TaskCB *jwl_gtf_TaskFree; /*空闲态链表指针*/
/*当前运行任务指针*/
jwl_gtf_TaskCB *jwl_gtf_TaskRun; /*运行任务指针*/
/*优先级任务指针*/
jwl_gtf_TaskCB *jwl_gtf_TaskRDFirst; /*态链表指针头*/
jwl_gtf_TaskCB *jwl_gtf_TaskRDMiddle; /*态链表中间指针*/
jwl_gtf_TaskCB *jwl_gtf_TaskRDLast; /*态链表尾部指针*/
/*就绪态线程数目*/
jwl_gtf_u8 jwl_gtf_ReadyCounter; /*就绪态计数,在jwl_gtf_TaskRDMiddle前插入加1,否则减1*/
#if jwl_gtf_ResumeAllTask==jwl_gtf_True
/*强制挂起链表*/
jwl_gtf_TaskCB *jwl_gtf_HupLink; /*强制挂起,不是事件挂起*/
#endif
/*超时链表*/
jwl_gtf_TaskCB *jwl_gtf_TOutLink; /*超时链表*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -