1 /* 2 * This file is auto-generated. Modifications will be lost. 3 * 4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5 * for more information. 6 */ 7 #ifndef _UAPI_LINUX_ERRQUEUE_H 8 #define _UAPI_LINUX_ERRQUEUE_H 9 #include <linux/types.h> 10 #include <linux/time_types.h> 11 struct sock_ee_data_rfc4884 { 12 __u16 len; 13 __u8 flags; 14 __u8 reserved; 15 }; 16 struct sock_extended_err { 17 __u32 ee_errno; 18 __u8 ee_origin; 19 __u8 ee_type; 20 __u8 ee_code; 21 __u8 ee_pad; 22 __u32 ee_info; 23 union { 24 __u32 ee_data; 25 struct sock_ee_data_rfc4884 ee_rfc4884; 26 }; 27 }; 28 #define SO_EE_ORIGIN_NONE 0 29 #define SO_EE_ORIGIN_LOCAL 1 30 #define SO_EE_ORIGIN_ICMP 2 31 #define SO_EE_ORIGIN_ICMP6 3 32 #define SO_EE_ORIGIN_TXSTATUS 4 33 #define SO_EE_ORIGIN_ZEROCOPY 5 34 #define SO_EE_ORIGIN_TXTIME 6 35 #define SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS 36 #define SO_EE_OFFENDER(ee) ((struct sockaddr *) ((ee) + 1)) 37 #define SO_EE_CODE_ZEROCOPY_COPIED 1 38 #define SO_EE_CODE_TXTIME_INVALID_PARAM 1 39 #define SO_EE_CODE_TXTIME_MISSED 2 40 #define SO_EE_RFC4884_FLAG_INVALID 1 41 struct scm_timestamping { 42 struct timespec ts[3]; 43 }; 44 struct scm_timestamping64 { 45 struct __kernel_timespec ts[3]; 46 }; 47 enum { 48 SCM_TSTAMP_SND, 49 SCM_TSTAMP_SCHED, 50 SCM_TSTAMP_ACK, 51 }; 52 #endif 53