Lines Matching refs:ev

57         osevent_hook_pre_##nexusop(gc, ev, nexi, &ev->nexus);            \
61 osevent_hook_failed_##nexusop(gc, ev, nexi, &ev->nexus); \
109 void *ev; member
117 return nexus->ev; in osevent_ev_from_hook_nexus()
124 nexus->ev = 0; in osevent_release_nexus()
129 static void osevent_hook_pre_alloc(libxl__gc *gc, void *ev, in osevent_hook_pre_alloc() argument
139 nexus->ev = ev; in osevent_hook_pre_alloc()
142 static void osevent_hook_failed_alloc(libxl__gc *gc, void *ev, in osevent_hook_failed_alloc() argument
150 static void osevent_hook_pre_release(libxl__gc *gc, void *ev, in osevent_hook_pre_release() argument
156 static void osevent_hook_failed_release(libxl__gc *gc, void *ev, in osevent_hook_failed_release() argument
164 static void osevent_hook_pre_noop(libxl__gc *gc, void *ev, in osevent_hook_pre_noop() argument
167 static void osevent_hook_failed_noop(libxl__gc *gc, void *ev, in osevent_hook_failed_noop() argument
176 int libxl__ev_fd_register(libxl__gc *gc, libxl__ev_fd *ev, in libxl__ev_fd_register() argument
186 DBG("ev_fd=%p register fd=%d events=%x", ev, fd, events); in libxl__ev_fd_register()
188 rc = OSEVENT_HOOK(fd,register, alloc, fd, &ev->nexus->for_app_reg, in libxl__ev_fd_register()
189 events, ev->nexus); in libxl__ev_fd_register()
192 ev->fd = fd; in libxl__ev_fd_register()
193 ev->events = events; in libxl__ev_fd_register()
194 ev->func = func; in libxl__ev_fd_register()
196 LIBXL_LIST_INSERT_HEAD(&CTX->efds, ev, entry); in libxl__ev_fd_register()
205 int libxl__ev_fd_modify(libxl__gc *gc, libxl__ev_fd *ev, short events) in libxl__ev_fd_modify() argument
210 assert(libxl__ev_fd_isregistered(ev)); in libxl__ev_fd_modify()
212 DBG("ev_fd=%p modify fd=%d events=%x", ev, ev->fd, events); in libxl__ev_fd_modify()
214 rc = OSEVENT_HOOK(fd,modify, noop, ev->fd, &ev->nexus->for_app_reg, events); in libxl__ev_fd_modify()
217 ev->events = events; in libxl__ev_fd_modify()
225 void libxl__ev_fd_deregister(libxl__gc *gc, libxl__ev_fd *ev) in libxl__ev_fd_deregister() argument
230 if (!libxl__ev_fd_isregistered(ev)) { in libxl__ev_fd_deregister()
231 DBG("ev_fd=%p deregister unregistered",ev); in libxl__ev_fd_deregister()
235 DBG("ev_fd=%p deregister fd=%d", ev, ev->fd); in libxl__ev_fd_deregister()
237 OSEVENT_HOOK_VOID(fd,deregister, release, ev->fd, ev->nexus->for_app_reg); in libxl__ev_fd_deregister()
238 LIBXL_LIST_REMOVE(ev, entry); in libxl__ev_fd_deregister()
239 ev->fd = -1; in libxl__ev_fd_deregister()
302 static int time_register_finite(libxl__gc *gc, libxl__ev_time *ev, in time_register_finite() argument
308 rc = OSEVENT_HOOK(timeout,register, alloc, &ev->nexus->for_app_reg, in time_register_finite()
309 absolute, ev->nexus); in time_register_finite()
312 ev->infinite = 0; in time_register_finite()
313 ev->abs = absolute; in time_register_finite()
314 LIBXL_TAILQ_INSERT_SORTED(&CTX->etimes, entry, ev, evsearch, /*empty*/, in time_register_finite()
315 timercmp(&ev->abs, &evsearch->abs, >)); in time_register_finite()
320 static void time_deregister(libxl__gc *gc, libxl__ev_time *ev) in time_deregister() argument
322 libxl__ao_abortable_deregister(&ev->abrt); in time_deregister()
324 if (!ev->infinite) { in time_deregister()
326 if (ev->nexus) /* only set if app provided hooks */ in time_deregister()
327 ev->nexus->ev = 0; in time_deregister()
330 &ev->nexus->for_app_reg, right_away); in time_deregister()
331 LIBXL_TAILQ_REMOVE(&CTX->etimes, ev, entry); in time_deregister()
336 libxl__ev_time *ev, int rc) in time_done_debug() argument
341 ev, rc, ev->func, ev->infinite, in time_done_debug()
342 (unsigned long)ev->abs.tv_sec, (unsigned long)ev->abs.tv_usec); in time_done_debug()
348 libxl__ev_time *ev = CONTAINER_OF(abrt, *ev, abrt); in time_aborted() local
351 time_deregister(gc, ev); in time_aborted()
352 DBG("ev_time=%p aborted", ev); in time_aborted()
353 ev->func(egc, ev, &ev->abs, rc); in time_aborted()
356 static int time_register_abortable(libxl__ao *ao, libxl__ev_time *ev) in time_register_abortable() argument
358 ev->abrt.ao = ao; in time_register_abortable()
359 ev->abrt.callback = time_aborted; in time_register_abortable()
360 return libxl__ao_abortable_register(&ev->abrt); in time_register_abortable()
363 int libxl__ev_time_register_abs(libxl__ao *ao, libxl__ev_time *ev, in libxl__ev_time_register_abs() argument
373 ev, (unsigned long)absolute.tv_sec, (unsigned long)absolute.tv_usec); in libxl__ev_time_register_abs()
375 rc = time_register_abortable(ao, ev); in libxl__ev_time_register_abs()
378 rc = time_register_finite(gc, ev, absolute); in libxl__ev_time_register_abs()
381 ev->func = func; in libxl__ev_time_register_abs()
385 libxl__ao_abortable_deregister(&ev->abrt); in libxl__ev_time_register_abs()
386 time_done_debug(gc,__func__,ev,rc); in libxl__ev_time_register_abs()
392 int libxl__ev_time_register_rel(libxl__ao *ao, libxl__ev_time *ev, in libxl__ev_time_register_rel() argument
402 DBG("ev_time=%p register ms=%d", ev, milliseconds); in libxl__ev_time_register_rel()
404 rc = time_register_abortable(ao, ev); in libxl__ev_time_register_rel()
408 ev->infinite = 1; in libxl__ev_time_register_rel()
413 rc = time_register_finite(gc, ev, absolute); in libxl__ev_time_register_rel()
417 ev->func = func; in libxl__ev_time_register_rel()
421 if (!libxl__ev_time_isregistered(ev)) in libxl__ev_time_register_rel()
422 libxl__ao_abortable_deregister(&ev->abrt); in libxl__ev_time_register_rel()
423 time_done_debug(gc,__func__,ev,rc); in libxl__ev_time_register_rel()
428 void libxl__ev_time_deregister(libxl__gc *gc, libxl__ev_time *ev) in libxl__ev_time_deregister() argument
432 DBG("ev_time=%p deregister", ev); in libxl__ev_time_deregister()
434 if (!libxl__ev_time_isregistered(ev)) in libxl__ev_time_deregister()
437 time_deregister(gc, ev); in libxl__ev_time_deregister()
438 ev->func = 0; in libxl__ev_time_deregister()
441 time_done_debug(gc,__func__,ev,0); in libxl__ev_time_deregister()
503 static void watchfd_callback(libxl__egc *egc, libxl__ev_fd *ev, in watchfd_callback() argument
716 static void evtchn_fd_callback(libxl__egc *egc, libxl__ev_fd *ev, in evtchn_fd_callback() argument
1325 libxl__ev_fd *ev = osevent_ev_from_hook_nexus(ctx, for_libxl); in libxl_osevent_occurred_fd() local
1326 if (!ev) goto out; in libxl_osevent_occurred_fd()
1327 if (ev->fd != fd) goto out; in libxl_osevent_occurred_fd()
1329 fd_occurs(egc, ev, revents_ign); in libxl_osevent_occurred_fd()
1343 libxl__ev_time *ev = osevent_ev_from_hook_nexus(ctx, nexus); in libxl_osevent_occurred_timeout() local
1347 if (!ev) goto out; in libxl_osevent_occurred_timeout()
1348 assert(!ev->infinite); in libxl_osevent_occurred_timeout()
1350 LIBXL_TAILQ_REMOVE(&CTX->etimes, ev, entry); in libxl_osevent_occurred_timeout()
1352 time_occurs(egc, ev, ERROR_TIMEDOUT); in libxl_osevent_occurred_timeout()
1392 libxl_event *ev, *ev_tmp; in egc_run_callbacks() local
1395 LIBXL_TAILQ_FOREACH_SAFE(ev, &egc->occurred_for_callback, link, ev_tmp) { in egc_run_callbacks()
1396 LIBXL_TAILQ_REMOVE(&egc->occurred_for_callback, ev, link); in egc_run_callbacks()
1398 ev, libxl_event_type_to_string(ev->type)); in egc_run_callbacks()
1399 CTX->event_hooks->event_occurs(CTX->event_hooks_user, ev); in egc_run_callbacks()
1405 aop->how->callback(CTX, aop->ev, aop->how->for_callback); in egc_run_callbacks()
1478 libxl_event *ev; in libxl__event_new() local
1480 ev = libxl__zalloc(NOGC,sizeof(*ev)); in libxl__event_new()
1482 libxl_event_init(ev); in libxl__event_new()
1483 libxl_event_init_type(ev, type); in libxl__event_new()
1485 ev->domid = domid; in libxl__event_new()
1486 ev->for_user = for_user; in libxl__event_new()
1488 return ev; in libxl__event_new()
1496 libxl_event *ev; in event_check_internal() local
1499 LIBXL_TAILQ_FOREACH(ev, &CTX->occurred, link) { in event_check_internal()
1500 if (!(typemask & ((uint64_t)1 << ev->type))) in event_check_internal()
1503 if (pred && !pred(ev, pred_user)) in event_check_internal()
1507 LIBXL_TAILQ_REMOVE(&CTX->occurred, ev, link); in event_check_internal()
1508 *event_r = ev; in event_check_internal()
1911 libxl_event *ev; in libxl__ao_complete_check_progress_reports() local
1912 ev = NEW_EVENT(egc, OPERATION_COMPLETE, ao->domid, ao->how.u.for_event); in libxl__ao_complete_check_progress_reports()
1913 if (ev) { in libxl__ao_complete_check_progress_reports()
1914 ev->u.operation_complete.rc = ao->rc; in libxl__ao_complete_check_progress_reports()
1915 libxl__event_occurred(egc, ev); in libxl__ao_complete_check_progress_reports()
2168 (libxl_ctx *ctx, libxl_event *ev, void *for_callback) { } in dummy_asyncprogress_callback_ignore() argument
2179 const libxl_asyncprogress_how *how, libxl_event *ev) in libxl__ao_progress_report() argument
2185 libxl_event_free(CTX,ev); in libxl__ao_progress_report()
2191 aop->ev = ev; in libxl__ao_progress_report()
2197 ao, ev, libxl_event_type_to_string(ev->type)); in libxl__ao_progress_report()
2198 libxl__event_occurred(egc, ev); in libxl__ao_progress_report()