You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.2 KiB

// SPDX-License-Identifier: GPL-2.0-or-later
/*
* Copyright (c) 2018 Google, Inc.
*/
#ifndef SENDMMSG_VAR__
#define SENDMMSG_VAR__
#include "lapi/syscalls.h"
static int do_sendmmsg(int sockfd, struct mmsghdr *msgvec, unsigned int vlen,
int flags)
{
switch (tst_variant) {
case 0:
return tst_syscall(__NR_sendmmsg, sockfd, msgvec, vlen, flags);
case 1:
#ifdef HAVE_SENDMMSG
return sendmmsg(sockfd, msgvec, vlen, flags);
#else
tst_brk(TCONF, "libc sendmmsg not present");
#endif
}
return -1;
}
static int do_recvmmsg(int sockfd, struct mmsghdr *msgvec, unsigned int vlen,
int flags, struct timespec *timeout)
{
switch (tst_variant) {
case 0:
return tst_syscall(__NR_recvmmsg, sockfd, msgvec, vlen, flags,
timeout);
case 1:
#ifdef HAVE_RECVMMSG
return recvmmsg(sockfd, msgvec, vlen, flags, timeout);
#else
tst_brk(TCONF, "libc recvmmsg not present");
#endif
}
return -1;
}
static void test_info(void)
{
switch (tst_variant) {
case 0:
tst_res(TINFO, "Testing direct sendmmsg and recvmmsg syscalls");
break;
case 1:
tst_res(TINFO, "Testing libc sendmmsg and recvmmsg syscalls");
break;
}
}
#define TEST_VARIANTS 2
#endif /* SENDMMSG_VAR__ */