From 2580d306ab52773a1634fe5c0499a8eab6895595 Mon Sep 17 00:00:00 2001 From: thorpej Date: Wed, 26 May 1999 19:16:28 +0000 Subject: [PATCH] Change the vm_map's "entries_pageable" member to a r/o flags member, which has PAGEABLE and INTRSAFE flags. PAGEABLE now really means "pageable", not "allocate vm_map_entry's from non-static pool", so update all map creations to reflect that. INTRSAFE maps are maps that are used in interrupt context (e.g. kmem_map, mb_map), and thus use the static map entry pool (XXX as does kernel_map, for now). This will eventually change now these maps are locked, as well. --- sys/arch/alpha/alpha/machdep.c | 8 ++++---- sys/arch/amiga/amiga/machdep.c | 9 +++++---- sys/arch/amiga/amiga/pmap.c | 8 ++++---- sys/arch/arm32/arm32/machdep.c | 9 +++++---- sys/arch/atari/atari/machdep.c | 9 +++++---- sys/arch/atari/atari/pmap.c | 4 ++-- sys/arch/bebox/bebox/machdep.c | 6 +++--- sys/arch/hp300/hp300/machdep.c | 9 +++++---- sys/arch/hp300/hp300/pmap.c | 8 ++++---- sys/arch/i386/i386/machdep.c | 8 ++++---- sys/arch/mac68k/mac68k/machdep.c | 8 ++++---- sys/arch/mac68k/mac68k/pmap.c | 6 +++--- sys/arch/macppc/macppc/machdep.c | 6 +++--- sys/arch/mvme68k/mvme68k/machdep.c | 9 +++++---- sys/arch/mvme68k/mvme68k/pmap.c | 6 +++--- sys/arch/newsmips/newsmips/machdep.c | 8 ++++---- sys/arch/next68k/next68k/machdep.c | 9 +++++---- sys/arch/next68k/next68k/pmap.c | 6 +++--- sys/arch/ofppc/ofppc/machdep.c | 6 +++--- sys/arch/pc532/pc532/machdep.c | 8 ++++---- sys/arch/pmax/pmax/machdep.c | 8 ++++---- sys/arch/sparc/sparc/machdep.c | 6 +++--- sys/arch/sparc64/sparc64/machdep.c | 8 ++++---- sys/arch/sun3/sun3/dvma.c | 4 ++-- sys/arch/sun3/sun3/machdep.c | 7 ++++--- sys/arch/sun3/sun3x/machdep.c | 7 ++++--- sys/arch/vax/vax/machdep.c | 6 +++--- sys/arch/vax/vax/pmap.c | 4 ++-- sys/arch/x68k/x68k/machdep.c | 9 +++++---- sys/arch/x68k/x68k/pmap.c | 8 ++++---- sys/kern/kern_malloc.c | 4 ++-- sys/uvm/uvm_extern.h | 4 ++-- sys/uvm/uvm_km.c | 12 ++++++------ sys/uvm/uvm_map.c | 25 +++++++++++++++---------- sys/uvm/uvm_map.h | 6 +++--- sys/uvm/uvm_map_i.h | 14 +++++++------- sys/uvm/uvm_pager.c | 4 ++-- sys/vm/vm_map.h | 8 ++++++-- 38 files changed, 156 insertions(+), 138 deletions(-) diff --git a/sys/arch/alpha/alpha/machdep.c b/sys/arch/alpha/alpha/machdep.c index e22a549f8177..d08726f9b922 100644 --- a/sys/arch/alpha/alpha/machdep.c +++ b/sys/arch/alpha/alpha/machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.174 1999/05/21 00:09:09 thorpej Exp $ */ +/* $NetBSD: machdep.c,v 1.175 1999/05/26 19:16:28 thorpej Exp $ */ /*- * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc. @@ -80,7 +80,7 @@ #include /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.174 1999/05/21 00:09:09 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.175 1999/05/26 19:16:28 thorpej Exp $"); #include #include @@ -1000,13 +1000,13 @@ cpu_startup() * limits the number of processes exec'ing at any time. */ exec_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - 16 * NCARGS, TRUE, FALSE, NULL); + 16 * NCARGS, VM_MAP_PAGEABLE, FALSE, NULL); /* * Allocate a submap for physio */ phys_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - VM_PHYS_SIZE, TRUE, FALSE, NULL); + VM_PHYS_SIZE, 0, FALSE, NULL); /* * No need to allocate an mbuf cluster submap. Mbuf clusters diff --git a/sys/arch/amiga/amiga/machdep.c b/sys/arch/amiga/amiga/machdep.c index 1c8942bf190c..9677a69720e1 100644 --- a/sys/arch/amiga/amiga/machdep.c +++ b/sys/arch/amiga/amiga/machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.136 1999/05/20 08:21:43 lukem Exp $ */ +/* $NetBSD: machdep.c,v 1.137 1999/05/26 19:16:29 thorpej Exp $ */ /* * Copyright (c) 1988 University of Utah. @@ -331,19 +331,20 @@ cpu_startup() * limits the number of processes exec'ing at any time. */ exec_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - 16*NCARGS, TRUE, FALSE, NULL); + 16*NCARGS, VM_MAP_PAGEABLE, FALSE, NULL); /* * Allocate a submap for physio */ phys_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - VM_PHYS_SIZE, TRUE, FALSE, NULL); + VM_PHYS_SIZE, 0, FALSE, NULL); /* * Finally, allocate mbuf cluster submap. */ mb_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - nmbclusters * mclbytes, FALSE, FALSE, NULL); + nmbclusters * mclbytes, VM_MAP_INTRSAFE, + FALSE, NULL); /* * Initialize callouts diff --git a/sys/arch/amiga/amiga/pmap.c b/sys/arch/amiga/amiga/pmap.c index b0d66aeec8fe..8190608e3115 100644 --- a/sys/arch/amiga/amiga/pmap.c +++ b/sys/arch/amiga/amiga/pmap.c @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.64 1999/04/22 04:24:52 chs Exp $ */ +/* $NetBSD: pmap.c,v 1.65 1999/05/26 19:16:29 thorpej Exp $ */ /* * Copyright (c) 1991 Regents of the University of California. @@ -606,8 +606,8 @@ pmap_init() * Allocate the segment table map and the page table map. */ s = maxproc * AMIGA_STSIZE; - st_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, TRUE, - FALSE, &st_map_store); + st_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, 0, FALSE, + &st_map_store); addr = amiga_uptbase; if ((AMIGA_UPTMAXSIZE / AMIGA_UPTSIZE) < maxproc) { @@ -621,7 +621,7 @@ pmap_init() maxproc = (AMIGA_UPTMAXSIZE / AMIGA_UPTSIZE); } else s = (maxproc * AMIGA_UPTSIZE); - pt_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, TRUE, + pt_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, VM_MAP_PAGEABLE, TRUE, &pt_map_store); #if defined(M68040) || defined(M68060) diff --git a/sys/arch/arm32/arm32/machdep.c b/sys/arch/arm32/arm32/machdep.c index d85baa392904..936fd67f9c86 100644 --- a/sys/arch/arm32/arm32/machdep.c +++ b/sys/arch/arm32/arm32/machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.68 1999/05/20 08:21:43 lukem Exp $ */ +/* $NetBSD: machdep.c,v 1.69 1999/05/26 19:16:29 thorpej Exp $ */ /* * Copyright (c) 1994-1998 Mark Brinicombe. @@ -439,19 +439,20 @@ cpu_startup() * limits the number of processes exec'ing at any time. */ exec_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - 16*NCARGS, TRUE, FALSE, NULL); + 16*NCARGS, VM_MAP_PAGEABLE, FALSE, NULL); /* * Allocate a submap for physio */ phys_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - VM_PHYS_SIZE, TRUE, FALSE, NULL); + VM_PHYS_SIZE, 0, FALSE, NULL); /* * Finally, allocate mbuf cluster submap. */ mb_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - nmbclusters * mclbytes, FALSE, FALSE, NULL); + nmbclusters * mclbytes, VM_MAP_INTRSAFE, + FALSE, NULL); /* * Initialise callouts diff --git a/sys/arch/atari/atari/machdep.c b/sys/arch/atari/atari/machdep.c index aca068de80c5..5b62b20829b7 100644 --- a/sys/arch/atari/atari/machdep.c +++ b/sys/arch/atari/atari/machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.83 1999/05/26 14:29:34 leo Exp $ */ +/* $NetBSD: machdep.c,v 1.84 1999/05/26 19:16:30 thorpej Exp $ */ /* * Copyright (c) 1988 University of Utah. @@ -252,19 +252,20 @@ cpu_startup() * limits the number of processes exec'ing at any time. */ exec_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - 16*NCARGS, TRUE, FALSE, NULL); + 16*NCARGS, VM_MAP_PAGEABLE, FALSE, NULL); /* * Allocate a submap for physio */ phys_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - VM_PHYS_SIZE, TRUE, FALSE, NULL); + VM_PHYS_SIZE, 0, FALSE, NULL); /* * Finally, allocate mbuf cluster submap. */ mb_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - nmbclusters * mclbytes, FALSE, FALSE, NULL); + nmbclusters * mclbytes, VM_MAP_INTRSAFE, + FALSE, NULL); /* * Tell the VM system that page 0 isn't mapped. diff --git a/sys/arch/atari/atari/pmap.c b/sys/arch/atari/atari/pmap.c index db9deb7ffb4d..4b154b6e23fc 100644 --- a/sys/arch/atari/atari/pmap.c +++ b/sys/arch/atari/atari/pmap.c @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.44 1999/04/22 04:24:52 chs Exp $ */ +/* $NetBSD: pmap.c,v 1.45 1999/05/26 19:16:30 thorpej Exp $ */ /* * Copyright (c) 1991 Regents of the University of California. @@ -579,7 +579,7 @@ pmap_init() } else s = maxproc * ATARI_UPTSIZE; - pt_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, TRUE, + pt_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, VM_MAP_PAGEABLE, TRUE, &pt_map_store); #ifdef DEBUG diff --git a/sys/arch/bebox/bebox/machdep.c b/sys/arch/bebox/bebox/machdep.c index 1ee2bd19642e..c56267a22f51 100644 --- a/sys/arch/bebox/bebox/machdep.c +++ b/sys/arch/bebox/bebox/machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.37 1999/05/20 08:21:43 lukem Exp $ */ +/* $NetBSD: machdep.c,v 1.38 1999/05/26 19:16:30 thorpej Exp $ */ /* * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -530,13 +530,13 @@ cpu_startup() * limits the number of processes exec'ing at any time. */ exec_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - 16*NCARGS, TRUE, FALSE, NULL); + 16*NCARGS, VM_MAP_PAGEABLE, FALSE, NULL); /* * Allocate a submap for physio */ phys_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - VM_PHYS_SIZE, TRUE, FALSE, NULL); + VM_PHYS_SIZE, 0, FALSE, NULL); /* * No need to allocate an mbuf cluster submap. Mbuf clusters diff --git a/sys/arch/hp300/hp300/machdep.c b/sys/arch/hp300/hp300/machdep.c index 164cee207a09..90758df060af 100644 --- a/sys/arch/hp300/hp300/machdep.c +++ b/sys/arch/hp300/hp300/machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.126 1999/05/20 08:21:44 lukem Exp $ */ +/* $NetBSD: machdep.c,v 1.127 1999/05/26 19:16:30 thorpej Exp $ */ /* * Copyright (c) 1988 University of Utah. @@ -340,19 +340,20 @@ cpu_startup() * limits the number of processes exec'ing at any time. */ exec_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - 16*NCARGS, TRUE, FALSE, NULL); + 16*NCARGS, VM_MAP_PAGEABLE, FALSE, NULL); /* * Allocate a submap for physio */ phys_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - VM_PHYS_SIZE, TRUE, FALSE, NULL); + VM_PHYS_SIZE, 0, FALSE, NULL); /* * Finally, allocate mbuf cluster submap. */ mb_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - nmbclusters * mclbytes, FALSE, FALSE, NULL); + nmbclusters * mclbytes, VM_MAP_INTRSAFE, + FALSE, NULL); /* * Initialize callouts diff --git a/sys/arch/hp300/hp300/pmap.c b/sys/arch/hp300/hp300/pmap.c index 26575c23b051..745fa50fa134 100644 --- a/sys/arch/hp300/hp300/pmap.c +++ b/sys/arch/hp300/hp300/pmap.c @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.73 1999/04/22 04:24:53 chs Exp $ */ +/* $NetBSD: pmap.c,v 1.74 1999/05/26 19:16:30 thorpej Exp $ */ /* * Copyright (c) 1991, 1993 @@ -481,8 +481,8 @@ pmap_init() * Allocate the segment table map and the page table map. */ s = maxproc * HP_STSIZE; - st_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, TRUE, - FALSE, &st_map_store); + st_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, 0, FALSE, + &st_map_store); addr = HP_PTBASE; if ((HP_PTMAXSIZE / HP_MAX_PTSIZE) < maxproc) { @@ -496,7 +496,7 @@ pmap_init() maxproc = (HP_PTMAXSIZE / HP_MAX_PTSIZE); } else s = (maxproc * HP_MAX_PTSIZE); - pt_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, TRUE, + pt_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, VM_MAP_PAGEABLE, TRUE, &pt_map_store); #if defined(M68040) diff --git a/sys/arch/i386/i386/machdep.c b/sys/arch/i386/i386/machdep.c index a99edea648de..7aec7ba3430d 100644 --- a/sys/arch/i386/i386/machdep.c +++ b/sys/arch/i386/i386/machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.357 1999/05/25 23:30:27 thorpej Exp $ */ +/* $NetBSD: machdep.c,v 1.358 1999/05/26 19:16:31 thorpej Exp $ */ /*- * Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc. @@ -441,19 +441,19 @@ cpu_startup() * limits the number of processes exec'ing at any time. */ exec_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - 16*NCARGS, TRUE, FALSE, NULL); + 16*NCARGS, VM_MAP_PAGEABLE, FALSE, NULL); /* * Allocate a submap for physio */ phys_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - VM_PHYS_SIZE, TRUE, FALSE, NULL); + VM_PHYS_SIZE, 0, FALSE, NULL); /* * Finally, allocate mbuf cluster submap. */ mb_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - nmbclusters * mclbytes, FALSE, FALSE, NULL); + nmbclusters * mclbytes, VM_MAP_INTRSAFE, FALSE, NULL); /* * Initialize callouts diff --git a/sys/arch/mac68k/mac68k/machdep.c b/sys/arch/mac68k/mac68k/machdep.c index fe58dc7c799d..f4f780bd3a0e 100644 --- a/sys/arch/mac68k/mac68k/machdep.c +++ b/sys/arch/mac68k/mac68k/machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.234 1999/05/24 18:40:48 thorpej Exp $ */ +/* $NetBSD: machdep.c,v 1.235 1999/05/26 19:16:31 thorpej Exp $ */ /* * Copyright (c) 1988 University of Utah. @@ -429,19 +429,19 @@ cpu_startup(void) * limits the number of processes exec'ing at any time. */ exec_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - 16 * NCARGS, TRUE, FALSE, NULL); + 16 * NCARGS, VM_MAP_PAGEABLE, FALSE, NULL); /* * Allocate a submap for physio */ phys_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - VM_PHYS_SIZE, TRUE, FALSE, NULL); + VM_PHYS_SIZE, 0, FALSE, NULL); /* * Finally, allocate mbuf cluster submap. */ mb_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - nmbclusters * mclbytes, FALSE, FALSE, NULL); + nmbclusters * mclbytes, VM_MAP_INTRSAFE, FALSE, NULL); /* * Initialize callouts diff --git a/sys/arch/mac68k/mac68k/pmap.c b/sys/arch/mac68k/mac68k/pmap.c index 8c1ff279e378..b859cb3a0ece 100644 --- a/sys/arch/mac68k/mac68k/pmap.c +++ b/sys/arch/mac68k/mac68k/pmap.c @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.56 1999/05/02 17:23:07 scottr Exp $ */ +/* $NetBSD: pmap.c,v 1.57 1999/05/26 19:16:32 thorpej Exp $ */ /* * Copyright (c) 1991, 1993 @@ -474,7 +474,7 @@ pmap_init() * Allocate the segment table map and the page table map. */ s = maxproc * MAC_STSIZE; - st_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, TRUE, + st_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, 0, FALSE, &st_map_store); addr = MAC_PTBASE; @@ -489,7 +489,7 @@ pmap_init() maxproc = (MAC_PTMAXSIZE / MAC_MAX_PTSIZE); } else s = (maxproc * MAC_MAX_PTSIZE); - pt_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, TRUE, + pt_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, VM_MAP_PAGEABLE, TRUE, &pt_map_store); #if defined(M68040) diff --git a/sys/arch/macppc/macppc/machdep.c b/sys/arch/macppc/macppc/machdep.c index c4ebc017d764..691b7a3865da 100644 --- a/sys/arch/macppc/macppc/machdep.c +++ b/sys/arch/macppc/macppc/machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.46 1999/05/20 08:21:45 lukem Exp $ */ +/* $NetBSD: machdep.c,v 1.47 1999/05/26 19:16:32 thorpej Exp $ */ /* * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -536,13 +536,13 @@ cpu_startup() * limits the number of processes exec'ing at any time. */ exec_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - 16*NCARGS, TRUE, FALSE, NULL); + 16*NCARGS, VM_MAP_PAGEABLE, FALSE, NULL); /* * Allocate a submap for physio */ phys_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - VM_PHYS_SIZE, TRUE, FALSE, NULL); + VM_PHYS_SIZE, 0, FALSE, NULL); /* * No need to allocate an mbuf cluster submap. Mbuf clusters diff --git a/sys/arch/mvme68k/mvme68k/machdep.c b/sys/arch/mvme68k/mvme68k/machdep.c index 7785d2047911..194d77e63734 100644 --- a/sys/arch/mvme68k/mvme68k/machdep.c +++ b/sys/arch/mvme68k/mvme68k/machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.56 1999/05/20 08:21:45 lukem Exp $ */ +/* $NetBSD: machdep.c,v 1.57 1999/05/26 19:16:32 thorpej Exp $ */ /* * Copyright (c) 1988 University of Utah. @@ -444,18 +444,19 @@ cpu_startup() * limits the number of processes exec'ing at any time. */ exec_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - 16*NCARGS, TRUE, FALSE, NULL); + 16*NCARGS, VM_MAP_PAGEABLE, FALSE, NULL); /* * Allocate a submap for physio */ phys_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - VM_PHYS_SIZE, TRUE, FALSE, NULL); + VM_PHYS_SIZE, 0, FALSE, NULL); /* * Finally, allocate mbuf cluster submap. */ mb_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - nmbclusters * mclbytes, FALSE, FALSE, NULL); + nmbclusters * mclbytes, VM_MAP_INTRSAFE, + FALSE, NULL); /* * Initialize callouts diff --git a/sys/arch/mvme68k/mvme68k/pmap.c b/sys/arch/mvme68k/mvme68k/pmap.c index 58b0dc39325a..49dd6b77579a 100644 --- a/sys/arch/mvme68k/mvme68k/pmap.c +++ b/sys/arch/mvme68k/mvme68k/pmap.c @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.32 1999/04/22 04:24:53 chs Exp $ */ +/* $NetBSD: pmap.c,v 1.33 1999/05/26 19:16:32 thorpej Exp $ */ /* * Copyright (c) 1991, 1993 @@ -460,7 +460,7 @@ pmap_init() * Allocate the segment table map and the page table map. */ s = maxproc * HP_STSIZE; - st_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, TRUE, + st_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, 0, FALSE, &st_map_store); addr = HP_PTBASE; @@ -475,7 +475,7 @@ pmap_init() maxproc = (HP_PTMAXSIZE / HP_MAX_PTSIZE); } else s = (maxproc * HP_MAX_PTSIZE); - pt_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, TRUE, + pt_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, VM_MAP_PAGEABLE, TRUE, &pt_map_store); #if defined(M68040) diff --git a/sys/arch/newsmips/newsmips/machdep.c b/sys/arch/newsmips/newsmips/machdep.c index 5a1902e69496..7ec94335687e 100644 --- a/sys/arch/newsmips/newsmips/machdep.c +++ b/sys/arch/newsmips/newsmips/machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.27 1999/05/20 08:21:45 lukem Exp $ */ +/* $NetBSD: machdep.c,v 1.28 1999/05/26 19:16:33 thorpej Exp $ */ /* * Copyright (c) 1988 University of Utah. @@ -43,7 +43,7 @@ #include /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.27 1999/05/20 08:21:45 lukem Exp $"); +__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.28 1999/05/26 19:16:33 thorpej Exp $"); /* from: Utah Hdr: machdep.c 1.63 91/04/24 */ @@ -400,12 +400,12 @@ cpu_startup() * limits the number of processes exec'ing at any time. */ exec_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - 16 * NCARGS, TRUE, FALSE, NULL); + 16 * NCARGS, VM_MAP_PAGEABLE, FALSE, NULL); /* * Allocate a submap for physio */ phys_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - VM_PHYS_SIZE, TRUE, FALSE, NULL); + VM_PHYS_SIZE, 0, FALSE, NULL); /* * No need to allocate an mbuf cluster submap. Mbuf clusters diff --git a/sys/arch/next68k/next68k/machdep.c b/sys/arch/next68k/next68k/machdep.c index 82e03f768d4b..3199e85ff86e 100644 --- a/sys/arch/next68k/next68k/machdep.c +++ b/sys/arch/next68k/next68k/machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.23 1999/05/20 08:21:45 lukem Exp $ */ +/* $NetBSD: machdep.c,v 1.24 1999/05/26 19:16:33 thorpej Exp $ */ /* * Copyright (c) 1988 University of Utah. @@ -384,18 +384,19 @@ cpu_startup() * limits the number of processes exec'ing at any time. */ exec_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - 16*NCARGS, TRUE, FALSE, NULL); + 16*NCARGS, VM_MAP_PAGEABLE, FALSE, NULL); /* * Allocate a submap for physio */ phys_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - VM_PHYS_SIZE, TRUE, FALSE, NULL); + VM_PHYS_SIZE, 0, FALSE, NULL); /* * Finally, allocate mbuf cluster submap. */ mb_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - nmbclusters * mclbytes, FALSE, FALSE, NULL); + nmbclusters * mclbytes, VM_MAP_INTRSAFE, + FALSE, NULL); /* * Initialize callouts diff --git a/sys/arch/next68k/next68k/pmap.c b/sys/arch/next68k/next68k/pmap.c index 768aa61f06cd..57329d31f1e1 100644 --- a/sys/arch/next68k/next68k/pmap.c +++ b/sys/arch/next68k/next68k/pmap.c @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.13 1999/04/22 04:24:54 chs Exp $ */ +/* $NetBSD: pmap.c,v 1.14 1999/05/26 19:16:33 thorpej Exp $ */ /* * This file was taken from mvme68k/mvme68k/pmap.c @@ -519,7 +519,7 @@ bogons: * Allocate the segment table map and the page table map */ s = maxproc * HP_STSIZE; - st_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, TRUE, + st_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, 0, FALSE, &st_map_store); addr = HP_PTBASE; @@ -534,7 +534,7 @@ bogons: maxproc = (HP_PTMAXSIZE / HP_MAX_PTSIZE); } else s = (maxproc * HP_MAX_PTSIZE); - pt_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, TRUE, + pt_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, VM_MAP_PAGEABLE, TRUE, &pt_map_store); #if defined(M68040) diff --git a/sys/arch/ofppc/ofppc/machdep.c b/sys/arch/ofppc/ofppc/machdep.c index 2b1ecdf3354b..517596f2c362 100644 --- a/sys/arch/ofppc/ofppc/machdep.c +++ b/sys/arch/ofppc/ofppc/machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.40 1999/05/20 08:21:46 lukem Exp $ */ +/* $NetBSD: machdep.c,v 1.41 1999/05/26 19:16:33 thorpej Exp $ */ /* * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -452,13 +452,13 @@ cpu_startup() * limits the number of processes exec'ing at any time. */ exec_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - 16*NCARGS, TRUE, FALSE, NULL); + 16*NCARGS, VM_MAP_PAGEABLE, FALSE, NULL); /* * Allocate a submap for physio */ phys_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - VM_PHYS_SIZE, TRUE, FALSE, NULL); + VM_PHYS_SIZE, 0, FALSE, NULL); /* * No need to allocate an mbuf cluster submap. Mbuf clusters diff --git a/sys/arch/pc532/pc532/machdep.c b/sys/arch/pc532/pc532/machdep.c index d9ba9392c67c..78dc85e5597e 100644 --- a/sys/arch/pc532/pc532/machdep.c +++ b/sys/arch/pc532/pc532/machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.101 1999/05/25 23:31:14 thorpej Exp $ */ +/* $NetBSD: machdep.c,v 1.102 1999/05/26 19:16:33 thorpej Exp $ */ /*- * Copyright (c) 1996 Matthias Pfaller. @@ -282,19 +282,19 @@ cpu_startup() * limits the number of processes exec'ing at any time. */ exec_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - 16*NCARGS, TRUE, FALSE, NULL); + 16*NCARGS, VM_MAP_PAGEABLE, FALSE, NULL); /* * Allocate a submap for physio */ phys_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - VM_PHYS_SIZE, TRUE, FALSE, NULL); + VM_PHYS_SIZE, 0, FALSE, NULL); /* * Finally, allocate mbuf cluster submap. */ mb_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - nmbclusters * mclbytes, FALSE, FALSE, NULL); + nmbclusters * mclbytes, VM_MAP_INTRSAFE, FALSE, NULL); /* * Tell the VM system that writing to kernel text isn't allowed. diff --git a/sys/arch/pmax/pmax/machdep.c b/sys/arch/pmax/pmax/machdep.c index b8bc31f2d0b9..1d8a6c85b87e 100644 --- a/sys/arch/pmax/pmax/machdep.c +++ b/sys/arch/pmax/pmax/machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.145 1999/05/26 04:27:27 nisimura Exp $ */ +/* $NetBSD: machdep.c,v 1.146 1999/05/26 19:16:34 thorpej Exp $ */ /* * Copyright (c) 1988 University of Utah. @@ -43,7 +43,7 @@ #include /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.145 1999/05/26 04:27:27 nisimura Exp $"); +__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.146 1999/05/26 19:16:34 thorpej Exp $"); /* from: Utah Hdr: machdep.c 1.63 91/04/24 */ @@ -539,13 +539,13 @@ cpu_startup() * limits the number of processes exec'ing at any time. */ exec_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - 16 * NCARGS, TRUE, FALSE, NULL); + 16 * NCARGS, VM_MAP_PAGEABLE, FALSE, NULL); /* * Allocate a submap for physio */ phys_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - VM_PHYS_SIZE, TRUE, FALSE, NULL); + VM_PHYS_SIZE, 0, FALSE, NULL); /* * No need to allocate an mbuf cluster submap. Mbuf clusters diff --git a/sys/arch/sparc/sparc/machdep.c b/sys/arch/sparc/sparc/machdep.c index c28fc036468c..2c6f575bf78b 100644 --- a/sys/arch/sparc/sparc/machdep.c +++ b/sys/arch/sparc/sparc/machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.150 1999/05/25 23:14:07 thorpej Exp $ */ +/* $NetBSD: machdep.c,v 1.151 1999/05/26 19:16:34 thorpej Exp $ */ /*- * Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc. @@ -265,7 +265,7 @@ cpu_startup() * limits the number of processes exec'ing at any time. */ exec_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - 16*NCARGS, TRUE, FALSE, NULL); + 16*NCARGS, VM_MAP_PAGEABLE, FALSE, NULL); if (CPU_ISSUN4OR4C) { /* @@ -283,7 +283,7 @@ cpu_startup() * Finally, allocate mbuf cluster submap. */ mb_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - nmbclusters * mclbytes, FALSE, FALSE, NULL); + nmbclusters * mclbytes, VM_MAP_INTRSAFE, FALSE, NULL); /* * Initialize callouts diff --git a/sys/arch/sparc64/sparc64/machdep.c b/sys/arch/sparc64/sparc64/machdep.c index 046744fd20e0..e7e6bea6b923 100644 --- a/sys/arch/sparc64/sparc64/machdep.c +++ b/sys/arch/sparc64/sparc64/machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.41 1999/05/25 23:14:08 thorpej Exp $ */ +/* $NetBSD: machdep.c,v 1.42 1999/05/26 19:16:34 thorpej Exp $ */ /*- * Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc. @@ -281,7 +281,7 @@ cpu_startup() * limits the number of processes exec'ing at any time. */ exec_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - 16*NCARGS, TRUE, FALSE, NULL); + 16*NCARGS, VM_MAP_PAGEABLE, FALSE, NULL); /* * Allocate a map for physio. Others use a submap of the kernel @@ -290,7 +290,7 @@ cpu_startup() */ dvma_base = DVMA_BASE; dvma_end = DVMA_END; - phys_map = uvm_map_create(pmap_kernel(), dvma_base, dvma_end, 1); + phys_map = uvm_map_create(pmap_kernel(), dvma_base, dvma_end, 0); if (phys_map == NULL) panic("unable to create DVMA map"); /* @@ -307,7 +307,7 @@ cpu_startup() * Finally, allocate mbuf cluster submap. */ mb_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - nmbclusters * mclbytes, FALSE, FALSE, NULL); + nmbclusters * mclbytes, VM_MAP_INTRSAFE, FALSE, NULL); /* * Initialize callouts */ diff --git a/sys/arch/sun3/sun3/dvma.c b/sys/arch/sun3/sun3/dvma.c index 02a60bc50ebd..b7beed39b4d9 100644 --- a/sys/arch/sun3/sun3/dvma.c +++ b/sys/arch/sun3/sun3/dvma.c @@ -1,4 +1,4 @@ -/* $NetBSD: dvma.c,v 1.15 1999/03/24 05:51:14 mrg Exp $ */ +/* $NetBSD: dvma.c,v 1.16 1999/05/26 19:16:34 thorpej Exp $ */ /*- * Copyright (c) 1996 The NetBSD Foundation, Inc. @@ -87,7 +87,7 @@ dvma_init() * remainder will be used as the DVMA page pool. */ phys_map = uvm_map_create(pmap_kernel(), - DVMA_MAP_BASE, DVMA_MAP_END, 1); + DVMA_MAP_BASE, DVMA_MAP_END, 0); if (phys_map == NULL) panic("unable to create DVMA map"); diff --git a/sys/arch/sun3/sun3/machdep.c b/sys/arch/sun3/sun3/machdep.c index cbb22d7e376c..8e761d97963e 100644 --- a/sys/arch/sun3/sun3/machdep.c +++ b/sys/arch/sun3/sun3/machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.130 1999/05/20 08:21:47 lukem Exp $ */ +/* $NetBSD: machdep.c,v 1.131 1999/05/26 19:16:35 thorpej Exp $ */ /* * Copyright (c) 1994, 1995 Gordon W. Ross @@ -278,7 +278,7 @@ cpu_startup() * limits the number of processes exec'ing at any time. */ exec_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - 16*NCARGS, TRUE, FALSE, NULL); + 16*NCARGS, VM_MAP_PAGEABLE, FALSE, NULL); /* * We don't use a submap for physio, and use a separate map @@ -291,7 +291,8 @@ cpu_startup() * Finally, allocate mbuf cluster submap. */ mb_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - nmbclusters * mclbytes, FALSE, FALSE, NULL); + nmbclusters * mclbytes, VM_MAP_INTRSAFE, + FALSE, NULL); /* * Initialize callouts diff --git a/sys/arch/sun3/sun3x/machdep.c b/sys/arch/sun3/sun3x/machdep.c index f2a49b5e62ae..a2e0ae3b1f2b 100644 --- a/sys/arch/sun3/sun3x/machdep.c +++ b/sys/arch/sun3/sun3x/machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.50 1999/05/20 08:21:47 lukem Exp $ */ +/* $NetBSD: machdep.c,v 1.51 1999/05/26 19:16:35 thorpej Exp $ */ /* * Copyright (c) 1988 University of Utah. @@ -273,7 +273,7 @@ cpu_startup() * limits the number of processes exec'ing at any time. */ exec_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - 16*NCARGS, TRUE, FALSE, NULL); + 16*NCARGS, VM_MAP_PAGEABLE, FALSE, NULL); /* * We don't use a submap for physio, and use a separate map @@ -286,7 +286,8 @@ cpu_startup() * Finally, allocate mbuf cluster submap. */ mb_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - nmbclusters * mclbytes, FALSE, FALSE, NULL); + nmbclusters * mclbytes, VM_MAP_INTRSAFE, + FALSE, NULL); /* * Initialize callouts diff --git a/sys/arch/vax/vax/machdep.c b/sys/arch/vax/vax/machdep.c index 08d30c72bf6d..254ed6d8e571 100644 --- a/sys/arch/vax/vax/machdep.c +++ b/sys/arch/vax/vax/machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.83 1999/05/20 08:21:47 lukem Exp $ */ +/* $NetBSD: machdep.c,v 1.84 1999/05/26 19:16:35 thorpej Exp $ */ /* * Copyright (c) 1994, 1998 Ludd, University of Lule}, Sweden. @@ -242,14 +242,14 @@ cpu_startup() * the number of processes exec'ing at any time. */ exec_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - 16 * NCARGS, TRUE, FALSE, NULL); + 16 * NCARGS, VM_MAP_PAGEABLE, FALSE, NULL); #if VAX410 || VAX43 /* * Allocate a submap for physio */ phys_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - VM_PHYS_SIZE, TRUE, FALSE, NULL); + VM_PHYS_SIZE, 0, FALSE, NULL); #endif /* * Initialize callouts diff --git a/sys/arch/vax/vax/pmap.c b/sys/arch/vax/vax/pmap.c index 88d6667cbb06..f05425304a2d 100644 --- a/sys/arch/vax/vax/pmap.c +++ b/sys/arch/vax/vax/pmap.c @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.64 1999/05/23 23:03:44 ragge Exp $ */ +/* $NetBSD: pmap.c,v 1.65 1999/05/26 19:16:35 thorpej Exp $ */ /* * Copyright (c) 1994, 1998 Ludd, University of Lule}, Sweden. * All rights reserved. @@ -290,7 +290,7 @@ pmap_init() { /* reserve place on SPT for UPT */ pte_map = uvm_km_suballoc(kernel_map, &ptemapstart, &ptemapend, - USRPTSIZE * 4 * maxproc, TRUE, FALSE, &pte_map_store); + USRPTSIZE * 4 * maxproc, 0, FALSE, &pte_map_store); } diff --git a/sys/arch/x68k/x68k/machdep.c b/sys/arch/x68k/x68k/machdep.c index f6c7c7a04de6..ca8afa474352 100644 --- a/sys/arch/x68k/x68k/machdep.c +++ b/sys/arch/x68k/x68k/machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.c,v 1.69 1999/05/20 08:21:48 lukem Exp $ */ +/* $NetBSD: machdep.c,v 1.70 1999/05/26 19:16:35 thorpej Exp $ */ /* * Copyright (c) 1988 University of Utah. @@ -328,19 +328,20 @@ cpu_startup() * limits the number of processes exec'ing at any time. */ exec_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - 16*NCARGS, TRUE, FALSE, NULL); + 16*NCARGS, VM_MAP_PAGEABLE, FALSE, NULL); /* * Allocate a submap for physio */ phys_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - VM_PHYS_SIZE, TRUE, FALSE, NULL); + VM_PHYS_SIZE, 0, FALSE, NULL); /* * Finally, allocate mbuf cluster submap. */ mb_map = uvm_km_suballoc(kernel_map, &minaddr, &maxaddr, - nmbclusters * mclbytes, FALSE, FALSE, NULL); + nmbclusters * mclbytes, VM_MAP_INTRSAFE, + FALSE, NULL); /* * Initialize callouts diff --git a/sys/arch/x68k/x68k/pmap.c b/sys/arch/x68k/x68k/pmap.c index 2bf54b958fed..f4e5bdaba46c 100644 --- a/sys/arch/x68k/x68k/pmap.c +++ b/sys/arch/x68k/x68k/pmap.c @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.34 1999/05/21 15:32:38 minoura Exp $ */ +/* $NetBSD: pmap.c,v 1.35 1999/05/26 19:16:36 thorpej Exp $ */ /* * Copyright (c) 1991, 1993 @@ -486,8 +486,8 @@ pmap_init() * Allocate the segment table map and the page table map. */ s = maxproc * X68K_STSIZE; - st_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, TRUE, - FALSE, &st_map_store); + st_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, 0, FALSE, + &st_map_store); addr = X68K_PTBASE; if ((X68K_PTMAXSIZE / X68K_MAX_PTSIZE) < maxproc) { @@ -501,7 +501,7 @@ pmap_init() maxproc = (X68K_PTMAXSIZE / X68K_MAX_PTSIZE); } else s = (maxproc * X68K_MAX_PTSIZE); - pt_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, TRUE, + pt_map = uvm_km_suballoc(kernel_map, &addr, &addr2, s, VM_MAP_PAGEABLE, TRUE, &pt_map_store); #if defined(M68040) || defined(M68060) diff --git a/sys/kern/kern_malloc.c b/sys/kern/kern_malloc.c index b115ea378051..882e8f85d75a 100644 --- a/sys/kern/kern_malloc.c +++ b/sys/kern/kern_malloc.c @@ -1,4 +1,4 @@ -/* $NetBSD: kern_malloc.c,v 1.41 1999/03/24 05:51:23 mrg Exp $ */ +/* $NetBSD: kern_malloc.c,v 1.42 1999/05/26 19:16:36 thorpej Exp $ */ /* * Copyright (c) 1996 Christopher G. Demetriou. All rights reserved. @@ -627,7 +627,7 @@ kmeminit() (vsize_t)(npg * sizeof(struct kmemusage))); kmem_map = uvm_km_suballoc(kernel_map, (vaddr_t *)&kmembase, (vaddr_t *)&kmemlimit, (vsize_t)(npg * NBPG), - FALSE, FALSE, &kmem_map_store); + VM_MAP_INTRSAFE, FALSE, &kmem_map_store); #ifdef KMEMSTATS for (indx = 0; indx < MINBUCKET + 16; indx++) { if (1 << indx >= CLBYTES) diff --git a/sys/uvm/uvm_extern.h b/sys/uvm/uvm_extern.h index 4914ece39c43..73d607973de4 100644 --- a/sys/uvm/uvm_extern.h +++ b/sys/uvm/uvm_extern.h @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_extern.h,v 1.26 1999/05/26 01:05:24 thorpej Exp $ */ +/* $NetBSD: uvm_extern.h,v 1.27 1999/05/26 19:16:36 thorpej Exp $ */ /* * @@ -302,7 +302,7 @@ void uvm_km_free_wakeup __P((vm_map_t, vaddr_t, vaddr_t uvm_km_kmemalloc __P((vm_map_t, struct uvm_object *, vsize_t, int)); struct vm_map *uvm_km_suballoc __P((vm_map_t, vaddr_t *, - vaddr_t *, vsize_t, boolean_t, + vaddr_t *, vsize_t, int, boolean_t, vm_map_t)); vaddr_t uvm_km_valloc __P((vm_map_t, vsize_t)); vaddr_t uvm_km_valloc_wait __P((vm_map_t, vsize_t)); diff --git a/sys/uvm/uvm_km.c b/sys/uvm/uvm_km.c index 9d3a4246ca08..e8443c0c5eb4 100644 --- a/sys/uvm/uvm_km.c +++ b/sys/uvm/uvm_km.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_km.c,v 1.24 1999/05/25 20:30:08 thorpej Exp $ */ +/* $NetBSD: uvm_km.c,v 1.25 1999/05/26 19:16:36 thorpej Exp $ */ /* * Copyright (c) 1997 Charles D. Cranor and Washington University. @@ -456,7 +456,7 @@ uvm_km_init(start, end) * before installing. */ - uvm_map_setup(&kernel_map_store, base, end, FALSE); + uvm_map_setup(&kernel_map_store, base, end, VM_MAP_PAGEABLE); kernel_map_store.pmap = pmap_kernel(); if (uvm_map(&kernel_map_store, &base, start - base, NULL, UVM_UNKNOWN_OFFSET, UVM_MAPFLAG(UVM_PROT_ALL, UVM_PROT_ALL, @@ -481,11 +481,11 @@ uvm_km_init(start, end) * alloc a new map */ struct vm_map * -uvm_km_suballoc(map, min, max, size, pageable, fixed, submap) +uvm_km_suballoc(map, min, max, size, flags, fixed, submap) struct vm_map *map; vaddr_t *min, *max; /* OUT, OUT */ vsize_t size; - boolean_t pageable; + int flags; boolean_t fixed; struct vm_map *submap; { @@ -515,11 +515,11 @@ uvm_km_suballoc(map, min, max, size, pageable, fixed, submap) pmap_reference(vm_map_pmap(map)); if (submap == NULL) { - submap = uvm_map_create(vm_map_pmap(map), *min, *max, pageable); + submap = uvm_map_create(vm_map_pmap(map), *min, *max, flags); if (submap == NULL) panic("uvm_km_suballoc: unable to create submap"); } else { - uvm_map_setup(submap, *min, *max, pageable); + uvm_map_setup(submap, *min, *max, flags); submap->pmap = vm_map_pmap(map); } diff --git a/sys/uvm/uvm_map.c b/sys/uvm/uvm_map.c index 428f7cbb4a69..112957cf8703 100644 --- a/sys/uvm/uvm_map.c +++ b/sys/uvm/uvm_map.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_map.c,v 1.44 1999/05/26 00:36:53 thorpej Exp $ */ +/* $NetBSD: uvm_map.c,v 1.45 1999/05/26 19:16:36 thorpej Exp $ */ /* * Copyright (c) 1997 Charles D. Cranor and Washington University. @@ -206,11 +206,11 @@ uvm_mapent_alloc(map) UVMHIST_FUNC("uvm_mapent_alloc"); UVMHIST_CALLED(maphist); - if (map->entries_pageable) { + if ((map->flags & VM_MAP_INTRSAFE) == 0 && + map != kernel_map && kernel_map != NULL /* XXX */) { me = pool_get(&uvm_map_entry_pool, PR_WAITOK); me->flags = 0; /* me can't be null, wait ok */ - } else { s = splimp(); /* protect kentry_free list with splimp */ simple_lock(&uvm.kentry_lock); @@ -219,14 +219,14 @@ uvm_mapent_alloc(map) simple_unlock(&uvm.kentry_lock); splx(s); if (!me) - panic("mapent_alloc: out of kernel map entries, check MAX_KMAPENT"); + panic("mapent_alloc: out of static map entries, check MAX_KMAPENT"); me->flags = UVM_MAP_STATIC; } - UVMHIST_LOG(maphist, "<- new entry=0x%x [pageable=%d]", - me, map->entries_pageable, 0, 0); + UVMHIST_LOG(maphist, "<- new entry=0x%x [kentry=%d]", + me, ((map->flags & VM_MAP_INTRSAFE) != 0 || map == kernel_map) + ? TRUE : FALSE, 0, 0); return(me); - } /* @@ -1979,6 +1979,11 @@ uvm_map_pageable(map, start, end, new_pageable) UVMHIST_LOG(maphist,"(map=0x%x,start=0x%x,end=0x%x,new_pageable=0x%x)", map, start, end, new_pageable); +#ifdef DIAGNOSTIC + if ((map->flags & VM_MAP_PAGEABLE) == 0) + panic("uvm_map_pageable: map %p not pageable", map); +#endif + vm_map_lock(map); VM_MAP_RANGE_CHECK(map, start, end); @@ -2377,7 +2382,7 @@ uvmspace_init(vm, pmap, min, max, pageable) memset(vm, 0, sizeof(*vm)); - uvm_map_setup(&vm->vm_map, min, max, pageable); + uvm_map_setup(&vm->vm_map, min, max, pageable ? VM_MAP_PAGEABLE : 0); if (pmap) pmap_reference(pmap); @@ -2488,7 +2493,7 @@ uvmspace_exec(p) * for p */ nvm = uvmspace_alloc(map->min_offset, map->max_offset, - map->entries_pageable); + (map->flags & VM_MAP_PAGEABLE) ? TRUE : FALSE); #if (defined(i386) || defined(pc532)) && !defined(PMAP_NEW) /* @@ -2594,7 +2599,7 @@ uvmspace_fork(vm1) vm_map_lock(old_map); vm2 = uvmspace_alloc(old_map->min_offset, old_map->max_offset, - old_map->entries_pageable); + (old_map->flags & VM_MAP_PAGEABLE) ? TRUE : FALSE); memcpy(&vm2->vm_startcopy, &vm1->vm_startcopy, (caddr_t) (vm1 + 1) - (caddr_t) &vm1->vm_startcopy); new_map = &vm2->vm_map; /* XXX */ diff --git a/sys/uvm/uvm_map.h b/sys/uvm/uvm_map.h index 5249b3aa77b4..b58b21ac4594 100644 --- a/sys/uvm/uvm_map.h +++ b/sys/uvm/uvm_map.h @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_map.h,v 1.13 1999/05/23 06:27:13 mrg Exp $ */ +/* $NetBSD: uvm_map.h,v 1.14 1999/05/26 19:16:36 thorpej Exp $ */ /* * Copyright (c) 1997 Charles D. Cranor and Washington University. @@ -138,7 +138,7 @@ void uvm_map_clip_end __P((vm_map_t, vm_map_entry_t, vaddr_t)); MAP_INLINE vm_map_t uvm_map_create __P((pmap_t, vaddr_t, - vaddr_t, boolean_t)); + vaddr_t, int)); int uvm_map_extract __P((vm_map_t, vaddr_t, vsize_t, vm_map_t, vaddr_t *, int)); vm_map_entry_t uvm_map_findspace __P((vm_map_t, vaddr_t, vsize_t, @@ -157,7 +157,7 @@ int uvm_map_replace __P((vm_map_t, vaddr_t, vaddr_t, int uvm_map_reserve __P((vm_map_t, vsize_t, vaddr_t, vaddr_t *)); void uvm_map_setup __P((vm_map_t, vaddr_t, - vaddr_t, boolean_t)); + vaddr_t, int)); int uvm_map_submap __P((vm_map_t, vaddr_t, vaddr_t, vm_map_t)); MAP_INLINE diff --git a/sys/uvm/uvm_map_i.h b/sys/uvm/uvm_map_i.h index 45fb7af21762..62c57494b39b 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.12 1999/05/03 08:53:24 mrg Exp $ */ +/* $NetBSD: uvm_map_i.h,v 1.13 1999/05/26 19:16:36 thorpej Exp $ */ /* * Copyright (c) 1997 Charles D. Cranor and Washington University. @@ -86,15 +86,15 @@ */ MAP_INLINE vm_map_t -uvm_map_create(pmap, min, max, pageable) +uvm_map_create(pmap, min, max, flags) pmap_t pmap; vaddr_t min, max; - boolean_t pageable; + int flags; { vm_map_t result; MALLOC(result, vm_map_t, sizeof(struct vm_map), M_VMMAP, M_WAITOK); - uvm_map_setup(result, min, max, pageable); + uvm_map_setup(result, min, max, flags); result->pmap = pmap; return(result); } @@ -106,10 +106,10 @@ uvm_map_create(pmap, min, max, pageable) */ MAP_INLINE void -uvm_map_setup(map, min, max, pageable) +uvm_map_setup(map, min, max, flags) vm_map_t map; vaddr_t min, max; - boolean_t pageable; + int flags; { map->header.next = map->header.prev = &map->header; @@ -118,7 +118,7 @@ uvm_map_setup(map, min, max, pageable) map->ref_count = 1; map->min_offset = min; map->max_offset = max; - map->entries_pageable = pageable; + map->flags = flags; map->first_free = &map->header; map->hint = &map->header; map->timestamp = 0; diff --git a/sys/uvm/uvm_pager.c b/sys/uvm/uvm_pager.c index 26002756597b..33b3069d421f 100644 --- a/sys/uvm/uvm_pager.c +++ b/sys/uvm/uvm_pager.c @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_pager.c,v 1.19 1999/05/26 06:42:57 thorpej Exp $ */ +/* $NetBSD: uvm_pager.c,v 1.20 1999/05/26 19:16:36 thorpej Exp $ */ /* * @@ -91,7 +91,7 @@ uvm_pager_init() */ pager_map = uvm_km_suballoc(kernel_map, &uvm.pager_sva, &uvm.pager_eva, - PAGER_MAP_SIZE, FALSE, FALSE, NULL); + PAGER_MAP_SIZE, 0, FALSE, NULL); simple_lock_init(&pager_map_wanted_lock); pager_map_wanted = FALSE; diff --git a/sys/vm/vm_map.h b/sys/vm/vm_map.h index f060636cf543..434f184a503b 100644 --- a/sys/vm/vm_map.h +++ b/sys/vm/vm_map.h @@ -1,4 +1,4 @@ -/* $NetBSD: vm_map.h,v 1.24 1999/04/10 13:52:11 drochner Exp $ */ +/* $NetBSD: vm_map.h,v 1.25 1999/05/26 19:16:37 thorpej Exp $ */ /* * Copyright (c) 1991, 1993 @@ -140,12 +140,16 @@ struct vm_map { vm_map_entry_t hint; /* hint for quick lookups */ simple_lock_data_t hint_lock; /* lock for hint storage */ vm_map_entry_t first_free; /* First free space hint */ - boolean_t entries_pageable; /* map entries pageable?? */ + int flags; /* flags (read-only) */ unsigned int timestamp; /* Version number */ #define min_offset header.start #define max_offset header.end }; +/* vm_map flags */ +#define VM_MAP_PAGEABLE 0x01 /* entries are pageable */ +#define VM_MAP_INTRSAFE 0x02 /* interrupt safe map */ + /* * Macros: vm_map_lock, etc. * Function: