Lines Matching full:co
559 Coroutine *co = QSLIST_FIRST(&reversed); in co_schedule_bh_cb() local
561 QSLIST_INSERT_HEAD(&straight, co, co_scheduled_next); in co_schedule_bh_cb()
565 Coroutine *co = QSLIST_FIRST(&straight); in co_schedule_bh_cb() local
567 trace_aio_co_schedule_bh_cb(ctx, co); in co_schedule_bh_cb()
570 qatomic_set(&co->scheduled, NULL); in co_schedule_bh_cb()
571 qemu_aio_coroutine_enter(ctx, co); in co_schedule_bh_cb()
630 void aio_co_schedule(AioContext *ctx, Coroutine *co) in aio_co_schedule() argument
632 trace_aio_co_schedule(ctx, co); in aio_co_schedule()
633 const char *scheduled = qatomic_cmpxchg(&co->scheduled, NULL, in aio_co_schedule()
638 "%s: Co-routine was already scheduled in '%s'\n", in aio_co_schedule()
650 co, co_scheduled_next); in aio_co_schedule()
657 Coroutine *co; member
664 aio_co_schedule(data->new_ctx, data->co); in aio_co_reschedule_self_bh()
673 .co = qemu_coroutine_self(), in aio_co_reschedule_self()
686 void aio_co_wake(Coroutine *co) in aio_co_wake() argument
690 /* Read coroutine before co->ctx. Matches smp_wmb in in aio_co_wake()
694 ctx = qatomic_read(&co->ctx); in aio_co_wake()
696 aio_co_enter(ctx, co); in aio_co_wake()
699 void aio_co_enter(AioContext *ctx, Coroutine *co) in aio_co_enter() argument
702 aio_co_schedule(ctx, co); in aio_co_enter()
708 assert(self != co); in aio_co_enter()
709 QSIMPLEQ_INSERT_TAIL(&self->co_queue_wakeup, co, co_queue_next); in aio_co_enter()
711 qemu_aio_coroutine_enter(ctx, co); in aio_co_enter()