1 #ifndef __LINUX_USERMODE_DRIVER_H__ 2 #define __LINUX_USERMODE_DRIVER_H__ 3 4 #include <linux/umh.h> 5 #include <linux/path.h> 6 7 #ifdef CONFIG_BPFILTER 8 void __exit_umh(struct task_struct *tsk); 9 10 static inline void exit_umh(struct task_struct *tsk) 11 { 12 if (unlikely(tsk->flags & PF_UMH)) 13 __exit_umh(tsk); 14 } 15 #else 16 static inline void exit_umh(struct task_struct *tsk) 17 { 18 } 19 #endif 20 21 struct umd_info { 22 const char *driver_name; 23 struct file *pipe_to_umh; 24 struct file *pipe_from_umh; 25 struct list_head list; 26 void (*cleanup)(struct umd_info *info); 27 struct path wd; 28 pid_t pid; 29 }; 30 int umd_load_blob(struct umd_info *info, const void *data, size_t len); 31 int umd_unload_blob(struct umd_info *info); 32 int fork_usermode_driver(struct umd_info *info); 33 34 #endif /* __LINUX_USERMODE_DRIVER_H__ */ 35