linuxのメモ

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

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

型 - typecheck()

概要 コンパイル時に値が指定された型と合致するか確認する 詳細 指定された型typeとtypeof()で得られる実際の型が等しいか確認するが、コンパイル時のみのチェックとなるため返り値は常に1となる

時間管理 - time_after()

概要 2つの引数で取得した時間を比較し、第一引数の時間が大きいか確認する 詳細 typecheck()マクロにより2つの引数の型がunsigned longであり確認し 第一引数が第二引数よりも大きければ1、それ以外の場合は0を返す

CPU操作 - rep_nop()

cpu

概要 CPUを休止する 詳細 拡張インラインアセンブラにより以下の命令を実行する rep; nop この命令はPAUSE命令として認識されるため、CPUを一時的に休止する また、volatile修飾子により最適化を抑止するためコンパイル時にコードが除去されることがない

CPU操作 - cpu_relax()

cpu

概要 CPUを休止する 詳細 rep_nop()を実行しCPUを休止する

時間管理 - jiffies_to_msecs()

概要 周波数の回数から時間(ミリ秒)を算出する 詳細 周波数の回数を表す符号なし整数jを引数として取得し、以下の定数からミリ秒に変換する HZ : _CONFIG_HZによって指定されるCPUの周波数を示す定数 MSEC_PER_SEC : 1秒 = 1000ミリ秒のため1000を示す定数 B…

時間管理 - _msecs_to_jiffies()

概要 指定された時間(ミリ秒)に必要な周波数を算出する 詳細 ミリ秒を表す符号なし整数mを引数として取得し、以下の定数から周波数の回数に変換する HZ : _CONFIG_HZによって指定されるCPUの周波数を示す定数 MSEC_PER_SEC : 1秒 = 1000ミリ秒のため1000を示…

時間管理 - __msecs_to_jiffies()

概要 指定された時間(ミリ秒)に必要な周波数を算出する 詳細 引数として符号なし整数値(unsigned int)を与えられるが、この値を符号付き整数値(int)にキャストした際に負数となる場合はMAX_JIFFY_OFFSET_を返す それ以外の場合は_msecs_to_jiffies()から取得…

時間管理 - msecs_to_jiffies()

概要 指定された時間(ミリ秒)に必要な周波数を算出する 詳細 引数として符号なし整数値(unsigned int)を与えられる 引数の値が定数の場合 引数の値を符号付き整数値(int)にキャストした際に負数となる場合はMAX_JIFFY_OFFSETを返す 符号付き整数にキャストし…