LCOV - code coverage report
Current view: top level - include/linux - umh.h (source / functions) Hit Total Coverage
Test: landlock.info Lines: 2 4 50.0 %
Date: 2021-04-22 12:43:58 Functions: 0 0 -

          Line data    Source code
       1             : #ifndef __LINUX_UMH_H__
       2             : #define __LINUX_UMH_H__
       3             : 
       4             : #include <linux/gfp.h>
       5             : #include <linux/stddef.h>
       6             : #include <linux/errno.h>
       7             : #include <linux/compiler.h>
       8             : #include <linux/workqueue.h>
       9             : #include <linux/sysctl.h>
      10             : 
      11             : struct cred;
      12             : struct file;
      13             : 
      14             : #define UMH_NO_WAIT     0       /* don't wait at all */
      15             : #define UMH_WAIT_EXEC   1       /* wait for the exec, but not the process */
      16             : #define UMH_WAIT_PROC   2       /* wait for the process to complete */
      17             : #define UMH_KILLABLE    4       /* wait for EXEC/PROC killable */
      18             : 
      19             : struct subprocess_info {
      20             :         struct work_struct work;
      21             :         struct completion *complete;
      22             :         const char *path;
      23             :         char **argv;
      24             :         char **envp;
      25             :         int wait;
      26             :         int retval;
      27             :         int (*init)(struct subprocess_info *info, struct cred *new);
      28             :         void (*cleanup)(struct subprocess_info *info);
      29             :         void *data;
      30             : } __randomize_layout;
      31             : 
      32             : extern int
      33             : call_usermodehelper(const char *path, char **argv, char **envp, int wait);
      34             : 
      35             : extern struct subprocess_info *
      36             : call_usermodehelper_setup(const char *path, char **argv, char **envp,
      37             :                           gfp_t gfp_mask,
      38             :                           int (*init)(struct subprocess_info *info, struct cred *new),
      39             :                           void (*cleanup)(struct subprocess_info *), void *data);
      40             : 
      41             : extern int
      42             : call_usermodehelper_exec(struct subprocess_info *info, int wait);
      43             : 
      44             : extern struct ctl_table usermodehelper_table[];
      45             : 
      46             : enum umh_disable_depth {
      47             :         UMH_ENABLED = 0,
      48             :         UMH_FREEZING,
      49             :         UMH_DISABLED,
      50             : };
      51             : 
      52             : extern int __usermodehelper_disable(enum umh_disable_depth depth);
      53             : extern void __usermodehelper_set_disable_depth(enum umh_disable_depth depth);
      54             : 
      55           0 : static inline int usermodehelper_disable(void)
      56             : {
      57           0 :         return __usermodehelper_disable(UMH_DISABLED);
      58             : }
      59             : 
      60           1 : static inline void usermodehelper_enable(void)
      61             : {
      62           1 :         __usermodehelper_set_disable_depth(UMH_ENABLED);
      63             : }
      64             : 
      65             : extern int usermodehelper_read_trylock(void);
      66             : extern long usermodehelper_read_lock_wait(long timeout);
      67             : extern void usermodehelper_read_unlock(void);
      68             : 
      69             : #endif /* __LINUX_UMH_H__ */

Generated by: LCOV version 1.14