Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
0004  */
0005 
0006 #ifndef __ASM_ARC_TLBFLUSH__
0007 #define __ASM_ARC_TLBFLUSH__
0008 
0009 #include <linux/mm.h>
0010 
0011 void local_flush_tlb_all(void);
0012 void local_flush_tlb_mm(struct mm_struct *mm);
0013 void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page);
0014 void local_flush_tlb_kernel_range(unsigned long start, unsigned long end);
0015 void local_flush_tlb_range(struct vm_area_struct *vma,
0016                unsigned long start, unsigned long end);
0017 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
0018 void local_flush_pmd_tlb_range(struct vm_area_struct *vma, unsigned long start,
0019                    unsigned long end);
0020 #endif
0021 
0022 #ifndef CONFIG_SMP
0023 #define flush_tlb_range(vma, s, e)  local_flush_tlb_range(vma, s, e)
0024 #define flush_tlb_page(vma, page)   local_flush_tlb_page(vma, page)
0025 #define flush_tlb_kernel_range(s, e)    local_flush_tlb_kernel_range(s, e)
0026 #define flush_tlb_all()         local_flush_tlb_all()
0027 #define flush_tlb_mm(mm)        local_flush_tlb_mm(mm)
0028 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
0029 #define flush_pmd_tlb_range(vma, s, e)  local_flush_pmd_tlb_range(vma, s, e)
0030 #endif
0031 #else
0032 extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
0033                              unsigned long end);
0034 extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long page);
0035 extern void flush_tlb_kernel_range(unsigned long start, unsigned long end);
0036 extern void flush_tlb_all(void);
0037 extern void flush_tlb_mm(struct mm_struct *mm);
0038 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
0039 extern void flush_pmd_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned long end);
0040 #endif
0041 #endif /* CONFIG_SMP */
0042 #endif