xref: /kvm-unit-tests/lib/arm/asm/mmu-api.h (revision 1a00120a4f044a71898a3b26fdf3d67e24d032eb)
1 #ifndef __ASMARM_MMU_API_H_
2 #define __ASMARM_MMU_API_H_
3 
4 #include <asm/page.h>
5 #include <stdbool.h>
6 
7 extern pgd_t *mmu_idmap;
8 extern unsigned int mmu_disabled_cpu_count;
9 extern bool __mmu_enabled(void);
10 static inline bool mmu_enabled(void)
11 {
12 	return mmu_disabled_cpu_count == 0 || __mmu_enabled();
13 }
14 extern void mmu_mark_enabled(int cpu);
15 extern void mmu_mark_disabled(int cpu);
16 extern void mmu_enable(pgd_t *pgtable);
17 extern void mmu_disable(void);
18 
19 extern void mmu_set_range_sect(pgd_t *pgtable, uintptr_t virt_offset,
20 			       phys_addr_t phys_start, phys_addr_t phys_end,
21 			       pgprot_t prot);
22 extern void mmu_set_range_ptes(pgd_t *pgtable, uintptr_t virt_offset,
23 			       phys_addr_t phys_start, phys_addr_t phys_end,
24 			       pgprot_t prot);
25 extern pteval_t *mmu_get_pte(pgd_t *pgtable, uintptr_t vaddr);
26 extern void mmu_clear_user(pgd_t *pgtable, unsigned long vaddr);
27 #endif
28