//------------------------------------------------------------------------------ tOplkError eventucal_postKernelEvent(tEvent* pEvent_p) { tOplkError ret; /*TRACE("U2K type:%s(%d) sink:%s(%d) size:%d!\n", debugstr_getEventTypeStr(pEvent_p->eventType), pEvent_p->eventType, debugstr_getEventSinkStr(pEvent_p->eventSink), pEvent_p->eventSink, pEvent_p->eventArgSize);*/ ret = eventucal_postEventCircbuf(kEventQueueU2K, pEvent_p); return ret; }
//------------------------------------------------------------------------------ tOplkError eventucal_postUserEvent(const tEvent* pEvent_p) { tOplkError ret; // Check parameter validity ASSERT(pEvent_p != NULL); ret = eventucal_postEventCircbuf(kEventQueueUInt, pEvent_p); return ret; }
//------------------------------------------------------------------------------ static void* k2uEventFetchThread(void* pArg_p) { UINT8 aEventBuf[sizeof(tEvent) + MAX_EVENT_ARG_SIZE]; tEvent* pEvent = (tEvent*)aEventBuf; INT ret; UNUSED_PARAMETER(pArg_p); while (!instance_l.fStopKernelThread) { ret = ioctl(instance_l.fd, PLK_CMD_GET_EVENT, pEvent); if (ret == 0) { DEBUG_LVL_EVENTU_TRACE("%s() User: got event type:%d(%s) sink:%d(%s)\n", __func__, pEvent->eventType, debugstr_getEventTypeStr(pEvent->eventType), pEvent->eventSink, debugstr_getEventSinkStr(pEvent->eventSink)); if (pEvent->eventArgSize == 0) pEvent->eventArg.pEventArg = NULL; else pEvent->eventArg.pEventArg = (UINT8*)pEvent + sizeof(tEvent); if (eventucal_postEventCircbuf(kEventQueueUInt, pEvent) != kErrorOk) { DEBUG_LVL_ERROR_TRACE("%s(): K2U event is dropped!!\n", __func__); } } else { // Ignore errors from kernel DEBUG_LVL_EVENTU_TRACE("%s(): Error in retrieving kernel to user event!!\n", __func__); } } instance_l.fStopKernelThread = FALSE; return NULL; }