xref: /openbmc/linux/arch/x86/xen/mmu.h (revision 907cd439)
19702785aSThomas Gleixner #ifndef _XEN_MMU_H
29702785aSThomas Gleixner 
39702785aSThomas Gleixner #include <linux/linkage.h>
49702785aSThomas Gleixner #include <asm/page.h>
59702785aSThomas Gleixner 
6f6433706SMark McLoughlin enum pt_level {
7f6433706SMark McLoughlin 	PT_PGD,
8907cd439SXiong Zhang 	PT_P4D,
9f6433706SMark McLoughlin 	PT_PUD,
10f6433706SMark McLoughlin 	PT_PMD,
11f6433706SMark McLoughlin 	PT_PTE
12f6433706SMark McLoughlin };
13f6433706SMark McLoughlin 
149702785aSThomas Gleixner 
15e791ca0fSJeremy Fitzhardinge bool __set_phys_to_machine(unsigned long pfn, unsigned long mfn);
16e791ca0fSJeremy Fitzhardinge 
179702785aSThomas Gleixner void set_pte_mfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags);
189702785aSThomas Gleixner 
19e57778a1SJeremy Fitzhardinge pte_t xen_ptep_modify_prot_start(struct mm_struct *mm, unsigned long addr, pte_t *ptep);
20e57778a1SJeremy Fitzhardinge void  xen_ptep_modify_prot_commit(struct mm_struct *mm, unsigned long addr,
21e57778a1SJeremy Fitzhardinge 				  pte_t *ptep, pte_t pte);
22e57778a1SJeremy Fitzhardinge 
23319f3ba5SJeremy Fitzhardinge unsigned long xen_read_cr2_direct(void);
24319f3ba5SJeremy Fitzhardinge 
25030cb6c0SThomas Gleixner extern void xen_init_mmu_ops(void);
2659151001SStefano Stabellini extern void xen_hvm_init_mmu_ops(void);
279702785aSThomas Gleixner #endif	/* _XEN_MMU_H */
28