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 14/47] generic ffs()
    This patch introduces the C-language equivalent of the function:
    int ffs(int x);

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

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

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

    Index: 2.6-rc/include/asm-generic/bitops/ffs.h
    ===================================================================
    --- /dev/null
    +++ 2.6-rc/include/asm-generic/bitops/ffs.h
    @@ -0,0 +1,41 @@
    +#ifndef _ASM_GENERIC_BITOPS_FFS_H_
    +#define _ASM_GENERIC_BITOPS_FFS_H_
    +
    +/**
    + * ffs - find first bit set
    + * @x: the word to search
    + *
    + * This is defined the same way as
    + * the libc and compiler builtin ffs routines, therefore
    + * differs in spirit from the above ffz (man ffs).
    + */
    +static inline int ffs(int x)
    +{
    + int r = 1;
    +
    + if (!x)
    + return 0;
    + if (!(x & 0xffff)) {
    + x >>= 16;
    + r += 16;
    + }
    + if (!(x & 0xff)) {
    + x >>= 8;
    + r += 8;
    + }
    + if (!(x & 0xf)) {
    + x >>= 4;
    + r += 4;
    + }
    + if (!(x & 3)) {
    + x >>= 2;
    + r += 2;
    + }
    + if (!(x & 1)) {
    + x >>= 1;
    + r += 1;
    + }
    + return r;
    +}
    +
    +#endif /* _ASM_GENERIC_BITOPS_FFS_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:27    [W:0.021 / U:60.156 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site