Messages in this thread | | | Date | Sat, 19 Dec 2009 15:34:29 +0100 | From | Frederic Weisbecker <> | Subject | Re: [PATCH] perf tools: Prevent from BITS_PER_LONG redefinition |
| |
On Sat, Dec 19, 2009 at 10:26:07AM +0100, Peter Zijlstra wrote: > On Fri, 2009-12-18 at 23:05 +0100, Frederic Weisbecker wrote: > > +#ifndef BITS_PER_LONG > > /* CHECKME: Not sure both always match */ > > #define BITS_PER_LONG __WORDSIZE > > +#endif > > Why use __WORDSIZE if you're not sure? > > (8*sizeof(long)) is simple and unambiguous.
Yeah but we need it from the CPP level. We include such code located in kernel headers:
static __always_inline unsigned long __fls(unsigned long word) { int num = BITS_PER_LONG - 1;
#if BITS_PER_LONG == 64 if (!(word & (~0ul << 32))) { num -= 32; word <<= 32; } #endif if (!(word & (~0ul << (BITS_PER_LONG-16)))) { num -= 16; word <<= 16; }
And sizeof() is not defined :)
| |