summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2008-04-28 05:30:23 +0000
committeralc <alc@FreeBSD.org>2008-04-28 05:30:23 +0000
commite919c282cde15d51fa314cf84ffeabac012e2859 (patch)
tree6483342e3ea491d2dec33efb0d137699a43ca7c3
parente0ba3f18787ea6343637dd8a742717554c772462 (diff)
downloadFreeBSD-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.c5
-rw-r--r--sys/vm/vm_map.h3
-rw-r--r--sys/vm/vm_mmap.c2
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) {
OpenPOWER on IntegriCloud