]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blame - include/linux/task_work.h
trim task_work: get rid of hlist
[mirror_ubuntu-jammy-kernel.git] / include / linux / task_work.h
CommitLineData
e73f8959
ON
1#ifndef _LINUX_TASK_WORK_H
2#define _LINUX_TASK_WORK_H
3
4#include <linux/list.h>
5#include <linux/sched.h>
6
7struct task_work;
8typedef void (*task_work_func_t)(struct task_work *);
9
10struct task_work {
158e1645 11 struct task_work *next;
e73f8959 12 task_work_func_t func;
e73f8959
ON
13};
14
15static inline void
41f9d29f 16init_task_work(struct task_work *twork, task_work_func_t func)
e73f8959
ON
17{
18 twork->func = func;
e73f8959
ON
19}
20
21int task_work_add(struct task_struct *task, struct task_work *twork, bool);
22struct task_work *task_work_cancel(struct task_struct *, task_work_func_t);
23void task_work_run(void);
24
25static inline void exit_task_work(struct task_struct *task)
26{
158e1645 27 if (unlikely(task->task_works))
e73f8959
ON
28 task_work_run();
29}
30
31#endif /* _LINUX_TASK_WORK_H */