diff options
author | thegeorg <thegeorg@yandex-team.com> | 2022-12-15 19:25:15 +0300 |
---|---|---|
committer | thegeorg <thegeorg@yandex-team.com> | 2022-12-15 19:25:15 +0300 |
commit | 0c31d97afd7858af5f8f858c8addf91655ca9ccc (patch) | |
tree | 4d8a246db168f7beaafcd06d486c034115c2123d /contrib/libs/linux-headers/linux/errqueue.h | |
parent | d1d5f5e00df0dd6efc00880dd8283477fc643aaf (diff) | |
download | ydb-0c31d97afd7858af5f8f858c8addf91655ca9ccc.tar.gz |
Sync linux-headers instead of using system ones
Diffstat (limited to 'contrib/libs/linux-headers/linux/errqueue.h')
-rw-r--r-- | contrib/libs/linux-headers/linux/errqueue.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/contrib/libs/linux-headers/linux/errqueue.h b/contrib/libs/linux-headers/linux/errqueue.h new file mode 100644 index 0000000000..3d8bef4784 --- /dev/null +++ b/contrib/libs/linux-headers/linux/errqueue.h @@ -0,0 +1,62 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +#ifndef _LINUX_ERRQUEUE_H +#define _LINUX_ERRQUEUE_H + +#include <linux/types.h> +#include <linux/time_types.h> + +struct sock_extended_err { + __u32 ee_errno; + __u8 ee_origin; + __u8 ee_type; + __u8 ee_code; + __u8 ee_pad; + __u32 ee_info; + __u32 ee_data; +}; + +#define SO_EE_ORIGIN_NONE 0 +#define SO_EE_ORIGIN_LOCAL 1 +#define SO_EE_ORIGIN_ICMP 2 +#define SO_EE_ORIGIN_ICMP6 3 +#define SO_EE_ORIGIN_TXSTATUS 4 +#define SO_EE_ORIGIN_ZEROCOPY 5 +#define SO_EE_ORIGIN_TXTIME 6 +#define SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS + +#define SO_EE_OFFENDER(ee) ((struct sockaddr*)((ee)+1)) + +#define SO_EE_CODE_ZEROCOPY_COPIED 1 + +#define SO_EE_CODE_TXTIME_INVALID_PARAM 1 +#define SO_EE_CODE_TXTIME_MISSED 2 + +/** + * struct scm_timestamping - timestamps exposed through cmsg + * + * The timestamping interfaces SO_TIMESTAMPING, MSG_TSTAMP_* + * communicate network timestamps by passing this struct in a cmsg with + * recvmsg(). See Documentation/networking/timestamping.txt for details. + * User space sees a timespec definition that matches either + * __kernel_timespec or __kernel_old_timespec, in the kernel we + * require two structure definitions to provide both. + */ +struct scm_timestamping { + struct timespec ts[3]; +}; + +struct scm_timestamping64 { + struct __kernel_timespec ts[3]; +}; + +/* The type of scm_timestamping, passed in sock_extended_err ee_info. + * This defines the type of ts[0]. For SCM_TSTAMP_SND only, if ts[0] + * is zero, then this is a hardware timestamp and recorded in ts[2]. + */ +enum { + SCM_TSTAMP_SND, /* driver passed skb to NIC, or HW */ + SCM_TSTAMP_SCHED, /* data entered the packet scheduler */ + SCM_TSTAMP_ACK, /* data acknowledged by peer */ +}; + +#endif /* _LINUX_ERRQUEUE_H */ |