Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

log2.h: Define order_base_2() macro for convenience.

Given a number of places in the tree that need to calculate this value
explicitly, might as well just create a macro for it.

(akpm: must be implemented as a macro for callee typeof() usage)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Robert P. J. Day and committed by
Linus Torvalds
de9330d1 582539e5

+16
+16
include/linux/log2.h
··· 190 190 __rounddown_pow_of_two(n) \ 191 191 ) 192 192 193 + /** 194 + * order_base_2 - calculate the (rounded up) base 2 order of the argument 195 + * @n: parameter 196 + * 197 + * The first few values calculated by this routine: 198 + * ob2(0) = 0 199 + * ob2(1) = 0 200 + * ob2(2) = 1 201 + * ob2(3) = 2 202 + * ob2(4) = 2 203 + * ob2(5) = 3 204 + * ... and so on. 205 + */ 206 + 207 + #define order_base_2(n) ilog2(roundup_pow_of_two(n)) 208 + 193 209 #endif /* _LINUX_LOG2_H */