QEMU With E2K User Support
Go to file
Michael Roth 7868e26e59 qemu-ga: add initial win32 support
This adds a win32 channel implementation that makes qemu-ga functional
on Windows using virtio-serial (unix-listen/isa-serial not currently
implemented). Unlike with the posix implementation, we do not use
GIOChannel for the following reasons:

 - glib calls stat() on an fd to check whether S_IFCHR is set, which is
   the case for virtio-serial on win32. Because of that, a one-time
   check to determine whether the channel is readable is done by making
   a call to PeekConsoleInput(), which reports the underlying handle is
   not a valid console handle, and thus we can never read from the
   channel.

 - if one goes as far as to "trick" glib into thinking it is a normal
   file descripter, the buffering is done in such a way that data
   written to the output stream will subsequently result in that same
   data being read back as if it were input, causing an error loop.
   furthermore, a forced flush of the channel only moves the data into a
   secondary buffer managed by glib, so there's no way to prevent output
   from getting read back as input.

The implementation here ties into the glib main loop by implementing a
custom GSource that continually submits asynchronous/overlapped I/O to
fill an GAChannel-managed read buffer, and tells glib to poll the
corresponding event handle for a completion whenever there is no
data/RPC in the read buffer to notify the main application about.
2012-02-23 15:43:49 -06:00
audio
block sheepdog: fix co_recv coroutine context 2012-02-09 16:17:51 +01:00
bsd-user elf: Improve symbol lookup (optimize, fix for bsd-user) 2012-01-10 18:40:09 +01:00
darwin-user
default-configs jazz-led: compile it only twice 2012-02-22 09:02:19 -06:00
docs docs: describe live block operations 2012-01-26 14:49:18 +01:00
fpu
fsdev fsdev: Fix parameter parsing for proxy helper 2012-01-30 10:54:16 +05:30
gdb-xml
hw jazz-led: convert to QOM 2012-02-22 09:02:19 -06:00
include/qemu qom: Document ways to retrieve child object added by object_property_add_child() 2012-02-22 09:02:18 -06:00
libcacard make: Remove duplicate use of GLIB_CFLAGS 2012-02-09 20:44:38 +04:00
linux-headers PPC: KVM: Update HIOR code to new interface 2012-02-02 02:47:45 +01:00
linux-user linux-user: brk() debugging 2012-02-10 10:48:09 +00:00
net net: remove extra spaces in help messages 2012-02-10 10:44:52 +00:00
pc-bios optionroms: Silence intermediate file removal 2012-02-01 14:45:02 -06:00
qapi qapi: add string-based visitors 2012-02-21 10:21:05 +01:00
qga qemu-ga: add initial win32 support 2012-02-23 15:43:49 -06:00
QMP qom: add test tools 2012-02-22 12:18:26 -06:00
qom qom: Fix object_initialize_with_type() assertion 2012-02-22 09:02:19 -06:00
roms pseries: SLOF PCI flag day 2012-01-21 05:17:02 +01:00
scripts qerror: add check-qerror.sh to verify alphabetical order 2012-01-18 10:23:39 -02:00
slirp slirp: Prevent sending ICMP error replies to source-only addresses 2012-02-08 10:07:54 +01:00
sysconfigs/target
target-alpha
target-arm target-arm/helper.c: tb_flush() on CPU reset 2012-02-17 08:34:43 +01:00
target-cris
target-i386 kvm: Implement kvm_irqchip_in_kernel like kvm_enabled 2012-02-08 15:57:50 -02:00
target-lm32
target-m68k
target-microblaze microblaze: Break the tb at memory barriers 2012-01-12 13:54:17 +01:00
target-mips
target-ppc ppc: remove unused variables 2012-02-11 11:03:50 +00:00
target-s390x s390: fix cpu hotplug / cpu activity on interrupts 2012-01-04 02:48:14 +01:00
target-sh4 target-sh4: ignore ocbp and ocbwb instructions 2012-01-10 18:20:10 +01:00
target-sparc target-sparc: Fix mixup of uint64 and uint64_t 2012-01-22 09:55:35 +00:00
target-unicore32
target-xtensa
tcg tcg-arm: fix a typo in comments 2012-01-13 10:36:59 +00:00
tests qapi: add tests for string-based visitors 2012-02-21 10:21:05 +01:00
trace
ui spice: support ipv6 channel address in monitor events and in spice info 2012-02-21 10:36:05 +01:00
.gitignore qapi: add tests for string-based visitors 2012-02-21 10:21:05 +01:00
.gitmodules
.mailmap
a.out.h
acl.c
acl.h
aes.c
aes.h
aio.c prepare for future GPLv2+ relicensing 2012-01-13 10:55:56 -06:00
alpha-dis.c
alpha.ld
arch_init.c pcspk: Convert to qdev 2012-02-17 09:58:22 -06:00
arch_init.h
arm-dis.c
arm-semi.c
arm.ld
async.c
balloon.c
balloon.h
bitmap.c
bitmap.h
bitops.c
bitops.h
block_int.h block: add .bdrv_co_write_zeroes() interface 2012-02-09 16:17:50 +01:00
block-migration.c prepare for future GPLv2+ relicensing 2012-01-13 10:55:56 -06:00
block-migration.h
block.c block: perform zero-detection during copy-on-read 2012-02-09 16:17:50 +01:00
block.h block: add .bdrv_co_write_zeroes() interface 2012-02-09 16:17:50 +01:00
blockdev.c blockdev: allow read-only pflash devices 2012-02-22 09:02:17 -06:00
blockdev.h qapi: Convert block_set_io_throttle 2012-01-18 10:23:39 -02:00
bswap.h
bt-host.c bt-host: add missing break statement 2012-01-13 10:37:00 +00:00
bt-host.h
bt-vhci.c
buffered_file.c prepare for future GPLv2+ relicensing 2012-01-13 10:55:56 -06:00
buffered_file.h
cache-utils.c
cache-utils.h
Changelog
check-qdict.c check-qdict: convert to gtest 2012-01-12 10:05:37 -06:00
check-qfloat.c check-qfloat: convert to gtest 2012-01-12 10:05:37 -06:00
check-qint.c check-qint: convert to gtest 2012-01-12 10:05:37 -06:00
check-qjson.c check-qjson: enable disabled tests 2012-01-12 10:05:38 -06:00
check-qlist.c check-qlist: convert to gtest 2012-01-12 10:05:38 -06:00
check-qstring.c check-qstring: remove check.h include 2012-01-12 11:33:22 -06:00
cmd.c
cmd.h
CODING_STYLE CODING_STYLE: Clarify style for enum and function type names 2012-02-10 10:44:51 +00:00
compatfd.c prepare for future GPLv2+ relicensing 2012-01-13 10:55:56 -06:00
compatfd.h
compiler.h rewrite QEMU_BUILD_BUG_ON 2012-02-09 16:17:51 +01:00
config.h
configure qemu-ga: fixes for win32 build of qemu-ga 2012-02-23 15:40:16 -06:00
console.c console: Fix segfault on screendump without VGA adapter 2012-01-03 02:49:25 +01:00
console.h qapi: Convert expire_password 2012-01-18 10:23:38 -02:00
COPYING
COPYING.LIB
coroutine-gthread.c
coroutine-ucontext.c coroutine: switch to QSLIST 2012-02-17 08:33:33 -06:00
coroutine-win32.c
cpu-all.h Remove IO_MEM_SHIFT 2012-01-04 13:34:50 +02:00
cpu-common.h Remove IO_MEM_SHIFT 2012-01-04 13:34:50 +02:00
cpu-defs.h
cpu-exec.c cpu-exec.c: Correct comment about this file and indentation cleanup 2012-02-10 10:44:52 +00:00
cpus.c apic: Inject external NMI events via LINT1 2012-01-19 12:14:40 +01:00
cpus.h
cris-dis.c cris-dis: Clean memory allocation 2012-01-10 09:36:43 +01:00
cursor_hidden.xpm
cursor_left_ptr.xpm
cursor.c
cutils.c cutils: extract buffer_is_zero() from qemu-img.c 2012-02-09 16:17:50 +01:00
def-helper.h
device_tree.c
device_tree.h
dis-asm.h
disas.c
disas.h
dma-helpers.c
dma.h
dyngen-exec.h tcg/arm: Use r6 as TCG_AREG0 to avoid clash with Thumb framepointer 2012-01-10 17:52:49 +01:00
elf.h
envlist.c
envlist.h
error_int.h
error.c
error.h
event_notifier.c prepare for future GPLv2+ relicensing 2012-01-13 10:55:56 -06:00
event_notifier.h prepare for future GPLv2+ relicensing 2012-01-13 10:55:56 -06:00
exec-all.h Direct dispatch through MemoryRegion 2012-01-04 13:34:50 +02:00
exec-memory.h
exec-obsolete.h memory: change dirty getting API to take a size 2012-02-04 12:45:10 +00:00
exec.c exec.c: Clarify comment about tlb_flush() flush_global parameter 2012-02-01 14:45:01 -06:00
gdbstub.c gdbstub: Fix fd leak in gdbserver_open() error path 2012-01-06 15:07:14 +00:00
gdbstub.h
gen-icount.h
HACKING
hmp-commands.hx qmp: add block_job_cancel command 2012-01-26 14:49:18 +01:00
hmp.c qmp: add query-block-jobs 2012-01-26 14:49:18 +01:00
hmp.h qmp: add query-block-jobs 2012-01-26 14:49:18 +01:00
host-utils.c
host-utils.h
hppa-dis.c
hppa.ld
i386-dis.c
i386.ld
ia64-dis.c
ia64.ld
input.c input: send kbd+mouse events only to running guests. 2012-02-17 11:02:55 -06:00
int128.h
iohandler.c
ioport-user.c
ioport.c
ioport.h
iorange.h
iov.c prepare for future GPLv2+ relicensing 2012-01-13 10:55:56 -06:00
iov.h
json-lexer.c Add 'fall through' comments to case statements without break 2012-01-13 10:36:59 +00:00
json-lexer.h
json-parser.c
json-parser.h
json-streamer.c
json-streamer.h
kvm-all.c kvm: Implement kvm_irqchip_in_kernel like kvm_enabled 2012-02-08 15:57:50 -02:00
kvm-stub.c kvm: Implement kvm_irqchip_in_kernel like kvm_enabled 2012-02-08 15:57:50 -02:00
kvm.h kvm: Implement kvm_irqchip_in_kernel like kvm_enabled 2012-02-08 15:57:50 -02:00
libfdt_env.h
LICENSE
linux-aio.c
m68k-dis.c
m68k-semi.c
m68k.ld
main-loop.c main-loop: For tools, initialize timers as part of qemu_init_main_loop() 2012-02-01 14:45:02 -06:00
main-loop.h main-loop: For tools, initialize timers as part of qemu_init_main_loop() 2012-02-01 14:45:02 -06:00
MAINTAINERS Merge remote-tracking branch 'bonzini/nbd-for-anthony' into staging 2012-02-17 06:50:58 -06:00
Makefile qemu-ga: fixes for win32 build of qemu-ga 2012-02-23 15:40:16 -06:00
Makefile.dis
Makefile.hw make: Remove duplicate use of GLIB_CFLAGS 2012-02-09 20:44:38 +04:00
Makefile.objs qemu-ga: add initial win32 support 2012-02-23 15:43:49 -06:00
Makefile.target jazz-led: compile it only twice 2012-02-22 09:02:19 -06:00
Makefile.user
memory.c memory-region: Report if region is read-only or write-only on info mtree 2012-02-11 10:49:07 +00:00
memory.h memory: change dirty getting API to take a size 2012-02-04 12:45:10 +00:00
microblaze-dis.c
migration-exec.c prepare for future GPLv2+ relicensing 2012-01-13 10:55:56 -06:00
migration-fd.c prepare for future GPLv2+ relicensing 2012-01-13 10:55:56 -06:00
migration-tcp.c prepare for future GPLv2+ relicensing 2012-01-13 10:55:56 -06:00
migration-unix.c prepare for future GPLv2+ relicensing 2012-01-13 10:55:56 -06:00
migration.c notifier: switch to QLIST 2012-02-17 08:33:32 -06:00
migration.h
mips-dis.c
mips.ld
module.c prepare for future GPLv2+ relicensing 2012-01-13 10:55:56 -06:00
module.h qom: Unify type registration 2012-02-15 09:39:21 -06:00
monitor.c Add SPICE support to add_client monitor command 2012-02-21 10:36:05 +01:00
monitor.h qmp: add block_job_cancel command 2012-01-26 14:49:18 +01:00
nbd.c qemu-nbd: throttle requests 2011-12-22 11:53:59 +01:00
nbd.h qemu-nbd: move client handling to nbd.c 2011-12-22 11:53:59 +01:00
net.c w32: Fix build with new net bridge code 2012-02-04 11:49:34 +00:00
net.h Add support for net bridge 2012-02-01 16:24:40 -06:00
notify.c notifier: switch to QLIST 2012-02-17 08:33:32 -06:00
notify.h notifier: switch to QLIST 2012-02-17 08:33:32 -06:00
os-posix.c keep the PID file locked for the lifetime of the process 2012-02-01 16:23:57 -06:00
os-win32.c link the main loop and its dependencies into the tools 2011-12-22 11:53:58 +01:00
osdep.c move corking functions to osdep.c 2011-12-22 11:53:58 +01:00
osdep.h
oslib-posix.c link the main loop and its dependencies into the tools 2011-12-22 11:53:58 +01:00
oslib-win32.c link the main loop and its dependencies into the tools 2011-12-22 11:53:58 +01:00
path.c
pci-ids.txt
pflib.c prepare for future GPLv2+ relicensing 2012-01-13 10:55:56 -06:00
pflib.h
poison.h
posix-aio-compat.c prepare for future GPLv2+ relicensing 2012-01-13 10:55:56 -06:00
ppc64.ld PPC: Fix linker scripts on ppc hosts 2012-01-10 18:23:58 +01:00
ppc-dis.c
ppc.ld PPC: Fix linker scripts on ppc hosts 2012-01-10 18:23:58 +01:00
qapi-schema-guest.json qemu-ga: Add schema documentation for types 2012-02-23 15:40:07 -06:00
qapi-schema-test.json
qapi-schema.json qom: move properties from qdev to object 2012-02-03 10:41:08 -06:00
qbool.c
qbool.h
qdict-test-data.txt
qdict.c
qdict.h
qemu_socket.h move corking functions to osdep.c 2011-12-22 11:53:58 +01:00
qemu-aio.h
qemu-barrier.h
qemu-bridge-helper.c Add cap reduction support to enable use as SUID 2012-02-01 16:24:39 -06:00
qemu-char.c qdev: nuke qdev_init_chardev() 2012-02-03 10:41:08 -06:00
qemu-char.h qdev: nuke qdev_init_chardev() 2012-02-03 10:41:08 -06:00
qemu-common.h cutils: extract buffer_is_zero() from qemu-img.c 2012-02-09 16:17:50 +01:00
qemu-config.c Make kernel, initrd and append be machine_opts 2012-02-22 09:02:52 -06:00
qemu-config.h
qemu-coroutine-int.h coroutine: switch to QSLIST 2012-02-17 08:33:33 -06:00
qemu-coroutine-io.c sheepdog: move coroutine send/recv function to generic code 2011-12-22 11:53:53 +01:00
qemu-coroutine-lock.c
qemu-coroutine-sleep.c coroutine: add co_sleep_ns() coroutine sleep function 2012-01-26 11:45:26 +01:00
qemu-coroutine.c
qemu-coroutine.h coroutine: add co_sleep_ns() coroutine sleep function 2012-01-26 11:45:26 +01:00
qemu-doc.texi iSCSI: add configuration variables for iSCSI 2012-02-09 16:17:50 +01:00
qemu-error.c
qemu-error.h
qemu-file.h vmstate: extract declarations out of hw/hw.h 2012-01-13 10:20:51 -06:00
qemu-ga.c qemu-ga: add initial win32 support 2012-02-23 15:43:49 -06:00
qemu-img-cmds.hx
qemu-img.c cutils: extract buffer_is_zero() from qemu-img.c 2012-02-09 16:17:50 +01:00
qemu-img.texi
qemu-io.c qemu-io: add write -z option for bdrv_co_write_zeroes 2012-02-09 16:17:50 +01:00
qemu-lock.h
qemu-log.h
qemu-nbd.c open /dev/nbd in nbd_client_thread 2012-02-17 12:41:59 +01:00
qemu-nbd.texi
qemu-objects.h
qemu-option.c qemu-option: Add support for merged QemuOptsLists 2012-02-17 09:08:22 +01:00
qemu-option.h qemu-option: Add support for merged QemuOptsLists 2012-02-17 09:08:22 +01:00
qemu-options-wrapper.h
qemu-options.h
qemu-options.hx Merge remote-tracking branch 'qemu-kvm/uq/master' into staging 2012-02-15 18:41:28 -06:00
qemu-os-posix.h
qemu-os-win32.h
qemu-progress.c
qemu-queue.h qemu-queue: drop QCIRCLEQ 2012-02-17 08:33:33 -06:00
qemu-sockets.c
qemu-tech.texi
qemu-thread-posix.c
qemu-thread-posix.h
qemu-thread-win32.c w32: Initialise critical section before starting thread (fix #922131) 2012-02-07 18:11:41 +01:00
qemu-thread-win32.h
qemu-thread.h
qemu-timer-common.c
qemu-timer.c notifier: switch to QLIST 2012-02-17 08:33:32 -06:00
qemu-timer.h ptimer: move declarations to ptimer.h 2012-01-13 10:20:50 -06:00
qemu-tls.h
qemu-tool.c main-loop: For tools, initialize timers as part of qemu_init_main_loop() 2012-02-01 14:45:02 -06:00
qemu-x509.h
qemu-xattr.h
qemu.sasl
qerror.c qdev: print error message before aborting 2012-02-14 18:57:33 +00:00
qerror.h qdev: print error message before aborting 2012-02-14 18:57:33 +00:00
qfloat.c
qfloat.h
qint.c
qint.h
qjson.c
qjson.h
qlist.c
qlist.h
qmp-commands.hx Add SPICE support to add_client monitor command 2012-02-21 10:36:05 +01:00
qmp.c qom: add QObject-based property get/set wrappers 2012-02-07 13:52:40 +01:00
qobject.h
qstring.c
qstring.h
range.h
readline.c
readline.h
README
rules.mak
s390-dis.c
s390.ld
savevm.c Fix vmstate_register_ram() for rom/device regions 2012-01-08 18:16:31 +02:00
sh4-dis.c
softmmu_defs.h
softmmu_exec.h
softmmu_header.h
softmmu_template.h Remove IO_MEM_SHIFT 2012-01-04 13:34:50 +02:00
softmmu-semi.h
sparc64.ld
sparc-dis.c
sparc.ld
spice-qemu-char.c
sysemu.h mc146818rtc: Use lost_tick_policy property 2012-02-01 14:45:01 -06:00
targphys.h
tcg-runtime.c
tci-dis.c
tci.c
test-coroutine.c
test-qmp-commands.c
test-qmp-input-visitor.c qmp: Add missing gcc format attribute and fix format string 2012-01-18 10:23:39 -02:00
test-qmp-output-visitor.c
test-string-input-visitor.c qapi: add tests for string-based visitors 2012-02-21 10:21:05 +01:00
test-string-output-visitor.c qapi: add tests for string-based visitors 2012-02-21 10:21:05 +01:00
thunk.c
thunk.h
TODO Update 2008-12-04 11:29:42 +00:00
trace-events jazz-led: use trace framework 2012-02-22 09:02:19 -06:00
translate-all.c
uboot_image.h
usb-bsd.c Merge remote-tracking branch 'kraxel/usb.38' into staging 2012-02-15 17:25:25 -06:00
usb-linux.c Merge remote-tracking branch 'kraxel/usb.38' into staging 2012-02-15 17:25:25 -06:00
usb-redir.c Merge remote-tracking branch 'kraxel/usb.38' into staging 2012-02-15 17:25:25 -06:00
usb-stub.c
user-exec.c
VERSION
version.rc
vgafont.h
vl.c Make kernel, initrd and append be machine_opts 2012-02-22 09:02:52 -06:00
vmstate.h vmstate: extract declarations out of hw/hw.h 2012-01-13 10:20:51 -06:00
x86_64.ld
xen-all.c memory: change dirty setting APIs to take a size 2012-01-25 18:32:47 +00:00
xen-mapcache.c prepare for future GPLv2+ relicensing 2012-01-13 10:55:56 -06:00
xen-mapcache.h
xen-stub.c prepare for future GPLv2+ relicensing 2012-01-13 10:55:56 -06:00
xtensa-semi.c

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

- QEMU team