svn commit: r365805 - stable/12/sys/vm
Konstantin Belousov
kib at FreeBSD.org
Wed Sep 16 15:45:36 UTC 2020
Author: kib
Date: Wed Sep 16 15:45:35 2020
New Revision: 365805
URL: https://svnweb.freebsd.org/changeset/base/365805
Log:
MFC r365516:
Add vm_map_find_aligned(9).
Modified:
stable/12/sys/vm/vm_map.c
stable/12/sys/vm/vm_map.h
Directory Properties:
stable/12/ (props changed)
Modified: stable/12/sys/vm/vm_map.c
==============================================================================
--- stable/12/sys/vm/vm_map.c Wed Sep 16 15:42:58 2020 (r365804)
+++ stable/12/sys/vm/vm_map.c Wed Sep 16 15:45:35 2020 (r365805)
@@ -1856,6 +1856,19 @@ vm_map_alignspace(vm_map_t map, vm_object_t object, vm
}
}
+int
+vm_map_find_aligned(vm_map_t map, vm_offset_t *addr, vm_size_t length,
+ vm_offset_t max_addr, vm_offset_t alignment)
+{
+ /* XXXKIB ASLR eh ? */
+ *addr = vm_map_findspace(map, *addr, length);
+ if (*addr + length > vm_map_max(map) ||
+ (max_addr != 0 && *addr + length > max_addr))
+ return (KERN_NO_SPACE);
+ return (vm_map_alignspace(map, NULL, 0, addr, length, max_addr,
+ alignment));
+}
+
/*
* vm_map_find finds an unallocated region in the target address
* map with the given length. The search is defined to be
Modified: stable/12/sys/vm/vm_map.h
==============================================================================
--- stable/12/sys/vm/vm_map.h Wed Sep 16 15:42:58 2020 (r365804)
+++ stable/12/sys/vm/vm_map.h Wed Sep 16 15:45:35 2020 (r365805)
@@ -419,6 +419,8 @@ int vm_map_find(vm_map_t, vm_object_t, vm_ooffset_t, v
vm_offset_t, int, vm_prot_t, vm_prot_t, int);
int vm_map_find_min(vm_map_t, vm_object_t, vm_ooffset_t, vm_offset_t *,
vm_size_t, vm_offset_t, vm_offset_t, int, vm_prot_t, vm_prot_t, int);
+int vm_map_find_aligned(vm_map_t map, vm_offset_t *addr, vm_size_t length,
+ vm_offset_t max_addr, vm_offset_t alignment);
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);
vm_offset_t vm_map_findspace(vm_map_t, vm_offset_t, vm_size_t);
More information about the svn-src-all
mailing list