QEMU With E2K User Support
Go to file
Paolo Bonzini c7c4d063f5 qemu-thread: add QemuEvent
This emulates Win32 manual-reset events using futexes or conditional
variables.  Typical ways to use them are with multi-producer,
single-consumer data structures, to test for a complex condition whose
elements come from different threads:

    for (;;) {
        qemu_event_reset(ev);
        ... test complex condition ...
        if (condition is true) {
            break;
        }
        qemu_event_wait(ev);
    }

Or more efficiently (but with some duplication):

    ... evaluate condition ...
    while (!condition) {
        qemu_event_reset(ev);
        ... evaluate condition ...
        if (!condition) {
            qemu_event_wait(ev);
            ... evaluate condition ...
        }
    }

QemuEvent provides a very fast userspace path in the common case when
no other thread is waiting, or the event is not changing state.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2013-10-17 17:30:55 +02:00
audio audio: remove CONFIG_MIXEMU configure option 2013-09-24 10:29:34 +02:00
backends aio / timers: Switch entire codebase to the new timer API 2013-08-22 19:14:24 +02:00
block vmdk: Fix vmdk_parse_extents 2013-10-11 16:50:02 +02:00
bsd-user *-user: Improve documentation for lock_user function 2013-09-20 20:09:24 +04:00
default-configs default-configs: Fix A9MP and A15MP config names 2013-08-20 14:54:32 +01:00
disas disas/ppc.c: Fix little endian disassembly 2013-09-02 10:06:41 +02:00
docs Use qemu-project.org domain name 2013-10-11 09:34:56 -07:00
dtc@bc895d6d09 dtc: add submodule 2013-04-18 13:50:53 +02:00
fpu softfloat: Fix shift128Right for shift counts 64..127 2013-06-10 11:36:12 -05:00
fsdev fsdev: Fix potential memory leak 2013-07-09 13:38:56 -05:00
gdb-xml target-arm: Add AArch64 gdbstub support 2013-09-10 19:11:28 +01:00
hw vga: Mark relevant portio lists regions as coalesced MMIO flushing 2013-10-17 17:24:15 +02:00
include qemu-thread: add QemuEvent 2013-10-17 17:30:55 +02:00
libcacard Merge remote-tracking branch 'stefanha/block' into staging 2013-09-23 11:53:05 -05:00
linux-headers linux-headers: update to 3.12-rc1 2013-09-20 12:38:48 +02:00
linux-user cpu: Drop cpu_model_str from CPU_COMMON 2013-10-07 11:48:47 +02:00
net net: call socket_set_fast_reuse instead of setting SO_REUSEADDR 2013-10-02 19:20:31 +02:00
pc-bios Use qemu-project.org domain name 2013-10-11 09:34:56 -07:00
pixman@97336fad32 qapi: move include files to include/qobject/ 2012-12-19 08:31:31 +01:00
po po: Update all *.po files 2013-08-07 12:48:00 -05:00
qapi qemu-ga: Extend 'guest-info' command to expose flag 'success-response' 2013-10-10 14:52:37 -05:00
qga qemu-ga: Extend 'guest-info' command to expose flag 'success-response' 2013-10-10 14:52:37 -05:00
qobject qdict: Extract qdict_extract_subqdict 2013-09-25 16:21:28 +02:00
qom cpu: Move cpu state syncs up into cpu_dump_state() 2013-09-20 12:37:52 +02:00
roms Update OpenBIOS images 2013-10-03 00:04:20 +01:00
scripts Use qemu-project.org domain name 2013-10-11 09:34:56 -07:00
slirp slirp: call socket_set_fast_reuse instead of setting SO_REUSEADDR 2013-10-02 19:20:31 +02:00
stubs Merge remote-tracking branch 'kiszka/queues/slirp' into staging 2013-09-17 10:01:24 -05:00
sysconfigs/target Eliminate cpus-x86_64.conf file 2012-09-21 15:12:58 +02:00
target-alpha target-alpha: Convert to new ldst opcodes 2013-10-12 16:19:20 -07:00
target-arm Merge remote-tracking branch 'rth/tcg-pull' into staging 2013-10-11 09:36:52 -07:00
target-cris tcg: Remove stray semi-colons from target-*/helper.h 2013-10-10 11:43:37 -07:00
target-i386 Merge remote-tracking branch 'rth/tcg-pull' into staging 2013-10-11 09:36:52 -07:00
target-lm32 target: Include softmmu_exec.h where forgotten 2013-09-02 09:08:30 -07:00
target-m68k Merge remote-tracking branch 'rth/tcg-pull' into staging 2013-10-11 09:36:52 -07:00
target-microblaze tcg: Move helper registration into tcg_context_init 2013-10-10 11:43:37 -07:00
target-mips Merge remote-tracking branch 'rth/tcg-pull' into staging 2013-10-11 09:36:52 -07:00
target-moxie cpu: Drop cpu_model_str from CPU_COMMON 2013-10-07 11:48:47 +02:00
target-openrisc Merge remote-tracking branch 'jliu/or32' into staging 2013-10-14 09:15:47 -07:00
target-ppc Merge remote-tracking branch 'rth/tcg-pull' into staging 2013-10-11 09:36:52 -07:00
target-s390x exec: Fix prototype of phys_mem_set_alloc and related functions 2013-10-14 08:50:34 -07:00
target-sh4 Merge remote-tracking branch 'rth/tcg-pull' into staging 2013-10-11 09:36:52 -07:00
target-sparc Merge remote-tracking branch 'rth/tcg-pull' into staging 2013-10-11 09:36:52 -07:00
target-unicore32 Merge remote-tracking branch 'rth/tcg-pull' into staging 2013-10-11 09:36:52 -07:00
target-xtensa tcg: Move helper registration into tcg_context_init 2013-10-10 11:43:37 -07:00
tcg tcg-ppc64: Support new ldst opcodes 2013-10-12 16:19:20 -07:00
tests qemu-iotests: Add test for inactive L2 overlap 2013-10-11 16:50:02 +02:00
trace trace: Add ftrace tracing backend 2013-05-03 13:58:09 +02:00
ui spice-core: Use g_strdup_printf instead of snprintf 2013-09-10 11:14:08 +02:00
util qemu-thread: add QemuEvent 2013-10-17 17:30:55 +02:00
.exrc
.gitignore qemu-ga: Add configure options to specify path to Windows/VSS SDK 2013-09-09 14:17:56 -05:00
.gitmodules Use qemu-project.org domain name 2013-10-11 09:34:56 -07:00
.mailmap Update mailmap 2013-09-05 09:40:31 -05:00
aio-posix.c aio / timers: Convert aio_poll to use AioContext timers' deadline 2013-08-22 19:10:28 +02:00
aio-win32.c aio-win32: replace incorrect AioHandler->opaque usage with ->e 2013-08-22 22:04:54 +02:00
arch_init.c pc,pci,virtio fixes and cleanups 2013-09-30 17:15:01 -05:00
async.c aio / timers: aio_ctx_prepare sets timeout from AioContext timers 2013-08-22 19:10:28 +02:00
balloon.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
block-migration.c migration: omit drive ref as we have bdrv_ref now 2013-09-06 15:25:08 +02:00
block.c blockdev: Don't disable COR automatically with blockdev-add 2013-10-11 16:50:02 +02:00
blockdev-nbd.c nbd: use BlockDriverState refcnt 2013-09-06 15:25:08 +02:00
blockdev.c blockdev: blockdev_init() error conversion 2013-10-11 16:50:02 +02:00
blockjob.c qapi: make use of new BlockJobType 2013-10-11 10:52:54 +02:00
bt-host.c sysemu: avoid proliferation of include/ subdirectories 2013-04-15 18:19:25 +02:00
bt-vhci.c sysemu: avoid proliferation of include/ subdirectories 2013-04-15 18:19:25 +02:00
Changelog Use qemu-project.org domain name 2013-10-11 09:34:56 -07:00
CODING_STYLE
configure configure: Remove CONFIG_QEMU_LDST_OPTIMIZATION 2013-10-10 11:44:26 -07:00
COPYING
COPYING.LIB
coroutine-gthread.c block: move include files to include/block/ 2012-12-19 08:31:31 +01:00
coroutine-sigaltstack.c Merge remote-tracking branch 'kwolf/for-anthony' into staging 2013-02-26 07:44:39 -06:00
coroutine-ucontext.c Fix warnings suppressors to honor --disable-werror 2013-04-17 10:28:04 -05:00
coroutine-win32.c block: move include files to include/block/ 2012-12-19 08:31:31 +01:00
cpu-exec.c cpu-exec: Also reload CPUClass *cc after longjmp return in cpu_exec() 2013-10-07 11:46:58 +02:00
cpus.c timer: protect timers_state's clock with seqlock 2013-10-17 17:30:52 +02:00
cputlb.c cputlb: Remove dead function tlb_update_dirty() 2013-10-07 11:48:03 +02:00
device_tree.c device_tree: Add qemu_devtree_setprop_sized_cells() utility functions 2013-07-19 12:58:46 +01:00
device-hotplug.c hw: move device-hotplug.o to toplevel, compile it once 2013-03-01 13:57:13 +01:00
disas.c disas: Implement fallback to dump object code as hex 2013-08-24 07:26:45 +02:00
dma-helpers.c aio / timers: Untangle include files 2013-08-22 19:10:27 +02:00
dump.c cpu: Use QTAILQ for CPU list 2013-09-03 12:25:55 +02:00
exec.c exec: Fix prototype of phys_mem_set_alloc and related functions 2013-10-14 08:50:34 -07:00
gdbstub.c gdbstub: call socket_set_fast_reuse instead of setting SO_REUSEADDR 2013-10-02 19:20:31 +02:00
HACKING HACKING: Document vaddr type usage 2013-07-23 02:41:31 +02:00
hmp-commands.hx hmp: add interface hmp_snapshot_delete_blkdev_internal 2013-09-12 10:12:47 +02:00
hmp.c hmp: block-stream: fix typo 2013-09-17 11:10:47 -05:00
hmp.h hmp: add interface hmp_snapshot_delete_blkdev_internal 2013-09-12 10:12:47 +02:00
iohandler.c iohandler: switch to GPollFD 2013-02-21 16:17:31 -06:00
ioport.c portio: Allow to mark portio lists as coalesced MMIO flushing 2013-10-17 17:24:15 +02:00
kvm-all.c Merge remote-tracking branch 'qemu-kvm/uq/master' into staging 2013-09-23 11:52:49 -05:00
kvm-stub.c kvm irqfd: support direct msimessage to irq translation 2013-09-20 12:37:52 +02:00
LICENSE LICENSE: clarify 2013-08-12 09:15:12 -05:00
main-loop.c slirp: set mainloop timeout with more precise value 2013-09-17 12:26:05 +02:00
MAINTAINERS Merge remote-tracking branch 'rth/tcg-pull' into staging 2013-10-11 09:36:52 -07:00
Makefile build: add command check-clean 2013-10-11 16:50:01 +02:00
Makefile.objs qemu-ga: Add Windows VSS provider and requester as DLL 2013-09-09 14:17:57 -05:00
Makefile.target build: do not use TARGET_ARCH 2013-06-14 15:33:10 +01:00
memory_mapping.c cpu: Use QTAILQ for CPU list 2013-09-03 12:25:55 +02:00
memory.c memory: fix 128 arithmetic in info mtree 2013-10-17 17:24:14 +02:00
migration-exec.c aio / timers: Untangle include files 2013-08-22 19:10:27 +02:00
migration-fd.c aio / timers: Untangle include files 2013-08-22 19:10:27 +02:00
migration-rdma.c rdma: constify ram_chunk_{index, start, end} 2013-09-24 13:22:50 +02:00
migration-tcp.c aio / timers: Untangle include files 2013-08-22 19:10:27 +02:00
migration-unix.c aio / timers: Untangle include files 2013-08-22 19:10:27 +02:00
migration.c migration: Fix compiler warning ('caps' may be used uninitialized) 2013-10-05 14:02:29 +04:00
monitor.c QOM CPUState refactorings / X86CPU 2013-09-03 12:33:32 -05:00
nbd.c nbd: use BlockDriverState refcnt 2013-09-06 15:25:08 +02:00
os-posix.c Add option to mlock qemu and guest memory 2013-04-22 08:52:23 -05:00
os-win32.c qemu-timer: move timeBeginPeriod/timeEndPeriod to os-win32 2013-04-12 18:27:16 +02:00
page_cache.c remove some double-includes 2013-05-18 16:35:12 +04:00
qapi-schema.json blockdev: 'blockdev-add' QMP command 2013-10-11 16:50:01 +02:00
qdev-monitor.c qdev-monitor: Group "device_add help" and "info qdm" by category 2013-10-11 09:36:29 -07:00
qdict-test-data.txt
qemu-bridge-helper.c qemu-bridge-helper: force usage of a very high MAC address for the bridge 2013-03-28 12:58:52 -05:00
qemu-char.c Merge remote-tracking branch 'amit/char-remove-watch-on-unplug' into staging 2013-10-10 13:16:02 -07:00
qemu-coroutine-io.c aio / timers: Untangle include files 2013-08-22 19:10:27 +02:00
qemu-coroutine-lock.c block: Repair the throttling code. 2013-07-29 17:07:37 +02:00
qemu-coroutine-sleep.c aio / timers: convert block_job_sleep_ns and co_sleep_ns to new API 2013-08-22 19:14:24 +02:00
qemu-coroutine.c coroutine: add ./configure --disable-coroutine-pool 2013-09-12 10:12:48 +02:00
qemu-doc.texi doc: we use seabios, not bochs bios 2013-06-28 22:10:34 +04:00
qemu-img-cmds.hx block: Image file option amendment 2013-09-12 10:12:46 +02:00
qemu-img.c qemu-img: fix invalid JSON 2013-09-12 13:49:50 +02:00
qemu-img.texi block: Image file option amendment 2013-09-12 10:12:46 +02:00
qemu-io-cmds.c block/qapi: Human-readable ImageInfoSpecific dump 2013-10-11 10:52:54 +02:00
qemu-io.c qemu-io: Let "open" pass options to block driver 2013-10-11 16:50:02 +02:00
qemu-log.c qemu-log: default to stderr for logging output 2013-02-26 13:31:47 -06:00
qemu-nbd.c block: Error parameter for open functions 2013-09-12 10:12:48 +02:00
qemu-nbd.texi Add -f FMT / --format FMT arg to qemu-nbd 2013-04-15 14:29:20 -05:00
qemu-options-wrapper.h
qemu-options.h
qemu-options.hx block: Add iops_size to do the iops accounting for a given io size. 2013-09-06 15:25:07 +02:00
qemu-seccomp.c seccomp: fine tuning whitelist by adding times() 2013-09-24 15:15:16 -03:00
qemu-tech.texi qemu-tech.texi: update implemented xtensa features list 2012-11-29 13:00:52 -06:00
qemu-timer.c qemu-timer: do not take the lock in timer_pending 2013-09-18 15:48:33 +02:00
qemu.nsi Use qemu-project.org domain name 2013-10-11 09:34:56 -07:00
qemu.sasl Fix command example in qemu.sasl 2013-07-19 12:52:03 +04:00
qmp-commands.hx blockdev: 'blockdev-add' QMP command 2013-10-11 16:50:01 +02:00
qmp.c QMP: Add cpu-add command 2013-05-01 13:06:07 +02:00
qtest.c qtest: Fix FMT_timeval vs time_t 2013-09-02 09:08:29 -07:00
readline.c monitor: avoid use of global *cur_mon in readline_completion() 2013-08-30 07:41:14 -04:00
README Use qemu-project.org domain name 2013-10-11 09:34:56 -07:00
rules.mak configure: Support configuring C++ compiler 2013-09-09 14:17:56 -05:00
savevm.c savevm: fix wrong initialization by ram_control_load_hook 2013-09-24 13:22:08 +02:00
spice-qemu-char.c qemu-char: don't issue CHR_EVENT_OPEN in a BH 2013-06-10 11:38:37 -05:00
tcg-runtime.c tcg: Implement multiword multiply helpers 2013-02-23 17:25:28 +00:00
tci.c misc: Use new rotate functions 2013-09-25 21:23:05 +02:00
thread-pool.c aio / timers: Untangle include files 2013-08-22 19:10:27 +02:00
thunk.c exec: move include files to include/exec/ 2012-12-19 08:31:31 +01:00
tpm.c tpm.c: Don't try to put -1 in a variable of type TpmModel 2013-07-29 10:37:10 -05:00
trace-events Merge remote-tracking branch 'mjt/trivial-patches' into staging 2013-09-23 11:52:55 -05:00
translate-all.c exec: Delete is_tcg_gen_code and GETRA_EXT 2013-10-10 11:44:25 -07:00
translate-all.h cputlb: Pass CPUState to cpu_unlink_tb() 2013-02-16 14:51:00 +01:00
user-exec.c linux-user: fix segmentation fault passing with h2g(x) != x 2013-07-23 17:28:28 +03:00
VERSION Open up 1.7 development branch 2013-08-15 15:41:13 -05:00
version.rc Use qemu-project.org domain name 2013-10-11 09:34:56 -07:00
vl.c vl: Clean up unnecessary boot_order complications 2013-10-05 13:05:28 +04:00
xbzrle.c Move XBZRLE encoding code to a separate file to allow testing 2013-02-01 08:32:20 +01:00
xen-all.c qemu/xen: make use of xenstore relative paths 2013-10-10 14:25:52 +00:00
xen-mapcache.c hw: move headers to include/ 2013-04-08 18:13:10 +02:00
xen-stub.c pc: Initializing ram_memory under Xen. 2013-09-09 16:22:19 +00:00

Read the documentation in qemu-doc.html or on http://wiki.qemu-project.org

- QEMU team