[libvirt] [PATCH 1/6] Introduce virTimeMs for getting current time in ms

Michal Privoznik mprivozn at redhat.com
Thu Jun 9 14:06:48 UTC 2011


On 07.06.2011 15:01, Jiri Denemark wrote:
> ---
>  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
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




More information about the libvir-list mailing list