
This makes it clear which code is part of the core user mode helper support and which code is needed to implement user mode drivers. This makes the kernel smaller for everyone who does not use a usermode driver. v1: https://lkml.kernel.org/r/87tuyyf0ln.fsf_-_@x220.int.ebiederm.org v2: https://lkml.kernel.org/r/87imf963s6.fsf_-_@x220.int.ebiederm.org Link: https://lkml.kernel.org/r/20200702164140.4468-5-ebiederm@xmission.com Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Acked-by: Alexei Starovoitov <ast@kernel.org> Tested-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
31 lines
635 B
C
31 lines
635 B
C
#ifndef __LINUX_USERMODE_DRIVER_H__
|
|
#define __LINUX_USERMODE_DRIVER_H__
|
|
|
|
#include <linux/umh.h>
|
|
|
|
#ifdef CONFIG_BPFILTER
|
|
void __exit_umh(struct task_struct *tsk);
|
|
|
|
static inline void exit_umh(struct task_struct *tsk)
|
|
{
|
|
if (unlikely(tsk->flags & PF_UMH))
|
|
__exit_umh(tsk);
|
|
}
|
|
#else
|
|
static inline void exit_umh(struct task_struct *tsk)
|
|
{
|
|
}
|
|
#endif
|
|
|
|
struct umh_info {
|
|
const char *cmdline;
|
|
struct file *pipe_to_umh;
|
|
struct file *pipe_from_umh;
|
|
struct list_head list;
|
|
void (*cleanup)(struct umh_info *info);
|
|
pid_t pid;
|
|
};
|
|
int fork_usermode_blob(void *data, size_t len, struct umh_info *info);
|
|
|
|
#endif /* __LINUX_USERMODE_DRIVER_H__ */
|