2016-03-18から1日間の記事一覧
概要 指定したCPU個別の値を取得する 詳細 per_cpu_ptr()で指定したCPU個別の値を保持するアドレスを取得し、そのアドレスに保存されている値を返す
概要 指定したCPU個別の値を保持するアドレス取得する 詳細 以下の引数を取得する CPU個別の値を示すポインタ : ptr CPU番号を示す : cpu CONFIG_SMPの値によって以下のように処理が異なる 有効 __verify_pcpu_ptr()でptrの値が有効なアドレスか確認し、SHIF…
概要 受け取ったアドレスが有効な値か確認する 詳細 __verify_pcpu_ptr()で引数の値が有効なアドレスか確認し、カーネルアドレス空間からアクセス可能なポインタに変換する
概要 CPU個別の値を保持する領域へのオフセットを取得する 詳細 __per_cpu_offsetから、指定したCPU番号のメンバの値を取得することでCPU個別の値を保持する領域へのオフセットを取得する
概要 CPU個別の値を保持する領域のオフセットを保持する変数 詳細 コンパイル時にはBOOT_PERCPU_OFFSETで初期化され、EXPORT_SYMBOL()によりmoduleからもアクセス可能な値となる この値はsetup_per_cpu_areas()により実行時に適切な値で初期化される
概要 moduleからアクセス可能なシンボルを生成する 詳細 カーネルとしてコンパイルされており、かつCONFIG_MODULESが有効な場合は__EXPORT_SYMBOL()を実行するが、それ以外の場合は何もしない
概要 moduleからアクセス可能なシンボルを生成する 詳細 以下の通りに適切なセクションに適切な値を保存し、モジュールから宣言したシンボルにアクセスできるようにする __CRC_SYMBOL()でmoduleのチェックサムを算出するための値を保存する __ksymtab_string…
概要 vmlinuxに出力するシンボル名の文字列を生成する 詳細 __VMLINUX_SYMBOL_STR()のwrapperマクロ
概要 vmlinuxに出力するシンボル名の文字列を生成する 詳細 CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIXが有効な場合は引数の文字列の前に_(アンダースコア)を付加した文字列を、無効な場合は引数の文字列を生成する
概要 moduleのバージョン確認に使用するチェックサム計算するための値を保持する 詳細 このマクロでは以下の引数を取得する セクション名を示す文字列 : sec 対応するシンボル名を示す文字列 : sym CONFIG_MODVERSIONSが無効な場合は何も行わないが、有効な…
概要 CPU固有のデータを保持するアドレスを取得する 詳細 RELOC_HIDE()でCPU固有のデータを保持するアドレスを取得するが、__force_属性を付加することで異なるアドレス空間(percpuとkernel)でのメモリのアクセスを強制する
概要 CPU個別のデータを保持するアドレスを取得する 詳細 以下の場合で処理が異なる(優先度は上から順) intelのコンパイラを使用している場合 gccのコンパイラを使用している場合 上記以外 intelのコンパイラを使用している場合と処理内容は同じ x86のCPUはi…