内核的位图和位操作接口介绍
Posted 正在起飞的蜗牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内核的位图和位操作接口介绍相关的知识,希望对你有一定的参考价值。
1、内核的位图
(1)位图:位图就是用一个bit来表示一个资源的情况。比如要表示32个资源的状态,如果是每个资源用一个int型变量去表示则需要32个int型变量,但是采用位图则只需要1个int型变量(32个bit);
(2)适用位图的情况:资源只有两个状态则可以适用位图,因为位图是用一个bit表示资源的状态,而1bit只有表示两种情况;
(3)参考博客:《内核中的位图介绍(DECLARE_BITMAP宏)》;
2、内核的位操作接口
函数 | 功能 | 参数说明 |
---|---|---|
inline void set_bit(int nr, volatile unsigned long *addr) | 设置位图中指定的位 | nr:待设置的位;addr:位图起始地址 |
inline void clear_bit(int nr, volatile unsigned long *addr) | 清除位图中指定的位 | nr:待清除的位;addr:位图起始地址 |
inline void change_bit(int nr, volatile unsigned long *addr) | 改变位图中指定的位 | nr:待改变的位;addr:位图起始地址 |
inline int test_bit(int nr, const volatile unsigned long *addr) | 测试位图中指定的位是否被设置 | nr:待测试的位;addr:位图起始地址;返回值:待测试的位被设置将返回1,否则返回0 |
以上是关于内核的位图和位操作接口介绍的主要内容,如果未能解决你的问题,请参考以下文章