qemu-devel
[Top][All Lists]
Advanced

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

Re: [PULL 09/31] hw/core/clock: introduce clock object


From: Peter Maydell
Subject: Re: [PULL 09/31] hw/core/clock: introduce clock object
Date: Thu, 30 Apr 2020 15:35:10 +0100

On Thu, 30 Apr 2020 at 12:51, Peter Maydell <address@hidden> wrote:
>
> This object may be used to represent a clock inside a clock tree.
>
> A clock may be connected to another clock so that it receives update,
> through a callback, whenever the source/parent clock is updated.
>
> Although only the root clock of a clock tree controls the values
> (represented as periods) of all clocks in tree, each clock holds
> a local state containing the current value so that it can be fetched
> independently. It will allows us to fullfill migration requirements
> by migrating each clock independently of others.

> +#define CLOCK_SECOND (1000000000llu << 32)

It turns out that FreeBSD's time.h defines a CLOCK_SECOND
macro, which means this doesn't compile on that platform.
I'm going to rename it CLOCK_PERIOD_1SEC; it's only used
in include/hw/clock.h so not a big change:

diff --git a/include/hw/clock.h b/include/hw/clock.h
index f3e44e9460c..f822a942209 100644
--- a/include/hw/clock.h
+++ b/include/hw/clock.h
@@ -32,15 +32,15 @@ typedef void ClockCallback(void *opaque);
  * + at 1Ghz,   resolution is ~0.2Hz
  * + at 10Ghz,  resolution is ~20Hz
  */
-#define CLOCK_SECOND (1000000000llu << 32)
+#define CLOCK_PERIOD_1SEC (1000000000llu << 32)

 /*
  * macro helpers to convert to hertz / nanosecond
  */
-#define CLOCK_PERIOD_FROM_NS(ns) ((ns) * (CLOCK_SECOND / 1000000000llu))
-#define CLOCK_PERIOD_TO_NS(per) ((per) / (CLOCK_SECOND / 1000000000llu))
-#define CLOCK_PERIOD_FROM_HZ(hz) (((hz) != 0) ? CLOCK_SECOND / (hz) : 0u)
-#define CLOCK_PERIOD_TO_HZ(per) (((per) != 0) ? CLOCK_SECOND / (per) : 0u)
+#define CLOCK_PERIOD_FROM_NS(ns) ((ns) * (CLOCK_PERIOD_1SEC / 1000000000llu))
+#define CLOCK_PERIOD_TO_NS(per) ((per) / (CLOCK_PERIOD_1SEC / 1000000000llu))
+#define CLOCK_PERIOD_FROM_HZ(hz) (((hz) != 0) ? CLOCK_PERIOD_1SEC / (hz) : 0u)
+#define CLOCK_PERIOD_TO_HZ(per) (((per) != 0) ? CLOCK_PERIOD_1SEC / (per) : 0u)

 /**
  * Clock:

thanks
-- PMM



reply via email to

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