我正在尝试使用 test_and_set_bit 函数实现自旋锁。我找到了一个包含这个函数的 bitops.h 文件。但是,在我当前的内核版本 3.0 中,该函数不包含在该头文件中,即 bitops.h。任何人都提供一些我可以找到的参考资料?
问问题
1194 次
1 回答
3
不确定我是否完全理解您的问题,但包括<linux/bitops.h>
应该引入test_and_set_bit()
. 函数的实际定义不在其中,include/linux/bitops.h
但它是通过包含版本中的包含来获取的<asm/bitops.h>
。linux/
因此,要查看test_and_set_bit()
您可以查看arch/arm/include/asm/bitops.h
或arch/x86/include/asm/bitops.h
(或您感兴趣的任何其他架构)的实际定义。
顺便说一句,没有理由需要实现自己的自旋锁——内核(当然)具有标准spinlock_t
,并且类似的功能bit_spin_lock()
也使用单个位作为锁。
于 2012-09-18T18:38:44.167 回答