linux-2.6.33/atomic_sub_return()
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#ie766313]
#backlinks
*説明 [#v98d0d71]
-パス: 複数あり
--汎用: [[linux-2.6.33/include/asm-generic/atomic.h]]
--ARM 用: [[linux-2.6.33/atomic_sub_return()(arm)]]
--x86 用: [[linux-2.6.33/atomic_sub_return()(x86)]]
-アトミック値から指定した値を減算し、減算後の値を返す。
--演算がアトミックに行われるのは、
24bit に収まる範囲内の値までである。
---FIXME: なぜ???
--汎用処理は SMP 有効時に安全ではないため、
SMP を有効にする場合、各アーキテクチャで定義された関数が...
**引数 [#x0b8e60a]
-int i
--減算する値
-atomic_t *v
--減算対象のアトミック値
--[[linux-2.6.33/atomic_t]]
**返り値 [#n37146b4]
-int
--減算後の v の値
**参考 [#w74de1f6]
*実装 [#e312f3b8]
#ifdef CONFIG_SMP
-SMP が有効の時
--[[linux-2.6.33/CONFIG_SMP]]
#error not SMP safe
-SMP に対して安全ではないためコンパイルエラーにする。
#endif
/**
* atomic_sub_return - subtract integer from atomic vari...
* @i: integer value to subtract
* @v: pointer of type atomic_t
*
* Atomically subtracts @i from @v and returns the result
* Note that the guaranteed useful range of an atomic_t ...
*/
static inline int atomic_sub_return(int i, atomic_t *v)
{
unsigned long flags;
int temp;
local_irq_save(flags);
-割り込みを禁止する。
--[[linux-2.6.33/local_irq_save()]]
temp = v->counter;
temp -= i;
v->counter = temp;
local_irq_restore(flags);
-割り込み許可/禁止状態を元に戻す。
--[[linux-2.6.33/local_irq_restore()]]
return temp;
}
*コメント [#w9620954]
終了行:
*参照元 [#ie766313]
#backlinks
*説明 [#v98d0d71]
-パス: 複数あり
--汎用: [[linux-2.6.33/include/asm-generic/atomic.h]]
--ARM 用: [[linux-2.6.33/atomic_sub_return()(arm)]]
--x86 用: [[linux-2.6.33/atomic_sub_return()(x86)]]
-アトミック値から指定した値を減算し、減算後の値を返す。
--演算がアトミックに行われるのは、
24bit に収まる範囲内の値までである。
---FIXME: なぜ???
--汎用処理は SMP 有効時に安全ではないため、
SMP を有効にする場合、各アーキテクチャで定義された関数が...
**引数 [#x0b8e60a]
-int i
--減算する値
-atomic_t *v
--減算対象のアトミック値
--[[linux-2.6.33/atomic_t]]
**返り値 [#n37146b4]
-int
--減算後の v の値
**参考 [#w74de1f6]
*実装 [#e312f3b8]
#ifdef CONFIG_SMP
-SMP が有効の時
--[[linux-2.6.33/CONFIG_SMP]]
#error not SMP safe
-SMP に対して安全ではないためコンパイルエラーにする。
#endif
/**
* atomic_sub_return - subtract integer from atomic vari...
* @i: integer value to subtract
* @v: pointer of type atomic_t
*
* Atomically subtracts @i from @v and returns the result
* Note that the guaranteed useful range of an atomic_t ...
*/
static inline int atomic_sub_return(int i, atomic_t *v)
{
unsigned long flags;
int temp;
local_irq_save(flags);
-割り込みを禁止する。
--[[linux-2.6.33/local_irq_save()]]
temp = v->counter;
temp -= i;
v->counter = temp;
local_irq_restore(flags);
-割り込み許可/禁止状態を元に戻す。
--[[linux-2.6.33/local_irq_restore()]]
return temp;
}
*コメント [#w9620954]
ページ名: