| #ifndef _STRACE_TESTS_ACCEPT_COMPAT_H_ |
| #define _STRACE_TESTS_ACCEPT_COMPAT_H_ |
| |
| #include <unistd.h> |
| #include <sys/socket.h> |
| #include <asm/unistd.h> |
| |
| #if defined __NR_socketcall && defined __sparc__ |
| /* |
| * Work around the fact that |
| * - glibc >= 2.26 uses accept4 syscall to implement accept() call on sparc; |
| * - accept syscall had not been wired up on sparc until v4.4-rc8~4^2~1. |
| */ |
| static inline int |
| do_accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen) |
| { |
| const long args[] = { sockfd, (long) addr, (long) addrlen }; |
| |
| return syscall(__NR_socketcall, 5, args); |
| } |
| #else |
| # define do_accept accept |
| #endif |
| |
| #endif /* !_STRACE_TESTS_ACCEPT_COMPAT_H_ */ |