mirror_qemu/linux-user
Aleksandar Markovic ff71a4545c linux-user: Fix socketcall() syscall support
Since not all Linux host platforms support socketcall() (most notably
Intel), do_socketcall() function in Qemu's syscalls.c is implemented to
mirror the corespondant implementation of socketcall() in Linux kernel,
and to utilise individual socket operations that are supported on all
Linux platforms. (see kernel source file net/socket.c, definition of
socketcall).

However, error codes produced by Qemu implementation are wrong for the
cases of invalid values of the first argument. Also, naming of constants
is not consistent with kernel one, and not consistant with Qemu convention
of prefixing such constants with "TARGET_". This patch in that light
brings do_socketcall() closer to its kernel counterpart, and in that way
fixes the errors and yields more consisrtent Qemu code.

There were also three missing cases (among 20) for strace support for
socketcall(). The array that contains pointers for appropriate printing
functions is updated with 3 elements, however pointers to functions are
left NULL, and its implementation is left for future.

Also, this patch fixes failure of LTP test socketcall02, if executed on some
Qemu emulated sywstems (uer mode).

Signed-off-by: Aleksandar Markovic <aleksandar.markovic@imgtec.com>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
2016-10-21 15:19:40 +03:00
..
aarch64 linux-user: AArch64 has sync_file_range, not sync_file_range2 2016-07-19 16:18:11 +03:00
alpha linux-user: Clean up target_structs.h header guards 2016-07-12 16:19:16 +02:00
arm linux-user: fix TARGET_NR_select 2016-09-22 07:24:21 +03:00
cris linux-user: Clean up target_structs.h header guards 2016-07-12 16:19:16 +02:00
host linux-user: Clean up hostdep.h header guards 2016-07-12 16:19:16 +02:00
i386 linux-user: fix TARGET_NR_select 2016-09-22 07:24:21 +03:00
m68k linux-user: fix TARGET_NR_select 2016-09-22 07:24:21 +03:00
microblaze linux-user: fix TARGET_NR_select 2016-09-22 07:24:21 +03:00
mips linux-user: Add missing TARGET_EDQUOT error code for Mips 2016-09-23 07:07:35 +01:00
mips64 linux-user: Add missing TARGET_EDQUOT error code for Mips 2016-09-23 07:07:35 +01:00
openrisc linux-user: fix TARGET_NR_select 2016-09-22 07:24:21 +03:00
ppc ppc: Fix signal delivery in ppc-user and ppc64-user 2016-09-23 10:29:40 +10:00
s390x linux-user: Clean up target_structs.h header guards 2016-07-12 16:19:16 +02:00
sh4 linux-user: fix TARGET_NR_select 2016-09-22 07:24:21 +03:00
sparc linux-user: Use correct target SHMLBA in shmat() 2016-09-21 14:28:52 +03:00
sparc64 linux-user: Clean up target_structs.h header guards 2016-07-12 16:19:16 +02:00
tilegx linux-user: fix TARGET_NR_select 2016-09-22 07:24:21 +03:00
unicore32 linux-user: Clean up target_structs.h header guards 2016-07-12 16:19:16 +02:00
x86_64 linux-user: Fix target_semid_ds structure definition 2016-08-04 16:36:53 +03:00
Makefile.objs linux-user: Provide safe_syscall for fixing races between signals and syscalls 2016-05-27 14:49:51 +03:00
elfload.c linux-user: ppc64: fix ARCH_206 bit in AT_HWCAP 2016-09-23 12:39:07 +10:00
errno_defs.h linux-user: Renumber TARGET_QEMU_ESIGRETURN, make it not arch-specific 2016-05-27 14:49:49 +03: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: Fix error handling in flatload.c target_pread() 2016-09-21 14:27:19 +03:00
ioctls.h linux-user: Implement FS_IOC_GETFLAGS and FS_IOC_SETFLAGS ioctls 2016-09-21 14:24:47 +03:00
linux_loop.h linux-user: Add loop control ioctls 2016-07-19 15:22:33 +03:00
linuxload.c linux-user: Clean up includes 2016-01-29 15:07:22 +00:00
m68k-sim.c linux-user: Clean up includes 2016-01-29 15:07:22 +00:00
main.c trace: provide mechanism for registering trace events 2016-10-12 09:52:50 +02:00
mmap.c os-posix: include sys/mman.h 2016-06-16 18:39:03 +02:00
qemu.h linux-user: Pass si_type information to queue_signal() explicitly 2016-09-21 22:01:28 +03:00
safe-syscall.S linux-user: Provide safe_syscall for fixing races between signals and syscalls 2016-05-27 14:49:51 +03:00
signal.c ppc: Fix signal delivery in ppc-user and ppc64-user 2016-09-23 10:29:40 +10:00
socket.h linux-user: support SO_PASSSEC setsockopt option 2014-06-29 14:19:59 +03:00
strace.c linux-user: Fix socketcall() syscall support 2016-10-21 15:19:40 +03:00
strace.list linux-user: Add support for adjtimex() syscall 2016-10-21 15:19:39 +03:00
syscall.c linux-user: Fix socketcall() syscall support 2016-10-21 15:19:40 +03:00
syscall_defs.h linux-user: Fix socketcall() syscall support 2016-10-21 15:19:40 +03:00
syscall_types.h linux-user: Correct type for LOOP_GET_STATUS{,64} ioctls 2016-07-19 15:23:16 +03:00
target_flat.h linux-user/FLAT: allow targets to override FLAT processing 2011-02-09 10:33:54 +02:00
trace-events trace-events: fix first line comment in trace-events 2016-08-12 10:36:01 +01:00
uaccess.c util: move declarations out of qemu-common.h 2016-03-22 22:20:17 +01:00
uname.c linux-user: Clean up includes 2016-01-29 15:07:22 +00:00
uname.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
vm86.c linux-user: Clean up includes 2016-01-29 15:07:22 +00:00