cacheflush.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*
  2. * Copyright (C) 2003 Paul Mundt
  3. *
  4. * This file is subject to the terms and conditions of the GNU General Public
  5. * License. See the file "COPYING" in the main directory of this archive
  6. * for more details.
  7. */
  8. #ifndef __ASM_CPU_SH_CACHEFLUSH_H
  9. #define __ASM_CPU_SH_CACHEFLUSH_H
  10. /*
  11. * Cache flushing:
  12. *
  13. * - flush_cache_all() flushes entire cache
  14. * - flush_cache_mm(mm) flushes the specified mm context's cache lines
  15. * - flush_cache_dup mm(mm) handles cache flushing when forking
  16. * - flush_cache_page(mm, vmaddr, pfn) flushes a single page
  17. * - flush_cache_range(vma, start, end) flushes a range of pages
  18. *
  19. * - flush_dcache_page(pg) flushes(wback&invalidates) a page for dcache
  20. * - flush_icache_range(start, end) flushes(invalidates) a range for icache
  21. * - flush_icache_page(vma, pg) flushes(invalidates) a page for icache
  22. * - flush_cache_sigtramp(vaddr) flushes the signal trampoline
  23. */
  24. extern void (*flush_cache_all)(void);
  25. extern void (*flush_cache_mm)(struct mm_struct *mm);
  26. extern void (*flush_cache_dup_mm)(struct mm_struct *mm);
  27. extern void (*flush_cache_page)(struct vm_area_struct *vma,
  28. unsigned long addr, unsigned long pfn);
  29. extern void (*flush_cache_range)(struct vm_area_struct *vma,
  30. unsigned long start, unsigned long end);
  31. extern void (*flush_dcache_page)(struct page *page);
  32. extern void (*flush_icache_range)(unsigned long start, unsigned long end);
  33. extern void (*flush_icache_page)(struct vm_area_struct *vma,
  34. struct page *page);
  35. extern void (*flush_cache_sigtramp)(unsigned long address);
  36. extern void (*__flush_wback_region)(void *start, int size);
  37. extern void (*__flush_purge_region)(void *start, int size);
  38. extern void (*__flush_invalidate_region)(void *start, int size);
  39. #endif /* __ASM_CPU_SH_CACHEFLUSH_H */