diff --git a/sys/uvm/uvm_map.c b/sys/uvm/uvm_map.c index 695de6fad6a1..ccff29dcb36b 100644 --- a/sys/uvm/uvm_map.c +++ b/sys/uvm/uvm_map.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_map.c,v 1.26 1998/08/31 01:10:15 thorpej Exp $ */ +/* $NetBSD: uvm_map.c,v 1.27 1998/08/31 01:50:08 thorpej Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -116,6 +116,12 @@ struct pool uvm_vmspace_pool; struct pool uvm_map_entry_pool; +/* + * pool for vm_map structures + */ + +struct pool uvm_map_pool; + /* * macros */ @@ -329,6 +335,9 @@ uvm_map_init() pool_init(&uvm_map_entry_pool, sizeof(struct vm_map_entry), 0, 0, 0, "vmmpepl", 0, pool_page_alloc_nointr, pool_page_free_nointr, M_VMMAP); + pool_init(&uvm_map_pool, sizeof(struct vm_map), + 0, 0, 0, "vmmppl", 0, + pool_page_alloc_nointr, pool_page_free_nointr, M_VMMAP); } /* diff --git a/sys/uvm/uvm_map.h b/sys/uvm/uvm_map.h index 6f7731be4aad..3fe79c859276 100644 --- a/sys/uvm/uvm_map.h +++ b/sys/uvm/uvm_map.h @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_map.h,v 1.7 1998/08/13 02:11:01 eeh Exp $ */ +/* $NetBSD: uvm_map.h,v 1.8 1998/08/31 01:50:10 thorpej Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -109,6 +109,11 @@ #define UVM_EXTRACT_QREF 0x4 /* use quick refs */ #define UVM_EXTRACT_FIXPROT 0x8 /* set prot to maxprot as we go */ +/* + * pool for vm_map's; needed by inline functions in uvm_map_i.h + */ + +extern struct pool uvm_map_pool; /* * handle inline options diff --git a/sys/uvm/uvm_map_i.h b/sys/uvm/uvm_map_i.h index e76bdd53e629..4bd4c9b7b28e 100644 --- a/sys/uvm/uvm_map_i.h +++ b/sys/uvm/uvm_map_i.h @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_map_i.h,v 1.7 1998/08/13 02:11:02 eeh Exp $ */ +/* $NetBSD: uvm_map_i.h,v 1.8 1998/08/31 01:50:11 thorpej Exp $ */ /* * XXXCDC: "ROUGH DRAFT" QUALITY UVM PRE-RELEASE FILE! @@ -75,6 +75,8 @@ #include "opt_uvmhist.h" +#include + /* * uvm_map_i.h */ @@ -97,7 +99,7 @@ uvm_map_create(pmap, min, max, pageable) { vm_map_t result; - MALLOC(result, vm_map_t, sizeof(struct vm_map), M_VMMAP, M_WAITOK); + result = pool_get(&uvm_map_pool, PR_WAITOK); uvm_map_setup(result, min, max, pageable); result->pmap = pmap; return(result); @@ -239,7 +241,7 @@ uvm_map_deallocate(map) uvm_unmap(map, map->min_offset, map->max_offset, TRUE); pmap_destroy(map->pmap); - FREE(map, M_VMMAP); + pool_put(&uvm_map_pool, map); } #endif /* defined(UVM_MAP_INLINE) || defined(UVM_MAP) */