linuxのメモ

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

CPU操作 - CPU_BITS_ALL

概要

実行可能なCPU番号に必要なビットマップを初期化するための配列を返す

詳細

BITS_TO_LONGS()NR_CPUSで必要な配列数を算出し、最後の要素([配列数 - 1])にBITMAP_LAST_WORD_MASK()NR_CPUSのビットマップを取得し、その値で初期化する

ただし、NR_CPUSの値がBITS_PER_LONGの値よりも大きい場合は要素数が1より大きくなるため、最初の要素([0])から最後から二番目の要素([配列数 - 2])までの値に0ULのビットを反転した値(全てのビットが1の値)で初期化する