cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

tlbflush.h (1809B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef __ASM_SH_TLBFLUSH_H
      3#define __ASM_SH_TLBFLUSH_H
      4
      5/*
      6 * TLB flushing:
      7 *
      8 *  - flush_tlb_all() flushes all processes TLBs
      9 *  - flush_tlb_mm(mm) flushes the specified mm context TLB's
     10 *  - flush_tlb_page(vma, vmaddr) flushes one page
     11 *  - flush_tlb_range(vma, start, end) flushes a range of pages
     12 *  - flush_tlb_kernel_range(start, end) flushes a range of kernel pages
     13 */
     14extern void local_flush_tlb_all(void);
     15extern void local_flush_tlb_mm(struct mm_struct *mm);
     16extern void local_flush_tlb_range(struct vm_area_struct *vma,
     17				  unsigned long start,
     18				  unsigned long end);
     19extern void local_flush_tlb_page(struct vm_area_struct *vma,
     20				 unsigned long page);
     21extern void local_flush_tlb_kernel_range(unsigned long start,
     22					 unsigned long end);
     23extern void local_flush_tlb_one(unsigned long asid, unsigned long page);
     24
     25extern void __flush_tlb_global(void);
     26
     27#ifdef CONFIG_SMP
     28
     29extern void flush_tlb_all(void);
     30extern void flush_tlb_mm(struct mm_struct *mm);
     31extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
     32			    unsigned long end);
     33extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long page);
     34extern void flush_tlb_kernel_range(unsigned long start, unsigned long end);
     35extern void flush_tlb_one(unsigned long asid, unsigned long page);
     36
     37#else
     38
     39#define flush_tlb_all()			local_flush_tlb_all()
     40#define flush_tlb_mm(mm)		local_flush_tlb_mm(mm)
     41#define flush_tlb_page(vma, page)	local_flush_tlb_page(vma, page)
     42#define flush_tlb_one(asid, page)	local_flush_tlb_one(asid, page)
     43
     44#define flush_tlb_range(vma, start, end)	\
     45	local_flush_tlb_range(vma, start, end)
     46
     47#define flush_tlb_kernel_range(start, end)	\
     48	local_flush_tlb_kernel_range(start, end)
     49
     50#endif /* CONFIG_SMP */
     51
     52#endif /* __ASM_SH_TLBFLUSH_H */