diff options
Diffstat (limited to 'include/net/sock.h')
| -rw-r--r-- | include/net/sock.h | 29 | 
1 files changed, 29 insertions, 0 deletions
diff --git a/include/net/sock.h b/include/net/sock.h index 91c1c8baf02..ba761e7de25 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -357,6 +357,7 @@ struct sock {  	struct page		*sk_sndmsg_page;  	struct sk_buff		*sk_send_head;  	__u32			sk_sndmsg_off; +	__s32			sk_peek_off;  	int			sk_write_pending;  #ifdef CONFIG_SECURITY  	void			*sk_security; @@ -373,6 +374,30 @@ struct sock {  	void                    (*sk_destruct)(struct sock *sk);  }; +static inline int sk_peek_offset(struct sock *sk, int flags) +{ +	if ((flags & MSG_PEEK) && (sk->sk_peek_off >= 0)) +		return sk->sk_peek_off; +	else +		return 0; +} + +static inline void sk_peek_offset_bwd(struct sock *sk, int val) +{ +	if (sk->sk_peek_off >= 0) { +		if (sk->sk_peek_off >= val) +			sk->sk_peek_off -= val; +		else +			sk->sk_peek_off = 0; +	} +} + +static inline void sk_peek_offset_fwd(struct sock *sk, int val) +{ +	if (sk->sk_peek_off >= 0) +		sk->sk_peek_off += val; +} +  /*   * Hashed lists helper routines   */ @@ -590,6 +615,10 @@ enum sock_flags {  	SOCK_RXQ_OVFL,  	SOCK_ZEROCOPY, /* buffers from userspace */  	SOCK_WIFI_STATUS, /* push wifi status to userspace */ +	SOCK_NOFCS, /* Tell NIC not to do the Ethernet FCS. +		     * Will use last 4 bytes of packet sent from +		     * user-space instead. +		     */  };  static inline void sock_copy_flags(struct sock *nsk, struct sock *osk)  |