• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * This header was generated from the Linux kernel headers by update_headers.py,
3  * to provide necessary information from kernel to userspace, such as constants,
4  * structures, and macros, and thus, contains no copyrightable information.
5  */
6 #ifndef _UAPI_LINUX_ERRQUEUE_H
7 #define _UAPI_LINUX_ERRQUEUE_H
8 #include <linux/types.h>
9 struct sock_extended_err {
10 	__u32	ee_errno;
11 	__u8	ee_origin;
12 	__u8	ee_type;
13 	__u8	ee_code;
14 	__u8	ee_pad;
15 	__u32   ee_info;
16 	__u32   ee_data;
17 };
18 #define SO_EE_ORIGIN_NONE	0
19 #define SO_EE_ORIGIN_LOCAL	1
20 #define SO_EE_ORIGIN_ICMP	2
21 #define SO_EE_ORIGIN_ICMP6	3
22 #define SO_EE_ORIGIN_TXSTATUS	4
23 #define SO_EE_ORIGIN_ZEROCOPY	5
24 #define SO_EE_ORIGIN_TXTIME	6
25 #define SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS
26 #define SO_EE_OFFENDER(ee)	((struct sockaddr*)((ee)+1))
27 #define SO_EE_CODE_ZEROCOPY_COPIED	1
28 #define SO_EE_CODE_TXTIME_INVALID_PARAM	1
29 #define SO_EE_CODE_TXTIME_MISSED	2
30 struct scm_timestamping {
31 	struct timespec ts[3];
32 };
33 enum {
34 	SCM_TSTAMP_SND,
35 	SCM_TSTAMP_SCHED,
36 	SCM_TSTAMP_ACK,
37 };
38 #endif
39