Thread (22 messages) 22 messages, 4 authors, 2015-01-05

Re: [PATCH net-next 1/7] timecounter: provide a macro to initialize the cyclecounter mask field.

From: Richard Cochran <richardcochran@gmail.com>
Date: 2015-01-05 13:43:36
Also in: lkml

On Mon, Jan 05, 2015 at 01:20:57PM +0000, David Laight wrote:
quoted
+/* simplify initialization of mask field */
+#define CYCLECOUNTER_MASK(bits) (cycle_t)((bits) < 64 ? ((1ULL<<(bits))-1) : -1)
That has me chasing through the C integer promotion rules.
Better might be:
	((bits) < 64 ? (1ULL << (bits)) - 1 : (((1ULL << 63) - 1) << 1) + 1)
I actually suspect there is a standard definition somewhere?
This is an exact copy of CLOCKSOURCE_MASK, and if wrong, then both are
wrong.  In any case, I can't see any issue here. Is not

	(some_int_type) -1

always equal to

	0xf...(width of type)

for all integer types, when using 2s compliment?

Thanks
Richard
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help