時間管理 - jiffies_to_msecs()
概要
周波数の回数から時間(ミリ秒)を算出する
詳細
周波数の回数を表す符号なし整数jを引数として取得し、以下の定数からミリ秒に変換する
- HZ : _CONFIG_HZによって指定されるCPUの周波数を示す定数
- MSEC_PER_SEC : 1秒 = 1000ミリ秒のため1000を示す定数
- BITS_PER_LONG : CONFIG_64BITが有効な場合は64、無効な場合は32を示す定数
周波数の設定によって以下のように処理内容が変わる
- 周波数が1000以下で、周波数が1000の約数の場合
(MSEC_PER_SEC / HZ) * j
- 周波数が1000より大きく、周波数が1000の倍数の場合
(j + (HZ / MSEC_PER_SEC) - 1)/(HZ / MSEC_PER_SEC)
- 周波数がと1000の倍数でも約数でもない場合
- _BITS_PER_LONG == 32
(HZ_TO_MSEC_MUL32 * j) >> HZ_TO_MSEC_SHR32
- _BITS_PER_LONG != 32
(j * HZ_TO_MSEC_NUM) / HZ_TO_MSEC_DEN
HZ_TO_MSEC_NUM、HZ_TO_MSEC_DEN、HZ_TO_MSEC_MUL32、HZ_TO_MSEC_SHR32は両方とも定義先が不明な謎定数です。。