aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/sock_diag.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/sock_diag.h')
-rw-r--r--include/linux/sock_diag.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/include/linux/sock_diag.h b/include/linux/sock_diag.h
new file mode 100644
index 000000000000..251729a47880
--- /dev/null
+++ b/include/linux/sock_diag.h
@@ -0,0 +1,48 @@
1#ifndef __SOCK_DIAG_H__
2#define __SOCK_DIAG_H__
3
4#include <linux/types.h>
5
6#define SOCK_DIAG_BY_FAMILY 20
7
8struct sock_diag_req {
9 __u8 sdiag_family;
10 __u8 sdiag_protocol;
11};
12
13enum {
14 SK_MEMINFO_RMEM_ALLOC,
15 SK_MEMINFO_RCVBUF,
16 SK_MEMINFO_WMEM_ALLOC,
17 SK_MEMINFO_SNDBUF,
18 SK_MEMINFO_FWD_ALLOC,
19 SK_MEMINFO_WMEM_QUEUED,
20 SK_MEMINFO_OPTMEM,
21
22 SK_MEMINFO_VARS,
23};
24
25#ifdef __KERNEL__
26struct sk_buff;
27struct nlmsghdr;
28struct sock;
29
30struct sock_diag_handler {
31 __u8 family;
32 int (*dump)(struct sk_buff *skb, struct nlmsghdr *nlh);
33};
34
35int sock_diag_register(struct sock_diag_handler *h);
36void sock_diag_unregister(struct sock_diag_handler *h);
37
38void sock_diag_register_inet_compat(int (*fn)(struct sk_buff *skb, struct nlmsghdr *nlh));
39void sock_diag_unregister_inet_compat(int (*fn)(struct sk_buff *skb, struct nlmsghdr *nlh));
40
41int sock_diag_check_cookie(void *sk, __u32 *cookie);
42void sock_diag_save_cookie(void *sk, __u32 *cookie);
43
44int sock_diag_put_meminfo(struct sock *sk, struct sk_buff *skb, int attr);
45
46extern struct sock *sock_diag_nlsk;
47#endif /* KERNEL */
48#endif