Browse Source

timecounter: provide a macro to initialize the cyclecounter mask field.

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>
Richard Cochran 10 years ago
parent
commit
1891172aa5
1 changed files with 4 additions and 1 deletions
  1. 4 1
      include/linux/timecounter.h

+ 4 - 1
include/linux/timecounter.h

@@ -19,6 +19,9 @@
 
 
 #include <linux/types.h>
 #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
  * struct cyclecounter - hardware abstraction for a free running counter
  *	Provides completely state-free accessors to the underlying hardware.
  *	Provides completely state-free accessors to the underlying hardware.
@@ -29,7 +32,7 @@
  * @read:		returns the current cycle value
  * @read:		returns the current cycle value
  * @mask:		bitmask for two's complement
  * @mask:		bitmask for two's complement
  *			subtraction of non 64 bit counters,
  *			subtraction of non 64 bit counters,
- *			see CLOCKSOURCE_MASK() helper macro
+ *			see CYCLECOUNTER_MASK() helper macro
  * @mult:		cycle to nanosecond multiplier
  * @mult:		cycle to nanosecond multiplier
  * @shift:		cycle to nanosecond divisor (power of two)
  * @shift:		cycle to nanosecond divisor (power of two)
  */
  */