void EsifDataLogStart() { /* write header */ EsifDataLogFire(ESIF_TRUE); g_dataLogQuit = ESIF_FALSE; esif_ccb_event_init(&g_dataLogQuitEvent); esif_ccb_thread_create(&g_dataLogThread, EsifDataLogWorkerThread, NULL); g_dataLogActive = ESIF_TRUE; }
enum esif_rc esif_ccb_timer_kill_w_wait( esif_ccb_timer_t *timer_ptr ) { enum esif_rc rc = ESIF_OK; esif_ccb_event_t kill_event; esif_ccb_event_init(&kill_event); rc = esif_ccb_timer_kill_w_event(timer_ptr, &kill_event); esif_ccb_event_wait(&kill_event); esif_ccb_event_uninit(&kill_event); return rc; }
/* * FUNCTION DEFINITIONS */ eEsifError EsifAct_CreateAction( EsifActIfacePtr actIfacePtr, EsifActPtr *actPtr ) { eEsifError rc = ESIF_OK; EsifActPtr newActPtr = NULL; enum esif_action_type actionType; UInt16 intfcSize = 0; if ((NULL == actIfacePtr) || (NULL == actPtr)){ rc = ESIF_E_PARAMETER_IS_NULL; goto exit; } /* Check EsifActIface */ if (!EsifActIface_IsSupported(actIfacePtr)) { rc = ESIF_E_IFACE_NOT_SUPPORTED; goto exit; } intfcSize = EsifActIface_Sizeof(actIfacePtr->hdr.fIfaceVersion); if (intfcSize != actIfacePtr->hdr.fIfaceSize) { rc = ESIF_E_PARAMETER_IS_OUT_OF_BOUNDS; goto exit; } newActPtr = esif_ccb_malloc(sizeof(*newActPtr)); if (NULL == newActPtr) { rc = ESIF_E_NO_MEMORY; goto exit; } esif_ccb_memcpy(&newActPtr->iface, actIfacePtr, intfcSize); rc = EsifActIface_GetType(actIfacePtr, &actionType); if (rc != ESIF_OK) { goto exit; } newActPtr->type = actionType; newActPtr->refCount = 1; newActPtr->markedForDelete = ESIF_FALSE; esif_ccb_lock_init(&newActPtr->objLock); esif_ccb_event_init(&newActPtr->deleteEvent); rc = EsifAct_CallIfaceCreate(newActPtr); if (rc != ESIF_OK) { goto exit; } rc = EsifAct_RegisterEvents(newActPtr); if (rc != ESIF_OK) { goto exit; } ESIF_TRACE_DEBUG("\n" "Created new action:" " Name : %s\n" " Desc : %s\n" " Type : %d\n" " Version: %u\n", EsifAct_GetName(newActPtr), EsifAct_GetDesc(newActPtr), EsifAct_GetType(newActPtr), EsifAct_GetVersion(newActPtr)); *actPtr = newActPtr; exit: if (rc != ESIF_OK) { EsifAct_DestroyAction(newActPtr); } return rc; }