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