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