diff options
Diffstat (limited to 'linux-2.6-xen-sparse/arch/xen/x86_64/mm/ioremap.c')
-rw-r--r-- | linux-2.6-xen-sparse/arch/xen/x86_64/mm/ioremap.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/linux-2.6-xen-sparse/arch/xen/x86_64/mm/ioremap.c b/linux-2.6-xen-sparse/arch/xen/x86_64/mm/ioremap.c index 3714880f72..c3d6ee3959 100644 --- a/linux-2.6-xen-sparse/arch/xen/x86_64/mm/ioremap.c +++ b/linux-2.6-xen-sparse/arch/xen/x86_64/mm/ioremap.c @@ -464,3 +464,34 @@ int direct_remap_area_pages(struct mm_struct *mm, } EXPORT_SYMBOL(direct_remap_area_pages); + +int create_lookup_pte_addr(struct mm_struct *mm, + unsigned long address, + unsigned long *ptep) +{ + int f(pte_t *pte, struct page *pte_page, unsigned long addr, void *data) + { + unsigned long *ptep = (unsigned long *)data; + if (ptep) *ptep = (pfn_to_mfn(page_to_pfn(pte_page)) << PAGE_SHIFT) + | ((unsigned long)pte & ~PAGE_MASK); + return 0; + } + + return generic_page_range(mm, address, PAGE_SIZE, f, ptep); +} + +EXPORT_SYMBOL(create_lookup_pte_addr); + +int touch_pte_range(struct mm_struct *mm, + unsigned long address, + unsigned long size) +{ + int f(pte_t *pte, struct page *pte_page, unsigned long addr, void *data) + { + return 0; + } + + return generic_page_range(mm, address, size, f, NULL); +} + +EXPORT_SYMBOL(touch_pte_range); |