Now that network timestamps use ktime_t infrastructure, we can add a new SOL_SOCKET sockopt SO_TIMESTAMPNS. This command is similar to SO_TIMESTAMP, but permits transmission of a 'timespec struct' instead of a 'timeval struct' control message. (nanosecond resolution instead of microsecond) Control message is labelled SCM_TIMESTAMPNS instead of SCM_TIMESTAMP A socket cannot mix SO_TIMESTAMP and SO_TIMESTAMPNS : the two modes are mutually exclusive. sock_recv_timestamp() became too big to be fully inlined so I added a __sock_recv_timestamp() helper function. Signed-off-by: Eric Dumazet <dada1@cosmosbay.com> CC: linux-arch@vger.kernel.org Signed-off-by: David S. Miller <davem@davemloft.net>
		
			
				
	
	
		
			63 lines
		
	
	
	
		
			1.3 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
	
		
			1.3 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 *  include/asm-s390/socket.h
 | 
						|
 *
 | 
						|
 *  S390 version
 | 
						|
 *
 | 
						|
 *  Derived from "include/asm-i386/socket.h"
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef _ASM_SOCKET_H
 | 
						|
#define _ASM_SOCKET_H
 | 
						|
 | 
						|
#include <asm/sockios.h>
 | 
						|
 | 
						|
/* For setsockopt(2) */
 | 
						|
#define SOL_SOCKET	1
 | 
						|
 | 
						|
#define SO_DEBUG	1
 | 
						|
#define SO_REUSEADDR	2
 | 
						|
#define SO_TYPE		3
 | 
						|
#define SO_ERROR	4
 | 
						|
#define SO_DONTROUTE	5
 | 
						|
#define SO_BROADCAST	6
 | 
						|
#define SO_SNDBUF	7
 | 
						|
#define SO_RCVBUF	8
 | 
						|
#define SO_SNDBUFFORCE	32
 | 
						|
#define SO_RCVBUFFORCE	33
 | 
						|
#define SO_KEEPALIVE	9
 | 
						|
#define SO_OOBINLINE	10
 | 
						|
#define SO_NO_CHECK	11
 | 
						|
#define SO_PRIORITY	12
 | 
						|
#define SO_LINGER	13
 | 
						|
#define SO_BSDCOMPAT	14
 | 
						|
/* To add :#define SO_REUSEPORT 15 */
 | 
						|
#define SO_PASSCRED	16
 | 
						|
#define SO_PEERCRED	17
 | 
						|
#define SO_RCVLOWAT	18
 | 
						|
#define SO_SNDLOWAT	19
 | 
						|
#define SO_RCVTIMEO	20
 | 
						|
#define SO_SNDTIMEO	21
 | 
						|
 | 
						|
/* Security levels - as per NRL IPv6 - don't actually do anything */
 | 
						|
#define SO_SECURITY_AUTHENTICATION		22
 | 
						|
#define SO_SECURITY_ENCRYPTION_TRANSPORT	23
 | 
						|
#define SO_SECURITY_ENCRYPTION_NETWORK		24
 | 
						|
 | 
						|
#define SO_BINDTODEVICE	25
 | 
						|
 | 
						|
/* Socket filtering */
 | 
						|
#define SO_ATTACH_FILTER        26
 | 
						|
#define SO_DETACH_FILTER        27
 | 
						|
 | 
						|
#define SO_PEERNAME		28
 | 
						|
#define SO_TIMESTAMP		29
 | 
						|
#define SCM_TIMESTAMP		SO_TIMESTAMP
 | 
						|
 | 
						|
#define SO_ACCEPTCONN		30
 | 
						|
 | 
						|
#define SO_PEERSEC		31
 | 
						|
#define SO_PASSSEC		34
 | 
						|
#define SO_TIMESTAMPNS		35
 | 
						|
#define SCM_TIMESTAMPNS		SO_TIMESTAMPNS
 | 
						|
 | 
						|
#endif /* _ASM_SOCKET_H */
 |