Make API CTF-agnostic
[babeltrace.git] / include / babeltrace / ctf-ir / clock-value-internal.h
index 0f23181b733595b275621cf0cfffdae28f803ee3..1beb9fac732b8eb2bebd322c9357ae56af5bcfa2 100644 (file)
@@ -25,6 +25,8 @@
 
 #include <babeltrace/babeltrace-internal.h>
 #include <babeltrace/object-internal.h>
+#include <babeltrace/ctf-ir/clock-class-internal.h>
+#include <babeltrace/ctf-ir/utils-internal.h>
 #include <stdbool.h>
 #include <stdint.h>
 
@@ -33,11 +35,10 @@ struct bt_clock_class;
 struct bt_clock_value {
        struct bt_object base;
        struct bt_clock_class *clock_class;
-       uint64_t value;
-       bool ns_from_epoch_overflows;
-       int64_t ns_from_epoch;
+       uint64_t value_cycles;
+       bool ns_from_origin_overflows;
+       int64_t ns_from_origin;
        bool is_set;
-       bool frozen;
 };
 
 static inline
@@ -54,20 +55,38 @@ void bt_clock_value_reset(struct bt_clock_value *clock_value)
        clock_value->is_set = false;
 }
 
-BT_UNUSED
 static inline
-void _bt_clock_value_set_is_frozen(struct bt_clock_value *clock_value,
-               bool is_frozen)
+void set_ns_from_origin(struct bt_clock_value *clock_value)
+{
+       if (bt_util_ns_from_origin(clock_value->clock_class, clock_value->value_cycles,
+                       &clock_value->ns_from_origin)) {
+               clock_value->ns_from_origin_overflows = true;
+       }
+
+}
+
+static inline
+void bt_clock_value_set_raw_value(struct bt_clock_value *clock_value,
+               uint64_t cycles)
 {
        BT_ASSERT(clock_value);
-       clock_value->frozen = is_frozen;
+       clock_value->value_cycles = cycles;
+       set_ns_from_origin(clock_value);
+       bt_clock_value_set(clock_value);
 }
 
-#ifdef BT_DEV_MODE
-# define bt_clock_value_set_is_frozen  _bt_clock_value_set_is_frozen
-#else
-# define bt_clock_value_set_is_frozen(_x, _f)
-#endif /* BT_DEV_MODE */
+static inline
+void bt_clock_value_set_value_inline(struct bt_clock_value *clock_value,
+               uint64_t raw_value)
+{
+       bt_clock_value_set_raw_value(clock_value, raw_value);
+}
+
+BT_HIDDEN
+void bt_clock_value_destroy(struct bt_clock_value *clock_value);
+
+BT_HIDDEN
+struct bt_clock_value *bt_clock_value_new(struct bt_clock_class *clock_class);
 
 BT_HIDDEN
 struct bt_clock_value *bt_clock_value_create(
This page took 0.026293 seconds and 4 git commands to generate.