1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _SPARC_CACHETLB_H
3#define _SPARC_CACHETLB_H
4
5struct mm_struct;
6struct vm_area_struct;
7
8struct sparc32_cachetlb_ops {
9	void (*cache_all)(void);
10	void (*cache_mm)(struct mm_struct *);
11	void (*cache_range)(struct vm_area_struct *, unsigned long,
12			    unsigned long);
13	void (*cache_page)(struct vm_area_struct *, unsigned long);
14
15	void (*tlb_all)(void);
16	void (*tlb_mm)(struct mm_struct *);
17	void (*tlb_range)(struct vm_area_struct *, unsigned long,
18			  unsigned long);
19	void (*tlb_page)(struct vm_area_struct *, unsigned long);
20
21	void (*page_to_ram)(unsigned long);
22	void (*sig_insns)(struct mm_struct *, unsigned long);
23	void (*page_for_dma)(unsigned long);
24};
25extern const struct sparc32_cachetlb_ops *sparc32_cachetlb_ops;
26#ifdef CONFIG_SMP
27extern const struct sparc32_cachetlb_ops *local_ops;
28#endif
29
30#endif /* SPARC_CACHETLB_H */
31