From ded813a44263103a28e1788489ec0fef7e8d1c7e Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Fri, 1 May 2020 02:25:37 +0200 Subject: 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. --- vm/vm_kern.h | 1 + 1 file changed, 1 insertion(+) (limited to 'vm/vm_kern.h') 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); -- cgit v1.2.3