summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2011-07-10 20:49:13 +0000
committerkib <kib@FreeBSD.org>2011-07-10 20:49:13 +0000
commite45048555adb06b1123f059988723f8045e9a527 (patch)
tree1244a5c3c59b391097dc596c103734a102504ea1 /sys/vm
parent315e379ec22f6c795e1c4237bdb108f9545baa50 (diff)
downloadFreeBSD-src-e45048555adb06b1123f059988723f8045e9a527.zip
FreeBSD-src-e45048555adb06b1123f059988723f8045e9a527.tar.gz
Extract the code to translate VM error into errno, into an exported
function vm_mmap_to_errno(). It is useful for the drivers that implement mmap(2)-like functionality, to be able to return error codes consistent with mmap(2). Sponsored by: The FreeBSD Foundation No objections from: alc MFC after: 1 week
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_extern.h1
-rw-r--r--sys/vm/vm_mmap.c7
2 files changed, 8 insertions, 0 deletions
diff --git a/sys/vm/vm_extern.h b/sys/vm/vm_extern.h
index 548cdb4..72f0254 100644
--- a/sys/vm/vm_extern.h
+++ b/sys/vm/vm_extern.h
@@ -72,6 +72,7 @@ int vm_fault_wire(vm_map_t, vm_offset_t, vm_offset_t, boolean_t);
int vm_forkproc(struct thread *, struct proc *, struct thread *, struct vmspace *, int);
void vm_waitproc(struct proc *);
int vm_mmap(vm_map_t, vm_offset_t *, vm_size_t, vm_prot_t, vm_prot_t, int, objtype_t, void *, vm_ooffset_t);
+int vm_mmap_to_errno(int rv);
void vm_set_page_size(void);
void vm_sync_icache(vm_map_t, vm_offset_t, vm_size_t);
struct vmspace *vmspace_alloc(vm_offset_t, vm_offset_t);
diff --git a/sys/vm/vm_mmap.c b/sys/vm/vm_mmap.c
index 0d1a8d7..c78571d 100644
--- a/sys/vm/vm_mmap.c
+++ b/sys/vm/vm_mmap.c
@@ -1535,6 +1535,13 @@ vm_mmap(vm_map_t map, vm_offset_t *addr, vm_size_t size, vm_prot_t prot,
vm_map_wire(map, *addr, *addr + size,
VM_MAP_WIRE_USER|VM_MAP_WIRE_NOHOLES);
+ return (vm_mmap_to_errno(rv));
+}
+
+int
+vm_mmap_to_errno(int rv)
+{
+
switch (rv) {
case KERN_SUCCESS:
return (0);
OpenPOWER on IntegriCloud