diff options
Diffstat (limited to 'arch/score/include/asm/tlbflush.h')
-rw-r--r-- | arch/score/include/asm/tlbflush.h | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/arch/score/include/asm/tlbflush.h b/arch/score/include/asm/tlbflush.h deleted file mode 100644 index f48722f4b00e..000000000000 --- a/arch/score/include/asm/tlbflush.h +++ /dev/null @@ -1,143 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#ifndef _ASM_SCORE_TLBFLUSH_H -#define _ASM_SCORE_TLBFLUSH_H - -#include <linux/mm.h> - -/* - * TLB flushing: - * - * - flush_tlb_all() flushes all processes TLB entries - * - flush_tlb_mm(mm) flushes the specified mm context TLB entries - * - flush_tlb_page(vma, vmaddr) flushes one page - * - flush_tlb_range(vma, start, end) flushes a range of pages - * - flush_tlb_kernel_range(start, end) flushes a range of kernel pages - */ -extern void local_flush_tlb_all(void); -extern void local_flush_tlb_mm(struct mm_struct *mm); -extern void local_flush_tlb_range(struct vm_area_struct *vma, - unsigned long start, unsigned long end); -extern void local_flush_tlb_kernel_range(unsigned long start, - unsigned long end); -extern void local_flush_tlb_page(struct vm_area_struct *vma, - unsigned long page); -extern void local_flush_tlb_one(unsigned long vaddr); - -#define flush_tlb_all() local_flush_tlb_all() -#define flush_tlb_mm(mm) local_flush_tlb_mm(mm) -#define flush_tlb_range(vma, vmaddr, end) \ - local_flush_tlb_range(vma, vmaddr, end) -#define flush_tlb_kernel_range(vmaddr, end) \ - local_flush_tlb_kernel_range(vmaddr, end) -#define flush_tlb_page(vma, page) local_flush_tlb_page(vma, page) -#define flush_tlb_one(vaddr) local_flush_tlb_one(vaddr) - -#ifndef __ASSEMBLY__ - -static inline unsigned long pevn_get(void) -{ - unsigned long val; - - __asm__ __volatile__( - "mfcr %0, cr11\n" - "nop\nnop\n" - : "=r" (val)); - - return val; -} - -static inline void pevn_set(unsigned long val) -{ - __asm__ __volatile__( - "mtcr %0, cr11\n" - "nop\nnop\nnop\nnop\nnop\n" - : : "r" (val)); -} - -static inline void pectx_set(unsigned long val) -{ - __asm__ __volatile__( - "mtcr %0, cr12\n" - "nop\nnop\nnop\nnop\nnop\n" - : : "r" (val)); -} - -static inline unsigned long pectx_get(void) -{ - unsigned long val; - __asm__ __volatile__( - "mfcr %0, cr12\n" - "nop\nnop\n" - : "=r" (val)); - return val; -} -static inline unsigned long tlblock_get(void) -{ - unsigned long val; - - __asm__ __volatile__( - "mfcr %0, cr7\n" - "nop\nnop\n" - : "=r" (val)); - return val; -} -static inline void tlblock_set(unsigned long val) -{ - __asm__ __volatile__( - "mtcr %0, cr7\n" - "nop\nnop\nnop\nnop\nnop\n" - : : "r" (val)); -} - -static inline void tlbpt_set(unsigned long val) -{ - __asm__ __volatile__( - "mtcr %0, cr8\n" - "nop\nnop\nnop\nnop\nnop\n" - : : "r" (val)); -} - -static inline long tlbpt_get(void) -{ - long val; - - __asm__ __volatile__( - "mfcr %0, cr8\n" - "nop\nnop\n" - : "=r" (val)); - - return val; -} - -static inline void peaddr_set(unsigned long val) -{ - __asm__ __volatile__( - "mtcr %0, cr9\n" - "nop\nnop\nnop\nnop\nnop\n" - : : "r" (val)); -} - -/* TLB operations. */ -static inline void tlb_probe(void) -{ - __asm__ __volatile__("stlb;nop;nop;nop;nop;nop"); -} - -static inline void tlb_read(void) -{ - __asm__ __volatile__("mftlb;nop;nop;nop;nop;nop"); -} - -static inline void tlb_write_indexed(void) -{ - __asm__ __volatile__("mtptlb;nop;nop;nop;nop;nop"); -} - -static inline void tlb_write_random(void) -{ - __asm__ __volatile__("mtrtlb;nop;nop;nop;nop;nop"); -} - -#endif /* Not __ASSEMBLY__ */ - -#endif /* _ASM_SCORE_TLBFLUSH_H */ |