1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 2722b4544SJames Hogan #ifndef __ASM_TLBEX_H 3722b4544SJames Hogan #define __ASM_TLBEX_H 4722b4544SJames Hogan 5722b4544SJames Hogan #include <asm/uasm.h> 6722b4544SJames Hogan 7722b4544SJames Hogan /* 8722b4544SJames Hogan * Write random or indexed TLB entry, and care about the hazards from 9722b4544SJames Hogan * the preceding mtc0 and for the following eret. 10722b4544SJames Hogan */ 11722b4544SJames Hogan enum tlb_write_entry { 12722b4544SJames Hogan tlb_random, 13722b4544SJames Hogan tlb_indexed 14722b4544SJames Hogan }; 15722b4544SJames Hogan 16722b4544SJames Hogan extern int pgd_reg; 17722b4544SJames Hogan 18722b4544SJames Hogan void build_get_pmde64(u32 **p, struct uasm_label **l, struct uasm_reloc **r, 19722b4544SJames Hogan unsigned int tmp, unsigned int ptr); 20722b4544SJames Hogan void build_get_pgde32(u32 **p, unsigned int tmp, unsigned int ptr); 21722b4544SJames Hogan void build_get_ptep(u32 **p, unsigned int tmp, unsigned int ptr); 22722b4544SJames Hogan void build_update_entries(u32 **p, unsigned int tmp, unsigned int ptep); 23722b4544SJames Hogan void build_tlb_write_entry(u32 **p, struct uasm_label **l, 24722b4544SJames Hogan struct uasm_reloc **r, 25722b4544SJames Hogan enum tlb_write_entry wmode); 26722b4544SJames Hogan 27722b4544SJames Hogan #endif /* __ASM_TLBEX_H */ 28