Signed-off-by: Pavel Begunkov <asml.silence@xxxxxxxxx> --- src/include/liburing.h | 31 +++++++++++++++++++++++++++++++ src/liburing-ffi.map | 3 +++ 2 files changed, 34 insertions(+) diff --git a/src/include/liburing.h b/src/include/liburing.h index d162d0e6..ae2021b9 100644 --- a/src/include/liburing.h +++ b/src/include/liburing.h @@ -556,6 +556,16 @@ IOURINGINLINE void io_uring_prep_read_fixed(struct io_uring_sqe *sqe, int fd, sqe->buf_index = (__u16) buf_index; } +IOURINGINLINE void io_uring_prep_readv_fixed(struct io_uring_sqe *sqe, int fd, + const struct iovec *iovecs, + unsigned nr_vecs, __u64 offset, + int flags, int buf_index) +{ + io_uring_prep_readv2(sqe, fd, iovecs, nr_vecs, offset, flags); + sqe->opcode = IORING_OP_READV_FIXED; + sqe->buf_index = (__u16)buf_index; +} + IOURINGINLINE void io_uring_prep_writev(struct io_uring_sqe *sqe, int fd, const struct iovec *iovecs, unsigned nr_vecs, __u64 offset) @@ -580,6 +590,16 @@ IOURINGINLINE void io_uring_prep_write_fixed(struct io_uring_sqe *sqe, int fd, sqe->buf_index = (__u16) buf_index; } +IOURINGINLINE void io_uring_prep_writev_fixed(struct io_uring_sqe *sqe, int fd, + const struct iovec *iovecs, + unsigned nr_vecs, __u64 offset, + int flags, int buf_index) +{ + io_uring_prep_writev2(sqe, fd, iovecs, nr_vecs, offset, flags); + sqe->opcode = IORING_OP_WRITEV_FIXED; + sqe->buf_index = (__u16)buf_index; +} + IOURINGINLINE void io_uring_prep_recvmsg(struct io_uring_sqe *sqe, int fd, struct msghdr *msg, unsigned flags) { @@ -964,6 +984,17 @@ IOURINGINLINE void io_uring_prep_sendmsg_zc(struct io_uring_sqe *sqe, int fd, sqe->opcode = IORING_OP_SENDMSG_ZC; } +IOURINGINLINE void io_uring_prep_sendmsg_zc_fixed(struct io_uring_sqe *sqe, + int fd, + const struct msghdr *msg, + unsigned flags, + unsigned buf_index) +{ + io_uring_prep_sendmsg_zc(sqe, fd, msg, flags); + sqe->ioprio |= IORING_RECVSEND_FIXED_BUF; + sqe->buf_index = buf_index; +} + IOURINGINLINE void io_uring_prep_recv(struct io_uring_sqe *sqe, int sockfd, void *buf, size_t len, int flags) { diff --git a/src/liburing-ffi.map b/src/liburing-ffi.map index 294d2abf..75c9e9bd 100644 --- a/src/liburing-ffi.map +++ b/src/liburing-ffi.map @@ -230,4 +230,7 @@ LIBURING_2.10 { global: io_uring_register_ifq; io_uring_prep_epoll_wait; + io_uring_prep_writev_fixed; + io_uring_prep_readv_fixed; + io_uring_prep_sendmsg_zc_fixed; } LIBURING_2.9; -- 2.48.1