1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-28 00:21:52 +03:00

Simplify sendmmsg code.

Now we can assume a kernel with sendmmsg support, this patch
simplifies the implementation to be similar to that for accept4:
either using socketcall or the syscall according to whether the
syscall is known to be available, without further fallback
implementations.  The __ASSUME_SENDMMSG macro is kept (now defined
unconditionally), since it's used in resolv/res_send.c.

Tested for x86_64 and x86.

	* sysdeps/unix/sysv/linux/kernel-features.h
	(__ASSUME_SENDMMSG_SYSCALL): Define unconditionally.
	(__ASSUME_SENDMMSG): Likewise.
	(__ASSUME_SENDMMSG_SOCKETCALL): Remove macro.
	* sysdeps/unix/sysv/linux/sendmmsg.c (__sendmmsg): Define using
	sendmmsg syscall if that can be assumed to be present, socketcall
	otherwise, with no fallback for runtime failure.
This commit is contained in:
Joseph Myers
2017-05-09 20:01:52 +00:00
parent 9a45f54310
commit 0cb5da5c09
3 changed files with 20 additions and 68 deletions

View File

@ -99,13 +99,8 @@
/* Support for sendmmsg functionality was added in 3.0. The macros
defined correspond to those for accept4 and recvmmsg. */
#if __LINUX_KERNEL_VERSION >= 0x030000
# ifdef __ASSUME_SOCKETCALL
# define __ASSUME_SENDMMSG_SOCKETCALL 1
# endif
# define __ASSUME_SENDMMSG_SYSCALL 1
# define __ASSUME_SENDMMSG 1
#endif
#define __ASSUME_SENDMMSG_SYSCALL 1
#define __ASSUME_SENDMMSG 1
/* On most architectures, most socket syscalls are supported for all
supported kernel versions, but on some socketcall architectures