mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	ARM: mm: proc-macros: Add generic proc/cache/tlb struct definition macros
This patch adds some generic macros to reduce boilerplate when declaring certain common structures in arch/arm/mm/*.S Thanks to Russell King for outlining what the define_processor_functions macro could look like. Signed-off-by: Dave Martin <dave.martin@linaro.org> Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
This commit is contained in:
		
							parent
							
								
									b0af8dfdd6
								
							
						
					
					
						commit
						66a625a881
					
				
					 1 changed files with 63 additions and 0 deletions
				
			
		| 
						 | 
					@ -254,3 +254,66 @@
 | 
				
			||||||
	mcr	p15, 0, r0, c7, c10, 1		@ clean L1 D line
 | 
						mcr	p15, 0, r0, c7, c10, 1		@ clean L1 D line
 | 
				
			||||||
	mcr	p15, 0, ip, c7, c10, 4		@ data write barrier
 | 
						mcr	p15, 0, ip, c7, c10, 4		@ data write barrier
 | 
				
			||||||
	.endm
 | 
						.endm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.macro define_processor_functions name:req, dabort:req, pabort:req, nommu=0, suspend=0
 | 
				
			||||||
 | 
						.type	\name\()_processor_functions, #object
 | 
				
			||||||
 | 
						.align 2
 | 
				
			||||||
 | 
					ENTRY(\name\()_processor_functions)
 | 
				
			||||||
 | 
						.word	\dabort
 | 
				
			||||||
 | 
						.word	\pabort
 | 
				
			||||||
 | 
						.word	cpu_\name\()_proc_init
 | 
				
			||||||
 | 
						.word	cpu_\name\()_proc_fin
 | 
				
			||||||
 | 
						.word	cpu_\name\()_reset
 | 
				
			||||||
 | 
						.word	cpu_\name\()_do_idle
 | 
				
			||||||
 | 
						.word	cpu_\name\()_dcache_clean_area
 | 
				
			||||||
 | 
						.word	cpu_\name\()_switch_mm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						.if \nommu
 | 
				
			||||||
 | 
						.word	0
 | 
				
			||||||
 | 
						.else
 | 
				
			||||||
 | 
						.word	cpu_\name\()_set_pte_ext
 | 
				
			||||||
 | 
						.endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						.if \suspend
 | 
				
			||||||
 | 
						.word	cpu_\name\()_suspend_size
 | 
				
			||||||
 | 
						.word	cpu_\name\()_do_suspend
 | 
				
			||||||
 | 
						.word	cpu_\name\()_do_resume
 | 
				
			||||||
 | 
						.else
 | 
				
			||||||
 | 
						.word	0
 | 
				
			||||||
 | 
						.word	0
 | 
				
			||||||
 | 
						.word	0
 | 
				
			||||||
 | 
						.endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						.size	\name\()_processor_functions, . - \name\()_processor_functions
 | 
				
			||||||
 | 
					.endm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.macro define_cache_functions name:req
 | 
				
			||||||
 | 
						.align 2
 | 
				
			||||||
 | 
						.type	\name\()_cache_fns, #object
 | 
				
			||||||
 | 
					ENTRY(\name\()_cache_fns)
 | 
				
			||||||
 | 
						.long	\name\()_flush_icache_all
 | 
				
			||||||
 | 
						.long	\name\()_flush_kern_cache_all
 | 
				
			||||||
 | 
						.long	\name\()_flush_user_cache_all
 | 
				
			||||||
 | 
						.long	\name\()_flush_user_cache_range
 | 
				
			||||||
 | 
						.long	\name\()_coherent_kern_range
 | 
				
			||||||
 | 
						.long	\name\()_coherent_user_range
 | 
				
			||||||
 | 
						.long	\name\()_flush_kern_dcache_area
 | 
				
			||||||
 | 
						.long	\name\()_dma_map_area
 | 
				
			||||||
 | 
						.long	\name\()_dma_unmap_area
 | 
				
			||||||
 | 
						.long	\name\()_dma_flush_range
 | 
				
			||||||
 | 
						.size	\name\()_cache_fns, . - \name\()_cache_fns
 | 
				
			||||||
 | 
					.endm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.macro define_tlb_functions name:req, flags_up:req, flags_smp
 | 
				
			||||||
 | 
						.type	\name\()_tlb_fns, #object
 | 
				
			||||||
 | 
					ENTRY(\name\()_tlb_fns)
 | 
				
			||||||
 | 
						.long	\name\()_flush_user_tlb_range
 | 
				
			||||||
 | 
						.long	\name\()_flush_kern_tlb_range
 | 
				
			||||||
 | 
						.ifnb \flags_smp
 | 
				
			||||||
 | 
							ALT_SMP(.long	\flags_smp )
 | 
				
			||||||
 | 
							ALT_UP(.long	\flags_up )
 | 
				
			||||||
 | 
						.else
 | 
				
			||||||
 | 
							.long	\flags_up
 | 
				
			||||||
 | 
						.endif
 | 
				
			||||||
 | 
						.size	\name\()_tlb_fns, . - \name\()_tlb_fns
 | 
				
			||||||
 | 
					.endm
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue