Module Name: src
Committed By: pooka
Date: Sun Sep 13 18:45:12 UTC 2009
Modified Files:
src/common/include/prop: proplib.h
src/common/lib/libprop: prop_kern.c prop_object_impl.h
src/sys/compat/sa: compat_sa.c
src/sys/dev: rnd.c
src/sys/dev/ata: ata.c
src/sys/kern: init_main.c kern_lwp.c kern_malloc.c kern_malloc_debug.c
kern_time.c subr_pool.c
src/sys/netbt: bt_proto.c l2cap.h l2cap_misc.c rfcomm.h
rfcomm_session.c
src/sys/netinet: igmp.c
src/sys/sys: malloc.h pool.h savar.h
src/sys/uvm: uvm_aobj.c uvm_swap.c
Log Message:
Wipe out the last vestiges of POOL_INIT with one swift stroke. In
most cases, use a proper constructor. For proplib, give a local
equivalent of POOL_INIT for the kernel object implementation. This
way the code structure can be preserved, and a local link set is
not hazardous anyway (unless proplib is split to several modules,
but that'll be the day).
tested by booting a kernel in qemu and compile-testing i386/ALL
To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/common/include/prop/proplib.h
cvs rdiff -u -r1.9 -r1.10 src/common/lib/libprop/prop_kern.c
cvs rdiff -u -r1.29 -r1.30 src/common/lib/libprop/prop_object_impl.h
cvs rdiff -u -r1.10 -r1.11 src/sys/compat/sa/compat_sa.c
cvs rdiff -u -r1.74 -r1.75 src/sys/dev/rnd.c
cvs rdiff -u -r1.106 -r1.107 src/sys/dev/ata/ata.c
cvs rdiff -u -r1.398 -r1.399 src/sys/kern/init_main.c
cvs rdiff -u -r1.132 -r1.133 src/sys/kern/kern_lwp.c
cvs rdiff -u -r1.126 -r1.127 src/sys/kern/kern_malloc.c
cvs rdiff -u -r1.20 -r1.21 src/sys/kern/kern_malloc_debug.c
cvs rdiff -u -r1.160 -r1.161 src/sys/kern/kern_time.c
cvs rdiff -u -r1.173 -r1.174 src/sys/kern/subr_pool.c
cvs rdiff -u -r1.11 -r1.12 src/sys/netbt/bt_proto.c
cvs rdiff -u -r1.8 -r1.9 src/sys/netbt/l2cap.h src/sys/netbt/rfcomm.h
cvs rdiff -u -r1.6 -r1.7 src/sys/netbt/l2cap_misc.c
cvs rdiff -u -r1.14 -r1.15 src/sys/netbt/rfcomm_session.c
cvs rdiff -u -r1.49 -r1.50 src/sys/netinet/igmp.c
cvs rdiff -u -r1.104 -r1.105 src/sys/sys/malloc.h
cvs rdiff -u -r1.64 -r1.65 src/sys/sys/pool.h
cvs rdiff -u -r1.28 -r1.29 src/sys/sys/savar.h
cvs rdiff -u -r1.106 -r1.107 src/sys/uvm/uvm_aobj.c
cvs rdiff -u -r1.145 -r1.146 src/sys/uvm/uvm_swap.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/common/include/prop/proplib.h
diff -u src/common/include/prop/proplib.h:1.6 src/common/include/prop/proplib.h:1.7
--- src/common/include/prop/proplib.h:1.6 Mon Apr 28 20:22:51 2008
+++ src/common/include/prop/proplib.h Sun Sep 13 18:45:10 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: proplib.h,v 1.6 2008/04/28 20:22:51 martin Exp $ */
+/* $NetBSD: proplib.h,v 1.7 2009/09/13 18:45:10 pooka Exp $ */
/*-
* Copyright (c) 2006 The NetBSD Foundation, Inc.
@@ -43,4 +43,8 @@
#include <prop/plistref.h>
+#ifdef _KERNEL
+void prop_kern_init(void);
+#endif
+
#endif /* _PROPLIB_PROPLIB_H_ */
Index: src/common/lib/libprop/prop_kern.c
diff -u src/common/lib/libprop/prop_kern.c:1.9 src/common/lib/libprop/prop_kern.c:1.10
--- src/common/lib/libprop/prop_kern.c:1.9 Mon Apr 28 20:22:53 2008
+++ src/common/lib/libprop/prop_kern.c Sun Sep 13 18:45:10 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: prop_kern.c,v 1.9 2008/04/28 20:22:53 martin Exp $ */
+/* $NetBSD: prop_kern.c,v 1.10 2009/09/13 18:45:10 pooka Exp $ */
/*-
* Copyright (c) 2006 The NetBSD Foundation, Inc.
@@ -224,12 +224,27 @@
#include <sys/systm.h>
#include <sys/proc.h>
#include <sys/resource.h>
+#include <sys/pool.h>
#include <uvm/uvm.h>
+#include "prop_object_impl.h"
+
/* Arbitrary limit ioctl input to 64KB */
unsigned int prop_object_copyin_limit = 65536;
+/* initialize proplib for use in the kernel */
+void
+prop_kern_init(void)
+{
+ __link_set_decl(prop_linkpools, struct prop_pool_init);
+ struct prop_pool_init * const *pi;
+
+ __link_set_foreach(pi, prop_linkpools)
+ pool_init((*pi)->pp, (*pi)->size, 0, 0, 0, (*pi)->wchan,
+ &pool_allocator_nointr, IPL_NONE);
+}
+
static int
_prop_object_copyin_ioctl(const struct plistref *pref, const prop_type_t type,
const u_long cmd, prop_object_t *objp)
Index: src/common/lib/libprop/prop_object_impl.h
diff -u src/common/lib/libprop/prop_object_impl.h:1.29 src/common/lib/libprop/prop_object_impl.h:1.30
--- src/common/lib/libprop/prop_object_impl.h:1.29 Sat Jan 3 18:31:34 2009
+++ src/common/lib/libprop/prop_object_impl.h Sun Sep 13 18:45:10 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: prop_object_impl.h,v 1.29 2009/01/03 18:31:34 pooka Exp $ */
+/* $NetBSD: prop_object_impl.h,v 1.30 2009/09/13 18:45:10 pooka Exp $ */
/*-
* Copyright (c) 2006 The NetBSD Foundation, Inc.
@@ -263,8 +263,17 @@
#define _PROP_POOL_GET(p) pool_get(&(p), PR_WAITOK)
#define _PROP_POOL_PUT(p, v) pool_put(&(p), (v))
-#define _PROP_POOL_INIT(p, s, d) \
- POOL_INIT(p, s, 0, 0, 0, d, &pool_allocator_nointr, IPL_NONE);
+struct prop_pool_init {
+ struct pool *pp;
+ size_t size;
+ const char *wchan;
+};
+#define _PROP_POOL_INIT(pp, size, wchan) \
+struct pool pp; \
+static const struct prop_pool_init _link_ ## pp[1] = { \
+ { &pp, size, wchan } \
+}; \
+__link_set_add_rodata(prop_linkpools, _link_ ## pp);
#define _PROP_MALLOC_DEFINE(t, s, l) \
MALLOC_DEFINE(t, s, l);
Index: src/sys/compat/sa/compat_sa.c
diff -u src/sys/compat/sa/compat_sa.c:1.10 src/sys/compat/sa/compat_sa.c:1.11
--- src/sys/compat/sa/compat_sa.c:1.10 Thu Apr 16 07:42:28 2009
+++ src/sys/compat/sa/compat_sa.c Sun Sep 13 18:45:10 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: compat_sa.c,v 1.10 2009/04/16 07:42:28 skrll Exp $ */
+/* $NetBSD: compat_sa.c,v 1.11 2009/09/13 18:45:10 pooka Exp $ */
/*-
* Copyright (c) 2001, 2004, 2005, 2006 The NetBSD Foundation, Inc.
@@ -41,7 +41,7 @@
#include "opt_ktrace.h"
#include "opt_multiprocessor.h"
#include "opt_sa.h"
-__KERNEL_RCSID(0, "$NetBSD: compat_sa.c,v 1.10 2009/04/16 07:42:28 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: compat_sa.c,v 1.11 2009/09/13 18:45:10 pooka Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -82,26 +82,22 @@
/*
* memory pool for sadata structures
*/
-static POOL_INIT(sadata_pool, sizeof(struct sadata), 0, 0, 0, "sadatapl",
- &pool_allocator_nointr, IPL_NONE);
+static struct pool sadata_pool;
/*
* memory pool for pending upcalls
*/
-static POOL_INIT(saupcall_pool, sizeof(struct sadata_upcall), 0, 0, 0,
- "saupcpl", &pool_allocator_nointr, IPL_NONE);
+static struct pool saupcall_pool;
/*
* memory pool for sastack structs
*/
-static POOL_INIT(sastack_pool, sizeof(struct sastack), 0, 0, 0, "sastackpl",
- &pool_allocator_nointr, IPL_NONE);
+static struct pool sastack_pool;
/*
* memory pool for sadata_vp structures
*/
-static POOL_INIT(savp_pool, sizeof(struct sadata_vp), 0, 0, 0, "savppl",
- &pool_allocator_nointr, IPL_NONE);
+static struct pool savp_pool;
static struct sadata_vp *sa_newsavp(struct proc *);
static void sa_freevp(struct proc *, struct sadata *, struct sadata_vp *);
@@ -165,6 +161,20 @@
kmutex_t saupcall_mutex;
SIMPLEQ_HEAD(, sadata_upcall) saupcall_freelist;
+void
+sa_init(void)
+{
+
+ pool_init(&sadata_pool, sizeof(struct sadata), 0, 0, 0, "sadatapl",
+ &pool_allocator_nointr, IPL_NONE);
+ pool_init(&saupcall_pool, sizeof(struct sadata_upcall), 0, 0, 0,
+ "saupcpl", &pool_allocator_nointr, IPL_NONE);
+ pool_init(&sastack_pool, sizeof(struct sastack), 0, 0, 0, "sastackpl",
+ &pool_allocator_nointr, IPL_NONE);
+ pool_init(&savp_pool, sizeof(struct sadata_vp), 0, 0, 0, "savppl",
+ &pool_allocator_nointr, IPL_NONE);
+}
+
/*
* sa_critpath API
* permit other parts of the kernel to make SA_LWP_STATE_{UN,}LOCK calls.
Index: src/sys/dev/rnd.c
diff -u src/sys/dev/rnd.c:1.74 src/sys/dev/rnd.c:1.75
--- src/sys/dev/rnd.c:1.74 Tue Sep 8 20:57:59 2009
+++ src/sys/dev/rnd.c Sun Sep 13 18:45:10 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: rnd.c,v 1.74 2009/09/08 20:57:59 pooka Exp $ */
+/* $NetBSD: rnd.c,v 1.75 2009/09/13 18:45:10 pooka Exp $ */
/*-
* Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rnd.c,v 1.74 2009/09/08 20:57:59 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rnd.c,v 1.75 2009/09/13 18:45:10 pooka Exp $");
#include <sys/param.h>
#include <sys/ioctl.h>
@@ -49,6 +49,7 @@
#include <sys/vnode.h>
#include <sys/pool.h>
#include <sys/kauth.h>
+#include <sys/once.h>
#ifdef __HAVE_CPU_COUNTER
#include <machine/cpu_counter.h>
@@ -117,8 +118,7 @@
/*
* Memory pool for sample buffers
*/
-POOL_INIT(rnd_mempool, sizeof(rnd_sample_t), 0, 0, 0, "rndsample", NULL,
- IPL_VM);
+static struct pool rnd_mempool;
/*
* Our random pool. This is defined here rather than using the general
@@ -268,6 +268,16 @@
return (1);
}
+static int
+rnd_mempool_init(void)
+{
+
+ pool_init(&rnd_mempool, sizeof(rnd_sample_t), 0, 0, 0, "rndsample",
+ NULL, IPL_VM);
+ return 0;
+}
+static ONCE_DECL(rnd_mempoolinit_ctrl);
+
/*
* "Attach" the random device. This is an (almost) empty stub, since
* pseudo-devices don't get attached until after config, after the
@@ -279,6 +289,8 @@
{
u_int32_t c;
+ RUN_ONCE(&rnd_mempoolinit_ctrl, rnd_mempool_init);
+
/* Trap unwary players who don't call rnd_init() early */
KASSERT(rnd_ready);
@@ -816,6 +828,8 @@
{
u_int32_t ts;
+ RUN_ONCE(&rnd_mempoolinit_ctrl, rnd_mempool_init);
+
ts = rnd_counter();
strlcpy(rs->data.name, name, sizeof(rs->data.name));
Index: src/sys/dev/ata/ata.c
diff -u src/sys/dev/ata/ata.c:1.106 src/sys/dev/ata/ata.c:1.107
--- src/sys/dev/ata/ata.c:1.106 Tue May 12 12:10:29 2009
+++ src/sys/dev/ata/ata.c Sun Sep 13 18:45:10 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: ata.c,v 1.106 2009/05/12 12:10:29 cegger Exp $ */
+/* $NetBSD: ata.c,v 1.107 2009/09/13 18:45:10 pooka Exp $ */
/*
* Copyright (c) 1998, 2001 Manuel Bouyer. All rights reserved.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ata.c,v 1.106 2009/05/12 12:10:29 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ata.c,v 1.107 2009/09/13 18:45:10 pooka Exp $");
#include "opt_ata.h"
@@ -50,6 +50,7 @@
#include <sys/simplelock.h>
#include <sys/intr.h>
#include <sys/bus.h>
+#include <sys/once.h>
#include <dev/ata/ataconf.h>
#include <dev/ata/atareg.h>
@@ -78,8 +79,7 @@
#define ATADEBUG_PRINT(args, level)
#endif
-POOL_INIT(ata_xfer_pool, sizeof(struct ata_xfer), 0, 0, 0, "ataspl", NULL,
- IPL_BIO);
+static struct pool ata_xfer_pool;
/*
* A queue of atabus instances, used to ensure the same bus probe order
@@ -429,6 +429,15 @@
return (1);
}
+static int
+atabus_xferpool_init(void)
+{
+
+ pool_init(&ata_xfer_pool, sizeof(struct ata_xfer), 0, 0, 0, "ataspl",
+ NULL, IPL_BIO);
+ return 0;
+}
+
/*
* atabus_attach:
*
@@ -440,6 +449,7 @@
struct atabus_softc *sc = device_private(self);
struct ata_channel *chp = aux;
struct atabus_initq *initq;
+ static ONCE_DECL(poolinit_ctrl);
int error;
sc->sc_chan = chp;
@@ -452,6 +462,8 @@
if (ata_addref(chp))
return;
+ RUN_ONCE(&poolinit_ctrl, atabus_xferpool_init);
+
initq = malloc(sizeof(*initq), M_DEVBUF, M_WAITOK);
initq->atabus_sc = sc;
TAILQ_INSERT_TAIL(&atabus_initq_head, initq, atabus_initq);
Index: src/sys/kern/init_main.c
diff -u src/sys/kern/init_main.c:1.398 src/sys/kern/init_main.c:1.399
--- src/sys/kern/init_main.c:1.398 Thu Sep 3 15:20:08 2009
+++ src/sys/kern/init_main.c Sun Sep 13 18:45:10 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: init_main.c,v 1.398 2009/09/03 15:20:08 pooka Exp $ */
+/* $NetBSD: init_main.c,v 1.399 2009/09/13 18:45:10 pooka Exp $ */
/*-
* Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@@ -97,13 +97,14 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: init_main.c,v 1.398 2009/09/03 15:20:08 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: init_main.c,v 1.399 2009/09/13 18:45:10 pooka Exp $");
#include "opt_ddb.h"
#include "opt_ipsec.h"
#include "opt_modular.h"
#include "opt_ntp.h"
#include "opt_pipe.h"
+#include "opt_sa.h"
#include "opt_syscall_debug.h"
#include "opt_sysv.h"
#include "opt_fileassoc.h"
@@ -195,6 +196,9 @@
#ifdef WAPBL
#include <sys/wapbl.h>
#endif
+#ifdef KERN_SA
+#include <sys/savar.h>
+#endif
#include <net80211/ieee80211_netbsd.h>
#include <sys/syscall.h>
@@ -228,6 +232,8 @@
#include <secmodel/secmodel.h>
+#include <prop/proplib.h>
+
#ifdef COMPAT_50
#include <compat/sys/time.h>
struct timeval50 boottime50;
@@ -311,6 +317,8 @@
uvm_init();
+ prop_kern_init();
+
#if ((NKSYMS > 0) || (NDDB > 0) || (NMODULAR > 0))
ksyms_init();
#endif
@@ -360,6 +368,9 @@
#endif
/* Initialize process and pgrp structures. */
+#ifdef KERN_SA
+ sa_init();
+#endif
procinit();
lwpinit();
Index: src/sys/kern/kern_lwp.c
diff -u src/sys/kern/kern_lwp.c:1.132 src/sys/kern/kern_lwp.c:1.133
--- src/sys/kern/kern_lwp.c:1.132 Fri Jul 10 23:07:54 2009
+++ src/sys/kern/kern_lwp.c Sun Sep 13 18:45:11 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_lwp.c,v 1.132 2009/07/10 23:07:54 dyoung Exp $ */
+/* $NetBSD: kern_lwp.c,v 1.133 2009/09/13 18:45:11 pooka Exp $ */
/*-
* Copyright (c) 2001, 2006, 2007, 2008, 2009 The NetBSD Foundation, Inc.
@@ -210,7 +210,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_lwp.c,v 1.132 2009/07/10 23:07:54 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_lwp.c,v 1.133 2009/09/13 18:45:11 pooka Exp $");
#include "opt_ddb.h"
#include "opt_lockdebug.h"
@@ -243,8 +243,7 @@
struct lwplist alllwp = LIST_HEAD_INITIALIZER(alllwp);
-POOL_INIT(lwp_uc_pool, sizeof(ucontext_t), 0, 0, 0, "lwpucpl",
- &pool_allocator_nointr, IPL_NONE);
+struct pool lwp_uc_pool;
static pool_cache_t lwp_cache;
static specificdata_domain_t lwp_specificdata_domain;
@@ -253,6 +252,8 @@
lwpinit(void)
{
+ pool_init(&lwp_uc_pool, sizeof(ucontext_t), 0, 0, 0, "lwpucpl",
+ &pool_allocator_nointr, IPL_NONE);
lwp_specificdata_domain = specificdata_domain_create();
KASSERT(lwp_specificdata_domain != NULL);
lwp_sys_init();
Index: src/sys/kern/kern_malloc.c
diff -u src/sys/kern/kern_malloc.c:1.126 src/sys/kern/kern_malloc.c:1.127
--- src/sys/kern/kern_malloc.c:1.126 Wed Jan 7 21:06:31 2009
+++ src/sys/kern/kern_malloc.c Sun Sep 13 18:45:11 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_malloc.c,v 1.126 2009/01/07 21:06:31 pooka Exp $ */
+/* $NetBSD: kern_malloc.c,v 1.127 2009/09/13 18:45:11 pooka Exp $ */
/*
* Copyright (c) 1987, 1991, 1993
@@ -66,7 +66,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_malloc.c,v 1.126 2009/01/07 21:06:31 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_malloc.c,v 1.127 2009/09/13 18:45:11 pooka Exp $");
#include <sys/param.h>
#include <sys/proc.h>
@@ -941,6 +941,10 @@
/* Attach all of the statically-linked malloc types. */
__link_set_foreach(ksp, malloc_types)
malloc_type_attach(*ksp);
+
+#ifdef MALLOC_DEBUG
+ debug_malloc_init();
+#endif
}
#ifdef DDB
Index: src/sys/kern/kern_malloc_debug.c
diff -u src/sys/kern/kern_malloc_debug.c:1.20 src/sys/kern/kern_malloc_debug.c:1.21
--- src/sys/kern/kern_malloc_debug.c:1.20 Thu Aug 7 01:40:21 2008
+++ src/sys/kern/kern_malloc_debug.c Sun Sep 13 18:45:11 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_malloc_debug.c,v 1.20 2008/08/07 01:40:21 matt Exp $ */
+/* $NetBSD: kern_malloc_debug.c,v 1.21 2009/09/13 18:45:11 pooka Exp $ */
/*
* Copyright (c) 1999, 2000 Artur Grabowski <[email protected]>
@@ -56,7 +56,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_malloc_debug.c,v 1.20 2008/08/07 01:40:21 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_malloc_debug.c,v 1.21 2009/09/13 18:45:11 pooka Exp $");
#include <sys/param.h>
#include <sys/proc.h>
@@ -111,8 +111,15 @@
int debug_malloc_pages;
int debug_malloc_chunks_on_freelist;
-POOL_INIT(debug_malloc_pool, sizeof(struct debug_malloc_entry), 0, 0, 0,
- "mdbepl", NULL, IPL_VM);
+static struct pool debug_malloc_pool;
+
+void
+debug_malloc_init(void)
+{
+
+ pool_init(&debug_malloc_pool, sizeof(struct debug_malloc_entry),
+ 0, 0, 0, "mdbepl", NULL, IPL_VM);
+}
int
debug_malloc(unsigned long size, struct malloc_type *type, int flags,
Index: src/sys/kern/kern_time.c
diff -u src/sys/kern/kern_time.c:1.160 src/sys/kern/kern_time.c:1.161
--- src/sys/kern/kern_time.c:1.160 Sun Mar 29 19:21:19 2009
+++ src/sys/kern/kern_time.c Sun Sep 13 18:45:11 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_time.c,v 1.160 2009/03/29 19:21:19 christos Exp $ */
+/* $NetBSD: kern_time.c,v 1.161 2009/09/13 18:45:11 pooka Exp $ */
/*-
* Copyright (c) 2000, 2004, 2005, 2007, 2008, 2009 The NetBSD Foundation, Inc.
@@ -61,7 +61,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_time.c,v 1.160 2009/03/29 19:21:19 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_time.c,v 1.161 2009/09/13 18:45:11 pooka Exp $");
#include <sys/param.h>
#include <sys/resourcevar.h>
@@ -93,10 +93,7 @@
static void *timer_sih;
static TAILQ_HEAD(, ptimer) timer_queue;
-POOL_INIT(ptimer_pool, sizeof(struct ptimer), 0, 0, 0, "ptimerpl",
- &pool_allocator_nointr, IPL_NONE);
-POOL_INIT(ptimers_pool, sizeof(struct ptimers), 0, 0, 0, "ptimerspl",
- &pool_allocator_nointr, IPL_NONE);
+struct pool ptimer_pool, ptimers_pool;
/*
* Initialize timekeeping.
@@ -105,7 +102,10 @@
time_init(void)
{
- /* nothing yet */
+ pool_init(&ptimer_pool, sizeof(struct ptimer), 0, 0, 0, "ptimerpl",
+ &pool_allocator_nointr, IPL_NONE);
+ pool_init(&ptimers_pool, sizeof(struct ptimers), 0, 0, 0, "ptimerspl",
+ &pool_allocator_nointr, IPL_NONE);
}
void
Index: src/sys/kern/subr_pool.c
diff -u src/sys/kern/subr_pool.c:1.173 src/sys/kern/subr_pool.c:1.174
--- src/sys/kern/subr_pool.c:1.173 Sat Aug 29 00:09:02 2009
+++ src/sys/kern/subr_pool.c Sun Sep 13 18:45:11 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: subr_pool.c,v 1.173 2009/08/29 00:09:02 rmind Exp $ */
+/* $NetBSD: subr_pool.c,v 1.174 2009/09/13 18:45:11 pooka Exp $ */
/*-
* Copyright (c) 1997, 1999, 2000, 2002, 2007, 2008 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: subr_pool.c,v 1.173 2009/08/29 00:09:02 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: subr_pool.c,v 1.174 2009/09/13 18:45:11 pooka Exp $");
#include "opt_ddb.h"
#include "opt_pool.h"
@@ -587,17 +587,10 @@
pool_subsystem_init(void)
{
struct pool_allocator *pa;
- __link_set_decl(pools, struct link_pool_init);
- struct link_pool_init * const *pi;
mutex_init(&pool_head_lock, MUTEX_DEFAULT, IPL_NONE);
cv_init(&pool_busy, "poolbusy");
- __link_set_foreach(pi, pools)
- pool_init((*pi)->pp, (*pi)->size, (*pi)->align,
- (*pi)->align_offset, (*pi)->flags, (*pi)->wchan,
- (*pi)->palloc, (*pi)->ipl);
-
while ((pa = SLIST_FIRST(&pa_deferinitq)) != NULL) {
KASSERT(pa->pa_backingmapptr != NULL);
KASSERT(*pa->pa_backingmapptr != NULL);
Index: src/sys/netbt/bt_proto.c
diff -u src/sys/netbt/bt_proto.c:1.11 src/sys/netbt/bt_proto.c:1.12
--- src/sys/netbt/bt_proto.c:1.11 Mon Aug 10 18:25:20 2009
+++ src/sys/netbt/bt_proto.c Sun Sep 13 18:45:11 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: bt_proto.c,v 1.11 2009/08/10 18:25:20 plunky Exp $ */
+/* $NetBSD: bt_proto.c,v 1.12 2009/09/13 18:45:11 pooka Exp $ */
/*-
* Copyright (c) 2005 Iain Hibbert.
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bt_proto.c,v 1.11 2009/08/10 18:25:20 plunky Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bt_proto.c,v 1.12 2009/09/13 18:45:11 pooka Exp $");
#include <sys/param.h>
#include <sys/domain.h>
@@ -97,6 +97,7 @@
.pr_flags = (PR_CONNREQUIRED | PR_ATOMIC | PR_LISTEN),
.pr_ctloutput = l2cap_ctloutput,
.pr_usrreq = l2cap_usrreq,
+ .pr_init = l2cap_init,
},
{ /* RFCOMM */
.pr_type = SOCK_STREAM,
@@ -105,6 +106,7 @@
.pr_flags = (PR_CONNREQUIRED | PR_LISTEN | PR_WANTRCVD),
.pr_ctloutput = rfcomm_ctloutput,
.pr_usrreq = rfcomm_usrreq,
+ .pr_init = rfcomm_init,
},
};
Index: src/sys/netbt/l2cap.h
diff -u src/sys/netbt/l2cap.h:1.8 src/sys/netbt/l2cap.h:1.9
--- src/sys/netbt/l2cap.h:1.8 Mon Sep 8 23:36:55 2008
+++ src/sys/netbt/l2cap.h Sun Sep 13 18:45:11 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: l2cap.h,v 1.8 2008/09/08 23:36:55 gmcgarry Exp $ */
+/* $NetBSD: l2cap.h,v 1.9 2009/09/13 18:45:11 pooka Exp $ */
/*-
* Copyright (c) 2005 Iain Hibbert.
@@ -54,7 +54,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: l2cap.h,v 1.8 2008/09/08 23:36:55 gmcgarry Exp $
+ * $Id: l2cap.h,v 1.9 2009/09/13 18:45:11 pooka Exp $
* $FreeBSD: src/sys/netgraph/bluetooth/include/l2cap.h,v 1.4 2005/08/31 18:13:23 emax Exp $
*/
@@ -455,6 +455,7 @@
struct l2cap_req *l2cap_request_lookup(struct hci_link *, uint8_t);
void l2cap_request_free(struct l2cap_req *);
void l2cap_rtx(void *);
+void l2cap_init(void);
/* l2cap_signal.c */
void l2cap_recv_signal(struct mbuf *, struct hci_link *);
Index: src/sys/netbt/rfcomm.h
diff -u src/sys/netbt/rfcomm.h:1.8 src/sys/netbt/rfcomm.h:1.9
--- src/sys/netbt/rfcomm.h:1.8 Mon Sep 8 23:36:55 2008
+++ src/sys/netbt/rfcomm.h Sun Sep 13 18:45:11 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: rfcomm.h,v 1.8 2008/09/08 23:36:55 gmcgarry Exp $ */
+/* $NetBSD: rfcomm.h,v 1.9 2009/09/13 18:45:11 pooka Exp $ */
/*-
* Copyright (c) 2006 Itronix Inc.
@@ -55,7 +55,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: rfcomm.h,v 1.8 2008/09/08 23:36:55 gmcgarry Exp $
+ * $Id: rfcomm.h,v 1.9 2009/09/13 18:45:11 pooka Exp $
* $FreeBSD: src/sys/netgraph/bluetooth/include/ng_btsocket_rfcomm.h,v 1.4 2005/01/11 01:39:53 emax Exp $
*/
@@ -401,6 +401,7 @@
int rfcomm_session_send_frame(struct rfcomm_session *, int, int);
int rfcomm_session_send_uih(struct rfcomm_session *, struct rfcomm_dlc *, int, struct mbuf *);
int rfcomm_session_send_mcc(struct rfcomm_session *, int, uint8_t, void *, int);
+void rfcomm_init(void);
/* rfcomm_socket.c */
int rfcomm_usrreq(struct socket *, int, struct mbuf *, struct mbuf *, struct mbuf *, struct lwp *);
Index: src/sys/netbt/l2cap_misc.c
diff -u src/sys/netbt/l2cap_misc.c:1.6 src/sys/netbt/l2cap_misc.c:1.7
--- src/sys/netbt/l2cap_misc.c:1.6 Thu Apr 24 11:38:37 2008
+++ src/sys/netbt/l2cap_misc.c Sun Sep 13 18:45:11 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: l2cap_misc.c,v 1.6 2008/04/24 11:38:37 ad Exp $ */
+/* $NetBSD: l2cap_misc.c,v 1.7 2009/09/13 18:45:11 pooka Exp $ */
/*-
* Copyright (c) 2005 Iain Hibbert.
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: l2cap_misc.c,v 1.6 2008/04/24 11:38:37 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: l2cap_misc.c,v 1.7 2009/09/13 18:45:11 pooka Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -49,10 +49,7 @@
struct l2cap_channel_list
l2cap_listen_list = LIST_HEAD_INITIALIZER(l2cap_listen_list);
-POOL_INIT(l2cap_req_pool, sizeof(struct l2cap_req), 0, 0, 0, "l2cap_req", NULL,
- IPL_SOFTNET);
-POOL_INIT(l2cap_pdu_pool, sizeof(struct l2cap_pdu), 0, 0, 0, "l2cap_pdu", NULL,
- IPL_SOFTNET);
+struct pool l2cap_req_pool, l2cap_pdu_pool;
const l2cap_qos_t l2cap_default_qos = {
0, /* flags */
@@ -70,6 +67,16 @@
int l2cap_response_timeout = 30; /* seconds */
int l2cap_response_extended_timeout = 180; /* seconds */
+void
+l2cap_init(void)
+{
+
+ pool_init(&l2cap_req_pool, sizeof(struct l2cap_req), 0, 0, 0,
+ "l2cap_req", NULL, IPL_SOFTNET);
+ pool_init(&l2cap_pdu_pool, sizeof(struct l2cap_pdu), 0, 0, 0,
+ "l2cap_pdu", NULL, IPL_SOFTNET);
+}
+
/*
* Set Link Mode on channel
*/
Index: src/sys/netbt/rfcomm_session.c
diff -u src/sys/netbt/rfcomm_session.c:1.14 src/sys/netbt/rfcomm_session.c:1.15
--- src/sys/netbt/rfcomm_session.c:1.14 Wed Aug 6 15:01:24 2008
+++ src/sys/netbt/rfcomm_session.c Sun Sep 13 18:45:11 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: rfcomm_session.c,v 1.14 2008/08/06 15:01:24 plunky Exp $ */
+/* $NetBSD: rfcomm_session.c,v 1.15 2009/09/13 18:45:11 pooka Exp $ */
/*-
* Copyright (c) 2006 Itronix Inc.
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rfcomm_session.c,v 1.14 2008/08/06 15:01:24 plunky Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rfcomm_session.c,v 1.15 2009/09/13 18:45:11 pooka Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -95,8 +95,7 @@
struct rfcomm_session_list
rfcomm_session_listen = LIST_HEAD_INITIALIZER(rfcomm_session_listen);
-POOL_INIT(rfcomm_credit_pool, sizeof(struct rfcomm_credit),
- 0, 0, 0, "rfcomm_credit", NULL, IPL_SOFTNET);
+static struct pool rfcomm_credit_pool;
/*
* RFCOMM System Parameters (see section 5.3)
@@ -152,6 +151,14 @@
#define FCS(f, d) crctable[(f) ^ (d)]
+void
+rfcomm_init(void)
+{
+
+ pool_init(&rfcomm_credit_pool, sizeof(struct rfcomm_credit),
+ 0, 0, 0, "rfcomm_credit", NULL, IPL_SOFTNET);
+}
+
/*
* rfcomm_session_alloc(list, sockaddr)
*
Index: src/sys/netinet/igmp.c
diff -u src/sys/netinet/igmp.c:1.49 src/sys/netinet/igmp.c:1.50
--- src/sys/netinet/igmp.c:1.49 Sun May 4 07:22:14 2008
+++ src/sys/netinet/igmp.c Sun Sep 13 18:45:11 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: igmp.c,v 1.49 2008/05/04 07:22:14 thorpej Exp $ */
+/* $NetBSD: igmp.c,v 1.50 2009/09/13 18:45:11 pooka Exp $ */
/*
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -40,7 +40,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: igmp.c,v 1.49 2008/05/04 07:22:14 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: igmp.c,v 1.50 2009/09/13 18:45:11 pooka Exp $");
#include "opt_mrouting.h"
@@ -68,8 +68,7 @@
#define IP_MULTICASTOPTS 0
-POOL_INIT(igmp_rti_pool, sizeof(struct router_info), 0, 0, 0, "igmppl", NULL,
- IPL_SOFTNET);
+static struct pool igmp_rti_pool;
static percpu_t *igmpstat_percpu;
@@ -150,6 +149,8 @@
igmp_init(void)
{
+ pool_init(&igmp_rti_pool, sizeof(struct router_info), 0, 0, 0,
+ "igmppl", NULL, IPL_SOFTNET);
igmpstat_percpu = percpu_alloc(sizeof(uint64_t) * IGMP_NSTATS);
}
Index: src/sys/sys/malloc.h
diff -u src/sys/sys/malloc.h:1.104 src/sys/sys/malloc.h:1.105
--- src/sys/sys/malloc.h:1.104 Wed Jan 7 21:06:31 2009
+++ src/sys/sys/malloc.h Sun Sep 13 18:45:11 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: malloc.h,v 1.104 2009/01/07 21:06:31 pooka Exp $ */
+/* $NetBSD: malloc.h,v 1.105 2009/09/13 18:45:11 pooka Exp $ */
/*
* Copyright (c) 1987, 1993
@@ -105,6 +105,7 @@
#endif /* MALLOCLOG */
#ifdef MALLOC_DEBUG
+void debug_malloc_init(void);
int debug_malloc(unsigned long, struct malloc_type *, int, void **);
int debug_free(void *, struct malloc_type *);
Index: src/sys/sys/pool.h
diff -u src/sys/sys/pool.h:1.64 src/sys/sys/pool.h:1.65
--- src/sys/sys/pool.h:1.64 Fri Jul 4 16:38:59 2008
+++ src/sys/sys/pool.h Sun Sep 13 18:45:12 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: pool.h,v 1.64 2008/07/04 16:38:59 ad Exp $ */
+/* $NetBSD: pool.h,v 1.65 2009/09/13 18:45:12 pooka Exp $ */
/*-
* Copyright (c) 1997, 1998, 1999, 2000, 2007 The NetBSD Foundation, Inc.
@@ -265,23 +265,6 @@
extern struct pool_allocator pool_allocator_nointr_fullpage;
#endif
-struct link_pool_init { /* same as args to pool_init() */
- struct pool *pp;
- size_t size;
- u_int align;
- u_int align_offset;
- int flags;
- const char *wchan;
- struct pool_allocator *palloc;
- int ipl;
-};
-#define POOL_INIT(pp, size, align, align_offset, flags, wchan, palloc, ipl)\
-struct pool pp; \
-static const struct link_pool_init _link_ ## pp[1] = { \
- { &pp, size, align, align_offset, flags, wchan, palloc, ipl } \
-}; \
-__link_set_add_rodata(pools, _link_ ## pp)
-
void pool_subsystem_init(void);
void pool_init(struct pool *, size_t, u_int, u_int,
Index: src/sys/sys/savar.h
diff -u src/sys/sys/savar.h:1.28 src/sys/sys/savar.h:1.29
--- src/sys/sys/savar.h:1.28 Fri Oct 17 08:16:57 2008
+++ src/sys/sys/savar.h Sun Sep 13 18:45:12 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: savar.h,v 1.28 2008/10/17 08:16:57 cegger Exp $ */
+/* $NetBSD: savar.h,v 1.29 2009/09/13 18:45:12 pooka Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -170,6 +170,8 @@
#define SA_MAXNUMSTACKS 16 /* Maximum number of upcall stacks per VP. */
+void sa_init(void);
+
struct sadata_upcall *sadata_upcall_alloc(int);
void sadata_upcall_free(struct sadata_upcall *);
void sadata_upcall_drain(void);
Index: src/sys/uvm/uvm_aobj.c
diff -u src/sys/uvm/uvm_aobj.c:1.106 src/sys/uvm/uvm_aobj.c:1.107
--- src/sys/uvm/uvm_aobj.c:1.106 Wed Feb 18 13:16:58 2009
+++ src/sys/uvm/uvm_aobj.c Sun Sep 13 18:45:12 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: uvm_aobj.c,v 1.106 2009/02/18 13:16:58 yamt Exp $ */
+/* $NetBSD: uvm_aobj.c,v 1.107 2009/09/13 18:45:12 pooka Exp $ */
/*
* Copyright (c) 1998 Chuck Silvers, Charles D. Cranor and
@@ -43,7 +43,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_aobj.c,v 1.106 2009/02/18 13:16:58 yamt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_aobj.c,v 1.107 2009/09/13 18:45:12 pooka Exp $");
#include "opt_uvmhist.h"
@@ -140,8 +140,7 @@
* uao_swhash_elt_pool: pool of uao_swhash_elt structures
* NOTE: Pages for this pool must not come from a pageable kernel map!
*/
-static POOL_INIT(uao_swhash_elt_pool, sizeof(struct uao_swhash_elt), 0, 0, 0,
- "uaoeltpl", NULL, IPL_VM);
+static struct pool uao_swhash_elt_pool;
static struct pool_cache uvm_aobj_cache;
@@ -552,6 +551,8 @@
mutex_init(&uao_list_lock, MUTEX_DEFAULT, IPL_NONE);
pool_cache_bootstrap(&uvm_aobj_cache, sizeof(struct uvm_aobj), 0, 0,
0, "aobj", NULL, IPL_NONE, NULL, NULL, NULL);
+ pool_init(&uao_swhash_elt_pool, sizeof(struct uao_swhash_elt),
+ 0, 0, 0, "uaoeltpl", NULL, IPL_VM);
}
/*
Index: src/sys/uvm/uvm_swap.c
diff -u src/sys/uvm/uvm_swap.c:1.145 src/sys/uvm/uvm_swap.c:1.146
--- src/sys/uvm/uvm_swap.c:1.145 Sun Mar 1 01:13:14 2009
+++ src/sys/uvm/uvm_swap.c Sun Sep 13 18:45:12 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: uvm_swap.c,v 1.145 2009/03/01 01:13:14 mrg Exp $ */
+/* $NetBSD: uvm_swap.c,v 1.146 2009/09/13 18:45:12 pooka Exp $ */
/*
* Copyright (c) 1995, 1996, 1997, 2009 Matthew R. Green
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_swap.c,v 1.145 2009/03/01 01:13:14 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_swap.c,v 1.146 2009/09/13 18:45:12 pooka Exp $");
#include "fs_nfs.h"
#include "opt_uvmhist.h"
@@ -204,10 +204,7 @@
/*
* We keep a of pool vndbuf's and vndxfer structures.
*/
-POOL_INIT(vndxfer_pool, sizeof(struct vndxfer), 0, 0, 0, "swp vnx", NULL,
- IPL_BIO);
-POOL_INIT(vndbuf_pool, sizeof(struct vndbuf), 0, 0, 0, "swp vnd", NULL,
- IPL_BIO);
+static struct pool vndxfer_pool, vndbuf_pool;
/*
* local variables
@@ -313,6 +310,11 @@
CTLTYPE_INT, "swapout",
SYSCTL_DESCR("Set 0 to disable swapout of kernel stacks"),
NULL, 0, &uvm.swapout_enabled, 0, CTL_VM, CTL_CREATE, CTL_EOL);
+
+ pool_init(&vndxfer_pool, sizeof(struct vndxfer), 0, 0, 0, "swp vnx",
+ NULL, IPL_BIO);
+ pool_init(&vndbuf_pool, sizeof(struct vndbuf), 0, 0, 0, "swp vnd",
+ NULL, IPL_BIO);
}
/*