Lines Matching refs:ev
257 void qemu_event_init(QemuEvent *ev, bool init) in qemu_event_init() argument
260 ev->event = CreateEvent(NULL, TRUE, TRUE, NULL); in qemu_event_init()
261 ev->value = (init ? EV_SET : EV_FREE); in qemu_event_init()
262 ev->initialized = true; in qemu_event_init()
265 void qemu_event_destroy(QemuEvent *ev) in qemu_event_destroy() argument
267 assert(ev->initialized); in qemu_event_destroy()
268 ev->initialized = false; in qemu_event_destroy()
269 CloseHandle(ev->event); in qemu_event_destroy()
272 void qemu_event_set(QemuEvent *ev) in qemu_event_set() argument
274 assert(ev->initialized); in qemu_event_set()
283 if (qatomic_read(&ev->value) != EV_SET) { in qemu_event_set()
284 int old = qatomic_xchg(&ev->value, EV_SET); in qemu_event_set()
290 SetEvent(ev->event); in qemu_event_set()
295 void qemu_event_reset(QemuEvent *ev) in qemu_event_reset() argument
297 assert(ev->initialized); in qemu_event_reset()
303 qatomic_or(&ev->value, EV_FREE); in qemu_event_reset()
312 void qemu_event_wait(QemuEvent *ev) in qemu_event_wait() argument
316 assert(ev->initialized); in qemu_event_wait()
327 value = qatomic_load_acquire(&ev->value); in qemu_event_wait()
336 ResetEvent(ev->event); in qemu_event_wait()
350 if (qatomic_cmpxchg(&ev->value, EV_FREE, EV_BUSY) == EV_SET) { in qemu_event_wait()
359 WaitForSingleObject(ev->event, INFINITE); in qemu_event_wait()