Lines Matching full:co
562 Coroutine *co = QSLIST_FIRST(&reversed); in co_schedule_bh_cb() local
564 QSLIST_INSERT_HEAD(&straight, co, co_scheduled_next); in co_schedule_bh_cb()
568 Coroutine *co = QSLIST_FIRST(&straight); in co_schedule_bh_cb() local
570 trace_aio_co_schedule_bh_cb(ctx, co); in co_schedule_bh_cb()
573 qatomic_set(&co->scheduled, NULL); in co_schedule_bh_cb()
574 qemu_aio_coroutine_enter(ctx, co); in co_schedule_bh_cb()
632 void aio_co_schedule(AioContext *ctx, Coroutine *co) in aio_co_schedule() argument
634 trace_aio_co_schedule(ctx, co); in aio_co_schedule()
635 const char *scheduled = qatomic_cmpxchg(&co->scheduled, NULL, in aio_co_schedule()
640 "%s: Co-routine was already scheduled in '%s'\n", in aio_co_schedule()
652 co, co_scheduled_next); in aio_co_schedule()
659 Coroutine *co; member
666 aio_co_schedule(data->new_ctx, data->co); in aio_co_reschedule_self_bh()
675 .co = qemu_coroutine_self(), in aio_co_reschedule_self()
688 void aio_co_wake(Coroutine *co) in aio_co_wake() argument
692 /* Read coroutine before co->ctx. Matches smp_wmb in in aio_co_wake()
696 ctx = qatomic_read(&co->ctx); in aio_co_wake()
698 aio_co_enter(ctx, co); in aio_co_wake()
701 void aio_co_enter(AioContext *ctx, Coroutine *co) in aio_co_enter() argument
704 aio_co_schedule(ctx, co); in aio_co_enter()
710 assert(self != co); in aio_co_enter()
711 QSIMPLEQ_INSERT_TAIL(&self->co_queue_wakeup, co, co_queue_next); in aio_co_enter()
713 qemu_aio_coroutine_enter(ctx, co); in aio_co_enter()