]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/x86_64/machine_remote_time.c
xnu-7195.50.7.100.1.tar.gz
[apple/xnu.git] / osfmk / x86_64 / machine_remote_time.c
index 3c834c04142979bc4cc6867a1b1b1ba29226e6e4..c9ebc7355ce186af5b8aef422f3b18beebed37fb 100644 (file)
  */
 #include <kern/misc_protos.h>
 #include <x86_64/machine_remote_time.h>
-#include <stdatomic.h>
+#include <machine/atomic.h>
 #include <kern/locks.h>
 #include <kern/clock.h>
+#include <kern/remote_time.h>
 
 void mach_bridge_send_timestamp(uint64_t timestamp);
 
 extern _Atomic uint32_t bt_init_flag;
-extern lck_spin_t *bt_maintenance_lock;
-extern void mach_bridge_timer_init(void);
 extern uint32_t bt_enable_flag;
 
 /*
@@ -55,23 +54,22 @@ mach_bridge_register_regwrite_timestamp_callback(mach_bridge_regwrite_timestamp_
 {
        static uint64_t delay_amount = 0;
 
-       if (!atomic_load(&bt_init_flag)) {
-               mach_bridge_timer_init();
+       if (!os_atomic_load(&bt_init_flag, relaxed)) {
                nanoseconds_to_absolutetime(DELAY_INTERVAL_NS, &delay_amount);
-               bt_init_flag = 1;
+               os_atomic_store(&bt_init_flag, 1, release);
        }
 
-       lck_spin_lock(bt_maintenance_lock);
+       lck_spin_lock(&bt_maintenance_lock);
        bridge_regwrite_timestamp_callback = func;
        bt_enable_flag = (func != NULL) ? 1 : 0;
        bt_delay_timestamp = mach_absolute_time() + delay_amount;
-       lck_spin_unlock(bt_maintenance_lock);
+       lck_spin_unlock(&bt_maintenance_lock);
 }
 
 void
 mach_bridge_send_timestamp(uint64_t timestamp)
 {
-       LCK_SPIN_ASSERT(bt_maintenance_lock, LCK_ASSERT_OWNED);
+       LCK_SPIN_ASSERT(&bt_maintenance_lock, LCK_ASSERT_OWNED);
 
        if (bt_delay_timestamp > 0) {
                uint64_t now = mach_absolute_time();