xref: /linux-6.15/include/linux/sock_diag.h (revision ef264cf0)
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 
7 struct sk_buff;
8 struct nlmsghdr;
9 struct sock;
10 
11 struct sock_diag_handler {
12 	__u8 family;
13 	int (*dump)(struct sk_buff *skb, struct nlmsghdr *nlh);
14 };
15 
16 int sock_diag_register(const struct sock_diag_handler *h);
17 void sock_diag_unregister(const struct sock_diag_handler *h);
18 
19 void sock_diag_register_inet_compat(int (*fn)(struct sk_buff *skb, struct nlmsghdr *nlh));
20 void sock_diag_unregister_inet_compat(int (*fn)(struct sk_buff *skb, struct nlmsghdr *nlh));
21 
22 int sock_diag_check_cookie(void *sk, __u32 *cookie);
23 void sock_diag_save_cookie(void *sk, __u32 *cookie);
24 
25 int sock_diag_put_meminfo(struct sock *sk, struct sk_buff *skb, int attr);
26 int sock_diag_put_filterinfo(bool may_report_filterinfo, struct sock *sk,
27 			     struct sk_buff *skb, int attrtype);
28 
29 #endif
30