xref: /kvm-unit-tests/lib/arm/asm/mmu-api.h (revision 1742c67a722ef08d80f81cb13060d266d2cf69e3)
12f3028cdSAndrew Jones #ifndef __ASMARM_MMU_API_H_
22f3028cdSAndrew Jones #define __ASMARM_MMU_API_H_
32f3028cdSAndrew Jones extern pgd_t *mmu_idmap;
4b141dbacSAndrew Jones extern unsigned int mmu_disabled_cpu_count;
5b141dbacSAndrew Jones extern bool __mmu_enabled(void);
6b141dbacSAndrew Jones static inline bool mmu_enabled(void)
7b141dbacSAndrew Jones {
8b141dbacSAndrew Jones 	return mmu_disabled_cpu_count == 0 || __mmu_enabled();
9b141dbacSAndrew Jones }
10*1742c67aSAndrew Jones extern void mmu_mark_enabled(int cpu);
11c33efcf3SAndrew Jones extern void mmu_mark_disabled(int cpu);
12*1742c67aSAndrew Jones extern void mmu_enable(pgd_t *pgtable);
13e27b176bSAndrew Jones extern void mmu_disable(void);
142f3028cdSAndrew Jones extern void mmu_enable_idmap(void);
152f3028cdSAndrew Jones extern void mmu_init_io_sect(pgd_t *pgtable, unsigned long virt_offset);
162f3028cdSAndrew Jones extern void mmu_set_range_sect(pgd_t *pgtable, unsigned long virt_offset,
172f3028cdSAndrew Jones 			       unsigned long phys_start, unsigned long phys_end,
182f3028cdSAndrew Jones 			       pgprot_t prot);
192f3028cdSAndrew Jones extern void mmu_set_range_ptes(pgd_t *pgtable, unsigned long virt_offset,
202f3028cdSAndrew Jones 			       unsigned long phys_start, unsigned long phys_end,
212f3028cdSAndrew Jones 			       pgprot_t prot);
222f3028cdSAndrew Jones #endif
23