[RFC PATCH liburing v1 3/5] liburing.h: Add `io_uring_prep_{sendto,sendto}` helper

From: Ammar Faizi
Date: Thu Dec 30 2021 - 12:51:04 EST


This adds IORING_OP_SENDTO and IORING_OP_RECVFROM prep helper.

Signed-off-by: Ammar Faizi <ammarfaizi2@xxxxxxxxx>
---
src/include/liburing.h | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

diff --git a/src/include/liburing.h b/src/include/liburing.h
index a36d3f6..c22e69c 100644
--- a/src/include/liburing.h
+++ b/src/include/liburing.h
@@ -750,6 +750,28 @@ static inline void io_uring_prep_fsetxattr(struct io_uring_sqe *sqe,
sqe->xattr_flags = flags;
}

+static inline void io_uring_prep_sendto(struct io_uring_sqe *sqe, int sockfd,
+ const void *buf, size_t len, int flags,
+ const struct sockaddr *dest_addr,
+ socklen_t addrlen)
+{
+ io_uring_prep_rw(IORING_OP_SENDTO, sqe, sockfd, buf, (__u32) len, 0);
+ sqe->msg_flags = (__u32) flags;
+ sqe->addr2 = (__u64) (uintptr_t) dest_addr;
+ sqe->addr3 = (__u64) addrlen;
+}
+
+static inline void io_uring_prep_recvfrom(struct io_uring_sqe *sqe, int sockfd,
+ void *buf, size_t len, int flags,
+ struct sockaddr *src_addr,
+ socklen_t *addrlen)
+{
+ io_uring_prep_rw(IORING_OP_RECVFROM, sqe, sockfd, buf, (__u32) len, 0);
+ sqe->msg_flags = (__u32) flags;
+ sqe->addr2 = (__u64) (uintptr_t) src_addr;
+ sqe->addr3 = (__u64) (uintptr_t) addrlen;
+}
+
/*
* Returns number of unconsumed (if SQPOLL) or unsubmitted entries exist in
* the SQ ring
--
2.32.0