diff options
author | Eugene Syromyatnikov <evgsyr@gmail.com> | 2018-02-08 11:58:30 +0100 |
---|---|---|
committer | Dmitry V. Levin <ldv@altlinux.org> | 2018-02-09 20:11:53 +0000 |
commit | a9512e5779d4fea80380931347ce8938e1c424d6 (patch) | |
tree | 68251ff660bd3116a1b6518c5fcaf866992f02da /tests/accept.c | |
parent | 9fcaf3bd888dc5fefb3b69560ea330a2fc18f47f (diff) | |
download | strace-a9512e5779d4fea80380931347ce8938e1c424d6.tar.gz |
tests/accept.c: call accept syscall directly, if available
* tests/accept.c [__NR_accept && !TEST_SYSCALL_NAME]: Define a wrapper that
calls accept directly.
* tests/sockname.c [TEST_SYSCALL_STR]: Do not define TEST_SYSCALL_STR.
Diffstat (limited to 'tests/accept.c')
-rw-r--r-- | tests/accept.c | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/tests/accept.c b/tests/accept.c index 8d42ba156..b96023d34 100644 --- a/tests/accept.c +++ b/tests/accept.c @@ -27,9 +27,34 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef TEST_SYSCALL_NAME -# define TEST_SYSCALL_NAME accept -#endif +#include "tests.h" + +#include <unistd.h> + +#include <asm/unistd.h> + +#if defined __NR_accept + +# ifndef TEST_SYSCALL_NAME +# define TEST_SYSCALL_NAME do_accept + +# ifndef TEST_SYSCALL_STR +# define TEST_SYSCALL_STR "accept" +# endif + +int do_accept(int sockfd, void *addr, void *addrlen) +{ + return syscall(__NR_accept, sockfd, addr, addrlen); +} +# endif /* !TEST_SYSCALL_NAME */ + +#else /* !__NR_accept */ + +# ifndef TEST_SYSCALL_NAME +# define TEST_SYSCALL_NAME accept +# endif + +#endif /* __NR_accept */ #define TEST_SYSCALL_PREPARE connect_un() static void connect_un(void); |