linux/arch/powerpc/include/asm/nohash/tlbflush.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef _ASM_POWERPC_NOHASH_TLBFLUSH_H
   3#define _ASM_POWERPC_NOHASH_TLBFLUSH_H
   4
   5/*
   6 * TLB flushing:
   7 *
   8 *  - flush_tlb_mm(mm) flushes the specified mm context TLB's
   9 *  - flush_tlb_page(vma, vmaddr) flushes one page
  10 *  - local_flush_tlb_mm(mm, full) flushes the specified mm context on
  11 *                           the local processor
  12 *  - local_flush_tlb_page(vma, vmaddr) flushes one page on the local processor
  13 *  - flush_tlb_range(vma, start, end) flushes a range of pages
  14 *  - flush_tlb_kernel_range(start, end) flushes a range of kernel pages
  15 *
  16 */
  17
  18/*
  19 * TLB flushing for software loaded TLB chips
  20 *
  21 * TODO: (CONFIG_FSL_BOOKE) determine if flush_tlb_range &
  22 * flush_tlb_kernel_range are best implemented as tlbia vs
  23 * specific tlbie's
  24 */
  25
  26struct vm_area_struct;
  27struct mm_struct;
  28
  29#define MMU_NO_CONTEXT          ((unsigned int)-1)
  30
  31extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
  32                            unsigned long end);
  33extern void flush_tlb_kernel_range(unsigned long start, unsigned long end);
  34
  35extern void local_flush_tlb_mm(struct mm_struct *mm);
  36extern void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long vmaddr);
  37
  38extern void __local_flush_tlb_page(struct mm_struct *mm, unsigned long vmaddr,
  39                                   int tsize, int ind);
  40
  41#ifdef CONFIG_SMP
  42extern void flush_tlb_mm(struct mm_struct *mm);
  43extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long vmaddr);
  44extern void __flush_tlb_page(struct mm_struct *mm, unsigned long vmaddr,
  45                             int tsize, int ind);
  46#else
  47#define flush_tlb_mm(mm)                local_flush_tlb_mm(mm)
  48#define flush_tlb_page(vma,addr)        local_flush_tlb_page(vma,addr)
  49#define __flush_tlb_page(mm,addr,p,i)   __local_flush_tlb_page(mm,addr,p,i)
  50#endif
  51
  52#endif /* _ASM_POWERPC_NOHASH_TLBFLUSH_H */
  53