?? 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 + -