]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
Introduce virTimeMs for getting current time in ms
authorJiri Denemark <jdenemar@redhat.com>
Wed, 1 Jun 2011 09:38:56 +0000 (11:38 +0200)
committerJiri Denemark <jdenemar@redhat.com>
Mon, 13 Jun 2011 09:20:16 +0000 (11:20 +0200)
src/libvirt_private.syms
src/util/util.c
src/util/util.h

index 9d4e163931467db2ef0934e95f8a42e6c99aea7f..737cd31deaf4fabca441f3111d8092f900bff036 100644 (file)
@@ -1025,6 +1025,7 @@ virStrToLong_ul;
 virStrToLong_ull;
 virStrcpy;
 virStrncpy;
+virTimeMs;
 virTimestamp;
 virVasprintf;
 
index 457becf8341db8392e7b359bfca8bd66b27a0f3d..d00f065b565d24714a0760bd7c671c0148dc272d 100644 (file)
@@ -2471,6 +2471,30 @@ virTimestamp(void)
     return timestamp;
 }
 
+#define timeval_to_ms(tv)   (((tv).tv_sec * 1000ull) + ((tv).tv_usec / 1000))
+
+/**
+ * virTimeMs:
+ *
+ * Get current time in milliseconds.
+ *
+ * Returns 0 on success, -1 on failure.
+ */
+int
+virTimeMs(unsigned long long *ms)
+{
+    struct timeval now;
+
+    if (gettimeofday(&now, NULL) < 0) {
+        virReportSystemError(errno, "%s",
+                             _("cannot get time of day"));
+        return -1;
+    }
+
+    *ms = timeval_to_ms(now);
+    return 0;
+}
+
 #if HAVE_LIBDEVMAPPER_H
 bool
 virIsDevMapperDevice(const char *devname)
index 68a8431683476b75888c97c73077a9dcfc472cab..0c43f7a77fccb631e70e3986a863099697b2d237 100644 (file)
@@ -254,6 +254,8 @@ int virBuildPathInternal(char **path, ...) ATTRIBUTE_SENTINEL;
 
 char *virTimestamp(void);
 
+int virTimeMs(unsigned long long *ms) ATTRIBUTE_NONNULL(1);
+
 bool virIsDevMapperDevice(const char *devname) ATTRIBUTE_NONNULL(1);
 
 int virEmitXMLWarning(int fd,