mirror of https://github.com/sheumann/dmake.git
104 lines
2.5 KiB
C
104 lines
2.5 KiB
C
/*
|
|
* (c) Copyright 1990 Conor P. Cahill (uunet!virtech!cpcahil).
|
|
* You may copy, distribute, and use this software as long as this
|
|
* copyright statement is not removed.
|
|
*/
|
|
/*
|
|
* $Id: malloc.h,v 1.1 1992/01/24 03:29:06 dvadura Exp $
|
|
*/
|
|
struct mlist
|
|
{
|
|
struct mlist * next; /* next entry in chain */
|
|
struct mlist * prev; /* prev entry in chain */
|
|
int flag; /* inuse flag */
|
|
unsigned int r_size; /* requested size */
|
|
union
|
|
{
|
|
unsigned int size; /* actual size */
|
|
double unused_just_for_alignment;
|
|
} s;
|
|
char data[4];
|
|
};
|
|
|
|
#define M_SIZE ((int)(char *)((struct mlist *)0)->data)
|
|
#define M_RND 0x08
|
|
|
|
#define M_INUSE 0x01
|
|
#define M_MAGIC 0x03156100
|
|
|
|
#define M_BLOCKSIZE (1024*8)
|
|
|
|
#define M_FILL '\01'
|
|
#define M_FREE_FILL '\02'
|
|
|
|
#define M_ROUNDUP(size) {\
|
|
if( size & (M_RND-1) ) \
|
|
{ \
|
|
size &= ~(M_RND-1); \
|
|
size += M_RND; \
|
|
} \
|
|
}
|
|
|
|
/*
|
|
* Malloc warning/fatal error handler defines...
|
|
*/
|
|
#define M_HANDLE_DUMP 0x80 /* 128 */
|
|
#define M_HANDLE_IGNORE 0
|
|
#define M_HANDLE_ABORT 1
|
|
#define M_HANDLE_EXIT 2
|
|
#define M_HANDLE_CORE 3
|
|
|
|
/*
|
|
* Mallopt commands and defaults
|
|
*/
|
|
|
|
#define MALLOC_WARN 1 /* set malloc warning handling */
|
|
#define MALLOC_FATAL 2 /* set malloc fatal handling */
|
|
#define MALLOC_ERRFILE 3 /* specify malloc error file */
|
|
#define MALLOC_CKCHAIN 4 /* turn on chain checking */
|
|
union malloptarg
|
|
{
|
|
int i;
|
|
char * str;
|
|
};
|
|
|
|
/*
|
|
* Malloc warning/fatal error codes
|
|
*/
|
|
|
|
#define M_CODE_CHAIN_BROKE 1 /* malloc chain is broken */
|
|
#define M_CODE_NO_END 2 /* chain end != endptr */
|
|
#define M_CODE_BAD_PTR 3 /* pointer not in malloc area */
|
|
#define M_CODE_BAD_MAGIC 4 /* bad magic number in header */
|
|
#define M_CODE_BAD_CONNECT 5 /* chain poingers corrupt */
|
|
#define M_CODE_OVERRUN 6 /* data overrun in malloc seg */
|
|
#define M_CODE_REUSE 7 /* reuse of freed area */
|
|
#define M_CODE_NOT_INUSE 8 /* pointer is not in use */
|
|
#define M_CODE_NOMORE_MEM 9 /* no more memory available */
|
|
#define M_CODE_OUTOF_BOUNDS 10 /* gone beyound bounds */
|
|
|
|
void malloc_warning();
|
|
void malloc_fatal();
|
|
void malloc_check_data();
|
|
void malloc_check_str();
|
|
void malloc_verify();
|
|
|
|
/*
|
|
* $Log: malloc.h,v $
|
|
* Revision 1.1 1992/01/24 03:29:06 dvadura
|
|
* dmake Version 3.8, Initial revision
|
|
*
|
|
* Revision 1.4 90/08/29 22:23:38 cpcahil
|
|
* fixed mallopt to use a union as an argument.
|
|
*
|
|
* Revision 1.3 90/05/11 11:04:10 cpcahil
|
|
* took out some extraneous lines
|
|
*
|
|
* Revision 1.2 90/05/11 00:13:09 cpcahil
|
|
* added copyright statment
|
|
*
|
|
* Revision 1.1 90/02/23 07:09:03 cpcahil
|
|
* Initial revision
|
|
*
|
|
*/
|