diff options
author | Joseph Myers <joseph@codesourcery.com> | 2017-05-09 21:59:36 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2017-05-09 21:59:36 +0000 |
commit | e3b0580d0d66fbdfc2086c20304c0129f9a5297e (patch) | |
tree | 03e1a6ebdbd8a1362126d9e1fced9c5eda7d9640 /sysdeps/unix/sysv/linux/i386/kernel-features.h | |
parent | eab380d8ec9884e90232dceba24161e63ddd26b8 (diff) | |
download | glibc-e3b0580d0d66fbdfc2086c20304c0129f9a5297e.tar glibc-e3b0580d0d66fbdfc2086c20304c0129f9a5297e.tar.gz glibc-e3b0580d0d66fbdfc2086c20304c0129f9a5297e.tar.bz2 glibc-e3b0580d0d66fbdfc2086c20304c0129f9a5297e.zip |
Simplify accept4, recvmmsg, sendmmsg code.
The accept4, recvmmsg and sendmmsg functions had macros
__ASSUME_*_SYSCALL_WITH_SOCKETCALL. Before we could assume kernels
with the relevant functionality, these macros represented the
conditions under which, on a socketcall architecture, glibc could just
call the syscall unconditionally and not have to deal with socketcall
at all for those functions, because if the syscall didn't work for
them the socketcall call wouldn't either.
Now we can assume kernels with the relevant functionality, the only
question is whether we can assume the syscall is present; if not, we
are on a socketcall architecture and just use socketcall instead.
Thus, this patch removes the macros that are no longer necessary, and
simplifies the code for accept4, recvmmsg and sendmmsg to use the same
logic as the other C implementations of socket functions that may use
a syscall or socketcall depending on kernel support.
Tested for x86_64 and x86.
* sysdeps/unix/sysv/linux/accept4.c (accept4): Use syscall if
[__ASSUME_ACCEPT4_SYSCALL], otherwise socketcall.
* sysdeps/unix/sysv/linux/recvmmsg.c (recvmmsg): Use syscall if
[__ASSUME_RECVMMSG_SYSCALL], otherwise socketcall.
* sysdeps/unix/sysv/linux/sendmmsg.c (__sendmmsg): Use syscall if
[__ASSUME_SENDMMSG_SYSCALL], otherwise socketcall.
* sysdeps/unix/sysv/linux/kernel-features.h
(__ASSUME_ACCEPT4_SYSCALL): Move to general list of macros for
socket syscalls.
(__ASSUME_RECVMMSG_SYSCALL): Likewise.
(__ASSUME_SENDMMSG_SYSCALL): Likewise.
* sysdeps/unix/sysv/linux/i386/kernel-features.h
(__ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL): Remove.
(__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
* sysdeps/unix/sysv/linux/microblaze/kernel-features.h
(__ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL): Remove.
* sysdeps/unix/sysv/linux/powerpc/kernel-features.h
(__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
* sysdeps/unix/sysv/linux/sh/kernel-features.h
(__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
* sysdeps/unix/sysv/linux/sparc/kernel-features.h
(__ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL): Likewise.
(__ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
(__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
Diffstat (limited to 'sysdeps/unix/sysv/linux/i386/kernel-features.h')
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/kernel-features.h | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/sysdeps/unix/sysv/linux/i386/kernel-features.h b/sysdeps/unix/sysv/linux/i386/kernel-features.h index 96a8e3bc1d..c6eb20f360 100644 --- a/sysdeps/unix/sysv/linux/i386/kernel-features.h +++ b/sysdeps/unix/sysv/linux/i386/kernel-features.h @@ -20,12 +20,6 @@ /* i386 uses socketcall. */ #define __ASSUME_SOCKETCALL 1 -/* The recvmmsg syscall was added for i386 in 2.6.33. */ -#define __ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL 1 - -/* The sendmmsg syscall was added for i386 in 3.0. */ -#define __ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL 1 - /* Direct socketcalls available with kernel 4.3. */ #if __LINUX_KERNEL_VERSION >= 0x040300 # define __ASSUME_SOCKET_SYSCALL 1 |