用于计数位集的内核宏

时间:2013-01-16 19:19:33

标签: c linux-kernel bit-manipulation linux-device-driver device-driver

是否有标准的Linux内核位操作宏,它返回以无符号长整数设置的位数?

2 个答案:

答案 0 :(得分:2)

您可以使用:

hweight_long

include/linux/bitops.h

中的功能

Othwerwise Linux内核使用gcc和GNU扩展,gcc也提供这些内置:

  

内置函数:int __builtin_popcount(unsigned int x)   返回x中的1位数。

     

内置函数:int __builtin_popcountl(unsigned long)   与__builtin_popcount类似,但参数类型为unsigned long。

http://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html

答案 1 :(得分:0)

由于您在代码中包含了C.您可以使用C代码确定为指向here

https://stackoverflow.com/a/2709523/1952879