diff --git a/src/server/ram-smalloc.c b/src/server/ram-smalloc.c index 0efbb45598fe09b85905ce024cb4c9f55ca7729e..90ff03fcb570c183fa96c24163218618e52125f0 100644 --- a/src/server/ram-smalloc.c +++ b/src/server/ram-smalloc.c @@ -14,6 +14,7 @@ #include "smalloc.h" #include "lyskomd.h" #include "log.h" +#include "exp.h" static u_long no_of_allocated_blocks = 0; @@ -21,11 +22,10 @@ static u_long no_of_allocated_blocks = 0; * "safe" malloc. Handles the case when malloc returns NULL. * smalloc cannot fail. */ -void * +EXPORT void * smalloc(size_t size) { unsigned int *p; - p = (unsigned int *) malloc(size + 2*sizeof(unsigned int) + 2); if (p == NULL) @@ -42,7 +42,7 @@ smalloc(size_t size) } -void +EXPORT void sfree(void * ptr) /* it is legal to sfree a NULL pointer */ { unsigned int *ip; @@ -76,7 +76,7 @@ sfree(void * ptr) /* it is legal to sfree a NULL pointer */ } } -extern void * +EXPORT void * srealloc(void * ptr, size_t size) /* Never fails. It is legal to */ { /* realloc the NULL ptr. */ unsigned int * ip; @@ -131,7 +131,7 @@ static void **tmp_alloc_table = NULL; static int tmp_alloc_table_size = 0; /* Size */ static int tmp_alloc_table_use = 0; /* Used size */ -void * +EXPORT void * tmp_alloc(u_long size) { if ( tmp_alloc_table_size <= tmp_alloc_table_use ) @@ -153,7 +153,7 @@ tmp_alloc(u_long size) * Free all core which is allocated with tmp_alloc(). This is called from * end_of_atomic(). */ -void +EXPORT void free_tmp(void) { int i; @@ -167,7 +167,7 @@ free_tmp(void) tmp_alloc_table_use = 0; } -void +EXPORT void free_all_tmp(void) { free_tmp(); @@ -175,3 +175,10 @@ free_all_tmp(void) tmp_alloc_table = NULL; tmp_alloc_table_size = 0; } + +EXPORT void +dump_smalloc_counts(FILE *stat_file) +{ + fprintf(stat_file, "Allocated blocks (grand total): %lu\n", + no_of_allocated_blocks); +}