1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * Copyright (c) 2018 Google, Inc. 4 */ 5 6#ifndef SENDMMSG_VAR__ 7#define SENDMMSG_VAR__ 8 9#include "tst_timer.h" 10#include "lapi/syscalls.h" 11 12static inline int libc_sendmmsg(int sockfd, struct mmsghdr *msgvec, 13 unsigned int vlen, unsigned int flags) 14{ 15#ifdef HAVE_SENDMMSG 16 return sendmmsg(sockfd, msgvec, vlen, flags); 17#else 18 tst_brk(TCONF, "libc sendmmsg not present"); 19 return -1; 20#endif 21} 22 23static inline int sys_sendmmsg(int sockfd, struct mmsghdr *msgvec, 24 unsigned int vlen, unsigned int flags) 25{ 26 return tst_syscall(__NR_sendmmsg, sockfd, msgvec, vlen, flags); 27} 28 29static inline int libc_recvmmsg(int sockfd, struct mmsghdr *msgvec, 30 unsigned int vlen, unsigned int flags, void *timeout) 31{ 32#ifdef HAVE_RECVMMSG 33 return recvmmsg(sockfd, msgvec, vlen, flags, timeout); 34#else 35 tst_brk(TCONF, "libc recvmmsg not present"); 36 return -1; 37#endif 38} 39 40static inline int sys_recvmmsg(int sockfd, struct mmsghdr *msgvec, 41 unsigned int vlen, unsigned int flags, void *timeout) 42{ 43 return tst_syscall(__NR_recvmmsg, sockfd, msgvec, vlen, flags, timeout); 44} 45 46static inline int sys_recvmmsg64(int sockfd, struct mmsghdr *msgvec, 47 unsigned int vlen, unsigned int flags, void *timeout) 48{ 49 return tst_syscall(__NR_recvmmsg_time64, sockfd, msgvec, vlen, flags, 50 timeout); 51} 52 53#endif /* SENDMMSG_VAR__ */ 54