blob: 949bcadf80d9f00b3f879a4cf63a603e12ce275f [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),
Christopher Ferris3a39c0b2021-09-02 00:03:38 +000039 SOF_TIMESTAMPING_BIND_PHC = (1 << 15),
40 SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_BIND_PHC,
Christopher Ferris05d08e92016-02-04 13:16:38 -080041 SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) | SOF_TIMESTAMPING_LAST
Ben Cheng655a7c02013-10-16 16:09:24 -070042};
Christopher Ferris48af7cb2017-02-21 12:35:09 -080043#define SOF_TIMESTAMPING_TX_RECORD_MASK (SOF_TIMESTAMPING_TX_HARDWARE | SOF_TIMESTAMPING_TX_SOFTWARE | SOF_TIMESTAMPING_TX_SCHED | SOF_TIMESTAMPING_TX_ACK)
Christopher Ferris3a39c0b2021-09-02 00:03:38 +000044struct so_timestamping {
45 int flags;
46 int bind_phc;
47};
Christopher Ferris106b3a82016-08-24 12:15:38 -070048struct hwtstamp_config {
Tao Baod7db5942015-01-28 10:07:51 -080049 int flags;
50 int tx_type;
Christopher Ferris48af7cb2017-02-21 12:35:09 -080051 int rx_filter;
Christopher Ferris106b3a82016-08-24 12:15:38 -070052};
Ben Cheng655a7c02013-10-16 16:09:24 -070053enum hwtstamp_tx_types {
Tao Baod7db5942015-01-28 10:07:51 -080054 HWTSTAMP_TX_OFF,
Christopher Ferris48af7cb2017-02-21 12:35:09 -080055 HWTSTAMP_TX_ON,
Christopher Ferris106b3a82016-08-24 12:15:38 -070056 HWTSTAMP_TX_ONESTEP_SYNC,
Christopher Ferrisbb9fcb42020-04-06 11:38:04 -070057 HWTSTAMP_TX_ONESTEP_P2P,
Christopher Ferrisaf09c702020-06-01 20:29:29 -070058 __HWTSTAMP_TX_CNT
Ben Cheng655a7c02013-10-16 16:09:24 -070059};
60enum hwtstamp_rx_filters {
Christopher Ferris48af7cb2017-02-21 12:35:09 -080061 HWTSTAMP_FILTER_NONE,
Christopher Ferris106b3a82016-08-24 12:15:38 -070062 HWTSTAMP_FILTER_ALL,
Tao Baod7db5942015-01-28 10:07:51 -080063 HWTSTAMP_FILTER_SOME,
64 HWTSTAMP_FILTER_PTP_V1_L4_EVENT,
Christopher Ferris48af7cb2017-02-21 12:35:09 -080065 HWTSTAMP_FILTER_PTP_V1_L4_SYNC,
Christopher Ferris106b3a82016-08-24 12:15:38 -070066 HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ,
Tao Baod7db5942015-01-28 10:07:51 -080067 HWTSTAMP_FILTER_PTP_V2_L4_EVENT,
68 HWTSTAMP_FILTER_PTP_V2_L4_SYNC,
Christopher Ferris48af7cb2017-02-21 12:35:09 -080069 HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ,
Christopher Ferris106b3a82016-08-24 12:15:38 -070070 HWTSTAMP_FILTER_PTP_V2_L2_EVENT,
Tao Baod7db5942015-01-28 10:07:51 -080071 HWTSTAMP_FILTER_PTP_V2_L2_SYNC,
72 HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ,
Christopher Ferris48af7cb2017-02-21 12:35:09 -080073 HWTSTAMP_FILTER_PTP_V2_EVENT,
Christopher Ferris106b3a82016-08-24 12:15:38 -070074 HWTSTAMP_FILTER_PTP_V2_SYNC,
Tao Baod7db5942015-01-28 10:07:51 -080075 HWTSTAMP_FILTER_PTP_V2_DELAY_REQ,
Christopher Ferris1308ad32017-11-14 17:32:13 -080076 HWTSTAMP_FILTER_NTP_ALL,
Christopher Ferrisaf09c702020-06-01 20:29:29 -070077 __HWTSTAMP_FILTER_CNT
Christopher Ferris1308ad32017-11-14 17:32:13 -080078};
79struct scm_ts_pktinfo {
80 __u32 if_index;
81 __u32 pkt_length;
82 __u32 reserved[2];
Ben Cheng655a7c02013-10-16 16:09:24 -070083};
Christopher Ferris9ce28842018-10-25 12:11:39 -070084enum txtime_flags {
85 SOF_TXTIME_DEADLINE_MODE = (1 << 0),
86 SOF_TXTIME_REPORT_ERRORS = (1 << 1),
87 SOF_TXTIME_FLAGS_LAST = SOF_TXTIME_REPORT_ERRORS,
88 SOF_TXTIME_FLAGS_MASK = (SOF_TXTIME_FLAGS_LAST - 1) | SOF_TXTIME_FLAGS_LAST
89};
90struct sock_txtime {
Christopher Ferris86a48372019-01-10 14:14:59 -080091 __kernel_clockid_t clockid;
Christopher Ferris9ce28842018-10-25 12:11:39 -070092 __u32 flags;
93};
Christopher Ferris48af7cb2017-02-21 12:35:09 -080094#endif