xref: /linux-6.15/include/uapi/linux/errqueue.h (revision 607ca46e)
1*607ca46eSDavid Howells #ifndef _UAPI_LINUX_ERRQUEUE_H
2*607ca46eSDavid Howells #define _UAPI_LINUX_ERRQUEUE_H
3*607ca46eSDavid Howells 
4*607ca46eSDavid Howells #include <linux/types.h>
5*607ca46eSDavid Howells 
6*607ca46eSDavid Howells struct sock_extended_err {
7*607ca46eSDavid Howells 	__u32	ee_errno;
8*607ca46eSDavid Howells 	__u8	ee_origin;
9*607ca46eSDavid Howells 	__u8	ee_type;
10*607ca46eSDavid Howells 	__u8	ee_code;
11*607ca46eSDavid Howells 	__u8	ee_pad;
12*607ca46eSDavid Howells 	__u32   ee_info;
13*607ca46eSDavid Howells 	__u32   ee_data;
14*607ca46eSDavid Howells };
15*607ca46eSDavid Howells 
16*607ca46eSDavid Howells #define SO_EE_ORIGIN_NONE	0
17*607ca46eSDavid Howells #define SO_EE_ORIGIN_LOCAL	1
18*607ca46eSDavid Howells #define SO_EE_ORIGIN_ICMP	2
19*607ca46eSDavid Howells #define SO_EE_ORIGIN_ICMP6	3
20*607ca46eSDavid Howells #define SO_EE_ORIGIN_TXSTATUS	4
21*607ca46eSDavid Howells #define SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS
22*607ca46eSDavid Howells 
23*607ca46eSDavid Howells #define SO_EE_OFFENDER(ee)	((struct sockaddr*)((ee)+1))
24*607ca46eSDavid Howells 
25*607ca46eSDavid Howells 
26*607ca46eSDavid Howells #endif /* _UAPI_LINUX_ERRQUEUE_H */
27