+bool read_src_fs_parameters(const bt_value *params,
+ const bt_value **paths, struct ctf_fs_component *ctf_fs) {
+ bool ret;
+ const bt_value *value;
+
+ /* paths parameter */
+ *paths = bt_value_map_borrow_entry_value_const(params, "paths");
+ if (!validate_paths_parameter(*paths)) {
+ goto error;
+ }
+
+ /* clock-class-offset-s parameter */
+ value = bt_value_map_borrow_entry_value_const(params,
+ "clock-class-offset-s");
+ if (value) {
+ if (!bt_value_is_integer(value)) {
+ BT_LOGE("clock-class-offset-s must be an integer");
+ goto error;
+ }
+ ctf_fs->metadata_config.clock_class_offset_s =
+ bt_value_integer_get(value);
+ }
+
+ /* clock-class-offset-ns parameter */
+ value = bt_value_map_borrow_entry_value_const(params,
+ "clock-class-offset-ns");
+ if (value) {
+ if (!bt_value_is_integer(value)) {
+ BT_LOGE("clock-class-offset-ns must be an integer");
+ goto error;
+ }
+ ctf_fs->metadata_config.clock_class_offset_ns =
+ bt_value_integer_get(value);
+ }
+
+
+ ret = true;
+ goto end;
+
+error:
+ ret = false;
+
+end:
+ return ret;
+}
+