tlbex.h 977 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef __ASM_TLBEX_H
  3. #define __ASM_TLBEX_H
  4. #include <asm/uasm.h>
  5. /*
  6. * Write random or indexed TLB entry, and care about the hazards from
  7. * the preceding mtc0 and for the following eret.
  8. */
  9. enum tlb_write_entry {
  10. tlb_random,
  11. tlb_indexed
  12. };
  13. extern int pgd_reg;
  14. void build_get_pmde64(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
  15. unsigned int tmp, unsigned int ptr);
  16. void build_get_pgde32(u32 **p, unsigned int tmp, unsigned int ptr);
  17. void build_get_ptep(u32 **p, unsigned int tmp, unsigned int ptr);
  18. void build_update_entries(u32 **p, unsigned int tmp, unsigned int ptep);
  19. void build_tlb_write_entry(u32 **p, struct uasm_label **l,
  20. struct uasm_reloc **r,
  21. enum tlb_write_entry wmode);
  22. extern void handle_tlbl(void);
  23. extern char handle_tlbl_end[];
  24. extern void handle_tlbs(void);
  25. extern char handle_tlbs_end[];
  26. extern void handle_tlbm(void);
  27. extern char handle_tlbm_end[];
  28. #endif /* __ASM_TLBEX_H */