• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/arch/arm/include/asm/
1/*
2 *  arch/arm/include/asm/proc-fns.h
3 *
4 *  Copyright (C) 1997-1999 Russell King
5 *  Copyright (C) 2000 Deep Blue Solutions Ltd
6 *
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.
10 */
11#ifndef __ASM_PROCFNS_H
12#define __ASM_PROCFNS_H
13
14#ifdef __KERNEL__
15
16
17/*
18 * Work out if we need multiple CPU support
19 */
20#undef MULTI_CPU
21#undef CPU_NAME
22
23/*
24 * CPU_NAME - the prefix for CPU related functions
25 */
26
27#ifdef CONFIG_CPU_ARM610
28# ifdef CPU_NAME
29#  undef  MULTI_CPU
30#  define MULTI_CPU
31# else
32#  define CPU_NAME cpu_arm6
33# endif
34#endif
35
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
45#ifdef CONFIG_CPU_ARM710
46# ifdef CPU_NAME
47#  undef  MULTI_CPU
48#  define MULTI_CPU
49# else
50#  define CPU_NAME cpu_arm7
51# endif
52#endif
53
54#ifdef CONFIG_CPU_ARM720T
55# ifdef CPU_NAME
56#  undef  MULTI_CPU
57#  define MULTI_CPU
58# else
59#  define CPU_NAME cpu_arm720
60# endif
61#endif
62
63#ifdef CONFIG_CPU_ARM740T
64# ifdef CPU_NAME
65#  undef  MULTI_CPU
66#  define MULTI_CPU
67# else
68#  define CPU_NAME cpu_arm740
69# endif
70#endif
71
72#ifdef CONFIG_CPU_ARM9TDMI
73# ifdef CPU_NAME
74#  undef  MULTI_CPU
75#  define MULTI_CPU
76# else
77#  define CPU_NAME cpu_arm9tdmi
78# endif
79#endif
80
81#ifdef CONFIG_CPU_ARM920T
82# ifdef CPU_NAME
83#  undef  MULTI_CPU
84#  define MULTI_CPU
85# else
86#  define CPU_NAME cpu_arm920
87# endif
88#endif
89
90#ifdef CONFIG_CPU_ARM922T
91# ifdef CPU_NAME
92#  undef  MULTI_CPU
93#  define MULTI_CPU
94# else
95#  define CPU_NAME cpu_arm922
96# endif
97#endif
98
99#ifdef CONFIG_CPU_FA526
100# ifdef CPU_NAME
101#  undef  MULTI_CPU
102#  define MULTI_CPU
103# else
104#  define CPU_NAME cpu_fa526
105# endif
106#endif
107
108#ifdef CONFIG_CPU_ARM925T
109# ifdef CPU_NAME
110#  undef  MULTI_CPU
111#  define MULTI_CPU
112# else
113#  define CPU_NAME cpu_arm925
114# endif
115#endif
116
117#ifdef CONFIG_CPU_ARM926T
118# ifdef CPU_NAME
119#  undef  MULTI_CPU
120#  define MULTI_CPU
121# else
122#  define CPU_NAME cpu_arm926
123# endif
124#endif
125
126#ifdef CONFIG_CPU_ARM940T
127# ifdef CPU_NAME
128#  undef  MULTI_CPU
129#  define MULTI_CPU
130# else
131#  define CPU_NAME cpu_arm940
132# endif
133#endif
134
135#ifdef CONFIG_CPU_ARM946E
136# ifdef CPU_NAME
137#  undef  MULTI_CPU
138#  define MULTI_CPU
139# else
140#  define CPU_NAME cpu_arm946
141# endif
142#endif
143
144#ifdef CONFIG_CPU_SA110
145# ifdef CPU_NAME
146#  undef  MULTI_CPU
147#  define MULTI_CPU
148# else
149#  define CPU_NAME cpu_sa110
150# endif
151#endif
152
153#ifdef CONFIG_CPU_SA1100
154# ifdef CPU_NAME
155#  undef  MULTI_CPU
156#  define MULTI_CPU
157# else
158#  define CPU_NAME cpu_sa1100
159# endif
160#endif
161
162#ifdef CONFIG_CPU_ARM1020
163# ifdef CPU_NAME
164#  undef  MULTI_CPU
165#  define MULTI_CPU
166# else
167#  define CPU_NAME cpu_arm1020
168# endif
169#endif
170
171#ifdef CONFIG_CPU_ARM1020E
172# ifdef CPU_NAME
173#  undef  MULTI_CPU
174#  define MULTI_CPU
175# else
176#  define CPU_NAME cpu_arm1020e
177# endif
178#endif
179
180#ifdef CONFIG_CPU_ARM1022
181# ifdef CPU_NAME
182#  undef  MULTI_CPU
183#  define MULTI_CPU
184# else
185#  define CPU_NAME cpu_arm1022
186# endif
187#endif
188
189#ifdef CONFIG_CPU_ARM1026
190# ifdef CPU_NAME
191#  undef  MULTI_CPU
192#  define MULTI_CPU
193# else
194#  define CPU_NAME cpu_arm1026
195# endif
196#endif
197
198#ifdef CONFIG_CPU_XSCALE
199# ifdef CPU_NAME
200#  undef  MULTI_CPU
201#  define MULTI_CPU
202# else
203#  define CPU_NAME cpu_xscale
204# endif
205#endif
206
207#ifdef CONFIG_CPU_XSC3
208# ifdef CPU_NAME
209#  undef  MULTI_CPU
210#  define MULTI_CPU
211# else
212#  define CPU_NAME cpu_xsc3
213# endif
214#endif
215
216#ifdef CONFIG_CPU_MOHAWK
217# ifdef CPU_NAME
218#  undef  MULTI_CPU
219#  define MULTI_CPU
220# else
221#  define CPU_NAME cpu_mohawk
222# endif
223#endif
224
225#ifdef CONFIG_CPU_FEROCEON
226# ifdef CPU_NAME
227#  undef  MULTI_CPU
228#  define MULTI_CPU
229# else
230#  define CPU_NAME cpu_feroceon
231# endif
232#endif
233
234#ifdef CONFIG_CPU_V6
235# ifdef CPU_NAME
236#  undef  MULTI_CPU
237#  define MULTI_CPU
238# else
239#  define CPU_NAME cpu_v6
240# endif
241#endif
242
243#ifdef CONFIG_CPU_V7
244# ifdef CPU_NAME
245#  undef  MULTI_CPU
246#  define MULTI_CPU
247# else
248#  define CPU_NAME cpu_v7
249# endif
250#endif
251
252#ifndef __ASSEMBLY__
253
254#ifndef MULTI_CPU
255#include <asm/cpu-single.h>
256#else
257#include <asm/cpu-multi32.h>
258#endif
259
260#include <asm/memory.h>
261
262#ifdef CONFIG_MMU
263
264#define cpu_switch_mm(pgd,mm) cpu_do_switch_mm(virt_to_phys(pgd),mm)
265
266#define cpu_get_pgd()	\
267	({						\
268		unsigned long pg;			\
269		__asm__("mrc	p15, 0, %0, c2, c0, 0"	\
270			 : "=r" (pg) : : "cc");		\
271		pg &= ~0x3fff;				\
272		(pgd_t *)phys_to_virt(pg);		\
273	})
274
275#endif
276
277#endif /* __ASSEMBLY__ */
278#endif /* __KERNEL__ */
279#endif /* __ASM_PROCFNS_H */
280