📄 cxmsack.c
字号:
/*********************************************************
Copyright (c) CMX Company. 1999. All rights reserved
*********************************************************/
/* version 5.30 */
#define CMXMODULE 1
#include <cxfuncs.h> /* get cmx include header file */
#include <cxextern.h> /* get cmx include header file */
#ifdef CMXTRACKER
#include <cmxtrack.h> /* get cmx include header file */
#endif
/*****************************************************************
This function allows a task that recieved a message to go wake
the task that sent this message, if the task is waiting for an
acknowledgement.
*****************************************************************/
byte K_Mesg_Ack_Sender(void)
{
K_I_Disable_Sched(); /* set task block. */
if (activetcb->mesg_sender) /* see if message was sent by a task. */
{
/* see if the task that sent message waiting for acknowledgement. */
if (activetcb->mesg_sender->tcbstate & SEND_MESG)
{
activetcb->mesg_sender->tcbstate = RESUME; /* yes, wake task. */
/* see if this task has a higher priority, then current running task. */
if (activetcb->mesg_sender->priority < active_priority)
PREEMPTED; /* yes, so set the preempted scheduling flag */
#ifdef CMXTRACKER
if (CMXTRACKER_ON)
{
cmxtracker_in2(CXMSACK_K_OK,(byte)(activetcb->mesg_sender - cmx_tcb));
}
#endif
}
}
K_I_Func_Return(); /* release task block. */
return(K_OK); /* always return good status */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -