blob: 373d1bb864b17dc26e9f5b0fb98e9a65364b913e [file] [log] [blame]
Ben Cheng655a7c02013-10-16 16:09:24 -07001/****************************************************************************
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 ****************************************************************************/
19#ifndef _NET_TIMESTAMPING_H
20#define _NET_TIMESTAMPING_H
Christopher Ferris1308ad32017-11-14 17:32:13 -080021#include <linux/types.h>
Ben Cheng655a7c02013-10-16 16:09:24 -070022#include <linux/socket.h>
23enum {
Tao Baod7db5942015-01-28 10:07:51 -080024 SOF_TIMESTAMPING_TX_HARDWARE = (1 << 0),
25 SOF_TIMESTAMPING_TX_SOFTWARE = (1 << 1),
26 SOF_TIMESTAMPING_RX_HARDWARE = (1 << 2),
27 SOF_TIMESTAMPING_RX_SOFTWARE = (1 << 3),
Tao Baod7db5942015-01-28 10:07:51 -080028 SOF_TIMESTAMPING_SOFTWARE = (1 << 4),
29 SOF_TIMESTAMPING_SYS_HARDWARE = (1 << 5),
30 SOF_TIMESTAMPING_RAW_HARDWARE = (1 << 6),
31 SOF_TIMESTAMPING_OPT_ID = (1 << 7),
Tao Baod7db5942015-01-28 10:07:51 -080032 SOF_TIMESTAMPING_TX_SCHED = (1 << 8),
33 SOF_TIMESTAMPING_TX_ACK = (1 << 9),
Christopher Ferris05d08e92016-02-04 13:16:38 -080034 SOF_TIMESTAMPING_OPT_CMSG = (1 << 10),
35 SOF_TIMESTAMPING_OPT_TSONLY = (1 << 11),
Christopher Ferris48af7cb2017-02-21 12:35:09 -080036 SOF_TIMESTAMPING_OPT_STATS = (1 << 12),
Christopher Ferris1308ad32017-11-14 17:32:13 -080037 SOF_TIMESTAMPING_OPT_PKTINFO = (1 << 13),
38 SOF_TIMESTAMPING_OPT_TX_SWHW = (1 << 14),
39 SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_TX_SWHW,
Christopher Ferris05d08e92016-02-04 13:16:38 -080040 SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) | SOF_TIMESTAMPING_LAST
Ben Cheng655a7c02013-10-16 16:09:24 -070041};
Christopher Ferris48af7cb2017-02-21 12:35:09 -080042#define SOF_TIMESTAMPING_TX_RECORD_MASK (SOF_TIMESTAMPING_TX_HARDWARE | SOF_TIMESTAMPING_TX_SOFTWARE | SOF_TIMESTAMPING_TX_SCHED | SOF_TIMESTAMPING_TX_ACK)
Christopher Ferris106b3a82016-08-24 12:15:38 -070043struct hwtstamp_config {
Tao Baod7db5942015-01-28 10:07:51 -080044 int flags;
45 int tx_type;
Christopher Ferris48af7cb2017-02-21 12:35:09 -080046 int rx_filter;
Christopher Ferris106b3a82016-08-24 12:15:38 -070047};
Ben Cheng655a7c02013-10-16 16:09:24 -070048enum hwtstamp_tx_types {
Tao Baod7db5942015-01-28 10:07:51 -080049 HWTSTAMP_TX_OFF,
Christopher Ferris48af7cb2017-02-21 12:35:09 -080050 HWTSTAMP_TX_ON,
Christopher Ferris106b3a82016-08-24 12:15:38 -070051 HWTSTAMP_TX_ONESTEP_SYNC,
Christopher Ferrisbb9fcb42020-04-06 11:38:04 -070052 HWTSTAMP_TX_ONESTEP_P2P,
Christopher Ferrisaf09c702020-06-01 20:29:29 -070053 __HWTSTAMP_TX_CNT
Ben Cheng655a7c02013-10-16 16:09:24 -070054};
55enum hwtstamp_rx_filters {
Christopher Ferris48af7cb2017-02-21 12:35:09 -080056 HWTSTAMP_FILTER_NONE,
Christopher Ferris106b3a82016-08-24 12:15:38 -070057 HWTSTAMP_FILTER_ALL,
Tao Baod7db5942015-01-28 10:07:51 -080058 HWTSTAMP_FILTER_SOME,
59 HWTSTAMP_FILTER_PTP_V1_L4_EVENT,
Christopher Ferris48af7cb2017-02-21 12:35:09 -080060 HWTSTAMP_FILTER_PTP_V1_L4_SYNC,
Christopher Ferris106b3a82016-08-24 12:15:38 -070061 HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ,
Tao Baod7db5942015-01-28 10:07:51 -080062 HWTSTAMP_FILTER_PTP_V2_L4_EVENT,
63 HWTSTAMP_FILTER_PTP_V2_L4_SYNC,
Christopher Ferris48af7cb2017-02-21 12:35:09 -080064 HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ,
Christopher Ferris106b3a82016-08-24 12:15:38 -070065 HWTSTAMP_FILTER_PTP_V2_L2_EVENT,
Tao Baod7db5942015-01-28 10:07:51 -080066 HWTSTAMP_FILTER_PTP_V2_L2_SYNC,
67 HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ,
Christopher Ferris48af7cb2017-02-21 12:35:09 -080068 HWTSTAMP_FILTER_PTP_V2_EVENT,
Christopher Ferris106b3a82016-08-24 12:15:38 -070069 HWTSTAMP_FILTER_PTP_V2_SYNC,
Tao Baod7db5942015-01-28 10:07:51 -080070 HWTSTAMP_FILTER_PTP_V2_DELAY_REQ,
Christopher Ferris1308ad32017-11-14 17:32:13 -080071 HWTSTAMP_FILTER_NTP_ALL,
Christopher Ferrisaf09c702020-06-01 20:29:29 -070072 __HWTSTAMP_FILTER_CNT
Christopher Ferris1308ad32017-11-14 17:32:13 -080073};
74struct scm_ts_pktinfo {
75 __u32 if_index;
76 __u32 pkt_length;
77 __u32 reserved[2];
Ben Cheng655a7c02013-10-16 16:09:24 -070078};
Christopher Ferris9ce28842018-10-25 12:11:39 -070079enum txtime_flags {
80 SOF_TXTIME_DEADLINE_MODE = (1 << 0),
81 SOF_TXTIME_REPORT_ERRORS = (1 << 1),
82 SOF_TXTIME_FLAGS_LAST = SOF_TXTIME_REPORT_ERRORS,
83 SOF_TXTIME_FLAGS_MASK = (SOF_TXTIME_FLAGS_LAST - 1) | SOF_TXTIME_FLAGS_LAST
84};
85struct sock_txtime {
Christopher Ferris86a48372019-01-10 14:14:59 -080086 __kernel_clockid_t clockid;
Christopher Ferris9ce28842018-10-25 12:11:39 -070087 __u32 flags;
88};
Christopher Ferris48af7cb2017-02-21 12:35:09 -080089#endif