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/
そのため、実際の定義を確認するには、 or (または興味のある他のアーキテクチャ) をtest_and_set_bit()
調べることができます。arch/arm/include/asm/bitops.h
arch/x86/include/asm/bitops.h
ところで、独自のスピンロックを実装する必要がある理由はありません。カーネルには (もちろん) 標準があり、ロックとして 1 ビットを使用するspinlock_t
ような関数もあります。bit_spin_lock()
于 2012-09-18T18:38:44.167 に答える