
--- src/libvirt_private.syms | 1 + src/util/util.c | 24 ++++++++++++++++++++++++ src/util/util.h | 2 ++ 3 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index e6ab870..2415a89 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1027,6 +1027,7 @@ virStrToLong_ul; virStrToLong_ull; virStrcpy; virStrncpy; +virTimeMs; virTimestamp; virVasprintf;
diff --git a/src/util/util.c b/src/util/util.c index e221abe..d758cf9 100644 --- a/src/util/util.c +++ b/src/util/util.c @@ -3117,6 +3117,30 @@ virTimestamp(void) return timestamp; }
+#define timeval_to_ms(tv) (((tv).tv_sec * 1000ull) + ((tv).tv_usec / 1000)) What about making this in util.h so we can have only one definition and
On 07.06.2011 15:01, Jiri Denemark wrote: then cleanup src/qemu/qemu_domain.c:48, src/qemu/qemu_driver.c:116, src/qemu/qemu_migration.c:49?
+ +/** + * 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) diff --git a/src/util/util.h b/src/util/util.h index a1bcca0..273248a 100644 --- a/src/util/util.h +++ b/src/util/util.h @@ -286,6 +286,8 @@ int virBuildPathInternal(char **path, ...) ATTRIBUTE_SENTINEL;
char *virTimestamp(void);
+int virTimeMs(unsigned long long *ms); I'd add ATTRIBUTE_NONNULL(1); here. + bool virIsDevMapperDevice(const char *devname) ATTRIBUTE_NONNULL(1);
int virEmitXMLWarning(int fd,
Otherwise looking good. ACK Michal