884c5e683b
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>
25 lines
740 B
C
25 lines
740 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _LINUX_BPFILTER_H
|
|
#define _LINUX_BPFILTER_H
|
|
|
|
#include <uapi/linux/bpfilter.h>
|
|
#include <linux/usermode_driver.h>
|
|
|
|
struct sock;
|
|
int bpfilter_ip_set_sockopt(struct sock *sk, int optname, char __user *optval,
|
|
unsigned int optlen);
|
|
int bpfilter_ip_get_sockopt(struct sock *sk, int optname, char __user *optval,
|
|
int __user *optlen);
|
|
struct bpfilter_umh_ops {
|
|
struct umh_info info;
|
|
/* since ip_getsockopt() can run in parallel, serialize access to umh */
|
|
struct mutex lock;
|
|
int (*sockopt)(struct sock *sk, int optname,
|
|
char __user *optval,
|
|
unsigned int optlen, bool is_set);
|
|
int (*start)(void);
|
|
bool stop;
|
|
};
|
|
extern struct bpfilter_umh_ops bpfilter_ops;
|
|
#endif
|