Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 079da354db3473b56eb938ca53a2cb0804ea9c8c 56 lines 1.5 kB view raw
1#ifndef _CRIS_TLBFLUSH_H 2#define _CRIS_TLBFLUSH_H 3 4#include <linux/config.h> 5#include <linux/mm.h> 6#include <asm/processor.h> 7#include <asm/pgtable.h> 8#include <asm/pgalloc.h> 9 10/* 11 * TLB flushing (implemented in arch/cris/mm/tlb.c): 12 * 13 * - flush_tlb() flushes the current mm struct TLBs 14 * - flush_tlb_all() flushes all processes TLBs 15 * - flush_tlb_mm(mm) flushes the specified mm context TLB's 16 * - flush_tlb_page(vma, vmaddr) flushes one page 17 * - flush_tlb_range(mm, start, end) flushes a range of pages 18 * 19 */ 20 21extern void __flush_tlb_all(void); 22extern void __flush_tlb_mm(struct mm_struct *mm); 23extern void __flush_tlb_page(struct vm_area_struct *vma, 24 unsigned long addr); 25 26#ifdef CONFIG_SMP 27extern void flush_tlb_all(void); 28extern void flush_tlb_mm(struct mm_struct *mm); 29extern void flush_tlb_page(struct vm_area_struct *vma, 30 unsigned long addr); 31#else 32#define flush_tlb_all __flush_tlb_all 33#define flush_tlb_mm __flush_tlb_mm 34#define flush_tlb_page __flush_tlb_page 35#endif 36 37static inline void flush_tlb_range(struct vm_area_struct * vma, unsigned long start, unsigned long end) 38{ 39 flush_tlb_mm(vma->vm_mm); 40} 41 42extern inline void flush_tlb_pgtables(struct mm_struct *mm, 43 unsigned long start, unsigned long end) 44{ 45 /* CRIS does not keep any page table caches in TLB */ 46} 47 48 49extern inline void flush_tlb(void) 50{ 51 flush_tlb_mm(current->mm); 52} 53 54#define flush_tlb_kernel_range(start, end) flush_tlb_all() 55 56#endif /* _CRIS_TLBFLUSH_H */