|
254 | 254 | mcr p15, 0, r0, c7, c10, 1 @ clean L1 D line
|
255 | 255 | mcr p15, 0, ip, c7, c10, 4 @ data write barrier
|
256 | 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 | + .word cpu_\name\()_do_suspend |
| 280 | + .word cpu_\name\()_do_resume |
| 281 | + .else |
| 282 | + .word 0 |
| 283 | + .word 0 |
| 284 | + .word 0 |
| 285 | + .endif |
| 286 | + |
| 287 | + .size \name\()_processor_functions, . - \name\()_processor_functions |
| 288 | +.endm |
| 289 | + |
| 290 | +.macro define_cache_functions name:req |
| 291 | + .align 2 |
| 292 | + .type \name\()_cache_fns, #object |
| 293 | +ENTRY(\name\()_cache_fns) |
| 294 | + .long \name\()_flush_icache_all |
| 295 | + .long \name\()_flush_kern_cache_all |
| 296 | + .long \name\()_flush_user_cache_all |
| 297 | + .long \name\()_flush_user_cache_range |
| 298 | + .long \name\()_coherent_kern_range |
| 299 | + .long \name\()_coherent_user_range |
| 300 | + .long \name\()_flush_kern_dcache_area |
| 301 | + .long \name\()_dma_map_area |
| 302 | + .long \name\()_dma_unmap_area |
| 303 | + .long \name\()_dma_flush_range |
| 304 | + .size \name\()_cache_fns, . - \name\()_cache_fns |
| 305 | +.endm |
| 306 | + |
| 307 | +.macro define_tlb_functions name:req, flags_up:req, flags_smp |
| 308 | + .type \name\()_tlb_fns, #object |
| 309 | +ENTRY(\name\()_tlb_fns) |
| 310 | + .long \name\()_flush_user_tlb_range |
| 311 | + .long \name\()_flush_kern_tlb_range |
| 312 | + .ifnb \flags_smp |
| 313 | + ALT_SMP(.long \flags_smp ) |
| 314 | + ALT_UP(.long \flags_up ) |
| 315 | + .else |
| 316 | + .long \flags_up |
| 317 | + .endif |
| 318 | + .size \name\()_tlb_fns, . - \name\()_tlb_fns |
| 319 | +.endm |
0 commit comments