Original Xbox Emulator for Windows, macOS, and Linux (Active Development)
Go to file
Alexander Graf f19e00d776 linux-user: Implement sendmmsg syscall
Glibc when built for newer kernels assumes that the sendmmsg syscall is
available. Without it, dns resolution simply fails to work.

Wrap the syscall with existing infrastructure so that we don't have a host
dependency on sendmmsg.

To avoid locking the same area of guest memory twice (which will break if
DEBUG_REMAP is defined) we pull the lock/unlock part of do_sendrecvmsg()
out into its own function so the actual implementation can be shared.

Signed-off-by: Alexander Graf <agraf@suse.de>
[PMM: add recvmmsg support;
 handle errors (which also implies support for non-blocking operations);
 cap the vector length as the kernel implementation does;
 don't lock guest memory twice;
 support MSG_WAITFORONE flag]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
Reviewed-by: Richard Henderson <rth@twiddle.net>
2014-03-03 23:08:09 +02:00
audio Add the ability to vary Spice playback and record rates, to facilitate Opus support. 2014-02-03 11:05:15 +01:00
backends virtio_rng: replace custom backend API with UserCreatable.complete() callback 2014-01-28 12:47:11 -05:00
block Block patches 2014-02-25 10:50:11 +00:00
bsd-user *-user: Improve documentation for lock_user function 2013-09-20 20:09:24 +04:00
default-configs ppcemb-softmmu: Drop Mac and e500 emulation 2014-02-13 17:47:43 +01:00
disas disas/i386: Disassemble ANDN/SHLX/SHRX/SHAX 2014-02-17 10:12:29 -06:00
docs rdma: rename 'x-rdma' => 'rdma' 2014-02-25 14:30:28 +01:00
dtc@bc895d6d09
fpu softfloat: Support halving the result of muladd operation 2014-02-20 10:35:50 +00:00
fsdev
gdb-xml target-arm: Support fp registers in gdb stub 2013-12-17 19:42:32 +00:00
hw Updates include: 2014-02-27 11:31:52 +00:00
include target-arm queue: 2014-02-26 22:53:51 +00:00
libcacard libcacard: Don't link with all libraries QEMU links to 2014-02-09 13:06:02 +02:00
linux-headers linux-headers: Update from v3.14-rc3 2014-02-26 17:20:00 +00:00
linux-user linux-user: Implement sendmmsg syscall 2014-03-03 23:08:09 +02:00
net net: remove implicit peer from offload API 2014-02-25 14:31:05 +01:00
pc-bios Fix QEMU build on OpenBSD on x86 archs 2014-02-17 11:44:00 +00:00
pixman@97336fad32
po
qapi qapi: Refine human printing of sizes 2014-02-14 21:12:05 +01:00
qga qemu-ga: isa-serial support on Windows 2014-02-23 18:38:18 -06:00
qobject qdict: Extract non-QDicts in qdict_array_split() 2014-02-21 22:11:23 +01:00
qom qapi: Add human mode to StringOutputVisitor 2014-02-14 21:12:03 +01:00
roms Update seabios to 1.7.4 2014-02-07 16:42:13 +00:00
scripts Merge remote-tracking branch 'remotes/bonzini/configure' into staging 2014-02-24 15:38:00 +00:00
slirp misc: Spelling and grammar fixes in comments 2013-10-26 13:06:45 +04:00
stubs kvm: Introduce kvm_arch_irqchip_create 2014-02-26 17:20:00 +00:00
sysconfigs/target
target-alpha exec: Make stl_*_phys input an AddressSpace 2014-02-11 22:57:18 +10:00
target-arm target-arm: Add support for AArch32 ARMv8 CRC32 instructions 2014-02-26 17:20:07 +00:00
target-cris cris: Add interrupt signals to the CPU device 2014-02-03 14:03:59 +00:00
target-i386 target-i386: Fix I/O bitmap checks for in/out 2014-02-19 16:40:19 +01:00
target-lm32 target-lm32: stop VM on illegal or unknown instruction 2014-02-04 19:47:39 +01:00
target-m68k Merge remote-tracking branch 'rth/tcg-pull' into staging 2013-10-11 09:36:52 -07:00
target-microblaze Microblaze: Convert Microblaze-pic handling to GPIOs 2014-01-14 11:08:36 +10:00
target-mips target-mips: add user-mode FR switch support for MIPS32r5 2014-02-10 16:46:38 +01:00
target-moxie cpu: Drop cpu_model_str from CPU_COMMON 2013-10-07 11:48:47 +02:00
target-openrisc target-openrisc: Use new qemu_ld/st opcodes 2014-02-12 08:47:57 +08:00
target-ppc QOM infrastructure fixes and device conversions 2014-02-20 13:05:48 +00:00
target-s390x exec: Make stb_phys input an AddressSpace 2014-02-11 22:57:38 +10:00
target-sh4 target-sh4: Use new qemu_ld/st opcodes 2013-12-21 16:42:15 +01:00
target-sparc exec: Make stb_phys input an AddressSpace 2014-02-11 22:57:38 +10:00
target-unicore32 exec: Make ldl_*_phys input an AddressSpace 2014-02-11 22:56:54 +10:00
target-xtensa target-xtensa: provide HW confg ID registers 2014-02-24 04:47:02 +04:00
tcg tcg/i386: Fix build for systems without working cpuid.h (MacOSX, Win32) 2014-02-21 10:39:10 +00:00
tests Xtensa fixes and improvements queue 2014-02-24: 2014-02-25 11:54:40 +00:00
trace Adapt Makefiles to the new LTTng ust interface 2014-02-19 11:08:53 +01:00
ui gtk: Support keyboard translation for hosts running Windows 2014-01-20 19:30:28 +01:00
util modules: Fix building with --enable-modules 2014-02-28 12:30:13 +00:00
.exrc
.gitignore Merge remote-tracking branch 'remotes/bonzini/configure' into staging 2014-02-24 15:38:00 +00: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
.travis.yml .travis.yml: Add aarch64-* targets 2014-01-08 19:07:20 +00:00
aio-posix.c aio: make aio_poll(ctx, true) block with no fds 2013-12-06 16:53:51 +01:00
aio-win32.c aio: make aio_poll(ctx, true) block with no fds 2013-12-06 16:53:51 +01:00
arch_init.c Fix two XBZRLE corruption issues 2014-02-25 14:30:28 +01:00
async.c
balloon.c
block-migration.c block: per caller dirty bitmap 2013-11-29 13:40:33 +01:00
block.c block: Remove bdrv_open_image()'s force_raw option 2014-02-21 21:02:22 +01:00
blockdev-nbd.c nbd: use BlockDriverState refcnt 2013-09-06 15:25:08 +02:00
blockdev.c block: Add reference parameter to bdrv_open() 2014-02-21 21:02:22 +01:00
blockjob.c Use error_is_set() only when necessary 2014-02-17 11:57:23 -05:00
bt-host.c
bt-vhci.c
Changelog Use qemu-project.org domain name 2013-10-11 09:34:56 -07:00
CODING_STYLE
configure target-arm queue: 2014-02-26 22:53:51 +00:00
COPYING
COPYING.LIB
coroutine-gthread.c
coroutine-sigaltstack.c
coroutine-ucontext.c
coroutine-win32.c
cpu-exec.c target-arm: Store AIF bits in env->pstate for AArch32 2014-02-26 17:20:06 +00:00
cpus.c cpu: Add per-cpu address space 2014-02-11 22:56:37 +10:00
cputlb.c cpu: Add per-cpu address space 2014-02-11 22:56:37 +10:00
device_tree.c device_tree: qemu_fdt_setprop: Rename val_array arg 2013-12-20 01:58:12 +01:00
device-hotplug.c
disas.c disas: Implement disassembly output for A64 2014-02-08 14:50:48 +00:00
dma-helpers.c
dump.c dump-guest-memory: Check for the correct return value 2013-10-25 23:25:48 +02:00
exec.c exec: Make cpu_memory_rw_debug use the CPUs AS 2014-02-11 22:57:49 +10:00
gdbstub.c vl: allow "cont" from panicked state 2013-11-04 15:39:41 +02:00
HACKING
hmp-commands.hx block: update block commit documentation regarding image truncation 2014-01-24 16:12:49 +01:00
hmp.c Use error_is_set() only when necessary 2014-02-17 11:57:23 -05:00
hmp.h monitor: add object-add (QMP) and object_add (HMP) command 2014-01-06 13:45:47 -05:00
iohandler.c
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 'remotes/kvm/uq/master' into staging 2014-02-27 16:00:31 +00:00
kvm-stub.c kvm irqfd: support direct msimessage to irq translation 2013-09-20 12:37:52 +02:00
LICENSE
main-loop.c slirp: set mainloop timeout with more precise value 2013-09-17 12:26:05 +02:00
MAINTAINERS block: add native support for NFS 2014-02-09 09:12:38 +01:00
Makefile Merge remote-tracking branch 'remotes/bonzini/configure' into staging 2014-02-24 15:38:00 +00:00
Makefile.objs Makefile: introduce common-obj-m and block-obj-m for DSO 2014-02-20 13:14:18 +01:00
Makefile.target build: softmmu targets do not have a "main.o" file 2014-02-20 13:14:18 +01:00
memory_mapping.c
memory.c memory: split cpu_physical_memory_* functions to its own include 2014-01-13 14:04:54 +01:00
migration-exec.c
migration-fd.c
migration-rdma.c rdma: rename 'x-rdma' => 'rdma' 2014-02-25 14:30:28 +01:00
migration-tcp.c
migration-unix.c
migration.c rdma: rename 'x-rdma' => 'rdma' 2014-02-25 14:30:28 +01:00
module-common.c module: implement module loading 2014-02-20 13:14:18 +01:00
monitor.c quorum: Add quorum_open() and quorum_close(). 2014-02-21 22:29:51 +01:00
nbd.c nbd: move socket wrappers to qemu-nbd 2014-02-21 21:02:23 +01:00
os-posix.c util: Split out exec_dir from os_find_datadir 2014-02-20 13:12:54 +01:00
os-win32.c util: Split out exec_dir from os_find_datadir 2014-02-20 13:12:54 +01:00
page_cache.c Fix two XBZRLE corruption issues 2014-02-25 14:30:28 +01:00
qapi-schema.json rdma: rename 'x-rdma' => 'rdma' 2014-02-25 14:30:28 +01:00
qdev-monitor.c qdev-monitor: set DeviceState opts before calling realize 2014-02-26 10:32:40 -07:00
qdict-test-data.txt
qemu-bridge-helper.c
qemu-char.c qmp: expose list of supported character device backends 2014-02-17 11:57:23 -05:00
qemu-coroutine-io.c
qemu-coroutine-lock.c coroutine: remove qemu_co_queue_wait_insert_head 2013-12-02 17:11:49 +01:00
qemu-coroutine-sleep.c coroutine: add co_aio_sleep_ns() to allow sleep in block drivers 2013-10-30 12:22:09 +01:00
qemu-coroutine.c coroutine: add ./configure --disable-coroutine-pool 2013-09-12 10:12:48 +02:00
qemu-doc.texi Describe flaws in qcow/qcow2 encryption in the docs 2014-01-31 22:05:03 +01:00
qemu-file.c qemu_file: use fwrite() correctly 2014-02-25 14:26:59 +01:00
qemu-img-cmds.hx qemu-img: add -l for snapshot in convert 2013-12-04 15:19:00 +01:00
qemu-img.c Block patches 2014-02-25 10:50:11 +00:00
qemu-img.texi Describe flaws in qcow/qcow2 encryption in the docs 2014-01-31 22:05:03 +01:00
qemu-io-cmds.c qemu-io: New command 'sleep' 2014-01-24 17:40:03 +01:00
qemu-io.c Block patches 2014-02-25 10:50:11 +00:00
qemu-log.c
qemu-nbd.c Block patches 2014-02-25 10:50:11 +00:00
qemu-nbd.texi qemu-nbd: add doc for option -f 2013-12-04 15:19:00 +01:00
qemu-options-wrapper.h
qemu-options.h
qemu-options.hx doc: Mention chardev:id in available devices for -serial 2014-01-01 18:03:55 +04:00
qemu-seccomp.c seccomp: add some basic shared memory syscalls to the whitelist 2014-01-20 11:19:34 -02:00
qemu-tech.texi
qemu-timer.c timer: add timer_mod_anticipate and timer_mod_anticipate_ns 2013-10-17 17:31:00 +02:00
qemu.nsi nsis: Improved support for parallel installation of 32 and 64 bit code 2013-11-07 07:02:44 +01:00
qemu.sasl
qmp-commands.hx qmp: expose list of supported character device backends 2014-02-17 11:57:23 -05:00
qmp.c add optional 2nd stage initialization to -object/object-add commands 2014-01-28 12:47:02 -05:00
qtest.c qtest: Don't segfault with invalid -qtest option 2014-02-14 21:12:01 +01:00
README Use qemu-project.org domain name 2013-10-11 09:34:56 -07:00
rules.mak module: implement module loading 2014-02-20 13:14:18 +01:00
savevm.c Use error_is_set() only when necessary 2014-02-17 11:57:23 -05:00
spice-qemu-char.c spice: hook qemu_chr_fe_set_open() event to ports 2014-02-03 11:05:15 +01:00
tcg-runtime.c
tci.c misc: Use new rotate functions 2013-09-25 21:23:05 +02:00
thread-pool.c
thunk.c
tpm.c Use error_is_set() only when necessary 2014-02-17 11:57:23 -05:00
trace-events kvm: Common device control API functions 2014-02-26 17:20:00 +00:00
translate-all.c exec: Make tb_invalidate_phys_addr input an AS 2014-02-11 22:55:55 +10:00
translate-all.h split definitions for exec.c and translate-all.c radix trees 2013-12-10 12:29:56 +02:00
user-exec.c
VERSION Open 2.0 development tree 2013-11-27 14:02:45 -08:00
version.rc Use qemu-project.org domain name 2013-10-11 09:34:56 -07:00
vl.c Merge remote-tracking branch 'remotes/bonzini/configure' into staging 2014-02-24 15:38:00 +00:00
vmstate.c Fix vmstate_info_int32_le comparison/assign 2014-02-25 14:30:28 +01:00
xbzrle.c
xen-all.c xen: fix two errors when debug is enabled 2013-12-01 18:25:48 +00:00
xen-mapcache.c
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