1#ifndef _LINUX_TASK_WORK_H 2#define _LINUX_TASK_WORK_H 3 4#include <linux/list.h> 5#include <linux/sched.h> 6 7typedef void (*task_work_func_t)(struct callback_head *); 8 9static inline void 10init_task_work(struct callback_head *twork, task_work_func_t func) 11{ 12 twork->func = func; 13} 14 15int task_work_add(struct task_struct *task, struct callback_head *twork, bool); 16struct callback_head *task_work_cancel(struct task_struct *, task_work_func_t); 17void task_work_run(void); 18 19static inline void exit_task_work(struct task_struct *task) 20{ 21 task_work_run(); 22} 23 24#endif /* _LINUX_TASK_WORK_H */ 25