All of lore.kernel.org
 help / color / mirror / Atom feed
* is there a "single_bit_set" macro somewhere?
@ 2009-04-23 17:14 Robert P. J. Day
  2009-04-23 17:24 ` Randy Dunlap
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Robert P. J. Day @ 2009-04-23 17:14 UTC (permalink / raw)
  To: kernel-janitors


  once upon a time, the kernel source code was replete with
conditional constructs of the form:

  if ((n & (n-1)) = 0)

as a way of testing whether something was a power of two.  mercifully,
include/linux/log2.h was created which introduced, among other things:

static inline __attribute__((const))
bool is_power_of_2(unsigned long n)
{
        return (n != 0 && ((n & (n - 1)) = 0));
}

so we could simply ask whether "is_power_of_2(n)", which is convenient
when we're testing things like, oh, blocksize.

  similarly, there are bunches of places which need to test whether an
integer value has only a single set bit (for instance, to make sure
only one flag bit out of a number of mutually exclusive bits are set).

  mathematically, that would be the same test, of course, but
semantically, it would be ugly and inappropriate.  is there,
somewhere, a corresponding macro/function that asks:

  single_bit_set(n)

if not, that would be handy, could be plopped into
include/linux/bitops.h and could be defined exactly the same way, and
would allow piles of code to be simplified.

  thoughts?

rday
--

====================================
Robert P. J. Day                               Waterloo, Ontario, CANADA

        Linux Consulting, Training and Annoying Kernel Pedantry.

Web page:                                          http://crashcourse.ca
Linked In:                             http://www.linkedin.com/in/rpjday
Twitter:                                       http://twitter.com/rpjday
====================================

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2009-04-24 13:43 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-23 17:14 is there a "single_bit_set" macro somewhere? Robert P. J. Day
2009-04-23 17:24 ` Randy Dunlap
2009-04-23 17:26 ` Julia Lawall
2009-04-23 17:34 ` Robert P. J. Day
2009-04-23 20:16 ` Julia Lawall
2009-04-23 20:24 ` Robert P. J. Day
2009-04-24 13:43 ` walter harms

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.