qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [RFC PATCH 00/14] allow tools to use the QEMU main loop
@ 2011-09-16 15:08 Paolo Bonzini
  2011-09-16 15:08 ` [Qemu-devel] [RFC PATCH 01/14] remove unused function Paolo Bonzini
                   ` (13 more replies)
  0 siblings, 14 replies; 15+ messages in thread
From: Paolo Bonzini @ 2011-09-16 15:08 UTC (permalink / raw)
  To: qemu-devel; +Cc: aliguori

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
taken care by the first half of the series (patches 1-7).

Patches 8-11 complete the refactoring and cleanup some surrounding
code.

Patches 12-14 show how the main loop can be used in the tools.  This
is, for example, a prerequisite for supporting multiple in-flight
operations in qemu-nbd (and perhaps named exports).

Very lightly tested, just wanted to throw out the idea.

Paolo Bonzini (14):
  remove unused function
  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 vm_running
  qemu-timer: move more stuff out of qemu-timer.c
  create main-loop.h
  create main-loop.c
  Revert to a hand-made select loop
  simplify main loop functions
  makefile: extract tools-obj-y
  link the main loop and its dependencies into the tools
  qemu-nbd: use common main loop

 Makefile         |   13 +-
 Makefile.objs    |    2 +-
 async.c          |    1 +
 cpus.c           |  502 ++++++++++++++++++++++++++++++------------------------
 cpus.h           |    3 +-
 exec-all.h       |   14 ++
 exec.c           |    7 -
 hw/mac_dbdma.c   |    5 -
 hw/mac_dbdma.h   |    1 -
 iohandler.c      |   54 +------
 main-loop.c      |  499 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 main-loop.h      |   80 +++++++++
 os-posix.c       |   42 -----
 os-win32.c       |  128 --------------
 oslib-posix.c    |   42 +++++
 oslib-win32.c    |    5 +
 qemu-char.h      |   12 +--
 qemu-common.h    |   15 +--
 qemu-nbd.c       |  127 +++++++-------
 qemu-os-posix.h  |    4 -
 qemu-os-win32.h  |   15 +--
 qemu-timer.c     |  470 +++++++++------------------------------------------
 qemu-timer.h     |   30 +---
 qemu-tool.c      |   45 +++--
 roms/seabios     |    2 +-
 savevm.c         |   25 +++
 slirp/libslirp.h |   11 --
 sysemu.h         |   10 +-
 vl.c             |  184 ++++----------------
 29 files changed, 1173 insertions(+), 1175 deletions(-)
 create mode 100644 main-loop.c
 create mode 100644 main-loop.h

-- 
1.7.6

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2011-09-16 15:09 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-16 15:08 [Qemu-devel] [RFC PATCH 00/14] allow tools to use the QEMU main loop Paolo Bonzini
2011-09-16 15:08 ` [Qemu-devel] [RFC PATCH 01/14] remove unused function Paolo Bonzini
2011-09-16 15:08 ` [Qemu-devel] [RFC PATCH 02/14] qemu-timer: remove active_timers array Paolo Bonzini
2011-09-16 15:08 ` [Qemu-devel] [RFC PATCH 03/14] qemu-timer: move common code to qemu_rearm_alarm_timer Paolo Bonzini
2011-09-16 15:09 ` [Qemu-devel] [RFC PATCH 04/14] qemu-timer: more clock functions Paolo Bonzini
2011-09-16 15:09 ` [Qemu-devel] [RFC PATCH 05/14] qemu-timer: move icount to cpus.c Paolo Bonzini
2011-09-16 15:09 ` [Qemu-devel] [RFC PATCH 06/14] qemu-timer: do not refer to vm_running Paolo Bonzini
2011-09-16 15:09 ` [Qemu-devel] [RFC PATCH 07/14] qemu-timer: move more stuff out of qemu-timer.c Paolo Bonzini
2011-09-16 15:09 ` [Qemu-devel] [RFC PATCH 08/14] create main-loop.h Paolo Bonzini
2011-09-16 15:09 ` [Qemu-devel] [RFC PATCH 09/14] create main-loop.c Paolo Bonzini
2011-09-16 15:09 ` [Qemu-devel] [RFC PATCH 10/14] Revert to a hand-made select loop Paolo Bonzini
2011-09-16 15:09 ` [Qemu-devel] [RFC PATCH 11/14] simplify main loop functions Paolo Bonzini
2011-09-16 15:09 ` [Qemu-devel] [RFC PATCH 12/14] makefile: extract tools-obj-y Paolo Bonzini
2011-09-16 15:09 ` [Qemu-devel] [RFC PATCH 13/14] link the main loop and its dependencies into the tools Paolo Bonzini
2011-09-16 15:09 ` [Qemu-devel] [RFC PATCH 14/14] qemu-nbd: use common main loop Paolo Bonzini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).