diff options
author | Jens Axboe <axboe@kernel.dk> | 2019-06-17 11:32:37 -0600 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2019-06-17 11:34:22 -0600 |
commit | a8d4237e364b2a9973dabff35a6c0133572a3357 (patch) | |
tree | ab96eef14c9e2faf3369ce37950439c986578b32 /src | |
parent | 9d9e3b87214ab7e70e7174299890c30ea3b24e28 (diff) |
Add support for eventfd registration
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'src')
-rw-r--r-- | src/liburing.h | 2 | ||||
-rw-r--r-- | src/liburing.map | 2 | ||||
-rw-r--r-- | src/register.c | 24 |
3 files changed, 28 insertions, 0 deletions
diff --git a/src/liburing.h b/src/liburing.h index ca854b6..d3fcd15 100644 --- a/src/liburing.h +++ b/src/liburing.h @@ -84,6 +84,8 @@ extern int io_uring_unregister_buffers(struct io_uring *ring); extern int io_uring_register_files(struct io_uring *ring, const int *files, unsigned nr_files); extern int io_uring_unregister_files(struct io_uring *ring); +extern int io_uring_register_eventfd(struct io_uring *ring, int fd); +extern int io_uring_unregister_eventfd(struct io_uring *ring); #define io_uring_for_each_cqe(ring, head, cqe) \ for (head = *(ring)->cq.khead; \ diff --git a/src/liburing.map b/src/liburing.map index 302443c..b37a146 100644 --- a/src/liburing.map +++ b/src/liburing.map @@ -16,6 +16,8 @@ LIBURING_0.1 { io_uring_unregister_buffers; io_uring_register_files; io_uring_unregister_files; + io_uring_register_eventfd; + io_uring_unregister_eventfd; local: *; diff --git a/src/register.c b/src/register.c index b993fa9..7561575 100644 --- a/src/register.c +++ b/src/register.c @@ -58,3 +58,27 @@ int io_uring_unregister_files(struct io_uring *ring) return 0; } + +int io_uring_register_eventfd(struct io_uring *ring, int event_fd) +{ + int ret; + + ret = io_uring_register(ring->ring_fd, IORING_REGISTER_EVENTFD, + &event_fd, 1); + if (ret < 0) + return -errno; + + return 0; +} + +int io_uring_unregister_eventfd(struct io_uring *ring) +{ + int ret; + + ret = io_uring_register(ring->ring_fd, IORING_UNREGISTER_EVENTFD, NULL, + 0); + if (ret < 0) + return -errno; + + return 0; +} |