1#ifndef __SOCK_DIAG_H__
2#define __SOCK_DIAG_H__
3
4#include <linux/user_namespace.h>
5#include <uapi/linux/sock_diag.h>
6
7struct sk_buff;
8struct nlmsghdr;
9struct sock;
10
11struct sock_diag_handler {
12	__u8 family;
13	int (*dump)(struct sk_buff *skb, struct nlmsghdr *nlh);
14};
15
16int sock_diag_register(const struct sock_diag_handler *h);
17void sock_diag_unregister(const struct sock_diag_handler *h);
18
19void sock_diag_register_inet_compat(int (*fn)(struct sk_buff *skb, struct nlmsghdr *nlh));
20void sock_diag_unregister_inet_compat(int (*fn)(struct sk_buff *skb, struct nlmsghdr *nlh));
21
22int sock_diag_check_cookie(struct sock *sk, const __u32 *cookie);
23void sock_diag_save_cookie(struct sock *sk, __u32 *cookie);
24
25int sock_diag_put_meminfo(struct sock *sk, struct sk_buff *skb, int attr);
26int sock_diag_put_filterinfo(bool may_report_filterinfo, struct sock *sk,
27			     struct sk_buff *skb, int attrtype);
28
29#endif
30