aboutsummaryrefslogtreecommitdiffstats
path: root/tools/xc/lib/xc_private.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/xc/lib/xc_private.c')
-rw-r--r--tools/xc/lib/xc_private.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/tools/xc/lib/xc_private.c b/tools/xc/lib/xc_private.c
index 7fa201bc90..4331cc943c 100644
--- a/tools/xc/lib/xc_private.c
+++ b/tools/xc/lib/xc_private.c
@@ -16,7 +16,7 @@ int close_pfn_mapper(int pm_handle)
return close(pm_handle);
}
-void *map_pfn(int pm_handle, unsigned long pfn)
+void *map_pfn_writeable(int pm_handle, unsigned long pfn)
{
void *vaddr = mmap(NULL, PAGE_SIZE, PROT_READ|PROT_WRITE,
MAP_SHARED, pm_handle, pfn << PAGE_SHIFT);
@@ -25,6 +25,15 @@ void *map_pfn(int pm_handle, unsigned long pfn)
return vaddr;
}
+void *map_pfn_readonly(int pm_handle, unsigned long pfn)
+{
+ void *vaddr = mmap(NULL, PAGE_SIZE, PROT_READ,
+ MAP_SHARED, pm_handle, pfn << PAGE_SHIFT);
+ if ( vaddr == MAP_FAILED )
+ return NULL;
+ return vaddr;
+}
+
void unmap_pfn(int pm_handle, void *vaddr)
{
(void)munmap(vaddr, PAGE_SIZE);