a7e47cf7ec6cdc2eb709188d47829a415bbbffec
[linux-2.6-block.git] / arch / x86 / xen / mmu.h
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 */