3 #include <linux/linkage.h>
14 bool __set_phys_to_machine(unsigned long pfn
, unsigned long mfn
);
16 void set_pte_mfn(unsigned long vaddr
, unsigned long pfn
, pgprot_t flags
);
19 void xen_activate_mm(struct mm_struct
*prev
, struct mm_struct
*next
);
20 void xen_dup_mmap(struct mm_struct
*oldmm
, struct mm_struct
*mm
);
21 void xen_exit_mmap(struct mm_struct
*mm
);
23 pteval_t
xen_pte_val(pte_t
);
24 pmdval_t
xen_pmd_val(pmd_t
);
25 pgdval_t
xen_pgd_val(pgd_t
);
27 pte_t
xen_make_pte(pteval_t
);
28 pmd_t
xen_make_pmd(pmdval_t
);
29 pgd_t
xen_make_pgd(pgdval_t
);
31 void xen_set_pte(pte_t
*ptep
, pte_t pteval
);
32 void xen_set_pte_at(struct mm_struct
*mm
, unsigned long addr
,
33 pte_t
*ptep
, pte_t pteval
);
36 void xen_set_pte_atomic(pte_t
*ptep
, pte_t pte
);
37 void xen_pte_clear(struct mm_struct
*mm
, unsigned long addr
, pte_t
*ptep
);
38 void xen_pmd_clear(pmd_t
*pmdp
);
39 #endif /* CONFIG_X86_PAE */
41 void xen_set_pmd(pmd_t
*pmdp
, pmd_t pmdval
);
42 void xen_set_pud(pud_t
*ptr
, pud_t val
);
43 void xen_set_pmd_hyper(pmd_t
*pmdp
, pmd_t pmdval
);
44 void xen_set_pud_hyper(pud_t
*ptr
, pud_t val
);
46 #if PAGETABLE_LEVELS == 4
47 pudval_t
xen_pud_val(pud_t pud
);
48 pud_t
xen_make_pud(pudval_t pudval
);
49 void xen_set_pgd(pgd_t
*pgdp
, pgd_t pgd
);
50 void xen_set_pgd_hyper(pgd_t
*pgdp
, pgd_t pgd
);
53 pgd_t
*xen_get_user_pgd(pgd_t
*pgd
);
55 pte_t
xen_ptep_modify_prot_start(struct mm_struct
*mm
, unsigned long addr
, pte_t
*ptep
);
56 void xen_ptep_modify_prot_commit(struct mm_struct
*mm
, unsigned long addr
,
57 pte_t
*ptep
, pte_t pte
);
59 unsigned long xen_read_cr2_direct(void);
61 extern void xen_init_mmu_ops(void);
62 extern void xen_hvm_init_mmu_ops(void);
63 #endif /* _XEN_MMU_H */