Merge tag 'rpmsg-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc...
[platform/kernel/linux-starfive.git] / io_uring / sqpoll.h
1 // SPDX-License-Identifier: GPL-2.0
2
3 struct io_sq_data {
4         refcount_t              refs;
5         atomic_t                park_pending;
6         struct mutex            lock;
7
8         /* ctx's that are using this sqd */
9         struct list_head        ctx_list;
10
11         struct task_struct      *thread;
12         struct wait_queue_head  wait;
13
14         unsigned                sq_thread_idle;
15         int                     sq_cpu;
16         pid_t                   task_pid;
17         pid_t                   task_tgid;
18
19         unsigned long           state;
20         struct completion       exited;
21 };
22
23 int io_sq_offload_create(struct io_ring_ctx *ctx, struct io_uring_params *p);
24 void io_sq_thread_finish(struct io_ring_ctx *ctx);
25 void io_sq_thread_stop(struct io_sq_data *sqd);
26 void io_sq_thread_park(struct io_sq_data *sqd);
27 void io_sq_thread_unpark(struct io_sq_data *sqd);
28 void io_put_sq_data(struct io_sq_data *sqd);
29 void io_sqpoll_wait_sq(struct io_ring_ctx *ctx);
30 int io_sqpoll_wq_cpu_affinity(struct io_ring_ctx *ctx, cpumask_var_t mask);