blob: 6e4c6bd622033bf0ebd8fdd6722da05bf9f489fe [file] [log] [blame]
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00001/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _XEN_MMU_H
3
4#include <linux/linkage.h>
5#include <asm/page.h>
6
7enum pt_level {
8 PT_PGD,
9 PT_P4D,
10 PT_PUD,
11 PT_PMD,
12 PT_PTE
13};
14
15
16bool __set_phys_to_machine(unsigned long pfn, unsigned long mfn);
17
18void set_pte_mfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags);
19
David Brazdil0f672f62019-12-10 10:32:29 +000020pte_t xen_ptep_modify_prot_start(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep);
21void xen_ptep_modify_prot_commit(struct vm_area_struct *vma, unsigned long addr,
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000022 pte_t *ptep, pte_t pte);
23
24unsigned long xen_read_cr2_direct(void);
25
26extern void xen_init_mmu_ops(void);
27extern void xen_hvm_init_mmu_ops(void);
28#endif /* _XEN_MMU_H */