+void bt_ctf_clock_destroy(struct bt_object *obj);
+
+BT_HIDDEN
+struct bt_ctf_clock *_bt_ctf_clock_create(void)
+{
+ struct bt_ctf_clock *clock = g_new0(
+ struct bt_ctf_clock, 1);
+
+ if (!clock) {
+ goto end;
+ }
+
+ clock->precision = 1;
+ clock->frequency = 1000000000;
+ bt_object_init(clock, bt_ctf_clock_destroy);
+end:
+ return clock;
+}
+
+BT_HIDDEN
+int bt_ctf_clock_set_name(struct bt_ctf_clock *clock,
+ const char *name)
+{
+ int ret = 0;
+
+ if (bt_ctf_validate_identifier(name)) {
+ ret = -1;
+ goto end;
+ }
+
+ if (clock->name) {
+ g_string_assign(clock->name, name);
+ } else {
+ clock->name = g_string_new(name);
+ if (!clock->name) {
+ ret = -1;
+ goto end;
+ }
+ }
+
+end:
+ return ret;
+}