diff options
-rw-r--r-- | src/include/liburing.h | 7 | ||||
-rw-r--r-- | src/include/liburing/io_uring.h | 2 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/include/liburing.h b/src/include/liburing.h index 4e89a8a..e8b6adb 100644 --- a/src/include/liburing.h +++ b/src/include/liburing.h @@ -278,6 +278,13 @@ static inline void io_uring_prep_accept(struct io_uring_sqe *sqe, int fd, sqe->accept_flags = flags; } +static inline void io_uring_prep_cancel(struct io_uring_sqe *sqe, void *user_data, + int flags) +{ + io_uring_prep_rw(IORING_OP_ASYNC_CANCEL, sqe, 0, user_data, 0, 0); + sqe->cancel_flags = flags; +} + static inline unsigned io_uring_sq_space_left(struct io_uring *ring) { return *ring->sq.kring_entries - (ring->sq.sqe_tail - ring->sq.sqe_head); diff --git a/src/include/liburing/io_uring.h b/src/include/liburing/io_uring.h index f82d90e..6877cf8 100644 --- a/src/include/liburing/io_uring.h +++ b/src/include/liburing/io_uring.h @@ -33,6 +33,7 @@ struct io_uring_sqe { __u32 msg_flags; __u32 timeout_flags; __u32 accept_flags; + __u32 cancel_flags; }; __u64 user_data; /* data to be passed back at completion time */ union { @@ -70,6 +71,7 @@ struct io_uring_sqe { #define IORING_OP_TIMEOUT 11 #define IORING_OP_TIMEOUT_REMOVE 12 #define IORING_OP_ACCEPT 13 +#define IORING_OP_ASYNC_CANCEL 14 /* * sqe->fsync_flags |