1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
25d83d666SDavid S. Miller #ifndef _SPARC_CACHETLB_H
35d83d666SDavid S. Miller #define _SPARC_CACHETLB_H
45d83d666SDavid S. Miller 
55d83d666SDavid S. Miller struct mm_struct;
65d83d666SDavid S. Miller struct vm_area_struct;
75d83d666SDavid S. Miller 
85d83d666SDavid S. Miller struct sparc32_cachetlb_ops {
95d83d666SDavid S. Miller 	void (*cache_all)(void);
105d83d666SDavid S. Miller 	void (*cache_mm)(struct mm_struct *);
115d83d666SDavid S. Miller 	void (*cache_range)(struct vm_area_struct *, unsigned long,
125d83d666SDavid S. Miller 			    unsigned long);
135d83d666SDavid S. Miller 	void (*cache_page)(struct vm_area_struct *, unsigned long);
145d83d666SDavid S. Miller 
155d83d666SDavid S. Miller 	void (*tlb_all)(void);
165d83d666SDavid S. Miller 	void (*tlb_mm)(struct mm_struct *);
175d83d666SDavid S. Miller 	void (*tlb_range)(struct vm_area_struct *, unsigned long,
185d83d666SDavid S. Miller 			  unsigned long);
195d83d666SDavid S. Miller 	void (*tlb_page)(struct vm_area_struct *, unsigned long);
205d83d666SDavid S. Miller 
215d83d666SDavid S. Miller 	void (*page_to_ram)(unsigned long);
225d83d666SDavid S. Miller 	void (*sig_insns)(struct mm_struct *, unsigned long);
235d83d666SDavid S. Miller 	void (*page_for_dma)(unsigned long);
245d83d666SDavid S. Miller };
255d83d666SDavid S. Miller extern const struct sparc32_cachetlb_ops *sparc32_cachetlb_ops;
265d83d666SDavid S. Miller #ifdef CONFIG_SMP
275d83d666SDavid S. Miller extern const struct sparc32_cachetlb_ops *local_ops;
285d83d666SDavid S. Miller #endif
295d83d666SDavid S. Miller 
305d83d666SDavid S. Miller #endif /* SPARC_CACHETLB_H */
31