linux常用宏
Little_Baby24
这个作者很懒,什么都没留下…
展开
-
generic___set_bit函数实现
该数据接受两个参数,nr表示位图中置一的具体位置,addr是一个无符号长整型的指针(64位),指向位图的首地址(位图通过定义一个结构体,包含一组无符号长整数的数组,来实现的)。通过定义一个结构体,包含一组无符号长整数的数组,来实现的,所以数组中每一个成语都可以容纳64个比特位。该宏的作用,是计算出位图掩码,也就是计算的得出位图需要置一的位置。位图掩码,和置一的比特位所在的数组位置进行或(|)操作,完成对位图的指定位置置一的操作。第二行代码获取需要置一的比特位在位图中的具体位置(因为位图。原创 2024-04-22 16:59:36 · 148 阅读 · 0 评论 -
set_bit函数实现
x86_64架构下set_bit函数实现原创 2024-03-19 15:17:18 · 446 阅读 · 0 评论 -
BITS_TO_LONGS(nr)宏函数实现
该宏定义中,BITS_PER_BYTE定义在include/linux/bits.h文件中,值为8。在x86_64架构下,改宏定义表示为,根据传入type的类型,获取对应类型的bit位数。整体宏函数的作用,就是传入的nr(一般指bit位数),需要占用long型数据的个数,不足一个时候向上取整。公式中减一,是为了保证除操作向上取整。原创 2024-03-13 15:28:29 · 488 阅读 · 1 评论