qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH] win32: implement missing timersub


From: Blue Swirl
Subject: [Qemu-devel] [PATCH] win32: implement missing timersub
Date: Sun, 13 Mar 2011 16:49:11 +0200

Implement and wrap timersub() for Win32.

Signed-off-by: Blue Swirl <address@hidden>
---
 osdep.h  |   19 +++++++++++++++++--
 ui/vnc.c |    6 +++---
 2 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/osdep.h b/osdep.h
index 27eedcf..8c45000 100644
--- a/osdep.h
+++ b/osdep.h
@@ -8,9 +8,7 @@
 #include <sys/signal.h>
 #endif

-#ifndef _WIN32
 #include <sys/time.h>
-#endif

 #ifndef glue
 #define xglue(x, y) x ## y
@@ -131,4 +129,21 @@ int qemu_madvise(void *addr, size_t len, int advice);

 int qemu_create_pidfile(const char *filename);

+#ifdef _WIN32
+static inline void qemu_timersub(const struct timeval *val1,
+                                 const struct timeval *val2,
+                                 struct timeval *res)
+{
+    res->tv_sec = val1->tv_sec - val2->tv_sec;
+    if (val1->tv_usec - val2->tv_usec < 0) {
+        res->tv_sec--;
+        res->tv_usec = val1->tv_usec - val2->tv_usec + 1000 * 1000;
+    } else {
+        res->tv_usec = val1->tv_usec - val2->tv_usec;
+    }
+}
+#else
+#define qemu_timersub timersub
+#endif
+
 #endif
diff --git a/ui/vnc.c b/ui/vnc.c
index 34dc0cd..1b68965 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -2302,7 +2302,7 @@ static int vnc_update_stats(VncDisplay *vd,
struct timeval * tv)
         }
     }

-    timersub(tv, &VNC_REFRESH_STATS, &res);
+    qemu_timersub(tv, &VNC_REFRESH_STATS, &res);

     if (timercmp(&vd->guest.last_freq_check, &res, >)) {
         return has_dirty;
@@ -2320,7 +2320,7 @@ static int vnc_update_stats(VncDisplay *vd,
struct timeval * tv)
             }

             max = rect->times[(rect->idx + count - 1) % count];
-            timersub(tv, &max, &res);
+            qemu_timersub(tv, &max, &res);

             if (timercmp(&res, &VNC_REFRESH_LOSSY, >)) {
                 rect->freq = 0;
@@ -2331,7 +2331,7 @@ static int vnc_update_stats(VncDisplay *vd,
struct timeval * tv)

             min = rect->times[rect->idx];
             max = rect->times[(rect->idx + count - 1) % count];
-            timersub(&max, &min, &res);
+            qemu_timersub(&max, &min, &res);

             rect->freq = res.tv_sec + res.tv_usec / 1000000.;
             rect->freq /= count;
-- 
1.6.2.4

Attachment: 0001-win32-implement-missing-timersub.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]