xref: /kvm-unit-tests/lib/arm/asm/mmu-api.h (revision 7e9737739f738c9a2e555947082a59edbc5b49b9)
180e8b3d8SCornelia Huck #ifndef _ASMARM_MMU_API_H_
280e8b3d8SCornelia Huck #define _ASMARM_MMU_API_H_
3c2a95639SPaolo Bonzini 
4c2a95639SPaolo Bonzini #include <asm/page.h>
5c2a95639SPaolo Bonzini #include <stdbool.h>
6c2a95639SPaolo Bonzini 
72f3028cdSAndrew Jones extern pgd_t *mmu_idmap;
80917dc65SNikos Nikoleris extern bool mmu_enabled(void);
91742c67aSAndrew Jones extern void mmu_mark_enabled(int cpu);
10c33efcf3SAndrew Jones extern void mmu_mark_disabled(int cpu);
111742c67aSAndrew Jones extern void mmu_enable(pgd_t *pgtable);
12e27b176bSAndrew Jones extern void mmu_disable(void);
13f0671a7bSPaolo Bonzini 
14f0671a7bSPaolo Bonzini extern void mmu_set_range_sect(pgd_t *pgtable, uintptr_t virt_offset,
15f0671a7bSPaolo Bonzini 			       phys_addr_t phys_start, phys_addr_t phys_end,
162f3028cdSAndrew Jones 			       pgprot_t prot);
17f0671a7bSPaolo Bonzini extern void mmu_set_range_ptes(pgd_t *pgtable, uintptr_t virt_offset,
18f0671a7bSPaolo Bonzini 			       phys_addr_t phys_start, phys_addr_t phys_end,
192f3028cdSAndrew Jones 			       pgprot_t prot);
20*25ea27e9SAlexandru Elisei extern pteval_t *follow_pte(pgd_t *pgtable, uintptr_t vaddr);
2102f1cdc8SAlexandru Elisei extern void mmu_clear_user(pgd_t *pgtable, unsigned long vaddr);
222f3028cdSAndrew Jones #endif
23