*参照元 [#t53cd61d] #backlinks *説明 [#mb1c3817] -パス: [[linux-4.4.1/arch/arm/kernel/setup.c]] -外部キャッシュの操作関数。 -以下の実装の工夫により、外部キャッシュを持たないアーキテクチャ(=CONFIG_OUTER_CACHE 無効)で、ムリヤリ外部キャッシュを操作しようとしたとき、実行時にクラッシュするのでは無く、リンクエラーとして検出できる。 -ARM アーキテクチャの外部キャッシュの操作関数。 -以下の実装の工夫により、外部キャッシュを持たない CPU/SoC(=CONFIG_OUTER_CACHE 無効)で、ムリヤリ外部キャッシュを操作しようとしたとき、実行時にクラッシュするのでは無く、リンクエラーとして検出できる。 --個別の外部キャッシュ操作関数は EXPORT_SYMBOL しない。 --DMA API の実装時に CONFIG_OUTER_CACHE 有効/無効により実装を分け、 CONFIG_OUTER_CACHE 有効のときは必ずこの変数を参照して外部キャッシュを操作する。 **参考 [#g3c84784] *実装 [#u19d4c0c] #ifdef CONFIG_OUTER_CACHE -外部キャッシュを持つアーキテクチャの場合。 --[[linux-4.4.1/CONFIG_OUTER_CACHE]] struct outer_cache_fns outer_cache __read_mostly; -システム起動時にしか書き換えない。 --[[linux-4.4.1/outer_cache_fns]] --[[linux-4.4.1/__read_mostly]] EXPORT_SYMBOL(outer_cache); -ライセンスに関わらずシンボルを公開する。 --[[linux-4.4.1/EXPORT_SYMBOL()]] #endif *コメント [#ve386277]