blob: 7959d2b1f8902ca94ee9b11fafb97cd4c89b26e0 [file] [log] [blame]
Nick Kralevicha67e4de2013-01-14 11:28:26 -08001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 *** To edit the content of this header, modify the corresponding
11 *** source file (e.g. under external/kernel-headers/original/) then
12 *** run bionic/libc/kernel/tools/update_all.py
13 ***
14 *** Any manual change here will be lost the next time this script will
15 *** be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
Ben Cheng655a7c02013-10-16 16:09:24 -070019#ifndef _UAPI_LINUX_ERRQUEUE_H
20#define _UAPI_LINUX_ERRQUEUE_H
21#include <linux/types.h>
Christopher Ferris24f97eb2019-05-20 12:58:13 -070022#include <linux/time_types.h>
Ben Cheng655a7c02013-10-16 16:09:24 -070023struct sock_extended_err {
Tao Baod7db5942015-01-28 10:07:51 -080024 __u32 ee_errno;
25 __u8 ee_origin;
26 __u8 ee_type;
27 __u8 ee_code;
Tao Baod7db5942015-01-28 10:07:51 -080028 __u8 ee_pad;
29 __u32 ee_info;
30 __u32 ee_data;
Ben Cheng655a7c02013-10-16 16:09:24 -070031};
Ben Cheng655a7c02013-10-16 16:09:24 -070032#define SO_EE_ORIGIN_NONE 0
33#define SO_EE_ORIGIN_LOCAL 1
34#define SO_EE_ORIGIN_ICMP 2
35#define SO_EE_ORIGIN_ICMP6 3
Ben Cheng655a7c02013-10-16 16:09:24 -070036#define SO_EE_ORIGIN_TXSTATUS 4
Christopher Ferris1308ad32017-11-14 17:32:13 -080037#define SO_EE_ORIGIN_ZEROCOPY 5
Christopher Ferris9ce28842018-10-25 12:11:39 -070038#define SO_EE_ORIGIN_TXTIME 6
Ben Cheng655a7c02013-10-16 16:09:24 -070039#define SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS
Tao Baod7db5942015-01-28 10:07:51 -080040#define SO_EE_OFFENDER(ee) ((struct sockaddr *) ((ee) + 1))
Christopher Ferris1308ad32017-11-14 17:32:13 -080041#define SO_EE_CODE_ZEROCOPY_COPIED 1
Christopher Ferris9ce28842018-10-25 12:11:39 -070042#define SO_EE_CODE_TXTIME_INVALID_PARAM 1
43#define SO_EE_CODE_TXTIME_MISSED 2
Christopher Ferris82d75042015-01-26 10:57:07 -080044struct scm_timestamping {
Tao Baod7db5942015-01-28 10:07:51 -080045 struct timespec ts[3];
Christopher Ferris82d75042015-01-26 10:57:07 -080046};
Christopher Ferris24f97eb2019-05-20 12:58:13 -070047struct scm_timestamping64 {
48 struct __kernel_timespec ts[3];
49};
Christopher Ferris82d75042015-01-26 10:57:07 -080050enum {
Tao Baod7db5942015-01-28 10:07:51 -080051 SCM_TSTAMP_SND,
Tao Baod7db5942015-01-28 10:07:51 -080052 SCM_TSTAMP_SCHED,
53 SCM_TSTAMP_ACK,
Christopher Ferris82d75042015-01-26 10:57:07 -080054};
Nick Kralevicha67e4de2013-01-14 11:28:26 -080055#endif