linux-2.6.33/arch_read_trylock()(x86)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#u0e9614e]
#backlinks
*説明 [#k5e0ccd1]
-パス: [[linux-2.6.33/arch/x86/include/asm/spinlock.h]]
-FIXME: arch_read_trylock() の x86 版です。
**引数 [#sf8940fb]
-arch_rwlock_t *lock
--ロックを試みる rwlock
--[[linux-2.6.33/arch_rwlock_t]]
**返り値 [#qf0a2cd6]
-int
--ロックに成功したら 0 以外、失敗したら 0
**参考 [#v48e2e8f]
*実装 [#qca2293a]
static inline int arch_read_trylock(arch_rwlock_t *lock)
{
atomic_t *count = (atomic_t *)lock;
-arch_rwlock_t と atomic_t は宣言が違うが、
サイズが同じなので、キャストしている??
--[[linux-2.6.33/atomic_t]]
if (atomic_dec_return(count) >= 0)
return 1;
-アトミックに 1減らしてみて、0以上だったらロックできてい...
--[[linux-2.6.33/atomic_dec_return()]]
atomic_inc(count);
-だめだったら 1増やす(つまり元に戻す)、失敗を返す。
--[[linux-2.6.33/atomic_inc()]]
return 0;
}
*コメント [#xd0bb015]
終了行:
*参照元 [#u0e9614e]
#backlinks
*説明 [#k5e0ccd1]
-パス: [[linux-2.6.33/arch/x86/include/asm/spinlock.h]]
-FIXME: arch_read_trylock() の x86 版です。
**引数 [#sf8940fb]
-arch_rwlock_t *lock
--ロックを試みる rwlock
--[[linux-2.6.33/arch_rwlock_t]]
**返り値 [#qf0a2cd6]
-int
--ロックに成功したら 0 以外、失敗したら 0
**参考 [#v48e2e8f]
*実装 [#qca2293a]
static inline int arch_read_trylock(arch_rwlock_t *lock)
{
atomic_t *count = (atomic_t *)lock;
-arch_rwlock_t と atomic_t は宣言が違うが、
サイズが同じなので、キャストしている??
--[[linux-2.6.33/atomic_t]]
if (atomic_dec_return(count) >= 0)
return 1;
-アトミックに 1減らしてみて、0以上だったらロックできてい...
--[[linux-2.6.33/atomic_dec_return()]]
atomic_inc(count);
-だめだったら 1増やす(つまり元に戻す)、失敗を返す。
--[[linux-2.6.33/atomic_inc()]]
return 0;
}
*コメント [#xd0bb015]
ページ名: