aboutsummaryrefslogtreecommitdiff
path: root/vm/vm_kern.h
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2020-05-01 02:25:37 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2020-05-01 02:25:37 +0200
commitded813a44263103a28e1788489ec0fef7e8d1c7e (patch)
tree77bc52c178b5eebe2b718e602e9152c1474a47bd /vm/vm_kern.h
parent0cf03cdab38bd588390ddecc7086d8bb0f56d71f (diff)
downloadgnumach-ded813a44263103a28e1788489ec0fef7e8d1c7e.tar.gz
gnumach-ded813a44263103a28e1788489ec0fef7e8d1c7e.tar.bz2
gnumach-ded813a44263103a28e1788489ec0fef7e8d1c7e.zip
Add kmem_valloc
Functions like vremap need to allocate some virtual addressing space before making their own mapping. kmem_alloc_wired can be used for that but that wastes memory. * vm/vm_kern.c (kmem_valloc): New function. * vm/vm_kern.h (kmem_valloc): New prototype. * linux/dev/glue/kmem.c (vremap): Call kmem_valloc instead of kmem_alloc_wired. Also check that `offset' is aligned on a page.
Diffstat (limited to 'vm/vm_kern.h')
-rw-r--r--vm/vm_kern.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/vm/vm_kern.h b/vm/vm_kern.h
index 4bd89c49..0cdb19db 100644
--- a/vm/vm_kern.h
+++ b/vm/vm_kern.h
@@ -52,6 +52,7 @@ extern void kmem_init(vm_offset_t, vm_offset_t);
extern kern_return_t kmem_alloc(vm_map_t, vm_offset_t *, vm_size_t);
extern kern_return_t kmem_alloc_pageable(vm_map_t, vm_offset_t *,
vm_size_t);
+extern kern_return_t kmem_valloc(vm_map_t, vm_offset_t *, vm_size_t);
extern kern_return_t kmem_alloc_wired(vm_map_t, vm_offset_t *, vm_size_t);
extern kern_return_t kmem_alloc_aligned(vm_map_t, vm_offset_t *, vm_size_t);
extern void kmem_free(vm_map_t, vm_offset_t, vm_size_t);