Lines Matching refs:wi

134 static void queue_work_on_cpu(CPUState *cpu, struct qemu_work_item *wi)  in queue_work_on_cpu()  argument
137 QSIMPLEQ_INSERT_TAIL(&cpu->work_list, wi, node); in queue_work_on_cpu()
138 wi->done = false; in queue_work_on_cpu()
147 struct qemu_work_item wi; in do_run_on_cpu() local
154 wi.func = func; in do_run_on_cpu()
155 wi.data = data; in do_run_on_cpu()
156 wi.done = false; in do_run_on_cpu()
157 wi.free = false; in do_run_on_cpu()
158 wi.exclusive = false; in do_run_on_cpu()
160 queue_work_on_cpu(cpu, &wi); in do_run_on_cpu()
161 while (!qatomic_load_acquire(&wi.done)) { in do_run_on_cpu()
171 struct qemu_work_item *wi; in async_run_on_cpu() local
173 wi = g_new0(struct qemu_work_item, 1); in async_run_on_cpu()
174 wi->func = func; in async_run_on_cpu()
175 wi->data = data; in async_run_on_cpu()
176 wi->free = true; in async_run_on_cpu()
178 queue_work_on_cpu(cpu, wi); in async_run_on_cpu()
324 struct qemu_work_item *wi; in async_safe_run_on_cpu() local
326 wi = g_new0(struct qemu_work_item, 1); in async_safe_run_on_cpu()
327 wi->func = func; in async_safe_run_on_cpu()
328 wi->data = data; in async_safe_run_on_cpu()
329 wi->free = true; in async_safe_run_on_cpu()
330 wi->exclusive = true; in async_safe_run_on_cpu()
332 queue_work_on_cpu(cpu, wi); in async_safe_run_on_cpu()
338 struct qemu_work_item *wi = QSIMPLEQ_FIRST(&cpu->work_list); in free_queued_cpu_work() local
340 if (wi->free) { in free_queued_cpu_work()
341 g_free(wi); in free_queued_cpu_work()
348 struct qemu_work_item *wi; in process_queued_cpu_work() local
356 wi = QSIMPLEQ_FIRST(&cpu->work_list); in process_queued_cpu_work()
359 if (wi->exclusive) { in process_queued_cpu_work()
368 wi->func(cpu, wi->data); in process_queued_cpu_work()
372 wi->func(cpu, wi->data); in process_queued_cpu_work()
375 if (wi->free) { in process_queued_cpu_work()
376 g_free(wi); in process_queued_cpu_work()
378 qatomic_store_release(&wi->done, true); in process_queued_cpu_work()