Lines Matching refs:event

380     struct osi_event *event = osi_calloc(sizeof(struct osi_event));  in osi_event_create()  local
381 if (event != NULL) { in osi_event_create()
382 if (osi_mutex_new(&event->lock) == 0) { in osi_event_create()
383 event->item.func = func; in osi_event_create()
384 event->item.context = context; in osi_event_create()
385 return event; in osi_event_create()
387 osi_free(event); in osi_event_create()
393 void osi_event_delete(struct osi_event* event) in osi_event_delete() argument
395 if (event != NULL) { in osi_event_delete()
396 osi_mutex_free(&event->lock); in osi_event_delete()
397 memset(event, 0, sizeof(struct osi_event)); in osi_event_delete()
398 osi_free(event); in osi_event_delete()
402 bool osi_event_bind(struct osi_event* event, osi_thread_t *thread, int queue_idx) in osi_event_bind() argument
404 if (event == NULL || event->thread != NULL) { in osi_event_bind()
412 event->thread = thread; in osi_event_bind()
413 event->queue_idx = queue_idx; in osi_event_bind()
420 struct osi_event *event = (struct osi_event *)context; in osi_thread_generic_event_handler() local
421 if (event != NULL && event->item.func != NULL) { in osi_thread_generic_event_handler()
422 osi_mutex_lock(&event->lock, OSI_MUTEX_MAX_TIMEOUT); in osi_thread_generic_event_handler()
423 event->is_queued = 0; in osi_thread_generic_event_handler()
424 osi_mutex_unlock(&event->lock); in osi_thread_generic_event_handler()
425 event->item.func(event->item.context); in osi_thread_generic_event_handler()
429 bool osi_thread_post_event(struct osi_event *event, uint32_t timeout) in osi_thread_post_event() argument
431 assert(event != NULL && event->thread != NULL); in osi_thread_post_event()
432 assert(event->queue_idx >= 0 && event->queue_idx < event->thread->work_queue_num); in osi_thread_post_event()
434 if (event->is_queued == 0) { in osi_thread_post_event()
436 osi_mutex_lock(&event->lock, OSI_MUTEX_MAX_TIMEOUT); in osi_thread_post_event()
437 event->is_queued += 1; in osi_thread_post_event()
438 acquire_cnt = event->is_queued; in osi_thread_post_event()
439 osi_mutex_unlock(&event->lock); in osi_thread_post_event()
442 …ret = osi_thread_post(event->thread, osi_thread_generic_event_handler, event, event->queue_idx, ti… in osi_thread_post_event()
445 osi_mutex_lock(&event->lock, OSI_MUTEX_MAX_TIMEOUT); in osi_thread_post_event()
446 event->is_queued = 0; in osi_thread_post_event()
447 osi_mutex_unlock(&event->lock); in osi_thread_post_event()