- 追加された行はこの色です。
- 削除された行はこの色です。
*参照元 [#ifcbabc9]
#backlinks
*説明 [#nd70ad90]
-パス: 複数あり
--汎用: [[linux-2.6.33/]]
--用: [[linux-2.6.33/]]
--用: [[linux-2.6.33/]]
--用: [[linux-2.6.33/]]
--用: [[linux-2.6.33/]]
--汎用 : [[linux-2.6.33/include/asm-generic/mutex-dec.h]]
--ARM 用 : [[linux-2.6.33/arch/arm/include/asm/mutex.h]]
--Blackfin 用: [[linux-2.6.33/arch/blackfin/include/asm/mutex.h]]
--IA64 用 : [[linux-2.6.33/arch/ia64/include/asm/mutex.h]]
--PowerPC 用 : [[linux-2.6.33/arch/powerpc/include/asm/mutex.h]]
--SH 用 : [[linux-2.6.33/arch/sh/include/asm/mutex-llsc.h]]
--x86(32bit) 用 : [[linux-2.6.33/arch/x86/include/asm/mutex_32.h]]
--x86_64(64bit) 用: [[linux-2.6.33/arch/x86/include/asm/mutex_64.h]]
-FIXME: これは何?
--説明
--ミューテックスのロックカウントを減らす。
**引数 [#z1121482]
-
-atomic_t *count
--
--[[linux-2.6.33/atomic_t]]
-int (*fail_fn)(atomic_t *)
--
**返り値 [#q807c7f0]
-
--
**参考 [#c0180ed7]
-独自のミューテックスロック関数を定義しているアーキテクチャ
--ARM
--Blackfin
--IA64
--PowerPC
--SH
--x86(32bit)
--x86_64(64bit)
-検索データ
$ grep -r __mutex_fastpath_lock arch/ | sed -e 's/\(.*\):\(.*\)/\1/g' | sort | uniq
arch/arm/include/asm/mutex.h
arch/blackfin/include/asm/mutex.h
arch/ia64/include/asm/mutex.h
arch/powerpc/include/asm/mutex.h
arch/sh/include/asm/mutex-llsc.h
arch/x86/include/asm/mutex_32.h
arch/x86/include/asm/mutex_64.h
*実装 [#m7b5b9d2]
**汎用: include/asm-generic/mutex-dec.h [#e1ca13eb]
/**
* __mutex_fastpath_lock_retval - try to take the lock by moving the count
* from 1 to a 0 value
* @count: pointer of type atomic_t
* @fail_fn: function to call if the original value was not 1
*
* Change the count from 1 to a value lower than 1, and call <fail_fn> if
* it wasn't 1 originally. This function returns 0 if the fastpath succeeds,
* or anything the slow path function returns.
*/
static inline int
__mutex_fastpath_lock_retval(atomic_t *count, int (*fail_fn)(atomic_t *))
{
if (unlikely(atomic_dec_return(count) < 0))
return fail_fn(count);
-
--[[linux-2.6.33/unlikely()]]
-
--[[linux-2.6.33/atomic_dec_return()]]
return 0;
}
**ARM 用 : arch/arm/include/asm/mutex.h [#t3bebe0c]
**Blackfin 用: arch/blackfin/include/asm/mutex.h [#pef2ccdc]
**IA64 用 : arch/ia64/include/asm/mutex.h [#hee1a8f0]
**PowerPC 用 : arch/powerpc/include/asm/mutex.h [#zdd733ad]
**SH 用 : arch/sh/include/asm/mutex-llsc.h [#w5b9c018]
**x86(32bit) 用 : arch/x86/include/asm/mutex_32.h [#i3bc42e8]
**x86_64(64bit) 用: arch/x86/include/asm/mutex_64.h [#m5c5004d]
*コメント [#rdb85916]