blob: e93bad29cbb572e298a13788ba02ab0aad9de65b [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>
Christopher Ferris25c18d42020-10-14 17:42:58 -070023struct sock_ee_data_rfc4884 {
24 __u16 len;
25 __u8 flags;
26 __u8 reserved;
27};
Ben Cheng655a7c02013-10-16 16:09:24 -070028struct sock_extended_err {
Tao Baod7db5942015-01-28 10:07:51 -080029 __u32 ee_errno;
30 __u8 ee_origin;
31 __u8 ee_type;
32 __u8 ee_code;
Tao Baod7db5942015-01-28 10:07:51 -080033 __u8 ee_pad;
34 __u32 ee_info;
Christopher Ferris25c18d42020-10-14 17:42:58 -070035 union {
36 __u32 ee_data;
37 struct sock_ee_data_rfc4884 ee_rfc4884;
38 };
Ben Cheng655a7c02013-10-16 16:09:24 -070039};
Ben Cheng655a7c02013-10-16 16:09:24 -070040#define SO_EE_ORIGIN_NONE 0
41#define SO_EE_ORIGIN_LOCAL 1
42#define SO_EE_ORIGIN_ICMP 2
43#define SO_EE_ORIGIN_ICMP6 3
Ben Cheng655a7c02013-10-16 16:09:24 -070044#define SO_EE_ORIGIN_TXSTATUS 4
Christopher Ferris1308ad32017-11-14 17:32:13 -080045#define SO_EE_ORIGIN_ZEROCOPY 5
Christopher Ferris9ce28842018-10-25 12:11:39 -070046#define SO_EE_ORIGIN_TXTIME 6
Ben Cheng655a7c02013-10-16 16:09:24 -070047#define SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS
Tao Baod7db5942015-01-28 10:07:51 -080048#define SO_EE_OFFENDER(ee) ((struct sockaddr *) ((ee) + 1))
Christopher Ferris1308ad32017-11-14 17:32:13 -080049#define SO_EE_CODE_ZEROCOPY_COPIED 1
Christopher Ferris9ce28842018-10-25 12:11:39 -070050#define SO_EE_CODE_TXTIME_INVALID_PARAM 1
51#define SO_EE_CODE_TXTIME_MISSED 2
Christopher Ferris25c18d42020-10-14 17:42:58 -070052#define SO_EE_RFC4884_FLAG_INVALID 1
Christopher Ferris82d75042015-01-26 10:57:07 -080053struct scm_timestamping {
Tao Baod7db5942015-01-28 10:07:51 -080054 struct timespec ts[3];
Christopher Ferris82d75042015-01-26 10:57:07 -080055};
Christopher Ferris24f97eb2019-05-20 12:58:13 -070056struct scm_timestamping64 {
57 struct __kernel_timespec ts[3];
58};
Christopher Ferris82d75042015-01-26 10:57:07 -080059enum {
Tao Baod7db5942015-01-28 10:07:51 -080060 SCM_TSTAMP_SND,
Tao Baod7db5942015-01-28 10:07:51 -080061 SCM_TSTAMP_SCHED,
62 SCM_TSTAMP_ACK,
Christopher Ferris82d75042015-01-26 10:57:07 -080063};
Nick Kralevicha67e4de2013-01-14 11:28:26 -080064#endif