diff --git a/src/include/liburing.h b/src/include/liburing.h index 0a02364540a8..6f6d9db2f08a 100644 --- a/src/include/liburing.h +++ b/src/include/liburing.h @@ -764,6 +764,21 @@ IOURINGINLINE void io_uring_prep_madvise(struct io_uring_sqe *sqe, void *addr, sqe->fadvise_advice = (__u32) advice; } +IOURINGINLINE void io_uring_prep_fadvise64(struct io_uring_sqe *sqe, int fd, + __u64 offset, off_t len, int advice) +{ + io_uring_prep_rw(IORING_OP_FADVISE, sqe, fd, NULL, 0, offset); + sqe->addr = len; + sqe->fadvise_advice = (__u32) advice; +} + +IOURINGINLINE void io_uring_prep_madvise64(struct io_uring_sqe *sqe, void *addr, + off_t length, int advice) +{ + io_uring_prep_rw(IORING_OP_MADVISE, sqe, -1, addr, 0, length); + sqe->fadvise_advice = (__u32) advice; +} + IOURINGINLINE void io_uring_prep_send(struct io_uring_sqe *sqe, int sockfd, const void *buf, size_t len, int flags) { diff --git a/src/include/liburing/io_uring.h b/src/include/liburing/io_uring.h index 9330733efd66..12fbfcf3e689 100644 --- a/src/include/liburing/io_uring.h +++ b/src/include/liburing/io_uring.h @@ -537,6 +537,7 @@ struct io_uring_params { #define IORING_FEAT_LINKED_FILE (1U << 12) #define IORING_FEAT_REG_REG_RING (1U << 13) #define IORING_FEAT_RECVSEND_BUNDLE (1U << 14) +#define IORING_FEAT_64BIT_ADVISE (1U << 15) /* * io_uring_register(2) opcodes and arguments diff --git a/src/liburing-ffi.map b/src/liburing-ffi.map index 3be48d02ac86..0e4bd9d1d78d 100644 --- a/src/liburing-ffi.map +++ b/src/liburing-ffi.map @@ -199,4 +199,6 @@ LIBURING_2.6 { } LIBURING_2.5; LIBURING_2.7 { + io_uring_prep_fadvise64; + io_uring_prep_madvise64; } LIBURING_2.6;