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