void flush_cache_dup_mm(struct mm_struct *mm) { if (boot_cpu_data.dcache.n_aliases == 0) return; cacheop_on_each_cpu(local_flush_cache_dup_mm, mm, 1); }
void flush_icache_range(unsigned long start, unsigned long end) { struct flusher_data data; data.vma = NULL; data.addr1 = start; data.addr2 = end; cacheop_on_each_cpu(local_flush_icache_range, (void *)&data, 1); }
void flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end) { struct flusher_data data; data.vma = vma; data.addr1 = start; data.addr2 = end; cacheop_on_each_cpu(local_flush_cache_range, (void *)&data, 1); }
void flush_cache_page(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn) { struct flusher_data data; data.vma = vma; data.addr1 = addr; data.addr2 = pfn; cacheop_on_each_cpu(local_flush_cache_page, (void *)&data, 1); }
void flush_cache_sigtramp(unsigned long address) { cacheop_on_each_cpu(local_flush_cache_sigtramp, (void *)address, 1); }
void flush_icache_page(struct vm_area_struct *vma, struct page *page) { /* Nothing uses the VMA, so just pass the struct page along */ cacheop_on_each_cpu(local_flush_icache_page, page, 1); }
void flush_dcache_page(struct page *page) { cacheop_on_each_cpu(local_flush_dcache_page, page, 1); }
void flush_cache_all(void) { cacheop_on_each_cpu(local_flush_cache_all, NULL, 1); }
void flush_cache_dup_mm(struct mm_struct *mm) { cacheop_on_each_cpu(local_flush_cache_dup_mm, mm, 1); }