The following changes since commit aee0bf7d8d7564f8f2c40e4501695c492b7dd8d1:
tap-win32: stubs to fix win32 build (2012-10-30 19:18:53 +0000) are available in the git repository at: git://github.com/bonzini/qemu.git threadpool for you to fetch changes up to f563a5d7a820424756f358e747238f03e866838a: Merge remote-tracking branch 'origin/master' into threadpool (2012-10-31 10:42:51 +0100) Patches 1 to 12 eliminate the dependencies of qemu-tool.c on the main loop and AIO infrastructure. Otherwise the build rules for vscclient, tests and qemu-ga become too hairy. Patches 13 to 30 introduce AioContext and a new portable AIO API based on EventNotifier. Patches 31 to 38 introduce a generic threadpool that replaces posix-aio-compat.c. Patch 39 introduces support for Win32 native AIO. (As usual, Win32 bits are mostly there as a testbed for the flexibility of the API). The patches are based in the remote branch on a known-good commit for Win32 (because TCG is a bit broken in master). Thus there is a merge commit at the top to fix the trivial conflicts between patch 1 and the later introduction of iov_copy. Paolo ---------------------------------------------------------------- Paolo Bonzini (39): janitor: move iovector functions out of cutils.c build: move cutils.o and qemu-timer-common.o to oslib-obj-y compiler: use weak aliases to provide default definitions sockets: use weak aliases instead of qemu-tool.c fdsets: use weak aliases instead of qemu-tool.c/qemu-user.c iohandler: add weak alias in qemu-sockets.c, for qemu-ga win32: add weak version of qemu_fd_register qemu-timer: make initialization functions idempotent main-loop: unify qemu_init_main_loop between QEMU and tools qemu-tool: do not depend on qemu-timer.c build: opts-visitor is not really part of QAPI build: do not include main loop where it is not actually used event_notifier: add Win32 implementation event_notifier: enable it to use pipes vl: init main loop earlier aio: change qemu_aio_set_fd_handler to return void aio: provide platform-independent API aio: introduce AioContext, move bottom halves there aio: add I/O handlers to the AioContext interface aio: test node->deleted before calling io_flush aio: add non-blocking variant of aio_wait aio: prepare for introducing GSource-based dispatch aio: add Win32 implementation aio: make AioContexts GSources aio: add aio_notify aio: call aio_notify after setting I/O handlers main-loop: use GSource to poll AIO file descriptors main-loop: use aio_notify for qemu_notify_event aio: clean up now-unused functions linux-aio: use event notifiers qemu-thread: add QemuSemaphore aio: add generic thread-pool facility threadpool: do not take lock in event_notifier_ready block: switch posix-aio-compat to threadpool raw: merge posix-aio-compat.c into block/raw-posix.c raw-posix: rename raw-posix-aio.h, hide unavailable prototypes raw-win32: add emulated AIO support raw-posix: move linux-aio.c to block/ raw-win32: implement native asynchronous I/O Makefile | 7 +- Makefile.objs | 22 +- aio-posix.c | 268 ++++++++++++++ aio-win32.c | 215 +++++++++++ aio.c | 194 ---------- arch_init.h | 2 +- async.c | 118 +++++- block/Makefile.objs | 9 +- linux-aio.c => block/linux-aio.c | 52 ++- block/{raw-posix-aio.h => raw-aio.h} | 29 +- block/raw-posix.c | 308 +++++++++++++++- block/raw-win32.c | 221 +++++++++--- block/win32-aio.c | 226 ++++++++++++ compiler.h | 11 +- cutils.c | 108 ------ event_notifier-posix.c | 120 +++++++ event_notifier-win32.c | 59 +++ event_notifier.c | 67 ---- event_notifier.h | 20 +- hw/hw.h | 1 + iohandler.c | 1 + iov.c | 103 ++++++ main-loop.c | 157 +++----- main-loop.h | 66 +--- osdep.c | 30 ++ oslib-posix.c | 31 -- oslib-win32.c | 5 + posix-aio-compat.c | 679 ----------------------------------- qapi/Makefile.objs | 4 +- qemu-aio.h | 206 ++++++++++- qemu-char.h | 1 + qemu-common.h | 3 +- qemu-coroutine-lock.c | 2 +- qemu-os-win32.h | 1 - qemu-sockets.c | 18 + qemu-thread-posix.c | 80 +++++ qemu-thread-posix.h | 5 + qemu-thread-win32.c | 35 ++ qemu-thread-win32.h | 4 + qemu-thread.h | 7 + qemu-timer.c | 12 +- qemu-tool.c | 35 +- qemu-user.c | 20 -- qmp.c | 3 +- tests/Makefile | 8 +- thread-pool.c | 289 +++++++++++++++ thread-pool.h | 34 ++ trace-events | 5 + vl.c | 17 +- 49 file modificati, 2429 inserzioni(+), 1489 rimozioni(-) create mode 100644 aio-posix.c create mode 100644 aio-win32.c delete mode 100644 aio.c rename linux-aio.c => block/linux-aio.c (82%) rename block/{raw-posix-aio.h => raw-aio.h} (71%) create mode 100644 block/win32-aio.c create mode 100644 event_notifier-posix.c create mode 100644 event_notifier-win32.c delete mode 100644 event_notifier.c delete mode 100644 posix-aio-compat.c create mode 100644 thread-pool.c create mode 100644 thread-pool.h -- 1.7.12.1