xref: /openbmc/linux/arch/x86/xen/mmu.h (revision e6e8c82b)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _XEN_MMU_H
3 
4 #include <linux/linkage.h>
5 #include <asm/page.h>
6 
7 enum pt_level {
8 	PT_PGD,
9 	PT_P4D,
10 	PT_PUD,
11 	PT_PMD,
12 	PT_PTE
13 };
14 
15 
16 bool __set_phys_to_machine(unsigned long pfn, unsigned long mfn);
17 
18 void set_pte_mfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags);
19 
20 pte_t xen_ptep_modify_prot_start(struct mm_struct *mm, unsigned long addr, pte_t *ptep);
21 void  xen_ptep_modify_prot_commit(struct mm_struct *mm, unsigned long addr,
22 				  pte_t *ptep, pte_t pte);
23 
24 unsigned long xen_read_cr2_direct(void);
25 
26 extern void xen_init_mmu_ops(void);
27 extern void xen_hvm_init_mmu_ops(void);
28 #endif	/* _XEN_MMU_H */
29