diff options
Diffstat (limited to 'include/xen/xen-ops.h')
-rw-r--r-- | include/xen/xen-ops.h | 47 |
1 files changed, 46 insertions, 1 deletions
diff --git a/include/xen/xen-ops.h b/include/xen/xen-ops.h index 83338210ee04..c643e6a94c9a 100644 --- a/include/xen/xen-ops.h +++ b/include/xen/xen-ops.h | |||
@@ -27,13 +27,58 @@ int xen_create_contiguous_region(phys_addr_t pstart, unsigned int order, | |||
27 | void xen_destroy_contiguous_region(phys_addr_t pstart, unsigned int order); | 27 | void xen_destroy_contiguous_region(phys_addr_t pstart, unsigned int order); |
28 | 28 | ||
29 | struct vm_area_struct; | 29 | struct vm_area_struct; |
30 | |||
31 | /* | ||
32 | * xen_remap_domain_mfn_array() - map an array of foreign frames | ||
33 | * @vma: VMA to map the pages into | ||
34 | * @addr: Address at which to map the pages | ||
35 | * @gfn: Array of GFNs to map | ||
36 | * @nr: Number entries in the GFN array | ||
37 | * @err_ptr: Returns per-GFN error status. | ||
38 | * @prot: page protection mask | ||
39 | * @domid: Domain owning the pages | ||
40 | * @pages: Array of pages if this domain has an auto-translated physmap | ||
41 | * | ||
42 | * @gfn and @err_ptr may point to the same buffer, the GFNs will be | ||
43 | * overwritten by the error codes after they are mapped. | ||
44 | * | ||
45 | * Returns the number of successfully mapped frames, or a -ve error | ||
46 | * code. | ||
47 | */ | ||
48 | int xen_remap_domain_mfn_array(struct vm_area_struct *vma, | ||
49 | unsigned long addr, | ||
50 | xen_pfn_t *gfn, int nr, | ||
51 | int *err_ptr, pgprot_t prot, | ||
52 | unsigned domid, | ||
53 | struct page **pages); | ||
54 | |||
55 | /* xen_remap_domain_mfn_range() - map a range of foreign frames | ||
56 | * @vma: VMA to map the pages into | ||
57 | * @addr: Address at which to map the pages | ||
58 | * @gfn: First GFN to map. | ||
59 | * @nr: Number frames to map | ||
60 | * @prot: page protection mask | ||
61 | * @domid: Domain owning the pages | ||
62 | * @pages: Array of pages if this domain has an auto-translated physmap | ||
63 | * | ||
64 | * Returns the number of successfully mapped frames, or a -ve error | ||
65 | * code. | ||
66 | */ | ||
30 | int xen_remap_domain_mfn_range(struct vm_area_struct *vma, | 67 | int xen_remap_domain_mfn_range(struct vm_area_struct *vma, |
31 | unsigned long addr, | 68 | unsigned long addr, |
32 | xen_pfn_t mfn, int nr, | 69 | xen_pfn_t gfn, int nr, |
33 | pgprot_t prot, unsigned domid, | 70 | pgprot_t prot, unsigned domid, |
34 | struct page **pages); | 71 | struct page **pages); |
35 | int xen_unmap_domain_mfn_range(struct vm_area_struct *vma, | 72 | int xen_unmap_domain_mfn_range(struct vm_area_struct *vma, |
36 | int numpgs, struct page **pages); | 73 | int numpgs, struct page **pages); |
74 | int xen_xlate_remap_gfn_array(struct vm_area_struct *vma, | ||
75 | unsigned long addr, | ||
76 | xen_pfn_t *gfn, int nr, | ||
77 | int *err_ptr, pgprot_t prot, | ||
78 | unsigned domid, | ||
79 | struct page **pages); | ||
80 | int xen_xlate_unmap_gfn_range(struct vm_area_struct *vma, | ||
81 | int nr, struct page **pages); | ||
37 | 82 | ||
38 | bool xen_running_on_version_or_later(unsigned int major, unsigned int minor); | 83 | bool xen_running_on_version_or_later(unsigned int major, unsigned int minor); |
39 | 84 | ||