[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 00/12] allow tools to use the QEMU main loop
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 00/12] allow tools to use the QEMU main loop |
Date: |
Tue, 27 Sep 2011 18:31:39 +0200 |
This patch series makes the QEMU main loop usable out of the executable,
and especially in tools and possibly unit tests. The series already
starts using the refactored main loop in qemu-nbd.
This is cleaner because it avoids introducing partial transitions to
GIOChannel. Interfacing with the glib main loop is still possible.
The main loop code is currently split in cpus.c and vl.c. Moving it
to a new file is easy; the problem is that the main loop depends on the
timer infrastructure in qemu-timer.c, and that file currently contains
the implementation of icount and the vm_clock. This is bad for the
prospective of linking qemu-timer.c into the tools. Luckily, it is
relatively easy to untie them and move them out of the way. This is
what the largest part of the series does (patches 1-8).
Patches 9-12 complete the refactoring and cleanup some surrounding
code.
The series does not include any use yet, but I have a prototype of
using it in qemu-nbd (to support multiple in-flight operations and
AIO support).
Paolo Bonzini (12):
qemu-timer: remove active_timers array
qemu-timer: move common code to qemu_rearm_alarm_timer
qemu-timer: more clock functions
qemu-timer: move icount to cpus.c
qemu-timer: do not refer to runstate_is_running()
qemu-timer: use atexit for quit_timers
qemu-timer: move more stuff out of qemu-timer.c
qemu-timer: do not use RunState change handlers
create main-loop.h
create main-loop.c
Revert to a hand-made select loop
simplify main loop functions
Makefile.objs | 2 +-
async.c | 1 +
cpus.c | 497 ++++++++++++++++++++++++++++++-----------------------
cpus.h | 3 +-
exec-all.h | 14 ++
exec.c | 7 -
iohandler.c | 54 +------
main-loop.c | 494 +++++++++++++++++++++++++++++++++++++++++++++++++++++
main-loop.h | 73 ++++++++
os-win32.c | 123 --------------
qemu-char.h | 12 +--
qemu-common.h | 15 +--
qemu-os-posix.h | 4 -
qemu-os-win32.h | 15 +--
qemu-timer.c | 489 ++++++++++-------------------------------------------
qemu-timer.h | 30 +---
savevm.c | 25 +++
slirp/libslirp.h | 11 --
sysemu.h | 3 +-
vl.c | 190 ++++-----------------
20 files changed, 1029 insertions(+), 1033 deletions(-)
create mode 100644 main-loop.c
create mode 100644 main-loop.h
--
1.7.6
- [Qemu-devel] [PATCH 00/12] allow tools to use the QEMU main loop,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 06/12] qemu-timer: use atexit for quit_timers, Paolo Bonzini, 2011/09/27
- [Qemu-devel] [PATCH 02/12] qemu-timer: move common code to qemu_rearm_alarm_timer, Paolo Bonzini, 2011/09/27
- [Qemu-devel] [PATCH 05/12] qemu-timer: do not refer to runstate_is_running(), Paolo Bonzini, 2011/09/27
- [Qemu-devel] [PATCH 04/12] qemu-timer: move icount to cpus.c, Paolo Bonzini, 2011/09/27
- [Qemu-devel] [PATCH 07/12] qemu-timer: move more stuff out of qemu-timer.c, Paolo Bonzini, 2011/09/27