#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <string.h>
#include "lint.h"
#include "mshell.h"
Go to the source code of this file.
|
static size_t | mem_alloc_size (size_t size) |
|
static int * | mem_endptr (MHDR *p) |
|
static void | mem_add_list (MHDR *p) |
|
static void | mem_del_list (MHDR *p) |
|
static NORETURN void | mem_tag_err (MHDR *p, int typ, const char *file1, const int line1, const char *file2, const int line2) |
|
static void | mem_valid (MHDR *p, const char *file, const int line) |
|
void * | mem_malloc (size_t size, const char *file, const int line) |
|
void * | mem_calloc (size_t item, size_t size, const char *file, const int line) |
|
void * | mem_realloc (void *ptr, size_t size, const char *file, const int line) |
|
char * | mem_strdup (const char *str, const char *file, const int line) |
|
void | mem_free (void *ptr, const char *file, const int line) |
|
void | mem_hide_x (void *ptr, const char *file, const int line) |
|
size_t | mem_used () |
|
void | mem_maximum (FILE *fp) |
|
void | mem_display (FILE *fp) |
|
void | mem_check_x (const void *ptr, const char *file, const int line) |
|
void | mem_check_all_x (const char *file, const int line) |
|
#define ALIGN_SIZE sizeof(double) |
#define HDR_2_CLIENT |
( |
|
a | ) |
((void*)(((char*)(a)) + RESERVE_SIZE)) |
#define HDR_SIZE sizeof(MHDR) |
#define Mem_tag_err |
( |
|
a, |
|
|
|
b, |
|
|
|
c, |
|
|
|
d |
|
) |
| mem_tag_err((a), (b), (c), (d), file, line) |
#define MHDR_NIL ((MHDR*)0) |
static void mem_add_list |
( |
MHDR * |
p | ) |
|
|
static |
Definition at line 99 of file mshell.c.
static unsigned long mem_size
static unsigned long mem_maxi
static size_t mem_alloc_size |
( |
size_t |
size | ) |
|
|
static |
Definition at line 78 of file mshell.c.
83 return((
size / ALIGN_SIZE) * ALIGN_SIZE);
int size
Maximale Anzahl von Elementen in der Queue.
void* mem_calloc |
( |
size_t |
item, |
|
|
size_t |
size, |
|
|
const char * |
file, |
|
|
const int |
line |
|
) |
| |
Definition at line 223 of file mshell.c.
229 const char* errmsg1 =
230 "mem_calloc(item=%u, size=%u, file=%s, line=%d): out of memory\n";
231 const char* errmsg2 =
232 "mem_calloc(item=%u, size=%u, file=%s, line=%d): zero item/size\n";
236 if (item == 0 ||
size == 0)
238 fprintf(stderr, errmsg2, item,
size, file, line);
243 fprintf(stderr, errmsg1, item,
size, file, line);
static unsigned long mem_size
static int * mem_endptr(MHDR *p)
static size_t mem_alloc_size(size_t size)
static void mem_add_list(MHDR *p)
int size
Maximale Anzahl von Elementen in der Queue.
void mem_check_all_x |
( |
const char * |
file, |
|
|
const int |
line |
|
) |
| |
Definition at line 411 of file mshell.c.
static void mem_valid(MHDR *p, const char *file, const int line)
void mem_check_x |
( |
const void * |
ptr, |
|
|
const char * |
file, |
|
|
const int |
line |
|
) |
| |
Definition at line 401 of file mshell.c.
static void mem_valid(MHDR *p, const char *file, const int line)
static void mem_del_list |
( |
MHDR * |
p | ) |
|
|
static |
Definition at line 116 of file mshell.c.
static unsigned long mem_size
static int * mem_endptr(MHDR *p)
void mem_display |
( |
FILE * |
fp | ) |
|
Definition at line 380 of file mshell.c.
385 (void)fprintf(fp,
"\nAddress Size File(Line) - total size %lu\n",
390 (void)fprintf(fp,
"%8lx %6lu %s(%d) %s %s\n",
static unsigned long mem_size
static int * mem_endptr(MHDR *p)
void mem_maximum(FILE *fp)
static int* mem_endptr |
( |
MHDR * |
p | ) |
|
|
static |
Definition at line 86 of file mshell.c.
96 return((
int*)((
char*)p + offset));
void mem_free |
( |
void * |
ptr, |
|
|
const char * |
file, |
|
|
const int |
line |
|
) |
| |
Definition at line 322 of file mshell.c.
327 const char *errmsg =
"mem_free(file=%s, line=%d): null pointer\n";
333 (void)fprintf(stderr, errmsg, file, line);
static void mem_del_list(MHDR *p)
static void mem_valid(MHDR *p, const char *file, const int line)
void mem_hide_x |
( |
void * |
ptr, |
|
|
const char * |
file, |
|
|
const int |
line |
|
) |
| |
Definition at line 344 of file mshell.c.
349 const char *errmsg =
"mem_checkout(file=%s, line=%d): null pointer\n";
355 (void)fprintf(stderr, errmsg, file, line);
static unsigned long mem_size
static void mem_del_list(MHDR *p)
static void mem_valid(MHDR *p, const char *file, const int line)
void* mem_malloc |
( |
size_t |
size, |
|
|
const char * |
file, |
|
|
const int |
line |
|
) |
| |
Definition at line 183 of file mshell.c.
188 const char* errmsg1 =
189 "mem_malloc(size=%u, file=%s, line=%d): out of memory\n";
190 const char* errmsg2 =
191 "mem_malloc(size=%u, file=%s, line=%d): zero size\n";
198 fprintf(stderr, errmsg2,
size, file, line);
203 assert(alloc_size > 0);
207 fprintf(stderr, errmsg1,
size, file, line);
static unsigned long mem_size
static int * mem_endptr(MHDR *p)
static size_t mem_alloc_size(size_t size)
static void mem_add_list(MHDR *p)
int size
Maximale Anzahl von Elementen in der Queue.
void mem_maximum |
( |
FILE * |
fp | ) |
|
Definition at line 373 of file mshell.c.
376 (void)fprintf(fp,
"Maximum amount of memory used = %lu bytes\n",
static unsigned long mem_maxi
void* mem_realloc |
( |
void * |
ptr, |
|
|
size_t |
size, |
|
|
const char * |
file, |
|
|
const int |
line |
|
) |
| |
Definition at line 259 of file mshell.c.
265 const char* errmsg1 =
266 "mem_realloc(size=%u, file=%s, line=%d): out of memory\n";
267 const char* errmsg2 =
268 "mem_realloc(file=%s, line=%d): null pointer\n";
269 const char* errmsg3 =
270 "mem_realloc(size=%u, file=%s, line=%d): zero size\n";
276 fprintf(stderr, errmsg2, file, line);
286 fprintf(stderr, errmsg3,
size, file, line);
291 fprintf(stderr, errmsg1,
size, file, line);
static unsigned long mem_size
static int * mem_endptr(MHDR *p)
static size_t mem_alloc_size(size_t size)
static void mem_del_list(MHDR *p)
static void mem_valid(MHDR *p, const char *file, const int line)
static void mem_add_list(MHDR *p)
int size
Maximale Anzahl von Elementen in der Queue.
char* mem_strdup |
( |
const char * |
str, |
|
|
const char * |
file, |
|
|
const int |
line |
|
) |
| |
Definition at line 307 of file mshell.c.
312 const char* errmsg1 =
"mem_strdup(file=%s, line=%d): null pointer\n";
316 (void)fprintf(stderr, errmsg1, file, line);
319 return(strcpy(
mem_malloc((
size_t)(strlen(str) + 1), file, line), str));
void * mem_malloc(size_t size, const char *file, const int line)
static NORETURN void mem_tag_err |
( |
MHDR * |
p, |
|
|
int |
typ, |
|
|
const char * |
file1, |
|
|
const int |
line1, |
|
|
const char * |
file2, |
|
|
const int |
line2 |
|
) |
| |
|
static |
Definition at line 135 of file mshell.c.
143 const char*
const errtyp[] = {
"pre1",
"pre2",
"post" };
145 assert((typ >= 0) && (typ <= 2));
147 (void)fprintf(stderr,
"Memory tag error (%s) - %lx - %s(%d) at %s(%d)\n",
void mem_display(FILE *fp)
Definition at line 368 of file mshell.c.
static unsigned long mem_size
static void mem_valid |
( |
MHDR * |
p, |
|
|
const char * |
file, |
|
|
const int |
line |
|
) |
| |
|
static |
Definition at line 160 of file mshell.c.
static int * mem_endptr(MHDR *p)
#define Mem_tag_err(a, b, c, d)
unsigned long mem_maxi = 0 |
|
static |
unsigned long mem_size = 0 |
|
static |