timecounter: provide a macro to initialize the cyclecounter mask field.
authorRichard Cochran <richardcochran@gmail.com>
Fri, 2 Jan 2015 19:22:03 +0000 (20:22 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 2 Jan 2015 21:47:35 +0000 (16:47 -0500)
There is no need for users of the timecounter/cyclecounter code to include
clocksource.h just for a single macro.

Signed-off-by: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/timecounter.h

index 74f45496e6d1a3a3270da2e6c7d0b1b8cba75566..4382035a75bbcdc65d8099a9b3d2d384e31815ff 100644 (file)
@@ -19,6 +19,9 @@
 
 #include <linux/types.h>
 
+/* simplify initialization of mask field */
+#define CYCLECOUNTER_MASK(bits) (cycle_t)((bits) < 64 ? ((1ULL<<(bits))-1) : -1)
+
 /**
  * struct cyclecounter - hardware abstraction for a free running counter
  *     Provides completely state-free accessors to the underlying hardware.
@@ -29,7 +32,7 @@
  * @read:              returns the current cycle value
  * @mask:              bitmask for two's complement
  *                     subtraction of non 64 bit counters,
- *                     see CLOCKSOURCE_MASK() helper macro
+ *                     see CYCLECOUNTER_MASK() helper macro
  * @mult:              cycle to nanosecond multiplier
  * @shift:             cycle to nanosecond divisor (power of two)
  */