linuxのメモ

Linux kernelの実装を解説していきます (対象ver 4.5)

2016-03-29から1日間の記事一覧

プリエンプション - preemptible()

概要 プリエンプション可能であることを確認する 詳細 CONFIG_PREEMPT_COUNTが無効な場合は常に0を返し、有効な場合はpreempt_count()で実行待ちプロセス数が0でかつ、irqs_disabled()で現在割込み処理中である場合に1を返す、それ以外の場合は0を返す

アセンブラ命令 - THUNK

asm

概要 任意のラベル名でデフォルト引数を持つ指定した関数を実行するコードを生成する 詳細 アセンブラのマクロとして定義され、以下の引数を受け取る ラベルの名前を示す : name 実行する関数へのポインタ : func 実行する関数に呼び出し元のアドレスが必要…

アセンブラ命令 - _ASM_NOKPROBE

asm

概要 kprobe_blacklistセクションに任意のデータを追加する 詳細 pushsectionセクションで_kprobe_blacklistに書込み可能なデータとして_ASM_ALIGNでアライメントされ、_ASM_PTRで受け取ったデータのアドレスを示すデータを追加する

プリエンプション - __preempt_count_dec_and_test()

概要 プロセス待ちカウンターの値をデクリメントし結果が0になったかどうか確認する 詳細 GEN_UNARY_RMWcc()に以下の引数を渡して実行する アセンブラ命令 : decl アセンブラ命令の実行対象の値 : __preempt_count アセンブラ命令の0番目のオペランド : __pe…

アセンブラ命令 - GEN_UNARY_RMWcc()

asm

概要 任意のアセンブラ命令を実行し、実行結果を返す 詳細 このマクロでは以下の引数を受け取る アセンブラ命令のニーモニックを示す文字列 : op アセンブラ命令の実行対象を示す変数へのポインタ : var アセンブラ命令の0番目のオペランドを示す文字列 : ar…

アセンブラ命令 - __GEN_RMWcc()

asm

概要 任意のアセンブラ命令を実行し、実行結果を返す 詳細 このマクロでは以下の引数を受け取る アセンブラ命令を示す文字列 : fullop アセンブラ命令の実行対象を示す変数へのポインタ : var 返り値の判断に使用するsuffix : cc CC_HAVE_ASM_GOTOが有効な場…