blob: 6a10c1472156da7a6ec533baa105a908534cfa03 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
--- third_party/perfetto/include/perfetto/base/time.h.orig 2024-05-21 18:07:39 UTC
+++ third_party/perfetto/include/perfetto/base/time.h
@@ -201,6 +201,9 @@ inline TimeNanos GetTimeInternalNs(clockid_t clk_id) {
// Return ns from boot. Conversely to GetWallTimeNs, this clock counts also time
// during suspend (when supported).
inline TimeNanos GetBootTimeNs() {
+#if defined(__FreeBSD__)
+ return GetTimeInternalNs(kWallTimeClockSource);
+#else
// Determine if CLOCK_BOOTTIME is available on the first call.
static const clockid_t kBootTimeClockSource = [] {
struct timespec ts = {};
@@ -208,6 +211,7 @@ inline TimeNanos GetBootTimeNs() {
return res == 0 ? CLOCK_BOOTTIME : kWallTimeClockSource;
}();
return GetTimeInternalNs(kBootTimeClockSource);
+#endif
}
inline TimeNanos GetWallTimeNs() {
@@ -215,7 +219,13 @@ inline TimeNanos GetWallTimeNs() {
}
inline TimeNanos GetWallTimeRawNs() {
+#if defined(__OpenBSD__)
+ return GetTimeInternalNs(CLOCK_MONOTONIC);
+#elif defined(__FreeBSD__)
+ return GetTimeInternalNs(CLOCK_MONOTONIC_FAST);
+#else
return GetTimeInternalNs(CLOCK_MONOTONIC_RAW);
+#endif
}
inline TimeNanos GetThreadCPUTimeNs() {
|