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