|
NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | SEE ALSO | COLOPHON |
|
|
|
io_uring_prep_poll_update(3) liburing Manual io_uring_prep_poll_update(3)
io_uring_prep_poll_update - update an existing poll request
#include <poll.h>
#include <liburing.h>
void io_uring_prep_poll_update(struct io_uring_sqe *sqe,
__u64 old_user_data,
__u64 new_user_data,
unsigned poll_mask,
unsigned flags);
The io_uring_prep_poll_update(3) function prepares a poll update
request. The submission queue entry sqe is setup to update a poll
request identified by old_user_data, replacing it with the
new_user_data information. The poll_mask arguments contains the
new mask to use for the poll request, and flags argument contains
modifier flags telling io_uring what fields to update.
The flags modifier flags is a bitmask and may contain and OR'ed
mask of:
IORING_POLL_UPDATE_EVENTS
If set, the poll update request will replace the existing
events being waited for with the ones specified in the
poll_mask argument to the function. Note that only the
lower 16 bits of events can be updated. This includes
things like EPOLLIN and EPOLLOUT . Higher order
masks/settings are included as internal state, and cannot
be modified. That includes settings like EPOLLONESHOT ,
EPOLLEXCLUSIVE , and EPOLLET . If an application wishes to
modify these, it must cancel/remove the existing poll
request and arm a new one.
IORING_POLL_UPDATE_USER_DATA
If set, the poll update request will update the existing
user_data of the request with the value passed in as the
new_user_data argument.
IORING_POLL_ADD_MULTI
If set, this will change the poll request from a singleshot
to a multishot request. This must be used along with
IORING_POLL_UPDATE_EVENTS as the event field must be
updated to enable multishot.
None
These are the errors that are reported in the CQE res field. On
success, 0 is returned.
-ENOENT
The request identified by user_data could not be located.
This could be because it completed before the cancelation
request was issued, or if an invalid identifier is used.
-EINVAL
One of the fields set in the SQE was invalid.
-EALREADY
The execution state of the request has progressed far
enough that cancelation is no longer possible. This should
normally mean that it will complete shortly, either
successfully, or interrupted due to the cancelation.
-ECANCELED
IORING_POLL_UPDATE_EVENTS was set and an error occurred re-
arming the poll request with the new mask. The original
poll request is terminated if this happens, and that
termination CQE will contain the reason for the error re-
arming.
io_uring_get_sqe(3), io_uring_submit(3),
io_uring_prep_poll_add(3), io_uring_prep_poll_multishot(3)
This page is part of the liburing (A library for io_uring)
project. Information about the project can be found at
⟨https://github.com/axboe/liburing⟩. If you have a bug report for
this manual page, send it to io-uring@vger.kernel.org. This page
was obtained from the project's upstream Git repository
⟨https://github.com/axboe/liburing⟩ on 2025-08-11. (At that time,
the date of the most recent commit that was found in the
repository was 2025-08-02.) If you discover any rendering
problems in this HTML version of the page, or you believe there is
a better or more up-to-date source for the page, or you have
corrections or improvements to the information in this COLOPHON
(which is not part of the original manual page), send a mail to
man-pages@man7.org
liburing-2.2 March 12, 2022 io_uring_prep_poll_update(3)
Pages that refer to this page: io_uring_prep_poll_update(3)