mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
Simplify recvmmsg code.
Now we can assume a kernel with recvmmsg 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. (In fact further simplification is possible, getting rid of the __ASSUME_*_SYSCALL_WITH_SOCKETCALL macros now that the minimum kernel is guaranteed support for all of accept4, recvmmsg, sendmmsg, whether through syscalls or through socketcall. I intend to do that for all of accept4 / recvmmsg / sendmmsg together - so making their implementations just like those for older socket functions - once the basic cleanup for 3.2 minimum kernel is done for sendmmsg as well as recvmmsg.) Tested for x86_64 and x86. * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_RECVMMSG_SYSCALL): Define unconditionally. (__ASSUME_RECVMMSG_SOCKETCALL): Remove macro. (__ASSUME_RECVMMSG): Likewise. * sysdeps/unix/sysv/linux/recvmmsg.c (recvmmsg): Define using recvmmsg syscall if it can be assumed to be present, socketcall otherwise, with no fallback for runtime failure.
This commit is contained in:
@ -90,13 +90,7 @@
|
||||
|
||||
/* Support for recvmmsg functionality was added in 2.6.33. The macros
|
||||
defined correspond to those for accept4. */
|
||||
#if __LINUX_KERNEL_VERSION >= 0x020621
|
||||
# ifdef __ASSUME_SOCKETCALL
|
||||
# define __ASSUME_RECVMMSG_SOCKETCALL 1
|
||||
# endif
|
||||
# define __ASSUME_RECVMMSG_SYSCALL 1
|
||||
# define __ASSUME_RECVMMSG 1
|
||||
#endif
|
||||
#define __ASSUME_RECVMMSG_SYSCALL 1
|
||||
|
||||
/* statfs fills in f_flags since 2.6.36. */
|
||||
#if __LINUX_KERNEL_VERSION >= 0x020624
|
||||
|
Reference in New Issue
Block a user