proc-fns.h 1.6 KB

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