at v3.3 48 lines 1.1 kB view raw
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