diff options
Diffstat (limited to 'net/netlink/af_netlink.h')
| -rw-r--r-- | net/netlink/af_netlink.h | 20 | 
1 files changed, 20 insertions, 0 deletions
diff --git a/net/netlink/af_netlink.h b/net/netlink/af_netlink.h index d9acb2a1d85..ed8522265f4 100644 --- a/net/netlink/af_netlink.h +++ b/net/netlink/af_netlink.h @@ -6,6 +6,20 @@  #define NLGRPSZ(x)	(ALIGN(x, sizeof(unsigned long) * 8) / 8)  #define NLGRPLONGS(x)	(NLGRPSZ(x)/sizeof(unsigned long)) +struct netlink_ring { +	void			**pg_vec; +	unsigned int		head; +	unsigned int		frames_per_block; +	unsigned int		frame_size; +	unsigned int		frame_max; + +	unsigned int		pg_vec_order; +	unsigned int		pg_vec_pages; +	unsigned int		pg_vec_len; + +	atomic_t		pending; +}; +  struct netlink_sock {  	/* struct sock has to be the first member of netlink_sock */  	struct sock		sk; @@ -24,6 +38,12 @@ struct netlink_sock {  	void			(*netlink_rcv)(struct sk_buff *skb);  	void			(*netlink_bind)(int group);  	struct module		*module; +#ifdef CONFIG_NETLINK_MMAP +	struct mutex		pg_vec_lock; +	struct netlink_ring	rx_ring; +	struct netlink_ring	tx_ring; +	atomic_t		mapped; +#endif /* CONFIG_NETLINK_MMAP */  };  static inline struct netlink_sock *nlk_sk(struct sock *sk)  |