*参照元 [#k99f264a]
#backlinks

*説明 [#w7216960]
-パス: [[linux-2.6.33/arch/arm/include/asm/proc-fns.h]]

-コンフィグに対応した CPU の名前を定義する。
-複数のコンフィグが有効になっている場合は、
複数 CPU 対応コードを生成しようとしていると判断され、
MULTI_CPU が #define され有効になる。
--[[linux-2.6.33/MULTI_CPU]]
-MULTI_CPU が定義されているときの CPU_NAME は、
一番優先度の高い CPU 名が定義される。
--優先度は「参考」の章にある表を参照のこと。
上が優先度高、下が優先度低である。


**参考 [#dd6439e2]
-各コンフィグと対応する CPU_NAME の定義は下記の通り。
| CONFIG | CPU_NAME |
| CONFIG_CPU_ARM610 | cpu_arm6 |
| CONFIG_CPU_ARM7TDMI | cpu_arm7tdmi |
| CONFIG_CPU_ARM710 | cpu_arm7 |
| CONFIG_CPU_ARM720T | cpu_arm720 |
| CONFIG_CPU_ARM740T | cpu_arm740 |
| CONFIG_CPU_ARM9TDMI | cpu_arm9tdmi |
| CONFIG_CPU_ARM920T | cpu_arm920 |
| CONFIG_CPU_ARM922T | cpu_arm922 |
| CONFIG_CPU_FA526 | cpu_fa526 |
| CONFIG_CPU_ARM925T | cpu_arm925 |
| CONFIG_CPU_ARM926T | cpu_arm926 |
| CONFIG_CPU_ARM940T | cpu_arm940 |
| CONFIG_CPU_ARM946E | cpu_arm946 |
| CONFIG_CPU_SA110 | cpu_sa110 |
| CONFIG_CPU_SA1100 | cpu_sa1100 |
| CONFIG_CPU_ARM1020 | cpu_arm1020 |
| CONFIG_CPU_ARM1020E | cpu_arm1020e |
| CONFIG_CPU_ARM1022 | cpu_arm1022 |
| CONFIG_CPU_ARM1026 | cpu_arm1026 |
| CONFIG_CPU_XSCALE | cpu_xscale |
| CONFIG_CPU_XSC3 | cpu_xsc3 |
| CONFIG_CPU_MOHAWK | cpu_mohawk |
| CONFIG_CPU_FEROCEON | cpu_feroceon |
| CONFIG_CPU_V6 | cpu_v6 |
| CONFIG_CPU_V7 | cpu_v7 |
--[[linux-2.6.33/CONFIG_CPU_ARM610]]
--[[linux-2.6.33/CONFIG_CPU_ARM7TDMI]]
--[[linux-2.6.33/CONFIG_CPU_ARM710]]
--[[linux-2.6.33/CONFIG_CPU_ARM720T]]
--[[linux-2.6.33/CONFIG_CPU_ARM740T]]
--[[linux-2.6.33/CONFIG_CPU_ARM9TDMI]]
--[[linux-2.6.33/CONFIG_CPU_ARM920T]]
--[[linux-2.6.33/CONFIG_CPU_ARM922T]]
--[[linux-2.6.33/CONFIG_CPU_FA526]]
--[[linux-2.6.33/CONFIG_CPU_ARM925T]]
--[[linux-2.6.33/CONFIG_CPU_ARM926T]]
--[[linux-2.6.33/CONFIG_CPU_ARM940T]]
--[[linux-2.6.33/CONFIG_CPU_ARM946E]]
--[[linux-2.6.33/CONFIG_CPU_SA110]]
--[[linux-2.6.33/CONFIG_CPU_SA1100]]
--[[linux-2.6.33/CONFIG_CPU_ARM1020]]
--[[linux-2.6.33/CONFIG_CPU_ARM1020E]]
--[[linux-2.6.33/CONFIG_CPU_ARM1022]]
--[[linux-2.6.33/CONFIG_CPU_ARM1026]]
--[[linux-2.6.33/CONFIG_CPU_XSCALE]]
--[[linux-2.6.33/CONFIG_CPU_XSC3]]
--[[linux-2.6.33/CONFIG_CPU_MOHAWK]]
--[[linux-2.6.33/CONFIG_CPU_FEROCEON]]
--[[linux-2.6.33/CONFIG_CPU_V6]]
--[[linux-2.6.33/CONFIG_CPU_V7]]


*実装 [#i0aa9146]
 #ifdef CONFIG_CPU_ARM610
 # ifdef CPU_NAME
-既に別の CONFIG が CPU_NAME を定義している、
つまり 2つ以上の CONFIG が有効になっている場合。

 #  undef  MULTI_CPU
 #  define MULTI_CPU
-二重定義エラーにならないように一旦 #undef する。
-複数 CPU 対応へと切り替える。
-二重定義エラーにならないように一旦 #undef し、
MULTI_CPU を定義(=複数 CPU 対応)する。

 # else
 #  define CPU_NAME cpu_arm6
-まだいずれの CONFIG も有効になっていない場合は CPU_NAME を定義する。
こちらに来るのは下記のどちらかの場合である。
--単一の CONFIG しか定義されていない場合。
--複数の CONFIG が定義されている中で、一番優先度の高い CONFIG である場合。

 # endif
 #endif

-以下、同じ形式の #ifdef CONFIG_xxxx 〜 #endif が CONFIG の数だけずっと続く
-以下、同じ形式の #ifdef CONFIG_xxxx 〜 #endif が、
CONFIG の数だけ続くだけなので省略する。


*コメント [#jd02d134]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS