summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/kern/kern_malloc.c23
-rw-r--r--sys/sys/malloc.h13
2 files changed, 23 insertions, 13 deletions
diff --git a/sys/kern/kern_malloc.c b/sys/kern/kern_malloc.c
index ed2c7c6..6964dde 100644
--- a/sys/kern/kern_malloc.c
+++ b/sys/kern/kern_malloc.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)kern_malloc.c 8.3 (Berkeley) 1/4/94
- * $Id: kern_malloc.c,v 1.28 1997/08/05 00:01:23 dyson Exp $
+ * $Id: kern_malloc.c,v 1.29 1997/09/02 20:05:39 bde Exp $
*/
#include <sys/param.h>
@@ -52,11 +52,22 @@
static void kmeminit __P((void *));
SYSINIT(kmem, SI_SUB_KMEM, SI_ORDER_FIRST, kmeminit, NULL)
-static struct kmembuckets bucket[MINBUCKET + 16];
-struct kmemstats kmemstats[M_LAST];
-struct kmemusage *kmemusage;
-char *kmembase, *kmemlimit;
-char *memname[] = INITKMEMNAMES;
+#if defined(KMEMSTATS) || defined(DIAGNOSTIC)
+#define MAYBE_STATIC static
+#else
+#define MAYBE_STATIC
+#endif
+
+MAYBE_STATIC struct kmembuckets bucket[MINBUCKET + 16];
+#ifdef KMEMSTATS
+static struct kmemstats kmemstats[M_LAST];
+#endif
+MAYBE_STATIC struct kmemusage *kmemusage;
+MAYBE_STATIC char *kmembase;
+static char *kmemlimit;
+#if defined(KMEMSTATS) || defined(DIAGNOSTIC)
+static char *memname[] = INITKMEMNAMES;
+#endif
#ifdef DIAGNOSTIC
/*
diff --git a/sys/sys/malloc.h b/sys/sys/malloc.h
index 1895b45..7758629 100644
--- a/sys/sys/malloc.h
+++ b/sys/sys/malloc.h
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)malloc.h 8.5 (Berkeley) 5/3/95
- * $Id: malloc.h,v 1.22 1997/08/05 00:01:43 dyson Exp $
+ * $Id: malloc.h,v 1.23 1997/08/16 19:16:10 wollman Exp $
*/
#ifndef _SYS_MALLOC_H_
@@ -322,7 +322,7 @@ struct kmembuckets {
#define FREE(addr, type) free((addr), type)
#else /* do not collect statistics */
-#define MALLOC(space, cast, size, type, flags) { \
+#define MALLOC(space, cast, size, type, flags) do { \
register struct kmembuckets *kbp = &bucket[BUCKETINDX(size)]; \
long s = splimp(); \
if (kbp->kb_next == NULL) { \
@@ -332,9 +332,9 @@ struct kmembuckets {
kbp->kb_next = *(caddr_t *)(space); \
} \
splx(s); \
-}
+} while (0)
-#define FREE(addr, type) { \
+#define FREE(addr, type) do { \
register struct kmembuckets *kbp; \
register struct kmemusage *kup = btokup(addr); \
long s = splimp(); \
@@ -350,13 +350,12 @@ struct kmembuckets {
kbp->kb_last = (caddr_t)(addr); \
} \
splx(s); \
-}
-#endif /* do not collect statistics */
+} while (0)
-extern struct kmemstats kmemstats[];
extern struct kmemusage *kmemusage;
extern char *kmembase;
extern struct kmembuckets bucket[];
+#endif /* do not collect statistics */
void *contigmalloc __P((unsigned long size, int type, int flags,
unsigned long low, unsigned long high,
OpenPOWER on IntegriCloud