linux-2.6.33/current_thread_info()(arm)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#i9094d9e]
#backlinks
*説明 [#wbc19723]
-パス: [[linux-2.6.33/arch/arm/include/asm/thread_info.h]]
-現在実行中のタスクの情報を返す。
-ARM アーキテクチャではスーパバイザモード専用のレジスタバ...
モード切り替え時に自動的にレジスタバンクが切り替わるため、
このため、ユーザモード(ユーザプロセス内コード実行時)と、
スーパバイザモード(カーネル内コード実行時)のスタックは...
--スイッチされるのは sp, lr レジスタのみ。他は共通。
**引数 [#p1b5e43b]
-なし
**返り値 [#rfb02340]
-struct thread_info *
--現在実行中のタスクの情報。
--[[linux-2.6.33/thread_info]]
**参考 [#rd451bb3]
-struct thread_info を配置する場所と、
カーネルスタックとの関連は下記を参照のこと。
--スタックポインタの現在値を、
カーネルスタックサイズ以下のビットを 0 でクリアした値を返...
--[[linux-2.6.33/current_thread_info()]]
*実装 [#k7222071]
/*
* how to get the thread information struct from C
*/
static inline struct thread_info *current_thread_info(vo...
-
--[[linux-2.6.33/inline]]
-
--[[linux-2.6.33/__attribute_const__]]
static inline struct thread_info *current_thread_info(vo...
{
register unsigned long sp asm ("sp");
-sp レジスタを unsigned long の変数として扱う
--GCC マニュアルの "6.44.1 Defining Global Register Varia...
--[[http://gcc.gnu.org/onlinedocs/gcc/Global-Reg-Vars.htm...
return (struct thread_info *)(sp & ~(THREAD_SIZE - 1));
-スタックポインタの現在値を、
カーネルスタックサイズ以下のビットを 0 でクリアした値を返...
--[[linux-2.6.33/THREAD_SIZE]]
}
*コメント [#ne8feb47]
終了行:
*参照元 [#i9094d9e]
#backlinks
*説明 [#wbc19723]
-パス: [[linux-2.6.33/arch/arm/include/asm/thread_info.h]]
-現在実行中のタスクの情報を返す。
-ARM アーキテクチャではスーパバイザモード専用のレジスタバ...
モード切り替え時に自動的にレジスタバンクが切り替わるため、
このため、ユーザモード(ユーザプロセス内コード実行時)と、
スーパバイザモード(カーネル内コード実行時)のスタックは...
--スイッチされるのは sp, lr レジスタのみ。他は共通。
**引数 [#p1b5e43b]
-なし
**返り値 [#rfb02340]
-struct thread_info *
--現在実行中のタスクの情報。
--[[linux-2.6.33/thread_info]]
**参考 [#rd451bb3]
-struct thread_info を配置する場所と、
カーネルスタックとの関連は下記を参照のこと。
--スタックポインタの現在値を、
カーネルスタックサイズ以下のビットを 0 でクリアした値を返...
--[[linux-2.6.33/current_thread_info()]]
*実装 [#k7222071]
/*
* how to get the thread information struct from C
*/
static inline struct thread_info *current_thread_info(vo...
-
--[[linux-2.6.33/inline]]
-
--[[linux-2.6.33/__attribute_const__]]
static inline struct thread_info *current_thread_info(vo...
{
register unsigned long sp asm ("sp");
-sp レジスタを unsigned long の変数として扱う
--GCC マニュアルの "6.44.1 Defining Global Register Varia...
--[[http://gcc.gnu.org/onlinedocs/gcc/Global-Reg-Vars.htm...
return (struct thread_info *)(sp & ~(THREAD_SIZE - 1));
-スタックポインタの現在値を、
カーネルスタックサイズ以下のビットを 0 でクリアした値を返...
--[[linux-2.6.33/THREAD_SIZE]]
}
*コメント [#ne8feb47]
ページ名: