xref: /linux/arch/mips/include/asm/tlbex.h (revision 722b45443146f425453525d3c2270ff2733f5dc4)
1*722b4544SJames Hogan #ifndef __ASM_TLBEX_H
2*722b4544SJames Hogan #define __ASM_TLBEX_H
3*722b4544SJames Hogan 
4*722b4544SJames Hogan #include <asm/uasm.h>
5*722b4544SJames Hogan 
6*722b4544SJames Hogan /*
7*722b4544SJames Hogan  * Write random or indexed TLB entry, and care about the hazards from
8*722b4544SJames Hogan  * the preceding mtc0 and for the following eret.
9*722b4544SJames Hogan  */
10*722b4544SJames Hogan enum tlb_write_entry {
11*722b4544SJames Hogan 	tlb_random,
12*722b4544SJames Hogan 	tlb_indexed
13*722b4544SJames Hogan };
14*722b4544SJames Hogan 
15*722b4544SJames Hogan extern int pgd_reg;
16*722b4544SJames Hogan 
17*722b4544SJames Hogan void build_get_pmde64(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
18*722b4544SJames Hogan 		      unsigned int tmp, unsigned int ptr);
19*722b4544SJames Hogan void build_get_pgde32(u32 **p, unsigned int tmp, unsigned int ptr);
20*722b4544SJames Hogan void build_get_ptep(u32 **p, unsigned int tmp, unsigned int ptr);
21*722b4544SJames Hogan void build_update_entries(u32 **p, unsigned int tmp, unsigned int ptep);
22*722b4544SJames Hogan void build_tlb_write_entry(u32 **p, struct uasm_label **l,
23*722b4544SJames Hogan 			   struct uasm_reloc **r,
24*722b4544SJames Hogan 			   enum tlb_write_entry wmode);
25*722b4544SJames Hogan 
26*722b4544SJames Hogan #endif /* __ASM_TLBEX_H */
27