Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
at v4.8-rc3 45 lines 1.8 kB view raw
1/* 2 * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License version 2 as 6 * published by the Free Software Foundation. 7 */ 8 9#ifndef __ASM_ARC_TLBFLUSH__ 10#define __ASM_ARC_TLBFLUSH__ 11 12#include <linux/mm.h> 13 14void local_flush_tlb_all(void); 15void local_flush_tlb_mm(struct mm_struct *mm); 16void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page); 17void local_flush_tlb_kernel_range(unsigned long start, unsigned long end); 18void local_flush_tlb_range(struct vm_area_struct *vma, 19 unsigned long start, unsigned long end); 20#ifdef CONFIG_TRANSPARENT_HUGEPAGE 21void local_flush_pmd_tlb_range(struct vm_area_struct *vma, unsigned long start, 22 unsigned long end); 23#endif 24 25#ifndef CONFIG_SMP 26#define flush_tlb_range(vma, s, e) local_flush_tlb_range(vma, s, e) 27#define flush_tlb_page(vma, page) local_flush_tlb_page(vma, page) 28#define flush_tlb_kernel_range(s, e) local_flush_tlb_kernel_range(s, e) 29#define flush_tlb_all() local_flush_tlb_all() 30#define flush_tlb_mm(mm) local_flush_tlb_mm(mm) 31#ifdef CONFIG_TRANSPARENT_HUGEPAGE 32#define flush_pmd_tlb_range(vma, s, e) local_flush_pmd_tlb_range(vma, s, e) 33#endif 34#else 35extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, 36 unsigned long end); 37extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long page); 38extern void flush_tlb_kernel_range(unsigned long start, unsigned long end); 39extern void flush_tlb_all(void); 40extern void flush_tlb_mm(struct mm_struct *mm); 41#ifdef CONFIG_TRANSPARENT_HUGEPAGE 42extern void flush_pmd_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned long end); 43#endif 44#endif /* CONFIG_SMP */ 45#endif