]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/util_posix.c
fix 'hf iclass sim'
[proxmark3-svn] / client / util_posix.c
index 382f6a60799cb1483c23b90181b3d2a28c147c7f..435e41f39cebdb8b5eea32ac81b16a6358113254 100644 (file)
@@ -31,14 +31,18 @@ static void nsleep(uint64_t n) {
 }
 
 void msleep(uint32_t n) {
-       nsleep(1000000 * n);
+       nsleep(1000000 * (uint64_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