|
@@ -37,21 +37,6 @@ struct sock_fprog /* Required for SO_ATTACH_FILTER. */
|
|
|
struct sock_filter __user *filter;
|
|
|
};
|
|
|
|
|
|
-#ifdef __KERNEL__
|
|
|
-struct sk_filter
|
|
|
-{
|
|
|
- atomic_t refcnt;
|
|
|
- unsigned int len; /* Number of filter blocks */
|
|
|
- struct rcu_head rcu;
|
|
|
- struct sock_filter insns[0];
|
|
|
-};
|
|
|
-
|
|
|
-static inline unsigned int sk_filter_len(struct sk_filter *fp)
|
|
|
-{
|
|
|
- return fp->len*sizeof(struct sock_filter) + sizeof(*fp);
|
|
|
-}
|
|
|
-#endif
|
|
|
-
|
|
|
/*
|
|
|
* Instruction classes
|
|
|
*/
|
|
@@ -141,10 +126,24 @@ static inline unsigned int sk_filter_len(struct sk_filter *fp)
|
|
|
#define SKF_LL_OFF (-0x200000)
|
|
|
|
|
|
#ifdef __KERNEL__
|
|
|
+struct sk_filter
|
|
|
+{
|
|
|
+ atomic_t refcnt;
|
|
|
+ unsigned int len; /* Number of filter blocks */
|
|
|
+ struct rcu_head rcu;
|
|
|
+ struct sock_filter insns[0];
|
|
|
+};
|
|
|
+
|
|
|
+static inline unsigned int sk_filter_len(const struct sk_filter *fp)
|
|
|
+{
|
|
|
+ return fp->len * sizeof(struct sock_filter) + sizeof(*fp);
|
|
|
+}
|
|
|
+
|
|
|
struct sk_buff;
|
|
|
struct sock;
|
|
|
|
|
|
-extern unsigned int sk_run_filter(struct sk_buff *skb, struct sock_filter *filter, int flen);
|
|
|
+extern unsigned int sk_run_filter(struct sk_buff *skb,
|
|
|
+ struct sock_filter *filter, int flen);
|
|
|
extern int sk_attach_filter(struct sock_fprog *fprog, struct sock *sk);
|
|
|
extern int sk_detach_filter(struct sock *sk);
|
|
|
extern int sk_chk_filter(struct sock_filter *filter, int flen);
|