Fixed staticization. buckets[] was staticized but was still declared

extern in <sys/malloc.h> and it should not have been staticized for
the !(KMEMSTATS || DIAGNOSTIC) case.

Fixed the !(KMEMSTATS || DIAGNOSTIC) case.  The MALLOC() and FREE()
macros are evil, but code generally doesn't allow for this and some code
involving else clauses did not compile.

Finished staticization.
This commit is contained in:
Bruce Evans 1997-09-16 13:52:04 +00:00
parent 514ede0953
commit 043a2f3b8b
2 changed files with 23 additions and 13 deletions

View File

@ -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
/*

View File

@ -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,