linuxのメモ

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

モジュール - __CRC_SYMBOL()

概要

moduleのバージョン確認に使用するチェックサム計算するための値を保持する

詳細

このマクロでは以下の引数を取得する

  • セクション名を示す文字列 : sec
  • 対応するシンボル名を示す文字列 : sym

CONFIG_MODVERSIONSが無効な場合は何も行わないが、有効な場合は"__kcrctab" + secで示されるセクションにsymのシンボルで変数を生成し、チェックサムを保存する領域を確保し、存在しないシンボルを宣言しそのアドレスを保持する

おそらくこのアドレスはこのマクロの呼び出し元のアドレスになると思われるので、この値を元にcheck_symbol()crcの算出に使用される