18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci#ifndef _SPARC_CACHETLB_H 38c2ecf20Sopenharmony_ci#define _SPARC_CACHETLB_H 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_cistruct mm_struct; 68c2ecf20Sopenharmony_cistruct vm_area_struct; 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_cistruct sparc32_cachetlb_ops { 98c2ecf20Sopenharmony_ci void (*cache_all)(void); 108c2ecf20Sopenharmony_ci void (*cache_mm)(struct mm_struct *); 118c2ecf20Sopenharmony_ci void (*cache_range)(struct vm_area_struct *, unsigned long, 128c2ecf20Sopenharmony_ci unsigned long); 138c2ecf20Sopenharmony_ci void (*cache_page)(struct vm_area_struct *, unsigned long); 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci void (*tlb_all)(void); 168c2ecf20Sopenharmony_ci void (*tlb_mm)(struct mm_struct *); 178c2ecf20Sopenharmony_ci void (*tlb_range)(struct vm_area_struct *, unsigned long, 188c2ecf20Sopenharmony_ci unsigned long); 198c2ecf20Sopenharmony_ci void (*tlb_page)(struct vm_area_struct *, unsigned long); 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci void (*page_to_ram)(unsigned long); 228c2ecf20Sopenharmony_ci void (*sig_insns)(struct mm_struct *, unsigned long); 238c2ecf20Sopenharmony_ci void (*page_for_dma)(unsigned long); 248c2ecf20Sopenharmony_ci}; 258c2ecf20Sopenharmony_ciextern const struct sparc32_cachetlb_ops *sparc32_cachetlb_ops; 268c2ecf20Sopenharmony_ci#ifdef CONFIG_SMP 278c2ecf20Sopenharmony_ciextern const struct sparc32_cachetlb_ops *local_ops; 288c2ecf20Sopenharmony_ci#endif 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci#endif /* SPARC_CACHETLB_H */ 31