Style changes. Inching closer to convergence with OpenBSD.

This commit is contained in:
Poul-Henning Kamp 2003-10-25 12:56:51 +00:00
parent 618d51bbdc
commit ea0ae15a06
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=121500

View file

@ -18,8 +18,8 @@ __FBSDID("$FreeBSD$");
* any good unless you fiddle with the internals of malloc or want
* to catch random pointer corruption as early as possible.
*/
#ifndef MALLOC_MALLOC_EXTRA_SANITY
#undef MALLOC_MALLOC_EXTRA_SANITY
#ifndef MALLOC_EXTRA_SANITY
#undef MALLOC_EXTRA_SANITY
#endif
/*
@ -201,7 +201,7 @@ struct pgfree {
#endif
/* Set when initialization has been done */
static unsigned malloc_started;
static unsigned malloc_started;
/* Recusion flag for public interface. */
static int malloc_active;
@ -233,8 +233,10 @@ static int suicide;
/* always realloc ? */
static int malloc_realloc;
#if defined(MADV_FREE)
/* pass the kernel a hint on free pages ? */
static int malloc_hint = 0;
#endif
/* xmalloc behaviour ? */
static int malloc_xmalloc;
@ -278,8 +280,8 @@ static char *malloc_func;
/* Macro for mmap */
#define MMAP(size) \
mmap(0, (size), PROT_READ|PROT_WRITE, MAP_ANON|MAP_PRIVATE, \
MMAP_FD, 0);
mmap(NULL, (size), PROT_READ|PROT_WRITE, MAP_ANON|MAP_PRIVATE, \
MMAP_FD, (off_t)0);
/*
* Necessary function declarations
@ -335,7 +337,7 @@ map_pages(size_t pages)
if (brk(tail)) {
#ifdef MALLOC_EXTRA_SANITY
wrterror("(ES): map_pages fails.\n");
wrterror("(ES): map_pages fails\n");
#endif /* MALLOC_EXTRA_SANITY */
return (NULL);
}
@ -406,20 +408,19 @@ extend_pgdir(u_long index)
* Initialize the world
*/
static void
malloc_init ()
malloc_init(void)
{
const char *p;
char b[64];
int i, j;
int errnosave;
INIT_MMAP();
int save_errno = errno;
#ifdef __ia64__
malloc_pageshift = 0;
while ((1L << malloc_pageshift) < getpagesize())
malloc_pageshift++;
#endif
INIT_MMAP();
#ifdef MALLOC_EXTRA_SANITY
malloc_junk = 1;
@ -427,15 +428,15 @@ malloc_init ()
for (i = 0; i < 3; i++) {
if (i == 0) {
errnosave = errno;
j = readlink("/etc/malloc.conf", b, sizeof b - 1);
errno = errnosave;
if (j <= 0)
continue;
b[j] = '\0';
p = b;
} else if (i == 1) {
} else if (i == 1 && issetugid() == 0) {
p = getenv("MALLOC_OPTIONS");
} else if (i == 1) {
continue;
} else {
p = _malloc_options;
}
@ -445,8 +446,10 @@ malloc_init ()
case '<': malloc_cache >>= 1; break;
case 'a': malloc_abort = 0; break;
case 'A': malloc_abort = 1; break;
#if defined(MADV_FREE)
case 'h': malloc_hint = 0; break;
case 'H': malloc_hint = 1; break;
#endif
case 'r': malloc_realloc = 0; break;
case 'R': malloc_realloc = 1; break;
case 'j': malloc_junk = 0; break;
@ -464,7 +467,7 @@ malloc_init ()
default:
j = malloc_abort;
malloc_abort = 0;
wrtwarning("unknown char in MALLOC_OPTIONS.\n");
wrtwarning("unknown char in MALLOC_OPTIONS\n");
malloc_abort = j;
break;
}
@ -487,18 +490,11 @@ malloc_init ()
if (malloc_zero)
malloc_junk=1;
/*
* If we run with junk (or implicitly from above: zero), we want to
* force realloc() to get new storage, so we can DTRT with it.
*/
if (malloc_junk)
malloc_realloc=1;
/* Allocate one page for the page directory */
page_dir = (struct pginfo **) MMAP(malloc_pagesize);
if (page_dir == (struct pginfo **) -1)
wrterror("mmap(2) failed, check limits.\n");
if (page_dir == MAP_FAILED)
wrterror("mmap(2) failed, check limits\n");
/*
* We need a maximum of malloc_pageshift buckets, steal these from the
@ -524,6 +520,7 @@ malloc_init ()
* We can sbrk(2) further back when we keep this on a low address.
*/
px = (struct pgfree *) imalloc (sizeof *px);
errno = save_errno;
}
/*
@ -546,19 +543,19 @@ malloc_pages(size_t size)
#ifdef MALLOC_EXTRA_SANITY
if (pf->size & malloc_pagemask)
wrterror("(ES): junk length entry on free_list.\n");
wrterror("(ES): junk length entry on free_list\n");
if (!pf->size)
wrterror("(ES): zero length entry on free_list.\n");
wrterror("(ES): zero length entry on free_list\n");
if (pf->page == pf->end)
wrterror("(ES): zero entry on free_list.\n");
if (pf->page > pf->end)
wrterror("(ES): sick entry on free_list.\n");
wrterror("(ES): zero entry on free_list\n");
if (pf->page > pf->end)
wrterror("(ES): sick entry on free_list\n");
if ((void*)pf->page >= (void*)sbrk(0))
wrterror("(ES): entry on free_list past brk.\n");
if (page_dir[ptr2index(pf->page)] != MALLOC_FREE)
wrterror("(ES): non-free first page on free-list.\n");
wrterror("(ES): entry on free_list past brk\n");
if (page_dir[ptr2index(pf->page)] != MALLOC_FREE)
wrterror("(ES): non-free first page on free-list\n");
if (page_dir[ptr2index(pf->end)-1] != MALLOC_FREE)
wrterror("(ES): non-free last page on free-list.\n");
wrterror("(ES): non-free last page on free-list\n");
#endif /* MALLOC_EXTRA_SANITY */
if (pf->size < size)
@ -571,7 +568,7 @@ malloc_pages(size_t size)
pf->prev->next = pf->next;
delay_free = pf;
break;
}
}
p = pf->page;
pf->page = (char *)pf->page + size;
@ -581,7 +578,7 @@ malloc_pages(size_t size)
#ifdef MALLOC_EXTRA_SANITY
if (p != NULL && page_dir[ptr2index(p)] != MALLOC_FREE)
wrterror("(ES): allocated non-free page on free-list.\n");
wrterror("(ES): allocated non-free page on free-list\n");
#endif /* MALLOC_EXTRA_SANITY */
size >>= malloc_pageshift;
@ -762,7 +759,7 @@ imalloc(size_t size)
result = malloc_pages(size);
if (malloc_abort && result == NULL)
wrterror("allocation failed.\n");
wrterror("allocation failed\n");
if (malloc_zero && result != NULL)
memset(result, 0, size);
@ -785,19 +782,19 @@ irealloc(void *ptr, size_t size)
abort();
if (!malloc_started) {
wrtwarning("malloc() has never been called.\n");
wrtwarning("malloc() has never been called\n");
return (NULL);
}
index = ptr2index(ptr);
if (index < malloc_pageshift) {
wrtwarning("junk pointer, too low to make sense.\n");
wrtwarning("junk pointer, too low to make sense\n");
return (NULL);
}
if (index > last_index) {
wrtwarning("junk pointer, too high to make sense.\n");
wrtwarning("junk pointer, too high to make sense\n");
return (NULL);
}
@ -807,7 +804,7 @@ irealloc(void *ptr, size_t size)
/* Check the pointer */
if ((u_long)ptr & malloc_pagemask) {
wrtwarning("modified (page-) pointer.\n");
wrtwarning("modified (page-) pointer\n");
return (NULL);
}
@ -827,7 +824,7 @@ irealloc(void *ptr, size_t size)
/* Check the pointer for sane values */
if (((u_long)ptr & ((*mp)->size-1))) {
wrtwarning("modified (chunk-) pointer.\n");
wrtwarning("modified (chunk-) pointer\n");
return (NULL);
}
@ -836,7 +833,7 @@ irealloc(void *ptr, size_t size)
/* Verify that it isn't a free chunk already */
if ((*mp)->bits[i/MALLOC_BITS] & (1<<(i%MALLOC_BITS))) {
wrtwarning("chunk is already free.\n");
wrtwarning("chunk is already free\n");
return (NULL);
}
@ -852,7 +849,7 @@ irealloc(void *ptr, size_t size)
}
} else {
wrtwarning("pointer to wrong page.\n");
wrtwarning("pointer to wrong page\n");
return (NULL);
}
@ -867,7 +864,7 @@ irealloc(void *ptr, size_t size)
else
memcpy(p, ptr, size);
ifree(ptr);
}
}
return (p);
}
@ -884,17 +881,17 @@ free_pages(void *ptr, u_long index, struct pginfo const *info)
void *tail;
if (info == MALLOC_FREE) {
wrtwarning("page is already free.\n");
wrtwarning("page is already free\n");
return;
}
if (info != MALLOC_FIRST) {
wrtwarning("pointer to wrong page.\n");
wrtwarning("pointer to wrong page\n");
return;
}
if ((u_long)ptr & malloc_pagemask) {
wrtwarning("modified (page-) pointer.\n");
wrtwarning("modified (page-) pointer\n");
return;
}
@ -908,8 +905,10 @@ free_pages(void *ptr, u_long index, struct pginfo const *info)
if (malloc_junk)
memset(ptr, SOME_JUNK, l);
#if defined(MADV_FREE)
if (malloc_hint)
madvise(ptr, l, MADV_FREE);
#endif
tail = (char *)ptr+l;
@ -970,10 +969,10 @@ free_pages(void *ptr, u_long index, struct pginfo const *info)
pf = px;
px = NULL;
} else {
wrterror("freelist is destroyed.\n");
wrterror("freelist is destroyed\n");
}
}
/* Return something to OS ? */
if (pf->next == NULL && /* If we're the last one, */
pf->size > malloc_cache && /* ..and the cache is full, */
@ -1018,12 +1017,12 @@ free_bytes(void *ptr, u_long index, struct pginfo *info)
i = ((u_long)ptr & malloc_pagemask) >> info->shift;
if (((u_long)ptr & (info->size-1))) {
wrtwarning("modified (chunk-) pointer.\n");
wrtwarning("modified (chunk-) pointer\n");
return;
}
if (info->bits[i/MALLOC_BITS] & (1<<(i%MALLOC_BITS))) {
wrtwarning("chunk is already free.\n");
wrtwarning("chunk is already free\n");
return;
}
@ -1056,7 +1055,7 @@ free_bytes(void *ptr, u_long index, struct pginfo *info)
mp = &((*mp)->next);
#ifdef MALLOC_EXTRA_SANITY
if (!*mp)
wrterror("(ES): Not on queue.\n");
wrterror("(ES): Not on queue\n");
#endif /* MALLOC_EXTRA_SANITY */
}
*mp = info->next;
@ -1064,7 +1063,7 @@ free_bytes(void *ptr, u_long index, struct pginfo *info)
/* Free the page & the info structure if need be */
page_dir[ptr2index(info->page)] = MALLOC_FIRST;
vp = info->page; /* Order is important ! */
if(vp != (void*)info)
if(vp != (void*)info)
ifree(info);
ifree(vp);
}
@ -1080,7 +1079,7 @@ ifree(void *ptr)
return;
if (!malloc_started) {
wrtwarning("malloc() has never been called.\n");
wrtwarning("malloc() has never been called\n");
return;
}
@ -1091,12 +1090,12 @@ ifree(void *ptr)
index = ptr2index(ptr);
if (index < malloc_pageshift) {
wrtwarning("junk pointer, too low to make sense.\n");
wrtwarning("junk pointer, too low to make sense\n");
return;
}
if (index > last_index) {
wrtwarning("junk pointer, too high to make sense.\n");
wrtwarning("junk pointer, too high to make sense\n");
return;
}
@ -1122,7 +1121,7 @@ malloc(size_t size)
_MALLOC_LOCK();
malloc_func = " in malloc():";
if (malloc_active++) {
wrtwarning("recursive call.\n");
wrtwarning("recursive call\n");
malloc_active--;
_MALLOC_UNLOCK();
errno = EDOOFUS;
@ -1138,7 +1137,7 @@ malloc(size_t size)
malloc_active--;
_MALLOC_UNLOCK();
if (malloc_xmalloc && r == NULL)
wrterror("out of memory.\n");
wrterror("out of memory\n");
if (r == NULL)
errno = ENOMEM;
return (r);
@ -1150,7 +1149,7 @@ free(void *ptr)
_MALLOC_LOCK();
malloc_func = " in free():";
if (malloc_active++) {
wrtwarning("recursive call.\n");
wrtwarning("recursive call\n");
malloc_active--;
_MALLOC_UNLOCK();
errno = EDOOFUS;
@ -1173,7 +1172,7 @@ realloc(void *ptr, size_t size)
_MALLOC_LOCK();
malloc_func = " in realloc():";
if (malloc_active++) {
wrtwarning("recursive call.\n");
wrtwarning("recursive call\n");
malloc_active--;
_MALLOC_UNLOCK();
errno = EDOOFUS;
@ -1198,7 +1197,7 @@ realloc(void *ptr, size_t size)
malloc_active--;
_MALLOC_UNLOCK();
if (malloc_xmalloc && err)
wrterror("out of memory.\n");
wrterror("out of memory\n");
if (err)
errno = ENOMEM;
return (r);