]> cvs.zerfleddert.de Git - proxmark3-svn/blobdiff - client/util_posix.c
fix 'hf iclass replay' (#888)
[proxmark3-svn] / client / util_posix.c
index dd3d714c52654d4b8114646de7e1b8f19920dee2..435e41f39cebdb8b5eea32ac81b16a6358113254 100644 (file)
@@ -35,10 +35,14 @@ void msleep(uint32_t n) {
 }
 #endif // _WIN32
 
-#ifdef __MACH__
+#ifdef __APPLE__
 
+#ifndef CLOCK_MONOTONIC
        #define CLOCK_MONOTONIC (1)
+#endif
+#ifndef CLOCK_REALTIME
        #define CLOCK_REALTIME (2)
+#endif
 
        #include <sys/time.h>
        #include <mach/clock.h>
@@ -63,20 +67,18 @@ void msleep(uint32_t n) {
 
                } else if (clk_id == CLOCK_MONOTONIC) {
                        static uint64_t clock_start_time = 0;
-                       static mach_timebase_info_data_t timebase_ifo = {0, 0};
+                       static mach_timebase_info_data_t timebase_info = {0, 0};
 
                        uint64_t now = mach_absolute_time();
 
                        if (clock_start_time == 0) {
-                               //kern_return_t mach_status = mach_timebase_info(&timebase_ifo);
-                               // appease "unused variable" warning for release builds
-                               //(void)mach_status;
+                               mach_timebase_info(&timebase_info);
                                clock_start_time = now;
                        }
 
                        now = (uint64_t)((double)(now - clock_start_time)
-                                        * (double)timebase_ifo.numer
-                                        / (double)timebase_ifo.denom);
+                                        * (double)timebase_info.numer
+                                        / (double)timebase_info.denom);
 
                        t->tv_sec = now / 1000000000;
                        t->tv_nsec = now % 1000000000;
@@ -115,7 +117,7 @@ uint64_t msclock() {
        #include <sys/timeb.h>
        struct _timeb t;
        _ftime(&t);
-       return 1000 * t.time + t.millitm;
+       return 1000 * (uint64_t)t.time + t.millitm;
 
 // NORMAL CODE (use _ftime_s)
        //struct _timeb t;
Impressum, Datenschutz