linuxのメモ

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

2016-04-19から1日間の記事一覧

ALIGN()

概要 境界値を指定してアライメントを算出する 詳細 __ALIGN_KERNEL()のwrapperマクロ

ユーティリティー - __ALIGN_KERNEL()

概要 境界値を指定してアライメントを算出する 詳細 このマクロでは以下の引数を受け取る アライメントする数値を示す : x アライメントの境界値を示す : a __ALIGN_KERNEL_MASK()にxとaをxでキャストした値から1を引いた値を渡すことで、任意の値のアライメ…

ユーティリティー - __ALIGN_KERNEL_MASK()

概要 アライメントされた数値を算出する 詳細 このマクロでは以下の引数を受け取る アライメントする数値を示す : x アライメントのビットマスクを示す : mask xにmaskを加算した結果をmaskを反転した値で論理積を取ることでmaskで示すビットを0にクリアし、…

バッファ操作 - rb_start_commit()

概要 バッファの状態を書込み処理中に変更する 詳細 local_inc()でstruct ring_buffer_per_cpu構造体のcommittingメンバとcommitsメンバの値をインクリメントし、バッファの状態を書き込み中に変更する

CPU操作 - raw_cpu_read()

cpu

概要 指定されたシンボルの値を取得する 詳細 __pcpu_size_call_return()マクロを実行する この時マクロ内ではraw_cpu_read_x()が実行される