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

[FLS64]: generic version

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Stephen Hemminger and committed by
David S. Miller
3821af2f c865e5d9

+33 -1
+1
include/asm-alpha/bitops.h
··· 321 321 #else 322 322 #define fls generic_fls 323 323 #endif 324 + #define fls64 generic_fls64 324 325 325 326 /* Compute powers of two for the given integer. */ 326 327 static inline long floor_log2(unsigned long word)
+2
include/asm-arm/bitops.h
··· 332 332 */ 333 333 334 334 #define fls(x) generic_fls(x) 335 + #define fls64(x) generic_fls64(x) 335 336 336 337 /* 337 338 * ffs: find first bit set. This is defined the same way as ··· 352 351 #define fls(x) \ 353 352 ( __builtin_constant_p(x) ? generic_fls(x) : \ 354 353 ({ int __r; asm("clz\t%0, %1" : "=r"(__r) : "r"(x) : "cc"); 32-__r; }) ) 354 + #define fls64(x) generic_fls64(x) 355 355 #define ffs(x) ({ unsigned long __t = (x); fls(__t & -__t); }) 356 356 #define __ffs(x) (ffs(x) - 1) 357 357 #define ffz(x) __ffs( ~(x) )
+1
include/asm-arm26/bitops.h
··· 259 259 */ 260 260 261 261 #define fls(x) generic_fls(x) 262 + #define fls64(x) generic_fls64(x) 262 263 263 264 /* 264 265 * ffs: find first bit set. This is defined the same way as
+1
include/asm-cris/bitops.h
··· 240 240 */ 241 241 242 242 #define fls(x) generic_fls(x) 243 + #define fls64(x) generic_fls64(x) 243 244 244 245 /* 245 246 * hweightN - returns the hamming weight of a N-bit word
+1
include/asm-frv/bitops.h
··· 228 228 \ 229 229 bit ? 33 - bit : bit; \ 230 230 }) 231 + #define fls64(x) generic_fls64(x) 231 232 232 233 /* 233 234 * Every architecture must define this function. It's the fastest
+1
include/asm-generic/bitops.h
··· 56 56 */ 57 57 58 58 #define fls(x) generic_fls(x) 59 + #define fls64(x) generic_fls64(x) 59 60 60 61 #ifdef __KERNEL__ 61 62
+1
include/asm-h8300/bitops.h
··· 406 406 #endif /* __KERNEL__ */ 407 407 408 408 #define fls(x) generic_fls(x) 409 + #define fls64(x) generic_fls64(x) 409 410 410 411 #endif /* _H8300_BITOPS_H */
+1
include/asm-i386/bitops.h
··· 372 372 */ 373 373 374 374 #define fls(x) generic_fls(x) 375 + #define fls64(x) generic_fls64(x) 375 376 376 377 #ifdef __KERNEL__ 377 378
+1
include/asm-ia64/bitops.h
··· 345 345 x |= x >> 16; 346 346 return ia64_popcnt(x); 347 347 } 348 + #define fls64(x) generic_fls64(x) 348 349 349 350 /* 350 351 * ffs: find first bit set. This is defined the same way as the libc and compiler builtin
+1
include/asm-m32r/bitops.h
··· 465 465 * fls: find last bit set. 466 466 */ 467 467 #define fls(x) generic_fls(x) 468 + #define fls64(x) generic_fls64(x) 468 469 469 470 #ifdef __KERNEL__ 470 471
+1
include/asm-m68k/bitops.h
··· 310 310 311 311 return 32 - cnt; 312 312 } 313 + #define fls64(x) generic_fls64(x) 313 314 314 315 /* 315 316 * Every architecture must define this function. It's the fastest
+1
include/asm-m68knommu/bitops.h
··· 499 499 * fls: find last bit set. 500 500 */ 501 501 #define fls(x) generic_fls(x) 502 + #define fls64(x) generic_fls64(x) 502 503 503 504 #endif /* _M68KNOMMU_BITOPS_H */
+1 -1
include/asm-mips/bitops.h
··· 695 695 696 696 return flz(~word) + 1; 697 697 } 698 - 698 + #define fls64(x) generic_fls64(x) 699 699 700 700 /* 701 701 * find_next_zero_bit - find the first zero bit in a memory region
+1
include/asm-parisc/bitops.h
··· 263 263 264 264 return ret; 265 265 } 266 + #define fls64(x) generic_fls64(x) 266 267 267 268 /* 268 269 * hweightN: returns the hamming weight (i.e. the number
+1
include/asm-powerpc/bitops.h
··· 310 310 asm ("cntlzw %0,%1" : "=r" (lz) : "r" (x)); 311 311 return 32 - lz; 312 312 } 313 + #define fls64(x) generic_fls64(x) 313 314 314 315 /* 315 316 * hweightN: returns the hamming weight (i.e. the number
+1
include/asm-s390/bitops.h
··· 839 839 * fls: find last bit set. 840 840 */ 841 841 #define fls(x) generic_fls(x) 842 + #define fls64(x) generic_fls64(x) 842 843 843 844 /* 844 845 * hweightN: returns the hamming weight (i.e. the number
+1
include/asm-sh/bitops.h
··· 470 470 */ 471 471 472 472 #define fls(x) generic_fls(x) 473 + #define fls64(x) generic_fls64(x) 473 474 474 475 #endif /* __KERNEL__ */ 475 476
+1
include/asm-sh64/bitops.h
··· 510 510 511 511 #define ffs(x) generic_ffs(x) 512 512 #define fls(x) generic_fls(x) 513 + #define fls64(x) generic_fls64(x) 513 514 514 515 #endif /* __KERNEL__ */ 515 516
+1
include/asm-sparc/bitops.h
··· 298 298 * Note fls(0) = 0, fls(1) = 1, fls(0x80000000) = 32. 299 299 */ 300 300 #define fls(x) generic_fls(x) 301 + #define fls64(x) generic_fls64(x) 301 302 302 303 /* 303 304 * hweightN: returns the hamming weight (i.e. the number
+1
include/asm-sparc64/bitops.h
··· 119 119 */ 120 120 121 121 #define fls(x) generic_fls(x) 122 + #define fls64(x) generic_fls64(x) 122 123 123 124 #ifdef __KERNEL__ 124 125
+1
include/asm-v850/bitops.h
··· 276 276 277 277 #define ffs(x) generic_ffs (x) 278 278 #define fls(x) generic_fls (x) 279 + #define fls64(x) generic_fls64(x) 279 280 #define __ffs(x) ffs(x) 280 281 281 282
+1
include/asm-x86_64/bitops.h
··· 409 409 410 410 /* find last set bit */ 411 411 #define fls(x) generic_fls(x) 412 + #define fls64(x) generic_fls64(x) 412 413 413 414 #endif /* __KERNEL__ */ 414 415
+1
include/asm-xtensa/bitops.h
··· 245 245 { 246 246 return __cntlz(x); 247 247 } 248 + #define fls64(x) generic_fls64(x) 248 249 249 250 static __inline__ int 250 251 find_next_bit(const unsigned long *addr, int size, int offset)
+9
include/linux/bitops.h
··· 76 76 */ 77 77 #include <asm/bitops.h> 78 78 79 + 80 + static inline int generic_fls64(__u64 x) 81 + { 82 + __u32 h = x >> 32; 83 + if (h) 84 + return fls(x) + 32; 85 + return fls(x); 86 + } 87 + 79 88 static __inline__ int get_bitmask_order(unsigned int count) 80 89 { 81 90 int order;