1 /* SPDX-License-Identifier: GPL-2.0 */ 2 // Copyright (C) 2005-2017 Andes Technology Corporation 3 4 #ifndef __NDS32_PROCFNS_H__ 5 #define __NDS32_PROCFNS_H__ 6 7 #ifdef __KERNEL__ 8 #include <asm/page.h> 9 10 struct mm_struct; 11 struct vm_area_struct; 12 extern void cpu_proc_init(void); 13 extern void cpu_proc_fin(void); 14 extern void cpu_do_idle(void); 15 extern void cpu_reset(unsigned long reset); 16 extern void cpu_switch_mm(struct mm_struct *mm); 17 18 extern void cpu_dcache_inval_all(void); 19 extern void cpu_dcache_wbinval_all(void); 20 extern void cpu_dcache_inval_page(unsigned long page); 21 extern void cpu_dcache_wb_page(unsigned long page); 22 extern void cpu_dcache_wbinval_page(unsigned long page); 23 extern void cpu_dcache_inval_range(unsigned long start, unsigned long end); 24 extern void cpu_dcache_wb_range(unsigned long start, unsigned long end); 25 extern void cpu_dcache_wbinval_range(unsigned long start, unsigned long end); 26 27 extern void cpu_icache_inval_all(void); 28 extern void cpu_icache_inval_page(unsigned long page); 29 extern void cpu_icache_inval_range(unsigned long start, unsigned long end); 30 31 extern void cpu_cache_wbinval_page(unsigned long page, int flushi); 32 extern void cpu_cache_wbinval_range(unsigned long start, 33 unsigned long end, int flushi); 34 extern void cpu_cache_wbinval_range_check(struct vm_area_struct *vma, 35 unsigned long start, 36 unsigned long end, bool flushi, 37 bool wbd); 38 39 extern void cpu_dma_wb_range(unsigned long start, unsigned long end); 40 extern void cpu_dma_inval_range(unsigned long start, unsigned long end); 41 extern void cpu_dma_wbinval_range(unsigned long start, unsigned long end); 42 43 #endif /* __KERNEL__ */ 44 #endif /* __NDS32_PROCFNS_H__ */ 45