Blame view

include/uapi/linux/errqueue.h 1.22 KB
607ca46e9   David Howells   UAPI: (Scripted) ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
  #ifndef _UAPI_LINUX_ERRQUEUE_H
  #define _UAPI_LINUX_ERRQUEUE_H
  
  #include <linux/types.h>
  
  struct sock_extended_err {
  	__u32	ee_errno;	
  	__u8	ee_origin;
  	__u8	ee_type;
  	__u8	ee_code;
  	__u8	ee_pad;
  	__u32   ee_info;
  	__u32   ee_data;
  };
  
  #define SO_EE_ORIGIN_NONE	0
  #define SO_EE_ORIGIN_LOCAL	1
  #define SO_EE_ORIGIN_ICMP	2
  #define SO_EE_ORIGIN_ICMP6	3
  #define SO_EE_ORIGIN_TXSTATUS	4
  #define SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS
  
  #define SO_EE_OFFENDER(ee)	((struct sockaddr*)((ee)+1))
f24b9be59   Willem de Bruijn   net-timestamp: ex...
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
  /**
   *	struct scm_timestamping - timestamps exposed through cmsg
   *
   *	The timestamping interfaces SO_TIMESTAMPING, MSG_TSTAMP_*
   *	communicate network timestamps by passing this struct in a cmsg with
   *	recvmsg(). See Documentation/networking/timestamping.txt for details.
   */
  struct scm_timestamping {
  	struct timespec ts[3];
  };
  
  /* The type of scm_timestamping, passed in sock_extended_err ee_info.
   * This defines the type of ts[0]. For SCM_TSTAMP_SND only, if ts[0]
   * is zero, then this is a hardware timestamp and recorded in ts[2].
   */
  enum {
  	SCM_TSTAMP_SND,		/* driver passed skb to NIC, or HW */
e7fd28853   Willem de Bruijn   net-timestamp: SC...
41
  	SCM_TSTAMP_SCHED,	/* data entered the packet scheduler */
e1c8a607b   Willem de Bruijn   net-timestamp: AC...
42
  	SCM_TSTAMP_ACK,		/* data acknowledged by peer */
f24b9be59   Willem de Bruijn   net-timestamp: ex...
43
  };
607ca46e9   David Howells   UAPI: (Scripted) ...
44
45
  
  #endif /* _UAPI_LINUX_ERRQUEUE_H */