⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bitops.h.txt

📁 linux内核学习笔记 希望想看的人可以很快下载到
💻 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 + -