138494Sobrien/* SPDX-License-Identifier: GPL-2.0-only */ 2310490Scy/* 338494Sobrien * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) 438494Sobrien */ 538494Sobrien 638494Sobrien#ifndef __ASM_ARC_TLBFLUSH__ 738494Sobrien#define __ASM_ARC_TLBFLUSH__ 838494Sobrien 938494Sobrien#include <linux/mm.h> 1038494Sobrien 1138494Sobrienvoid local_flush_tlb_all(void); 1238494Sobrienvoid local_flush_tlb_mm(struct mm_struct *mm); 1338494Sobrienvoid local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page); 1438494Sobrienvoid local_flush_tlb_kernel_range(unsigned long start, unsigned long end); 1538494Sobrienvoid local_flush_tlb_range(struct vm_area_struct *vma, 1638494Sobrien unsigned long start, unsigned long end); 1738494Sobrien#ifdef CONFIG_TRANSPARENT_HUGEPAGE 1838494Sobrienvoid local_flush_pmd_tlb_range(struct vm_area_struct *vma, unsigned long start, 19310490Scy unsigned long end); 2038494Sobrien#endif 2138494Sobrien 2238494Sobrien#ifndef CONFIG_SMP 2338494Sobrien#define flush_tlb_range(vma, s, e) local_flush_tlb_range(vma, s, e) 2438494Sobrien#define flush_tlb_page(vma, page) local_flush_tlb_page(vma, page) 2538494Sobrien#define flush_tlb_kernel_range(s, e) local_flush_tlb_kernel_range(s, e) 2638494Sobrien#define flush_tlb_all() local_flush_tlb_all() 2738494Sobrien#define flush_tlb_mm(mm) local_flush_tlb_mm(mm) 2838494Sobrien#ifdef CONFIG_TRANSPARENT_HUGEPAGE 2938494Sobrien#define flush_pmd_tlb_range(vma, s, e) local_flush_pmd_tlb_range(vma, s, e) 3038494Sobrien#endif 3138494Sobrien#else 3238494Sobrienextern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, 3338494Sobrien unsigned long end); 3438494Sobrienextern void flush_tlb_page(struct vm_area_struct *vma, unsigned long page); 3538494Sobrienextern void flush_tlb_kernel_range(unsigned long start, unsigned long end); 36174313Sobrienextern void flush_tlb_all(void); 3738494Sobrienextern void flush_tlb_mm(struct mm_struct *mm); 3838494Sobrien#ifdef CONFIG_TRANSPARENT_HUGEPAGE 3938494Sobrienextern void flush_pmd_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned long end); 4038494Sobrien#endif 4138494Sobrien#endif /* CONFIG_SMP */ 4238494Sobrien#endif 4338494Sobrien