+
+/*
+ * This function is used to set parameters, calculated externally,
+ * needed for mach_bridge_remote_time.
+ */
+void
+mach_bridge_set_params(uint64_t local_timestamp, uint64_t remote_timestamp, double rate)
+{
+ /* Ensure the locks have been initialized */
+ if (!os_atomic_load(&bt_init_flag, acquire)) {
+ panic("%s called before mach_bridge_init_timestamp", __func__);
+ return;
+ }
+
+ struct bt_params params = {};
+ params.base_local_ts = local_timestamp;
+ params.base_remote_ts = remote_timestamp;
+ params.rate = rate;
+ lck_spin_lock(&bt_ts_conversion_lock);
+ bt_params_add(¶ms);
+ lck_spin_unlock(&bt_ts_conversion_lock);
+ KDBG(MACHDBG_CODE(DBG_MACH_CLOCK, MACH_BRIDGE_TS_PARAMS), params.base_local_ts,
+ params.base_remote_ts, *(uint64_t *)((void *)¶ms.rate));
+}