0

我正在尝试使用 test_and_set_bit 函数实现自旋锁。我找到了一个包含这个函数的 bitops.h 文件。但是,在我当前的内核版本 3.0 中,该函数不包含在该头文件中,即 bitops.h。任何人都提供一些我可以找到的参考资料?

4

1 回答 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.harch/x86/include/asm/bitops.h(或您感兴趣的任何其他架构)的实际定义。

顺便说一句,没有理由需要实现自己的自旋锁——内核(当然)具有标准spinlock_t,并且类似的功能bit_spin_lock()也使用单个位作为锁。

于 2012-09-18T18:38:44.167 回答