更新日期: 2022/06/01 来源: https://gitee.com/weharmony/kernel_liteos_a_note
los_bitmap.c 文件参考

浏览源代码.

函数

STATIC INLINE UINT16 Ffz (UINTPTR x)
 
VOID LOS_BitmapSet (UINT32 *bitmap, UINT16 pos)
 对状态字的某一标志位进行置1操作 更多...
 
VOID LOS_BitmapClr (UINT32 *bitmap, UINT16 pos)
 对状态字的某一标志位进行清0操作 更多...
 
UINT16 LOS_HighBitGet (UINT32 bitmap)
 获取参数位图中最高位为1的索引位 例如: 00110110 返回 5 更多...
 
UINT16 LOS_LowBitGet (UINT32 bitmap)
 获取参数位图中最低位为1的索引位, 例如: 00110110 返回 1 更多...
 
VOID LOS_BitmapSetNBits (UINTPTR *bitmap, UINT32 start, UINT32 numsSet)
 从start位置开始设置numsSet个bit位 置1 更多...
 
VOID LOS_BitmapClrNBits (UINTPTR *bitmap, UINT32 start, UINT32 numsClear)
 从start位置开始 清除numsSet个bit位置0 ,对状态字的连续标志位进行清0操作 更多...
 
INT32 LOS_BitmapFfz (UINTPTR *bitmap, UINT32 numBits)
 从numBits位置开始找到第一个0位 更多...
 

函数说明

◆ Ffz()

STATIC INLINE UINT16 Ffz ( UINTPTR  x)

find first zero bit starting from LSB

在文件 los_bitmap.c55 行定义.

56{//__builtin_ffsl: 返回右起第一个1的位置,函数来自 glibc
57 return __builtin_ffsl(~x) - 1;//从LSB开始查找第一个零位 LSB(最低有效位) 对应 最高有效位(MSB)
58}
这是这个函数的调用关系图: