/** * Handler for messageq unblock API. * * \param ctp Thread's associated context information. * \param msg The actual devctl() message. * \param ocb OCB associated with client's session. * * \return POSIX errno value. * * \retval EOK Success. * \retval ENOTSUP Unsupported devctl(). */ int syslink_messageq_unblock(resmgr_context_t *ctp, io_devctl_t *msg, syslink_ocb_t *ocb) { MessageQDrv_CmdArgs * cargs = (MessageQDrv_CmdArgs *) (_DEVCTL_DATA (msg->i)); MessageQ_unblock (cargs->args.unblock.handle); cargs->apiStatus = MessageQ_S_SUCCESS; return (_RESMGR_PTR (ctp, &msg->o, sizeof (msg->o) + sizeof(MessageQDrv_CmdArgs))); }
Int32 System_ipcMsgQTskDelete() { Int32 status; /* unblock task */ MessageQ_unblock(gSystem_ipcObj.selfMsgQ); /* wait for command to be received and task to be exited */ OSA_waitMsecs(10); OSA_thrDelete(&gSystem_ipcObj.msgQTask); status = OSA_mutexDelete ( &gSystem_ipcObj.msgQLock ); UTILS_assert(status==OSA_SOK); return OSA_SOK; }