?? jwl-gtf_tcb.h
字號(hào):
/********************************************************************************************************
* JWL-GTF *
* 實(shí)時(shí)多任務(wù)操作系統(tǒng) *
* *
* 作者:JWL-GTF *
* 日期:2004/03/18 *
* 修改日期:2004/04/01 *
* *
* 功能說(shuō)明:任務(wù)的相關(guān)塊的定義 *
*********************************************************************************************************/
#include "JWL-GTF.H"
/*調(diào)度器是否調(diào)度*/
jwl_gtf_u8 jwl_gtf_TaskSchEnable; /*為0則調(diào)度,否則不能調(diào)度*/
/*任務(wù)ID號(hào)*/
jwl_gtf_u16 jwl_gtf_IDNext; /*下一個(gè)任務(wù)ID號(hào)*/
/*最大任務(wù)數(shù)*/
jwl_gtf_u16 jwl_gtf_Task_Max=jwl_gtf_MaxTask; /*最大任務(wù)數(shù)*/
/*任務(wù)是否可相同的優(yōu)先級(jí)*/
#define jwl_gtf_SchPolicy jwl_gtf_BitSchEnable /*調(diào)度策略*/
/*同優(yōu)先級(jí)任務(wù)處理方式*/
#if jwl_gtf_SchPolicy==jwl_gtf_MulSchEnable
jwl_gtf_bool jwl_gtf_MulSchMethod=jwl_gtf_TaskFIFO; /*相優(yōu)先級(jí)任務(wù)處理規(guī)則*/
#endif
/*超時(shí)時(shí)間相同等待方式*/
bool_gtf_bool jwl_gtf_TaskWaitMethod=jwl_gtf_TaskWaitFIFO; /*等待方式*/
/*所有無(wú)事件被掛任務(wù)是否可以取消*/
#define jwl_gtf_ResumeAllTask jwl_gtf_True /*可以取消*/
/*JWL-GTF 任務(wù)塊*/
typedef struct
{
jwl_gtf_u16 jwl_gtf_TaskName[jwl_gtf_NameMaxLen]; /*任務(wù)名字長(zhǎng)度*/
jwl_gtf_u8 jwl_gtf_TaskID; /*任務(wù)ID號(hào),是由系統(tǒng)分配,且唯一的*/
jwl_gtf_u8 jwl_gtf_TaskPro; /*任務(wù)優(yōu)先級(jí)*/
jwl_gtf_bool jwl_gtf_TaskStatus; /*任務(wù)狀態(tài)*/
jwl_gtf_u16 jwl_gtf_TimeOut; /*超時(shí)時(shí)間*/
jwl_gtf_s8 jwl_gtf_RetCode; /*喚醒時(shí)返回碼*/
#if jwl_gtf_SchPolicy==jwl_gtf_MulSchEnable
jwl_gtf_u16 jwl_gtf_MulTaskC; /*同優(yōu)先級(jí)運(yùn)行時(shí)間計(jì)數(shù)*/
jwl_gtf_List *jwl_gtf_SameProiLink; /*同優(yōu)先級(jí)鏈表指針*/
#endif
jwl_gtf_List *jwl_gtf_Link; /*所有任務(wù)鏈接指針,按優(yōu)先級(jí)的高低順序排列*/
jwl_gtf_List *jwl_gtf_WaitTLink; /*超時(shí)鏈表*/
#if jwl_gtf_ResumeAllTask==jwl_gtf_True
jwl_gtf_List *jwl_gtf_HupUpLink; /*非事件掛起隊(duì)列指針*/
#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; /*信號(hào)量指針*/
#endif
jwl_gtf_void (*jwl_gtf_task)(jwl_gtf_void *); /*進(jìn)程入口函數(shù)*/
jwl_gtf_void *jwl_gtf_param; /*進(jìn)程入口參數(shù),沒(méi)有參數(shù)為jwl_gtf_NULL*/
jwl_gtf_void *jwl_gtf_PrivateDate; /*任務(wù)私有數(shù)據(jù)指針*/
jwl_gtf_reg *jwl_gtf_Taskstack; /*任務(wù)堆棧*/
}jwl_gtf_TaskCB;
/*空閑態(tài)任務(wù)指針*/
jwl_gtf_TaskCB *jwl_gtf_TaskFree; /*空閑態(tài)鏈表指針*/
/*當(dāng)前運(yùn)行任務(wù)指針*/
jwl_gtf_TaskCB *jwl_gtf_TaskRun; /*運(yùn)行任務(wù)指針*/
/*優(yōu)先級(jí)任務(wù)指針*/
jwl_gtf_TaskCB *jwl_gtf_TaskRDFirst; /*態(tài)鏈表指針頭*/
jwl_gtf_TaskCB *jwl_gtf_TaskRDMiddle; /*態(tài)鏈表中間指針*/
jwl_gtf_TaskCB *jwl_gtf_TaskRDLast; /*態(tài)鏈表尾部指針*/
/*就緒態(tài)線程數(shù)目*/
jwl_gtf_u8 jwl_gtf_ReadyCounter; /*就緒態(tài)計(jì)數(shù),在jwl_gtf_TaskRDMiddle前插入加1,否則減1*/
#if jwl_gtf_ResumeAllTask==jwl_gtf_True
/*強(qiáng)制掛起鏈表*/
jwl_gtf_TaskCB *jwl_gtf_HupLink; /*強(qiáng)制掛起,不是事件掛起*/
#endif
/*超時(shí)鏈表*/
jwl_gtf_TaskCB *jwl_gtf_TOutLink; /*超時(shí)鏈表*/
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -