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 |
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)