lkml.org 
[lkml]   [2006]   [Feb]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 10/47] generic fls()
    This patch introduces the C-language equivalent of the function:
    int fls(int x);

    In include/asm-generic/bitops/fls.h

    This code largely copied from:
    include/linux/bitops.h

    Signed-off-by: Akinobu Mita <mita@miraclelinux.com>
    include/asm-generic/bitops/fls.h | 41 +++++++++++++++++++++++++++++++++++++++
    1 files changed, 41 insertions(+)

    Index: 2.6-rc/include/asm-generic/bitops/fls.h
    ===================================================================
    --- /dev/null
    +++ 2.6-rc/include/asm-generic/bitops/fls.h
    @@ -0,0 +1,41 @@
    +#ifndef _ASM_GENERIC_BITOPS_FLS_H_
    +#define _ASM_GENERIC_BITOPS_FLS_H_
    +
    +/**
    + * fls - find last (most-significant) bit set
    + * @x: the word to search
    + *
    + * This is defined the same way as ffs.
    + * Note fls(0) = 0, fls(1) = 1, fls(0x80000000) = 32.
    + */
    +
    +static inline int fls(int x)
    +{
    + int r = 32;
    +
    + if (!x)
    + return 0;
    + if (!(x & 0xffff0000u)) {
    + x <<= 16;
    + r -= 16;
    + }
    + if (!(x & 0xff000000u)) {
    + x <<= 8;
    + r -= 8;
    + }
    + if (!(x & 0xf0000000u)) {
    + x <<= 4;
    + r -= 4;
    + }
    + if (!(x & 0xc0000000u)) {
    + x <<= 2;
    + r -= 2;
    + }
    + if (!(x & 0x80000000u)) {
    + x <<= 1;
    + r -= 1;
    + }
    + return r;
    +}
    +
    +#endif /* _ASM_GENERIC_BITOPS_FLS_H_ */
    --
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2006-02-14 06:22    [W:0.019 / U:31.128 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site