xref: /openbmc/linux/arch/x86/xen/mmu.h (revision 0cbe3e26)
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