diff options
author | alc <alc@FreeBSD.org> | 2008-04-28 05:30:23 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2008-04-28 05:30:23 +0000 |
commit | e919c282cde15d51fa314cf84ffeabac012e2859 (patch) | |
tree | 6483342e3ea491d2dec33efb0d137699a43ca7c3 | |
parent | e0ba3f18787ea6343637dd8a742717554c772462 (diff) | |
download | FreeBSD-src-e919c282cde15d51fa314cf84ffeabac012e2859.zip FreeBSD-src-e919c282cde15d51fa314cf84ffeabac012e2859.tar.gz |
vm_map_fixed(), unlike vm_map_find(), does not update "addr", so it can be
passed by value.
-rw-r--r-- | sys/vm/vm_map.c | 5 | ||||
-rw-r--r-- | sys/vm/vm_map.h | 3 | ||||
-rw-r--r-- | sys/vm/vm_mmap.c | 2 |
3 files changed, 5 insertions, 5 deletions
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c index 23fa0d1..5a98ce5 100644 --- a/sys/vm/vm_map.c +++ b/sys/vm/vm_map.c @@ -1172,13 +1172,12 @@ found: int vm_map_fixed(vm_map_t map, vm_object_t object, vm_ooffset_t offset, - vm_offset_t *addr /* IN/OUT */, vm_size_t length, vm_prot_t prot, + vm_offset_t start, vm_size_t length, vm_prot_t prot, vm_prot_t max, int cow) { - vm_offset_t start, end; + vm_offset_t end; int result; - start = *addr; vm_map_lock(map); end = start + length; VM_MAP_RANGE_CHECK(map, start, end); diff --git a/sys/vm/vm_map.h b/sys/vm/vm_map.h index 28479e3..37d9084 100644 --- a/sys/vm/vm_map.h +++ b/sys/vm/vm_map.h @@ -338,7 +338,8 @@ boolean_t vm_map_check_protection (vm_map_t, vm_offset_t, vm_offset_t, vm_prot_t vm_map_t vm_map_create(pmap_t, vm_offset_t, vm_offset_t); int vm_map_delete (vm_map_t, vm_offset_t, vm_offset_t); int vm_map_find (vm_map_t, vm_object_t, vm_ooffset_t, vm_offset_t *, vm_size_t, boolean_t, vm_prot_t, vm_prot_t, int); -int vm_map_fixed (vm_map_t, vm_object_t, vm_ooffset_t, vm_offset_t *, vm_size_t, vm_prot_t, vm_prot_t, int); +int vm_map_fixed(vm_map_t, vm_object_t, vm_ooffset_t, vm_offset_t, vm_size_t, + vm_prot_t, vm_prot_t, int); int vm_map_findspace (vm_map_t, vm_offset_t, vm_size_t, vm_offset_t *); int vm_map_inherit (vm_map_t, vm_offset_t, vm_offset_t, vm_inherit_t); void vm_map_init (struct vm_map *, vm_offset_t, vm_offset_t); diff --git a/sys/vm/vm_mmap.c b/sys/vm/vm_mmap.c index f622d99..d5b6e3c 100644 --- a/sys/vm/vm_mmap.c +++ b/sys/vm/vm_mmap.c @@ -1466,7 +1466,7 @@ vm_mmap(vm_map_t map, vm_offset_t *addr, vm_size_t size, vm_prot_t prot, rv = vm_map_find(map, object, foff, addr, size, TRUE, prot, maxprot, docow); else - rv = vm_map_fixed(map, object, foff, addr, size, + rv = vm_map_fixed(map, object, foff, *addr, size, prot, maxprot, docow); if (rv != KERN_SUCCESS) { |