diff options
Diffstat (limited to 'tools/xc/lib/xc_private.c')
-rw-r--r-- | tools/xc/lib/xc_private.c | 11 |
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); |