NAME |SYNOPSIS |DESCRIPTION |RETURN VALUE |ERRORS |SEE ALSO |COLOPHON | |
io_uring_prep_poll_update(3) liburing Manualio_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,__u64old_user_data,__u64new_user_data,unsignedpoll_mask,unsignedflags);
Theio_uring_prep_poll_update(3) function prepares a poll update request. The submission queue entrysqe is setup to update a poll request identified byold_user_data, replacing it with thenew_user_data information. Thepoll_mask arguments contains the new mask to use for the poll request, andflags argument contains modifier flags telling io_uring what fields to update. Theflags 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 thepoll_mask argument to the function. Note that only the lower 16 bits of events can be updated. This includes things likeEPOLLINandEPOLLOUT .Higher order masks/settings are included as internal state, and cannot be modified. That includes settings likeEPOLLONESHOT ,EPOLLEXCLUSIVE ,andEPOLLET .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 thenew_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 withIORING_POLL_UPDATE_EVENTSas the event field must be updated to enable multishot.
None
These are the errors that are reported in the CQEres field. On success,0is returned.-ENOENT The request identified byuser_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.-ECANCELEDIORING_POLL_UPDATE_EVENTSwas 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 theliburing (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 isnot part of the original manual page), send a mail to man-pages@man7.orgliburing-2.2 March 12, 2022io_uring_prep_poll_update(3)Pages that refer to this page:io_uring_prep_poll_update(3)
HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface. For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere. Hosting byjambit GmbH. | ![]() |