順仮想化 - __PV_IS_CALLEE_SAVE()
概要
任意の関数でstruct paravirt_callee_save型の変数を初期化する
詳細
関数名を引数として受け取り、struct paravirt_callee_save型のfuncメンバに関数のポインタを代入して初期化する
アドレッシング - is_vmalloc_addr()
概要
アドレスが、vmallocのアドレスの範囲内であるか確認する
詳細
CONFIG_MMUが無効な場合は常に0を返すが、有効な場合は引数として取得したアドレスの値がVMALLOC_STARTからVMALLOC_ENDの範囲内にあるか確認する
アドレッシング - __phys_addr_nodebug()
エラー出力 - BUG_ON()
概要
例外を発生させ、エラーが発生したコードに関するデータを登録する
詳細
CONFIG_BUGが無効な場合は引数の値を評価するだけだが、有効な場合はunlikely()で引数の値を評価し、有効な値の場合にBUG()を実行する
エラー出力 - BUG()
概要
例外を発生させ、エラーが発生したコードに関するデータを登録する
詳細
アセンブラ命令ud2
で例外を発生させ、unreachable()を実行するが、CONFIG_DEBUG_BUGVERBOSEが有効な場合は、pushsectionで_bug_tableセクションにstruct bug_entry構造体のデータを挿入する
データの内容は、発生した箇所のアドレス、ファイル名、ファイル行番号で初期化される