X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fclock-internal.h;h=4bd46111c8ab6ab0df757ef97426e75dc94bd690;hb=61cf588beae752e5ddfc60b6b5310f769ac9e852;hp=002cc7fd848bd26c291c298ac22ce7ff33ee7b56;hpb=c462e188f3e7819c7bc74f671038cdbf36e8c3c0;p=babeltrace.git diff --git a/include/babeltrace/clock-internal.h b/include/babeltrace/clock-internal.h index 002cc7fd..4bd46111 100644 --- a/include/babeltrace/clock-internal.h +++ b/include/babeltrace/clock-internal.h @@ -42,4 +42,18 @@ uint64_t clock_cycles_to_ns(struct ctf_clock *clock, uint64_t cycles) } } +/* + * Note: if using a frequency different from 1GHz for clock->offset, it + * is recommended to express the seconds in offset_s, otherwise there + * will be a loss of precision caused by the limited size of the double + * mantissa. + * This offset can be negative. + */ +static inline +int64_t clock_offset_ns(struct ctf_clock *clock) +{ + return clock->offset_s * 1000000000ULL + + clock_cycles_to_ns(clock, clock->offset); +} + #endif /* _BABELTRACE_CLOCK_INTERNAL_H */