linux-2.6.33/_lock_kernel()
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#qa9526ef]
#backlinks
*説明 [#m800b621]
-パス: [[linux-2.6.33/lib/kernel_lock.c]]
-FIXME: これは何?
-BKL(Big Kernel Lock)のロック関数の本体
--1回目のロック: __lock_kernel() を呼んで、
BKL 用のスピンロックなどを獲得する
--2回目以降のロック: ロックカウントを加算する
**引数 [#hc60c6cd]
-const char *func
--関数の呼び出し元の関数名
-const char *file
--関数の呼び出し元のソースコード名
-int line
--関数の呼び出し元の行数
**返り値 [#scc45189]
-なし
**参考 [#v8e6957e]
*実装 [#pb405c87]
/*
* Getting the big kernel lock.
*
* This cannot happen asynchronously, so we only need to
* worry about other CPU's.
*/
void __lockfunc _lock_kernel(const char *func, const cha...
-
--[[linux-2.6.33/__lockfunc]]
{
int depth = current->lock_depth + 1;
-BKL のネスト数 + 1 を得る。
--[[linux-2.6.33/current(global)]]
trace_lock_kernel(func, file, line);
-
--[[linux-2.6.33/trace_lock_kernel()]]
if (likely(!depth)) {
-初回のロック(BKL のネスト数が負数 -> 0)の場合、
ロック処理を実行する。
might_sleep();
__lock_kernel();
}
-
--[[linux-2.6.33/likely()]]
-
--[[linux-2.6.33/might_sleep()]]
-
--[[linux-2.6.33/__lock_kernel()]]
current->lock_depth = depth;
-BKL のネスト数を更新する。
}
(略)
EXPORT_SYMBOL(_lock_kernel);
-ライセンスに関わらずシンボルを公開する。
--[[linux-2.6.33/EXPORT_SYMBOL()]]
*コメント [#tac14e84]
終了行:
*参照元 [#qa9526ef]
#backlinks
*説明 [#m800b621]
-パス: [[linux-2.6.33/lib/kernel_lock.c]]
-FIXME: これは何?
-BKL(Big Kernel Lock)のロック関数の本体
--1回目のロック: __lock_kernel() を呼んで、
BKL 用のスピンロックなどを獲得する
--2回目以降のロック: ロックカウントを加算する
**引数 [#hc60c6cd]
-const char *func
--関数の呼び出し元の関数名
-const char *file
--関数の呼び出し元のソースコード名
-int line
--関数の呼び出し元の行数
**返り値 [#scc45189]
-なし
**参考 [#v8e6957e]
*実装 [#pb405c87]
/*
* Getting the big kernel lock.
*
* This cannot happen asynchronously, so we only need to
* worry about other CPU's.
*/
void __lockfunc _lock_kernel(const char *func, const cha...
-
--[[linux-2.6.33/__lockfunc]]
{
int depth = current->lock_depth + 1;
-BKL のネスト数 + 1 を得る。
--[[linux-2.6.33/current(global)]]
trace_lock_kernel(func, file, line);
-
--[[linux-2.6.33/trace_lock_kernel()]]
if (likely(!depth)) {
-初回のロック(BKL のネスト数が負数 -> 0)の場合、
ロック処理を実行する。
might_sleep();
__lock_kernel();
}
-
--[[linux-2.6.33/likely()]]
-
--[[linux-2.6.33/might_sleep()]]
-
--[[linux-2.6.33/__lock_kernel()]]
current->lock_depth = depth;
-BKL のネスト数を更新する。
}
(略)
EXPORT_SYMBOL(_lock_kernel);
-ライセンスに関わらずシンボルを公開する。
--[[linux-2.6.33/EXPORT_SYMBOL()]]
*コメント [#tac14e84]
ページ名: