diff options
author | Joseph Myers <joseph@codesourcery.com> | 2017-05-09 20:01:01 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2017-05-09 20:01:01 +0000 |
commit | 9a45f54310573c190fa270e1f80d8307750305e9 (patch) | |
tree | 135f79c47c0879424944e74a10192e78eec66201 /sysdeps/unix/sysv/linux/kernel-features.h | |
parent | 4fc12f0eda596b12fb27fb39ea4ac5e68ac4170e (diff) | |
download | glibc-9a45f54310573c190fa270e1f80d8307750305e9.tar.gz glibc-9a45f54310573c190fa270e1f80d8307750305e9.tar.xz glibc-9a45f54310573c190fa270e1f80d8307750305e9.zip |
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.
Diffstat (limited to 'sysdeps/unix/sysv/linux/kernel-features.h')
-rw-r--r-- | sysdeps/unix/sysv/linux/kernel-features.h | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h index 74ac6276e8..a5c226311c 100644 --- a/sysdeps/unix/sysv/linux/kernel-features.h +++ b/sysdeps/unix/sysv/linux/kernel-features.h @@ -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 |