1 | // SPDX-License-Identifier: GPL-2.0 |
2 | |
3 | #include "cancel.h" |
4 | |
5 | int io_futex_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe); |
6 | int io_futexv_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe); |
7 | int io_futex_wait(struct io_kiocb *req, unsigned int issue_flags); |
8 | int io_futexv_wait(struct io_kiocb *req, unsigned int issue_flags); |
9 | int io_futex_wake(struct io_kiocb *req, unsigned int issue_flags); |
10 | |
11 | #if defined(CONFIG_FUTEX) |
12 | int io_futex_cancel(struct io_ring_ctx *ctx, struct io_cancel_data *cd, |
13 | unsigned int issue_flags); |
14 | bool io_futex_remove_all(struct io_ring_ctx *ctx, struct task_struct *task, |
15 | bool cancel_all); |
16 | void io_futex_cache_init(struct io_ring_ctx *ctx); |
17 | void io_futex_cache_free(struct io_ring_ctx *ctx); |
18 | #else |
19 | static inline int io_futex_cancel(struct io_ring_ctx *ctx, |
20 | struct io_cancel_data *cd, |
21 | unsigned int issue_flags) |
22 | { |
23 | return 0; |
24 | } |
25 | static inline bool io_futex_remove_all(struct io_ring_ctx *ctx, |
26 | struct task_struct *task, bool cancel_all) |
27 | { |
28 | return false; |
29 | } |
30 | static inline void io_futex_cache_init(struct io_ring_ctx *ctx) |
31 | { |
32 | } |
33 | static inline void io_futex_cache_free(struct io_ring_ctx *ctx) |
34 | { |
35 | } |
36 | #endif |
37 | |