1*53ee8cc1Swenshuai.xi #ifndef _LINUX_ERRQUEUE_H 2*53ee8cc1Swenshuai.xi #define _LINUX_ERRQUEUE_H 1 3*53ee8cc1Swenshuai.xi 4*53ee8cc1Swenshuai.xi struct sock_extended_err 5*53ee8cc1Swenshuai.xi { 6*53ee8cc1Swenshuai.xi __u32 ee_errno; 7*53ee8cc1Swenshuai.xi __u8 ee_origin; 8*53ee8cc1Swenshuai.xi __u8 ee_type; 9*53ee8cc1Swenshuai.xi __u8 ee_code; 10*53ee8cc1Swenshuai.xi __u8 ee_pad; 11*53ee8cc1Swenshuai.xi __u32 ee_info; 12*53ee8cc1Swenshuai.xi __u32 ee_data; 13*53ee8cc1Swenshuai.xi }; 14*53ee8cc1Swenshuai.xi 15*53ee8cc1Swenshuai.xi #define SO_EE_ORIGIN_NONE 0 16*53ee8cc1Swenshuai.xi #define SO_EE_ORIGIN_LOCAL 1 17*53ee8cc1Swenshuai.xi #define SO_EE_ORIGIN_ICMP 2 18*53ee8cc1Swenshuai.xi #define SO_EE_ORIGIN_ICMP6 3 19*53ee8cc1Swenshuai.xi 20*53ee8cc1Swenshuai.xi #define SO_EE_OFFENDER(ee) ((struct sockaddr*)((ee)+1)) 21*53ee8cc1Swenshuai.xi 22*53ee8cc1Swenshuai.xi 23*53ee8cc1Swenshuai.xi #endif 24