Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] Architecture: [ i386 ]
  1 /*
  2  *  linux/include/asm-arm/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_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
213 
214 #ifndef __ASSEMBLY__
215 
216 #ifndef MULTI_CPU
217 #include <asm/cpu-single.h>
218 #else
219 #include <asm/cpu-multi32.h>
220 #endif
221 
222 #include <asm/memory.h>
223 
224 #ifdef CONFIG_MMU
225 
226 #define cpu_switch_mm(pgd,mm) cpu_do_switch_mm(virt_to_phys(pgd),mm)
227 
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);              \
235         })
236 
237 #endif
238 
239 #endif /* __ASSEMBLY__ */
240 #endif /* __KERNEL__ */
241 #endif /* __ASM_PROCFNS_H */
242 
  This page was automatically generated by the LXR engine.