linux-2.6.33/arch_write_trylock(x86)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#q066a32f]
#backlinks
*説明 [#gd963d4b]
-パス: [[linux-2.6.33/arch/x86/include/asm/spinlock.h]]
-arch_write_lock() の x86 版です。
**引数 [#k02fd7e4]
-arch_rwlock_t *lock
--
--[[linux-2.6.33/arch_rwlock_t]]
**返り値 [#b701a392]
-int
--
**参考 [#m6c01ec9]
*実装 [#n690fa61]
static inline int arch_write_trylock(arch_rwlock_t *lock)
{
atomic_t *count = (atomic_t *)lock;
-
--[[linux-2.6.33/atomic_t]]
if (atomic_sub_and_test(RW_LOCK_BIAS, count))
return 1;
-
--[[linux-2.6.33/atomic_sub_and_test()]]
--[[linux-2.6.33/RW_LOCK_BIAS]]
atomic_add(RW_LOCK_BIAS, count);
-
--[[linux-2.6.33/atomic_add()]]
return 0;
}
*コメント [#rf8941f9]
終了行:
*参照元 [#q066a32f]
#backlinks
*説明 [#gd963d4b]
-パス: [[linux-2.6.33/arch/x86/include/asm/spinlock.h]]
-arch_write_lock() の x86 版です。
**引数 [#k02fd7e4]
-arch_rwlock_t *lock
--
--[[linux-2.6.33/arch_rwlock_t]]
**返り値 [#b701a392]
-int
--
**参考 [#m6c01ec9]
*実装 [#n690fa61]
static inline int arch_write_trylock(arch_rwlock_t *lock)
{
atomic_t *count = (atomic_t *)lock;
-
--[[linux-2.6.33/atomic_t]]
if (atomic_sub_and_test(RW_LOCK_BIAS, count))
return 1;
-
--[[linux-2.6.33/atomic_sub_and_test()]]
--[[linux-2.6.33/RW_LOCK_BIAS]]
atomic_add(RW_LOCK_BIAS, count);
-
--[[linux-2.6.33/atomic_add()]]
return 0;
}
*コメント [#rf8941f9]
ページ名: