Commit | Line | Data |
---|---|---|
329061d3 JA |
1 | // SPDX-License-Identifier: GPL-2.0 |
2 | ||
3 | enum { | |
4 | IO_APOLL_OK, | |
5 | IO_APOLL_ABORTED, | |
6 | IO_APOLL_READY | |
7 | }; | |
8 | ||
9 | struct io_poll { | |
10 | struct file *file; | |
11 | struct wait_queue_head *head; | |
12 | __poll_t events; | |
13 | struct wait_queue_entry wait; | |
14 | }; | |
15 | ||
16 | struct async_poll { | |
17 | struct io_poll poll; | |
18 | struct io_poll *double_poll; | |
19 | }; | |
20 | ||
21 | int io_poll_add_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe); | |
22 | int io_poll_add(struct io_kiocb *req, unsigned int issue_flags); | |
23 | ||
24 | int io_poll_remove_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe); | |
25 | int io_poll_remove(struct io_kiocb *req, unsigned int issue_flags); | |
26 | ||
27 | int io_poll_cancel(struct io_ring_ctx *ctx, struct io_cancel_data *cd); | |
28 | int io_arm_poll_handler(struct io_kiocb *req, unsigned issue_flags); | |
29 | bool io_poll_remove_all(struct io_ring_ctx *ctx, struct task_struct *tsk, | |
30 | bool cancel_all); |