?? jwl-gtf_mbox.c
字號:
?
+
/********************************************************************************************************
* JWL-GTF *
* 實時多任務操作系統 *
* *
* 作者:JWL-GTF *
* 日期:2004/04/12 *
* 修改日期:2004/04/12 *
* *
* 功能說明:消息郵箱詳細功能 *
*********************************************************************************************************/
/********************************************************************************************************
* jwl_gtf_MBoxCtrlInit *
* 描述:系統初始化消息郵箱控制結構 *
* 參數: 無 *
* 返回: jwl_gtf_void *
*********************************************************************************************************/
jwl_gtf_void jwl_gtf_MBoxCtrlInit()
{
jwl_gtf_MBContrl.jwl_gtf_Rev=jwl_gtf_NULL;
jwl_gtf_MBContrl.jwl_gtf_SndDate=jwl_gtf_NULL;
jwl_gtf_MBContrl.jwl_gtf_PublicInfo=jwl_gtf_NULL;
jwl_gtf_MBWait=jwl_gtf_NULL;
jwl_gtf_MBDataWait=jwl_gtf_NULL;
return;
}
/********************************************************************************************************
* jwl_gtf_MBoxFreeInit() *
* 描述:消息郵箱空鏈表連接 *
* 參數: 無 *
* 返回: jwl_gtf_void *
*********************************************************************************************************/
#define _jwl_gtf_BuildFreeLinkInit(MBox,jwl_gtf_MaxMBData)
/********************************************************************************************************
* jwl_gtf_AppMBox() *
* 描述:消息郵箱空間申請 *
* 參數: 無 *
* 返回: jwl_gtf_MBData *
*********************************************************************************************************/
jwl_gtf_MBData *jwl_gtf_AppMBox()
{
jwl_gtf_MBData *tmpMBox;
if(jwl_gtf_MBoxFree==jwl_gtf_NULL)
return jwl_gtf_NULL;
tmpMBox=jwl_gtf_MBoxFree;
if(jwl_gtf_MBoxFree=jwl_gtf_MBox->jwl_gtf_Link->Next!=jwl_gtf_NULL)
jwl_gtf_MBoxFree->jwl_gtf_Link->Pre=jwl_gtf_MBoxFree;
return tmpMBox;
}
/********************************************************************************************************
* jwl_gtf_DestryMBox() *
* 描述:消息郵箱空間釋放 *
* 參數: 無 *
* 返回: 參看JWL-GTF.h *
*********************************************************************************************************/
jwl_gtf_s8 jwl_gtf_DestryMBox()
{
jwl_gtf_MBData *tmpMBData;
if(tmpMBData=jwl_gtf_TaskRun->jwl_gtf_MBData==jwl_gtf_NULL)
return jwl_gtf_TaskNoMBox;
if(tmpMBData->jwl_gtf_Link->Pre==tmpMBData) /*是否在頭*/
{
if(tmpMBData->jwl_gtf_Link->Pre=tmpMBData->jwl_gtf_Link->Nenxt!=jwl_gtf_NULL) /*不是在尾*/
tmpMBData->jwl_gtf_Link->Pre->jwl_gtf_Link->Pre=tmpMBData->jwl_gtf_Link->Pre;
}
else if(tmpMBData->jwl_gtf_Link->Next=jwl_gtf_NULL) /*尾*/
tmpMBData->jwl_gtf_Link->Pre->jwl_gtf_Link->Next=jwl_gtf_NULL
else /*中間*/
{
tmpMBData->jwl_gtf_Link->Pre->jwl_gtf_Link->Next=tmpMBData->\
jwl_gtf_Link->jwl_gtf_Link->Next;
tmpMBData->jwl_gtf_Link->Next->jwl_gtf_Link->Pre=tmpMBData->\
jwl_gtf_Link->jwl_gtf_Link->Pre;
}
if(jwl_gtf_MBoxFree==jwl_gtf_NULL)
{
jwl_gtf_MBoxFree=tmpMBData;
jwl_gtf_MBoxFree->jwl_gtf_Link->Pre=jwl_gtf_MBoxFree;
tmpMBData->jwl_gtf_Link->Next=jwl_gtf_NULL;
}
else
{
jwl_gtf_MBoxFree->jwl_gtf_Link->Pre=tmpMBData;
tmpMBData->jwl_gtf_Link->Next=jwl_gtf_MBoxFree;
jwl_gtf_MBoxFree=tmpMBData;
tmpMBData->jwl_gtf_Link->Pre=jwl_gtf_MBoxFree;
}
jwl_gtf_TaskRun->jwl_gtf_TaskStatus=jwl_gtf_TaskRun->jwl_gtf_TaskStatus&(!jwl_gtf_MBox);
return jwl_gtf_Noerror;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -