LCOV - code coverage report
Current view: top level - include/linux - task_work.h (source / functions) Hit Total Coverage
Test: fstests of 6.5.0-rc3-achx @ Mon Jul 31 20:08:12 PDT 2023 Lines: 1 1 100.0 %
Date: 2023-07-31 20:08:12 Functions: 0 0 -

          Line data    Source code
       1             : /* SPDX-License-Identifier: GPL-2.0 */
       2             : #ifndef _LINUX_TASK_WORK_H
       3             : #define _LINUX_TASK_WORK_H
       4             : 
       5             : #include <linux/list.h>
       6             : #include <linux/sched.h>
       7             : 
       8             : typedef void (*task_work_func_t)(struct callback_head *);
       9             : 
      10             : static inline void
      11             : init_task_work(struct callback_head *twork, task_work_func_t func)
      12             : {
      13  1627562853 :         twork->func = func;
      14             : }
      15             : 
      16             : enum task_work_notify_mode {
      17             :         TWA_NONE,
      18             :         TWA_RESUME,
      19             :         TWA_SIGNAL,
      20             :         TWA_SIGNAL_NO_IPI,
      21             : };
      22             : 
      23             : static inline bool task_work_pending(struct task_struct *task)
      24             : {
      25             :         return READ_ONCE(task->task_works);
      26             : }
      27             : 
      28             : int task_work_add(struct task_struct *task, struct callback_head *twork,
      29             :                         enum task_work_notify_mode mode);
      30             : 
      31             : struct callback_head *task_work_cancel_match(struct task_struct *task,
      32             :         bool (*match)(struct callback_head *, void *data), void *data);
      33             : struct callback_head *task_work_cancel(struct task_struct *, task_work_func_t);
      34             : void task_work_run(void);
      35             : 
      36             : static inline void exit_task_work(struct task_struct *task)
      37             : {
      38             :         task_work_run();
      39             : }
      40             : 
      41             : #endif  /* _LINUX_TASK_WORK_H */

Generated by: LCOV version 1.14