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