huangcm
2025-08-25 f350412dc55c15118d0a7925d1071877498e5e24
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#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_ */