diff options
Diffstat (limited to 'arch/arm/mm/proc-macros.S')
-rw-r--r-- | arch/arm/mm/proc-macros.S | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/arch/arm/mm/proc-macros.S b/arch/arm/mm/proc-macros.S index 34261f9486b9..307a4def8d3a 100644 --- a/arch/arm/mm/proc-macros.S +++ b/arch/arm/mm/proc-macros.S | |||
@@ -254,3 +254,71 @@ | |||
254 | mcr p15, 0, r0, c7, c10, 1 @ clean L1 D line | 254 | mcr p15, 0, r0, c7, c10, 1 @ clean L1 D line |
255 | mcr p15, 0, ip, c7, c10, 4 @ data write barrier | 255 | mcr p15, 0, ip, c7, c10, 4 @ data write barrier |
256 | .endm | 256 | .endm |
257 | |||
258 | .macro define_processor_functions name:req, dabort:req, pabort:req, nommu=0, suspend=0 | ||
259 | .type \name\()_processor_functions, #object | ||
260 | .align 2 | ||
261 | ENTRY(\name\()_processor_functions) | ||
262 | .word \dabort | ||
263 | .word \pabort | ||
264 | .word cpu_\name\()_proc_init | ||
265 | .word cpu_\name\()_proc_fin | ||
266 | .word cpu_\name\()_reset | ||
267 | .word cpu_\name\()_do_idle | ||
268 | .word cpu_\name\()_dcache_clean_area | ||
269 | .word cpu_\name\()_switch_mm | ||
270 | |||
271 | .if \nommu | ||
272 | .word 0 | ||
273 | .else | ||
274 | .word cpu_\name\()_set_pte_ext | ||
275 | .endif | ||
276 | |||
277 | .if \suspend | ||
278 | .word cpu_\name\()_suspend_size | ||
279 | #ifdef CONFIG_PM_SLEEP | ||
280 | .word cpu_\name\()_do_suspend | ||
281 | .word cpu_\name\()_do_resume | ||
282 | #else | ||
283 | .word 0 | ||
284 | .word 0 | ||
285 | #endif | ||
286 | .else | ||
287 | .word 0 | ||
288 | .word 0 | ||
289 | .word 0 | ||
290 | .endif | ||
291 | |||
292 | .size \name\()_processor_functions, . - \name\()_processor_functions | ||
293 | .endm | ||
294 | |||
295 | .macro define_cache_functions name:req | ||
296 | .align 2 | ||
297 | .type \name\()_cache_fns, #object | ||
298 | ENTRY(\name\()_cache_fns) | ||
299 | .long \name\()_flush_icache_all | ||
300 | .long \name\()_flush_kern_cache_all | ||
301 | .long \name\()_flush_user_cache_all | ||
302 | .long \name\()_flush_user_cache_range | ||
303 | .long \name\()_coherent_kern_range | ||
304 | .long \name\()_coherent_user_range | ||
305 | .long \name\()_flush_kern_dcache_area | ||
306 | .long \name\()_dma_map_area | ||
307 | .long \name\()_dma_unmap_area | ||
308 | .long \name\()_dma_flush_range | ||
309 | .size \name\()_cache_fns, . - \name\()_cache_fns | ||
310 | .endm | ||
311 | |||
312 | .macro define_tlb_functions name:req, flags_up:req, flags_smp | ||
313 | .type \name\()_tlb_fns, #object | ||
314 | ENTRY(\name\()_tlb_fns) | ||
315 | .long \name\()_flush_user_tlb_range | ||
316 | .long \name\()_flush_kern_tlb_range | ||
317 | .ifnb \flags_smp | ||
318 | ALT_SMP(.long \flags_smp ) | ||
319 | ALT_UP(.long \flags_up ) | ||
320 | .else | ||
321 | .long \flags_up | ||
322 | .endif | ||
323 | .size \name\()_tlb_fns, . - \name\()_tlb_fns | ||
324 | .endm | ||