📄 bitops.h.txt
字号:
any problems,send mails to sindybear@163.com
相关文件
这个文件主要定义位操作,使用一些cpu所拥有的条件对位操作可以进行一系列的优化。
***********************ext2文件系统所使用的位操作******************************
#define ext2_find_first_zero_bit find_first_zero_bit //定义ext2文件系统使用的函数
#define ext2_find_next_zero_bit find_next_zero_bit
#define ext2_set_bit __test_and_set_bit
#define ext2_clear_bit __test_and_clear_bit
#define ext2_test_bit test_bit
*******************************************************************************
************************位查找基本函数*****************************************
(1)static __inline__ int find_first_zero_bit(void * addr, unsigned size)
//这个函数用于发现一个给定的内存空间中第一个为零的位
//参数addr是开始搜索的位置
//参数size是搜索的范围
//返回值是那个位的地方,如第1338位,不是以byte计算
(2)static __inline__ int find_first_bit(void * addr, unsigned size)
//这个函数和上面的相似,区别在于它寻找第一个为一的位
//其余类似
(3)static __inline__ int find_next_zero_bit (void * addr, int size, int offset)
//也是寻找第一个为零的位,不过多了一个偏移量,也就是从偏移量开始的位置搜索。
//其余类似
(4)static __inline__ int find_next_bit (void * addr, int size, int offset)
//也是寻找第一个为一的位,不过多了一个偏移量,也就是从偏移量开始的位置搜索。
*******************************************************************************
************************位置位函数*********************************************
(1)static __inline__ int __test_and_set_bit(int nr, volatile void * addr)
//在给定的地址上,给第nr个位置为一,返回值时原来的老值,非原子操作
(2)static __inline__ int __test_and_clear_bit(int nr, volatile void * addr)
//清除一个位,和上面的函数正好相反,非原子操作
(3)static __inline__ int test_and_clear_bit(int nr, volatile void * addr)
//和函数2一样的功能,不过这个函数执行的是原子操作
*******************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -