[toc]
include/linux/bits.h
BIT_WORD 位图的字数
1 | //include/asm-generic/bitsperlong.h |
include/linux/bitmap.h
bitmap_weight 位图的权重
- 用于计算位图(bitmap)中设置为 1 的位的数量(即权重)
1 | static __always_inline |
include/linux/bitops.h
bitop
1 | /* 许多特定于体系结构的非原子 Bitops 包含内联 asm 代码,因此编译器无法将它们优化为编译时表达式或常量。 |
test_bit 用于测试某个位是否被设置(即是否为 1)
1 |
assign_bit 为内存中的位分配值
1 | /** |
fls_long
1 | /** |
BITS_TO_LONGS 位图的字数
BITS_TO_LONGS
是一个宏,用于计算给定位数所需的长整型数目。它使用了__KERNEL_DIV_ROUND_UP
来确保结果向上取整,以便为所有位分配足够的空间。这个宏通常用于处理位图或位数组时,计算所需的存储空间。- 例如,如果你有一个位图需要存储 100 位数据,
BITS_TO_LONGS(100)
将返回 2,因为在 64 位系统上,一个长整型可以存储 64 位,因此需要两个长整型来存储 100 位数据。
1 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 wdfk-prog的个人博客!
评论