diff options
author | Catalin Marinas <catalin.marinas@arm.com> | 2012-09-12 17:00:53 -0400 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2012-09-14 12:15:41 -0400 |
commit | 048fa2df92c325cb4425dccd66c8922c8342b507 (patch) | |
tree | a76ddbd3f05752f27e0867906a34e102cb76b4e4 /include/asm-generic/bitops/builtin-ffs.h | |
parent | 0753f70f07fbbd23a48d61ffea37028bd0bd6c7d (diff) |
generic: Implement generic ffs/fls using __builtin_* functions
This patch implements ffs, __ffs, fls, __fls using __builtin_* gcc
functions. These header files can be used by other architectures that
rely on the gcc builtins.
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'include/asm-generic/bitops/builtin-ffs.h')
-rw-r--r-- | include/asm-generic/bitops/builtin-ffs.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/include/asm-generic/bitops/builtin-ffs.h b/include/asm-generic/bitops/builtin-ffs.h new file mode 100644 index 000000000000..064825829e1c --- /dev/null +++ b/include/asm-generic/bitops/builtin-ffs.h | |||
@@ -0,0 +1,17 @@ | |||
1 | #ifndef _ASM_GENERIC_BITOPS_BUILTIN_FFS_H_ | ||
2 | #define _ASM_GENERIC_BITOPS_BUILTIN_FFS_H_ | ||
3 | |||
4 | /** | ||
5 | * ffs - find first bit set | ||
6 | * @x: the word to search | ||
7 | * | ||
8 | * This is defined the same way as | ||
9 | * the libc and compiler builtin ffs routines, therefore | ||
10 | * differs in spirit from the above ffz (man ffs). | ||
11 | */ | ||
12 | static __always_inline int ffs(int x) | ||
13 | { | ||
14 | return __builtin_ffs(x); | ||
15 | } | ||
16 | |||
17 | #endif | ||