From f9004dbfff8a3fbbd7e2a88c8a4327c7f2f8e5b2 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Wed, 31 Jan 2024 01:04:47 +0000 Subject: [PATCH] add driver 5G --- kernel/include/linux/bpfilter.h | 18 ++++++++++++++---- 1 files changed, 14 insertions(+), 4 deletions(-) diff --git a/kernel/include/linux/bpfilter.h b/kernel/include/linux/bpfilter.h index f02cee0..2ae3c8e 100644 --- a/kernel/include/linux/bpfilter.h +++ b/kernel/include/linux/bpfilter.h @@ -3,13 +3,23 @@ #define _LINUX_BPFILTER_H #include <uapi/linux/bpfilter.h> +#include <linux/usermode_driver.h> +#include <linux/sockptr.h> struct sock; -int bpfilter_ip_set_sockopt(struct sock *sk, int optname, char __user *optval, +int bpfilter_ip_set_sockopt(struct sock *sk, int optname, sockptr_t optval, unsigned int optlen); int bpfilter_ip_get_sockopt(struct sock *sk, int optname, char __user *optval, int __user *optlen); -extern int (*bpfilter_process_sockopt)(struct sock *sk, int optname, - char __user *optval, - unsigned int optlen, bool is_set); +void bpfilter_umh_cleanup(struct umd_info *info); + +struct bpfilter_umh_ops { + struct umd_info info; + /* since ip_getsockopt() can run in parallel, serialize access to umh */ + struct mutex lock; + int (*sockopt)(struct sock *sk, int optname, sockptr_t optval, + unsigned int optlen, bool is_set); + int (*start)(void); +}; +extern struct bpfilter_umh_ops bpfilter_ops; #endif -- Gitblit v1.6.2