1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 29702785aSThomas Gleixner #ifndef _XEN_MMU_H 39702785aSThomas Gleixner 49702785aSThomas Gleixner #include <linux/linkage.h> 59702785aSThomas Gleixner #include <asm/page.h> 69702785aSThomas Gleixner 7f6433706SMark McLoughlin enum pt_level { 8f6433706SMark McLoughlin PT_PGD, 9907cd439SXiong Zhang PT_P4D, 10f6433706SMark McLoughlin PT_PUD, 11f6433706SMark McLoughlin PT_PMD, 12f6433706SMark McLoughlin PT_PTE 13f6433706SMark McLoughlin }; 14f6433706SMark McLoughlin 159702785aSThomas Gleixner 16e791ca0fSJeremy Fitzhardinge bool __set_phys_to_machine(unsigned long pfn, unsigned long mfn); 17e791ca0fSJeremy Fitzhardinge 189702785aSThomas Gleixner void set_pte_mfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags); 199702785aSThomas Gleixner 200cbe3e26SAneesh Kumar K.V pte_t xen_ptep_modify_prot_start(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep); 210cbe3e26SAneesh Kumar K.V void xen_ptep_modify_prot_commit(struct vm_area_struct *vma, unsigned long addr, 22e57778a1SJeremy Fitzhardinge pte_t *ptep, pte_t pte); 23e57778a1SJeremy Fitzhardinge 24319f3ba5SJeremy Fitzhardinge unsigned long xen_read_cr2_direct(void); 25319f3ba5SJeremy Fitzhardinge 26030cb6c0SThomas Gleixner extern void xen_init_mmu_ops(void); 2759151001SStefano Stabellini extern void xen_hvm_init_mmu_ops(void); 289702785aSThomas Gleixner #endif /* _XEN_MMU_H */ 29