Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #ifndef __ASM_TLBEX_H
0003 #define __ASM_TLBEX_H
0004 
0005 #include <asm/uasm.h>
0006 
0007 /*
0008  * Write random or indexed TLB entry, and care about the hazards from
0009  * the preceding mtc0 and for the following eret.
0010  */
0011 enum tlb_write_entry {
0012     tlb_random,
0013     tlb_indexed
0014 };
0015 
0016 extern int pgd_reg;
0017 
0018 void build_get_pmde64(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
0019               unsigned int tmp, unsigned int ptr);
0020 void build_get_pgde32(u32 **p, unsigned int tmp, unsigned int ptr);
0021 void build_get_ptep(u32 **p, unsigned int tmp, unsigned int ptr);
0022 void build_update_entries(u32 **p, unsigned int tmp, unsigned int ptep);
0023 void build_tlb_write_entry(u32 **p, struct uasm_label **l,
0024                struct uasm_reloc **r,
0025                enum tlb_write_entry wmode);
0026 
0027 extern void handle_tlbl(void);
0028 extern char handle_tlbl_end[];
0029 
0030 extern void handle_tlbs(void);
0031 extern char handle_tlbs_end[];
0032 
0033 extern void handle_tlbm(void);
0034 extern char handle_tlbm_end[];
0035 
0036 #endif /* __ASM_TLBEX_H */