Provided by: liburing-dev_2.2-2_amd64 bug

NAME

       io_uring_prep_poll_add - prepare a poll request

SYNOPSIS

       #include <poll.h>
       #include <liburing.h>

       void io_uring_prep_poll_add(struct io_uring_sqe *sqe,
                                   int fd,
                                   unsigned poll_mask);

       void io_uring_prep_poll_multishot(struct io_uring_sqe *sqe,
                                         int fd,
                                         unsigned poll_mask);

DESCRIPTION

       The io_uring_prep_poll_add(3) function prepares a poll request. The submission queue entry
       sqe is setup to use the file descriptor fd that should get polled, with the events desired
       specified in the poll_mask argument.

       The  default  behavior  is  a  single-shot  poll  request.  When  the  specified event has
       triggered, a completion CQE is posted and no more events will be  generated  by  the  poll
       request.   io_uring_prep_multishot(3)  behaves  identically  in  terms  of  events, but it
       persist  across  notifications  and  will  repeatedly  post  notifications  for  the  same
       registration.  A  CQE posted from a multishot poll request will have IORING_CQE_F_MORE set
       in the CQE flags member, indicating that the application should  expect  more  completions
       from  this request. If the multishot poll request gets terminated or experiences an error,
       this flag will not be set in the CQE. If this happens, the application should  not  expect
       further  CQEs  from  the original request and must reissue a new one if it still wishes to
       get notifications on this file descriptor.

RETURN VALUE

       None

ERRORS

       The CQE res field will contain the result of the operation, which  is  a  bitmask  of  the
       events  notified. See the poll(2) man page for details. Note that where synchronous system
       calls will return -1 on failure and set errno to the actual error  value,  io_uring  never
       uses errno.  Instead it returns the negated errno directly in the CQE res field.

SEE ALSO

       io_uring_get_sqe(3), io_uring_submit(3), poll(2), epoll_ctl(3)