Linux 2.6.25.3
[linux/fpc-iii.git] / include / asm-arm / proc-fns.h
blob75ec760f4c748a0bb9ab5722e552c45b866599b8
1 /*
2 * linux/include/asm-arm/proc-fns.h
4 * Copyright (C) 1997-1999 Russell King
5 * Copyright (C) 2000 Deep Blue Solutions Ltd
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
11 #ifndef __ASM_PROCFNS_H
12 #define __ASM_PROCFNS_H
14 #ifdef __KERNEL__
18 * Work out if we need multiple CPU support
20 #undef MULTI_CPU
21 #undef CPU_NAME
24 * CPU_NAME - the prefix for CPU related functions
27 #ifdef CONFIG_CPU_32
28 # ifdef CONFIG_CPU_ARM610
29 # ifdef CPU_NAME
30 # undef MULTI_CPU
31 # define MULTI_CPU
32 # else
33 # define CPU_NAME cpu_arm6
34 # endif
35 # endif
36 # ifdef CONFIG_CPU_ARM7TDMI
37 # ifdef CPU_NAME
38 # undef MULTI_CPU
39 # define MULTI_CPU
40 # else
41 # define CPU_NAME cpu_arm7tdmi
42 # endif
43 # endif
44 # ifdef CONFIG_CPU_ARM710
45 # ifdef CPU_NAME
46 # undef MULTI_CPU
47 # define MULTI_CPU
48 # else
49 # define CPU_NAME cpu_arm7
50 # endif
51 # endif
52 # ifdef CONFIG_CPU_ARM720T
53 # ifdef CPU_NAME
54 # undef MULTI_CPU
55 # define MULTI_CPU
56 # else
57 # define CPU_NAME cpu_arm720
58 # endif
59 # endif
60 # ifdef CONFIG_CPU_ARM740T
61 # ifdef CPU_NAME
62 # undef MULTI_CPU
63 # define MULTI_CPU
64 # else
65 # define CPU_NAME cpu_arm740
66 # endif
67 # endif
68 # ifdef CONFIG_CPU_ARM9TDMI
69 # ifdef CPU_NAME
70 # undef MULTI_CPU
71 # define MULTI_CPU
72 # else
73 # define CPU_NAME cpu_arm9tdmi
74 # endif
75 # endif
76 # ifdef CONFIG_CPU_ARM920T
77 # ifdef CPU_NAME
78 # undef MULTI_CPU
79 # define MULTI_CPU
80 # else
81 # define CPU_NAME cpu_arm920
82 # endif
83 # endif
84 # ifdef CONFIG_CPU_ARM922T
85 # ifdef CPU_NAME
86 # undef MULTI_CPU
87 # define MULTI_CPU
88 # else
89 # define CPU_NAME cpu_arm922
90 # endif
91 # endif
92 # ifdef CONFIG_CPU_ARM925T
93 # ifdef CPU_NAME
94 # undef MULTI_CPU
95 # define MULTI_CPU
96 # else
97 # define CPU_NAME cpu_arm925
98 # endif
99 # endif
100 # ifdef CONFIG_CPU_ARM926T
101 # ifdef CPU_NAME
102 # undef MULTI_CPU
103 # define MULTI_CPU
104 # else
105 # define CPU_NAME cpu_arm926
106 # endif
107 # endif
108 # ifdef CONFIG_CPU_ARM940T
109 # ifdef CPU_NAME
110 # undef MULTI_CPU
111 # define MULTI_CPU
112 # else
113 # define CPU_NAME cpu_arm940
114 # endif
115 # endif
116 # ifdef CONFIG_CPU_ARM946E
117 # ifdef CPU_NAME
118 # undef MULTI_CPU
119 # define MULTI_CPU
120 # else
121 # define CPU_NAME cpu_arm946
122 # endif
123 # endif
124 # ifdef CONFIG_CPU_SA110
125 # ifdef CPU_NAME
126 # undef MULTI_CPU
127 # define MULTI_CPU
128 # else
129 # define CPU_NAME cpu_sa110
130 # endif
131 # endif
132 # ifdef CONFIG_CPU_SA1100
133 # ifdef CPU_NAME
134 # undef MULTI_CPU
135 # define MULTI_CPU
136 # else
137 # define CPU_NAME cpu_sa1100
138 # endif
139 # endif
140 # ifdef CONFIG_CPU_ARM1020
141 # ifdef CPU_NAME
142 # undef MULTI_CPU
143 # define MULTI_CPU
144 # else
145 # define CPU_NAME cpu_arm1020
146 # endif
147 # endif
148 # ifdef CONFIG_CPU_ARM1020E
149 # ifdef CPU_NAME
150 # undef MULTI_CPU
151 # define MULTI_CPU
152 # else
153 # define CPU_NAME cpu_arm1020e
154 # endif
155 # endif
156 # ifdef CONFIG_CPU_ARM1022
157 # ifdef CPU_NAME
158 # undef MULTI_CPU
159 # define MULTI_CPU
160 # else
161 # define CPU_NAME cpu_arm1022
162 # endif
163 # endif
164 # ifdef CONFIG_CPU_ARM1026
165 # ifdef CPU_NAME
166 # undef MULTI_CPU
167 # define MULTI_CPU
168 # else
169 # define CPU_NAME cpu_arm1026
170 # endif
171 # endif
172 # ifdef CONFIG_CPU_XSCALE
173 # ifdef CPU_NAME
174 # undef MULTI_CPU
175 # define MULTI_CPU
176 # else
177 # define CPU_NAME cpu_xscale
178 # endif
179 # endif
180 # ifdef CONFIG_CPU_XSC3
181 # ifdef CPU_NAME
182 # undef MULTI_CPU
183 # define MULTI_CPU
184 # else
185 # define CPU_NAME cpu_xsc3
186 # endif
187 # endif
188 # ifdef CONFIG_CPU_FEROCEON
189 # ifdef CPU_NAME
190 # undef MULTI_CPU
191 # define MULTI_CPU
192 # else
193 # define CPU_NAME cpu_feroceon
194 # endif
195 # endif
196 # ifdef CONFIG_CPU_V6
197 # ifdef CPU_NAME
198 # undef MULTI_CPU
199 # define MULTI_CPU
200 # else
201 # define CPU_NAME cpu_v6
202 # endif
203 # endif
204 # ifdef CONFIG_CPU_V7
205 # ifdef CPU_NAME
206 # undef MULTI_CPU
207 # define MULTI_CPU
208 # else
209 # define CPU_NAME cpu_v7
210 # endif
211 # endif
212 #endif
214 #ifndef __ASSEMBLY__
216 #ifndef MULTI_CPU
217 #include <asm/cpu-single.h>
218 #else
219 #include <asm/cpu-multi32.h>
220 #endif
222 #include <asm/memory.h>
224 #ifdef CONFIG_MMU
226 #define cpu_switch_mm(pgd,mm) cpu_do_switch_mm(virt_to_phys(pgd),mm)
228 #define cpu_get_pgd() \
229 ({ \
230 unsigned long pg; \
231 __asm__("mrc p15, 0, %0, c2, c0, 0" \
232 : "=r" (pg) : : "cc"); \
233 pg &= ~0x3fff; \
234 (pgd_t *)phys_to_virt(pg); \
237 #endif
239 #endif /* __ASSEMBLY__ */
240 #endif /* __KERNEL__ */
241 #endif /* __ASM_PROCFNS_H */