linuxのメモ

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

2016-02-23から1日間の記事一覧

メモリ割り当て - kmalloc_slab()

概要 パラメータのサイズに応じた大きさのkmem_cache構造体を返す 詳細 メモリの割当要求サイズ(size)に応じて以下のとおりに処理内容が変わる size == 0 ZERO_SIZE_PTRを返す 0 < size <= KMALLOC_MAX_SIZE size <= 192 sizeを元にsize_index配列から適切な…

エラー出力 - warn_slowpath_null()

概要 ワーニングエラーを出力する 詳細 ファイル名と行数を引数として受け取り、warn_slowpath_common()を実行する。 warn_slowpath_common()の引数として以下の値を渡す。 取得したファイル名 取得した行数 呼び出し元のアドレス TAINT_WARN NULL

エラー出力 - WARN_ON()

概要 conditionがtrueの場合にwarningエラーを出力する 詳細 CONFIG_BUGの設定で挙動が変わる 無効な場合はエラー出力を行わない 有効な場合は__WARN()を実行する

エラー出力 - __WARN()

概要 ワーニングエラーを出力する 詳細 __WARN_TAINTが定義されている場合__WARN_TAINT()_マクロを実行するが、 x86では定義されていないため__FILE__・__LINE__を引数としてwarn_slowpath_null()関数を実行する

エラー出力 - WARN_ON_ONCE()

概要 conditionがtrueの場合にwarningエラーを一度だけ出力する 詳細 CONFIG_BUGの設定で挙動が変わる 無効な場合はエラー出力を行わない 有効な場合は、WARN_ON()マクロを一度だけ実行する このマクロ内でstaic変数に実行済みかどうかのフラグを持たせるこ…