예제 #1
0
int OSA_tskCheckMsg(OSA_TskHndl *pPrc, OSA_MsgHndl **pMsg)
{
  int retVal;

  retVal = OSA_mbxCheckMsg(&pPrc->mbxHndl, pMsg);

  return retVal;
}
예제 #2
0
int OSA_mbxFlush(OSA_MbxHndl *pMbxHndl)
{
  int retVal;
  OSA_MsgHndl *pMsg;

  // flush receive mailbox
  do {
    retVal = OSA_mbxCheckMsg(pMbxHndl, &pMsg);
    if(retVal==OSA_SOK) {
      OSA_mbxAckOrFreeMsg(pMsg, OSA_SOK);
    }
  }while(retVal==OSA_SOK);

  // flush ACK mailbox
  do {
    retVal = OSA_msgqRecvMsg(&pMbxHndl->ackMbx, &pMsg, OSA_TIMEOUT_NONE);
    if(retVal==OSA_SOK) {
      OSA_mbxFreeMsg(pMsg);
    }
  } while(retVal==OSA_SOK);

  return retVal;
}