blob: 510c0da412d671bed93c82c17c9c03c55d0689d5 [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};
Christopher Ferris1ed55342022-03-22 16:06:25 -070053enum hwtstamp_flags {
54 HWTSTAMP_FLAG_BONDED_PHC_INDEX = (1 << 0),
55#define HWTSTAMP_FLAG_BONDED_PHC_INDEX HWTSTAMP_FLAG_BONDED_PHC_INDEX
56 HWTSTAMP_FLAG_LAST = HWTSTAMP_FLAG_BONDED_PHC_INDEX,
57 HWTSTAMP_FLAG_MASK = (HWTSTAMP_FLAG_LAST - 1) | HWTSTAMP_FLAG_LAST
58};
Ben Cheng655a7c02013-10-16 16:09:24 -070059enum hwtstamp_tx_types {
Tao Baod7db5942015-01-28 10:07:51 -080060 HWTSTAMP_TX_OFF,
Christopher Ferris48af7cb2017-02-21 12:35:09 -080061 HWTSTAMP_TX_ON,
Christopher Ferris106b3a82016-08-24 12:15:38 -070062 HWTSTAMP_TX_ONESTEP_SYNC,
Christopher Ferrisbb9fcb42020-04-06 11:38:04 -070063 HWTSTAMP_TX_ONESTEP_P2P,
Christopher Ferrisaf09c702020-06-01 20:29:29 -070064 __HWTSTAMP_TX_CNT
Ben Cheng655a7c02013-10-16 16:09:24 -070065};
66enum hwtstamp_rx_filters {
Christopher Ferris48af7cb2017-02-21 12:35:09 -080067 HWTSTAMP_FILTER_NONE,
Christopher Ferris106b3a82016-08-24 12:15:38 -070068 HWTSTAMP_FILTER_ALL,
Tao Baod7db5942015-01-28 10:07:51 -080069 HWTSTAMP_FILTER_SOME,
70 HWTSTAMP_FILTER_PTP_V1_L4_EVENT,
Christopher Ferris48af7cb2017-02-21 12:35:09 -080071 HWTSTAMP_FILTER_PTP_V1_L4_SYNC,
Christopher Ferris106b3a82016-08-24 12:15:38 -070072 HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ,
Tao Baod7db5942015-01-28 10:07:51 -080073 HWTSTAMP_FILTER_PTP_V2_L4_EVENT,
74 HWTSTAMP_FILTER_PTP_V2_L4_SYNC,
Christopher Ferris48af7cb2017-02-21 12:35:09 -080075 HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ,
Christopher Ferris106b3a82016-08-24 12:15:38 -070076 HWTSTAMP_FILTER_PTP_V2_L2_EVENT,
Tao Baod7db5942015-01-28 10:07:51 -080077 HWTSTAMP_FILTER_PTP_V2_L2_SYNC,
78 HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ,
Christopher Ferris48af7cb2017-02-21 12:35:09 -080079 HWTSTAMP_FILTER_PTP_V2_EVENT,
Christopher Ferris106b3a82016-08-24 12:15:38 -070080 HWTSTAMP_FILTER_PTP_V2_SYNC,
Tao Baod7db5942015-01-28 10:07:51 -080081 HWTSTAMP_FILTER_PTP_V2_DELAY_REQ,
Christopher Ferris1308ad32017-11-14 17:32:13 -080082 HWTSTAMP_FILTER_NTP_ALL,
Christopher Ferrisaf09c702020-06-01 20:29:29 -070083 __HWTSTAMP_FILTER_CNT
Christopher Ferris1308ad32017-11-14 17:32:13 -080084};
85struct scm_ts_pktinfo {
86 __u32 if_index;
87 __u32 pkt_length;
88 __u32 reserved[2];
Ben Cheng655a7c02013-10-16 16:09:24 -070089};
Christopher Ferris9ce28842018-10-25 12:11:39 -070090enum txtime_flags {
91 SOF_TXTIME_DEADLINE_MODE = (1 << 0),
92 SOF_TXTIME_REPORT_ERRORS = (1 << 1),
93 SOF_TXTIME_FLAGS_LAST = SOF_TXTIME_REPORT_ERRORS,
94 SOF_TXTIME_FLAGS_MASK = (SOF_TXTIME_FLAGS_LAST - 1) | SOF_TXTIME_FLAGS_LAST
95};
96struct sock_txtime {
Christopher Ferris86a48372019-01-10 14:14:59 -080097 __kernel_clockid_t clockid;
Christopher Ferris9ce28842018-10-25 12:11:39 -070098 __u32 flags;
99};
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800100#endif