*参照元 [#t3dce733]
#backlinks

*説明 [#f35ecccd]
-パス: 複数あり
[[linux-2.6.33/lib/spinlock_debug.c]]
[[linux-2.6.33/include/linux/rwlock.h]]

-FIXME: これは何?
--説明


**引数 [#c7ca607b]
-rwlock_t *lock
--ロックを試みる rwlock
--[[linux-2.6.33/rwlock_t]]


**返り値 [#c7c3a93d]
-int
--ロックに成功したら 0 以外、失敗したら 0


**参考 [#n6d6a506]


*実装 [#o9ce0f3a]
**lib/spinlock_debug.c [#n292fca4]
 int do_raw_read_trylock(rwlock_t *lock)
 {
 	int ret = arch_read_trylock(&lock->raw_lock);
 
-
--[[linux-2.6.33/arch_read_trylock()]]

 #ifndef CONFIG_SMP
-SMP 無効の場合
--[[linux-2.6.33/CONFIG_SMP]]

 	/*
 	 * Must not happen on UP:
 	 */
 	RWLOCK_BUG_ON(!ret, lock, "trylock failure on UP");
-
--[[linux-2.6.33/RWLOCK_BUG_ON()]]

 #endif
 	return ret;
 }




**include/linux/rwlock.h [#cc71eb7e]
 #ifdef CONFIG_DEBUG_SPINLOCK
-スピンロックのデバッグが有効の場合
--[[linux-2.6.33/CONFIG_DEBUG_SPINLOCK]]
--lib/spinlock_debug.c の実装を見てください。

 (略)
  extern int do_raw_read_trylock(rwlock_t *lock);
 (略)
 #else
-スピンロックのデバッグが無効の場合

 (略)
 # define do_raw_read_trylock(rwlock)	arch_read_trylock(&(rwlock)->raw_lock)
-
-arch_read_trylock と同じ。
--[[linux-2.6.33/arch_read_trylock()]]

 (略)
 #endif
 

*コメント [#q24a52a2]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS