qemu-patch-raspberry4/linux-user
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
..
aarch64 linux-user: AArch64: define TARGET_CLONE_BACKWARDS 2014-01-08 19:07:20 +00:00
alpha linux-user: sync syscall numbers upto 3.13 2014-02-18 16:45:55 +02:00
arm linux-user: sync syscall numbers upto 3.13 2014-02-18 16:45:55 +02:00
cris linux-user: sync syscall numbers upto 3.13 2014-02-18 16:45:55 +02:00
i386 linux-user: sync syscall numbers upto 3.13 2014-02-18 16:45:55 +02:00
m68k linux-user: sync syscall numbers upto 3.13 2014-02-18 16:45:55 +02:00
microblaze linux-user: sync syscall numbers upto 3.13 2014-02-18 16:45:55 +02:00
mips linux-user: sync syscall numbers upto 3.13 2014-02-18 16:45:55 +02:00
mips64 linux-user: sync syscall numbers upto 3.13 2014-02-18 16:45:55 +02:00
openrisc linux-user: sync syscall numbers upto 3.13 2014-02-18 16:45:55 +02:00
ppc linux-user: sync syscall numbers upto 3.13 2014-02-18 16:45:55 +02:00
s390x linux-user: sync syscall numbers upto 3.13 2014-02-18 16:45:55 +02:00
sh4 linux-user: sync syscall numbers upto 3.13 2014-02-18 16:45:55 +02:00
sparc linux-user: sync syscall numbers upto 3.13 2014-02-18 16:45:55 +02:00
sparc64 linux-user: sync syscall numbers upto 3.13 2014-02-18 16:45:55 +02:00
unicore32 linux-user: create target_structs header to place ipc_perm and shmid_ds 2013-11-29 11:42:04 +02:00
x86_64 linux-user: sync syscall numbers upto 3.13 2014-02-18 16:45:55 +02:00
cpu-uname.c linux-user: Don't treat AArch64 cpu names specially 2013-09-10 19:11:28 +01:00
cpu-uname.h linux-user: adapt uname machine to emulated CPU 2010-02-06 17:19:43 +01:00
elfload.c linux-user/elfload.c: Avoid calling g_free() on uninitialized data 2014-02-18 16:54:06 +02:00
errno_defs.h Remove unnecessary trailing newlines 2008-12-13 09:32:43 +00:00
flat.h Support for 32 bit ABI on 64 bit targets (only enabled Sparc64) 2007-10-14 16:27:31 +00:00
flatload.c linux-user: Remove regs parameter of load_elf_binary and load_flt_binary 2014-01-10 08:51:37 +02:00
ioctls.h linux-user: Implement BLKPG ioctl 2014-02-19 12:29:23 +02:00
linux_loop.h Fix build failure with old kernel headers (loop.h is incompatible with 2008-05-23 16:06:43 +00:00
linuxload.c linux-user: Remove regs parameter of load_elf_binary and load_flt_binary 2014-01-10 08:51:37 +02:00
m68k-sim.c linux-user: Fix typo m86k -> m68k 2010-10-05 13:53:56 -05:00
main.c linux-user: AArch64: Fix exclusive store of the zero register 2014-02-20 10:35:56 +00:00
Makefile.objs build: move *-user/ objects to nested Makefile.objs 2012-06-07 07:17:33 +02:00
mmap.c configure: Make NPTL non-optional 2013-07-22 21:54:52 +03:00
qemu.h linux-user: Remove regs parameter of load_elf_binary and load_flt_binary 2014-01-10 08:51:37 +02:00
signal.c linux-user: AArch64: Implement SA_RESTORER for signal handlers 2014-03-03 23:03:16 +02:00
socket.h linux-user: improve target_to_host_sock_type conversion 2013-07-05 15:45:40 +03:00
strace.c linux-user: Don't omit comma for strace of rt_sigaction() 2013-04-05 14:40:54 +02:00
strace.list [v2] linux-user: implement m68k atomic syscalls 2013-09-24 10:47:07 +03:00
syscall.c linux-user: Implement sendmmsg syscall 2014-03-03 23:08:09 +02:00
syscall_defs.h linux-user: Implement sendmmsg syscall 2014-03-03 23:08:09 +02:00
syscall_types.h linux-user: Implement BLKPG ioctl 2014-02-19 12:29:23 +02:00
target_flat.h linux-user/FLAT: allow targets to override FLAT processing 2011-02-09 10:33:54 +02:00
uaccess.c Fix missing strnlen problems 2009-07-01 18:24:44 +00:00
vm86.c linux-user: fix abi_(u)long, target_ulong mismatch 2011-10-27 14:42:16 +03:00