int libxl_domain_resume(libxl_ctx *ctx, uint32_t domid, int suspend_cancel, const libxl_asyncop_how *ao_how) { AO_CREATE(ctx, domid, ao_how); int rc = libxl__domain_resume(gc, domid, suspend_cancel); libxl__ao_complete(egc, ao, rc); return AO_INPROGRESS; }
static void domain_create_cb(libxl__egc *egc, libxl__domain_create_state *dcs, int rc, uint32_t domid) { libxl__app_domain_create_state *cdcs = CONTAINER_OF(dcs, *cdcs, dcs); STATE_AO_GC(cdcs->dcs.ao); if (!rc) *cdcs->domid_out = domid; libxl__ao_complete(egc, ao, rc); }
static void occurs(libxl__egc *egc, libxl__ev_time *ev, const struct timeval *requested_abs) { EGC_GC; int i; int off = ev - &et[0][0]; LOG(DEBUG,"occurs[%d][%d] seq=%d", off/NTIMES, off%NTIMES, seq); switch (seq) { case 0: assert(ev == &et[0][1]); libxl__ev_time_deregister(gc, &et[0][0]); libxl__ev_time_deregister(gc, &et[0][2]); regs(gc, 1); libxl__ev_time_deregister(gc, &et[0][1]); break; case 1: case 2: assert(ev == &et[1][seq-1]); break; case 3: assert(ev == &et[1][2]); for (i=0; i<NTIMES; i++) { assert(!libxl__ev_time_isregistered(&et[0][i])); assert(!libxl__ev_time_isregistered(&et[1][i])); } libxl__ao_complete(egc, tao, 0); return; default: abort(); } seq++; }