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