-/* $NetBSD: malloc.c,v 1.3 2004/01/27 20:30:30 jsm Exp $ */
+/* $NetBSD: malloc.c,v 1.4 2004/12/14 00:21:01 nathanw Exp $ */
/*
* Copyright (c) 1983, 1993
#if 0
static char sccsid[] = "@(#)malloc.c 8.1 (Berkeley) 6/4/93";
#else
-__RCSID("$NetBSD: malloc.c,v 1.3 2004/01/27 20:30:30 jsm Exp $");
+__RCSID("$NetBSD: malloc.c,v 1.4 2004/12/14 00:21:01 nathanw Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
-#include <threadlib.h>
+#include <pthread.h>
/*
static u_int nmalloc[NBUCKETS];
#endif
-static mutex_t malloc_mutex = MUTEX_INITIALIZER;
+static pthread_mutex_t malloc_mutex = PTHREAD_MUTEX_INITIALIZER;
static void morecore(int);
static int findbucket(union overhead *, int);
long n;
unsigned amt;
- mutex_lock(&malloc_mutex);
+ pthread_mutex_lock(&malloc_mutex);
/*
* First time malloc is called, setup page size and
n += pagesz;
if (n) {
if (sbrk((int)n) == (void *)-1) {
- mutex_unlock(&malloc_mutex);
+ pthread_mutex_unlock(&malloc_mutex);
return (NULL);
}
}
if ((op = nextf[bucket]) == NULL) {
morecore(bucket);
if ((op = nextf[bucket]) == NULL) {
- mutex_unlock(&malloc_mutex);
+ pthread_mutex_unlock(&malloc_mutex);
return (NULL);
}
}
#ifdef MSTATS
nmalloc[bucket]++;
#endif
- mutex_unlock(&malloc_mutex);
+ pthread_mutex_unlock(&malloc_mutex);
#ifdef RCHECK
/*
* Record allocated size of block and
#endif
size = op->ov_index;
ASSERT(size < NBUCKETS);
- mutex_lock(&malloc_mutex);
+ pthread_mutex_lock(&malloc_mutex);
op->ov_next = nextf[(unsigned int)size];/* also clobbers ov_magic */
nextf[(unsigned int)size] = op;
#ifdef MSTATS
nmalloc[(size_t)size]--;
#endif
- mutex_unlock(&malloc_mutex);
+ pthread_mutex_unlock(&malloc_mutex);
}
/*
return (NULL);
}
op = (union overhead *)(void *)((caddr_t)cp - sizeof (union overhead));
- mutex_lock(&malloc_mutex);
+ pthread_mutex_lock(&malloc_mutex);
if (op->ov_magic == MAGIC) {
was_alloced++;
i = op->ov_index;
op->ov_size = (nbytes + RSLOP - 1) & ~(RSLOP - 1);
*(u_short *)((caddr_t)(op + 1) + op->ov_size) = RMAGIC;
#endif
- mutex_unlock(&malloc_mutex);
+ pthread_mutex_unlock(&malloc_mutex);
return (cp);
}
free(cp);
#endif
}
- mutex_unlock(&malloc_mutex);
+ pthread_mutex_unlock(&malloc_mutex);
if ((res = malloc(nbytes)) == NULL) {
#ifdef _REENT
free(cp);