summaryrefslogtreecommitdiffhomepage
path: root/ebpf/include/linux/time.h
diff options
context:
space:
mode:
authorDavid Anderson <danderson@tailscale.com>2021-11-10 12:15:03 -0800
committerDavid Anderson <danderson@tailscale.com>2021-11-10 12:15:03 -0800
commit41710e1b810aa25c14ceb657a40b9ba616615435 (patch)
tree4953322c9930fde10dae9ff057de28827e87fb52 /ebpf/include/linux/time.h
parent4a51050c498da33eaecb520b78aeb5f445a442f1 (diff)
downloadtailscale-danderson/ebpf.tar.xz
tailscale-danderson/ebpf.zip
ebpf: experiments.danderson/ebpf
Diffstat (limited to 'ebpf/include/linux/time.h')
-rw-r--r--ebpf/include/linux/time.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/ebpf/include/linux/time.h b/ebpf/include/linux/time.h
new file mode 100644
index 000000000..5f2d52fae
--- /dev/null
+++ b/ebpf/include/linux/time.h
@@ -0,0 +1,73 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+#ifndef _LINUX_TIME_H
+#define _LINUX_TIME_H
+
+#include <linux/types.h>
+#include <linux/time_types.h>
+
+#ifndef _STRUCT_TIMESPEC
+#define _STRUCT_TIMESPEC
+struct timespec {
+ __kernel_old_time_t tv_sec; /* seconds */
+ long tv_nsec; /* nanoseconds */
+};
+#endif
+
+struct timeval {
+ __kernel_old_time_t tv_sec; /* seconds */
+ __kernel_suseconds_t tv_usec; /* microseconds */
+};
+
+struct itimerspec {
+ struct timespec it_interval;/* timer period */
+ struct timespec it_value; /* timer expiration */
+};
+
+struct itimerval {
+ struct timeval it_interval;/* timer interval */
+ struct timeval it_value; /* current value */
+};
+
+struct timezone {
+ int tz_minuteswest; /* minutes west of Greenwich */
+ int tz_dsttime; /* type of dst correction */
+};
+
+/*
+ * Names of the interval timers, and structure
+ * defining a timer setting:
+ */
+#define ITIMER_REAL 0
+#define ITIMER_VIRTUAL 1
+#define ITIMER_PROF 2
+
+/*
+ * The IDs of the various system clocks (for POSIX.1b interval timers):
+ */
+#define CLOCK_REALTIME 0
+#define CLOCK_MONOTONIC 1
+#define CLOCK_PROCESS_CPUTIME_ID 2
+#define CLOCK_THREAD_CPUTIME_ID 3
+#define CLOCK_MONOTONIC_RAW 4
+#define CLOCK_REALTIME_COARSE 5
+#define CLOCK_MONOTONIC_COARSE 6
+#define CLOCK_BOOTTIME 7
+#define CLOCK_REALTIME_ALARM 8
+#define CLOCK_BOOTTIME_ALARM 9
+/*
+ * The driver implementing this got removed. The clock ID is kept as a
+ * place holder. Do not reuse!
+ */
+#define CLOCK_SGI_CYCLE 10
+#define CLOCK_TAI 11
+
+#define MAX_CLOCKS 16
+#define CLOCKS_MASK (CLOCK_REALTIME | CLOCK_MONOTONIC)
+#define CLOCKS_MONO CLOCK_MONOTONIC
+
+/*
+ * The various flags for setting POSIX.1b interval timers:
+ */
+#define TIMER_ABSTIME 0x01
+
+#endif /* _LINUX_TIME_H */