125 lines
3.0 KiB
C
125 lines
3.0 KiB
C
/***
|
|
*malloc.h - declarations and definitions for memory allocation functions
|
|
*
|
|
* Copyright (c) 1985-1988, Microsoft Corporation. All rights reserved.
|
|
*
|
|
*Purpose:
|
|
* Contains the function declarations for memory allocation functions;
|
|
* also defines manifest constants and types used by the heap routines.
|
|
* [System V]
|
|
*
|
|
*******************************************************************************/
|
|
|
|
|
|
#define _HEAPEMPTY -1
|
|
#define _HEAPOK -2
|
|
#define _HEAPBADBEGIN -3
|
|
#define _HEAPBADNODE -4
|
|
#define _HEAPEND -5
|
|
#define _HEAPBADPTR -6
|
|
#define _FREEENTRY 0
|
|
#define _USEDENTRY 1
|
|
|
|
#ifndef _SIZE_T_DEFINED
|
|
typedef unsigned int size_t;
|
|
#define _SIZE_T_DEFINED
|
|
#endif
|
|
|
|
#if (!defined(NO_EXT_KEYS))
|
|
|
|
#ifndef _HEAPINFO_DEFINED
|
|
typedef struct _heapinfo {
|
|
int far * _pentry;
|
|
size_t _size;
|
|
int _useflag;
|
|
} _HEAPINFO;
|
|
#define _HEAPINFO_DEFINED
|
|
#endif
|
|
|
|
#else /* NO_EXT_KEYS */
|
|
#if (defined(M_I86CM) || defined(M_I86LM) || defined(M_I86HM))
|
|
|
|
#ifndef _HEAPINFO_DEFINED
|
|
|
|
typedef struct _heapinfo {
|
|
int * _pentry;
|
|
size_t _size;
|
|
int _useflag;
|
|
} _HEAPINFO;
|
|
|
|
#define _HEAPINFO_DEFINED
|
|
#endif
|
|
|
|
#endif /* M_I86CM || M_I86LM || M_I86HM */
|
|
|
|
#endif /* NO_EXT_KEYS */
|
|
|
|
|
|
#if (defined(M_I86SM) || defined(M_I86MM))
|
|
#define _heapchk _nheapchk
|
|
#define _heapset _nheapset
|
|
#define _heapwalk _nheapwalk
|
|
#endif
|
|
#if (defined(M_I86CM) || defined(M_I86LM) || defined(M_I86HM))
|
|
#define _heapchk _fheapchk
|
|
#define _heapset _fheapset
|
|
#define _heapwalk _fheapwalk
|
|
#endif
|
|
|
|
#ifndef NO_EXT_KEYS /* extensions enabled */
|
|
#define _CDECL cdecl
|
|
#define _NEAR near
|
|
#else /* extensions not enabled */
|
|
#define _CDECL
|
|
#define _NEAR
|
|
#endif /* NO_EXT_KEYS */
|
|
|
|
|
|
/* external variable declarations */
|
|
extern unsigned int _NEAR _CDECL _amblksiz;
|
|
|
|
/* function prototypes */
|
|
|
|
void * _CDECL alloca(size_t);
|
|
void * _CDECL calloc(size_t, size_t);
|
|
void * _CDECL _expand(void *, size_t);
|
|
int _CDECL _fheapchk(void);
|
|
int _CDECL _fheapset(unsigned int);
|
|
unsigned int _CDECL _freect(size_t);
|
|
void _CDECL free(void *);
|
|
void * _CDECL malloc(size_t);
|
|
size_t _CDECL _memavl(void);
|
|
size_t _CDECL _memmax(void);
|
|
size_t _CDECL _msize(void *);
|
|
int _CDECL _nheapchk(void);
|
|
int _CDECL _nheapset(unsigned int);
|
|
void * _CDECL realloc(void *, size_t);
|
|
void * _CDECL sbrk(int);
|
|
size_t _CDECL stackavail(void);
|
|
|
|
|
|
#ifndef NO_EXT_KEYS /* extensions enabled */
|
|
|
|
void cdecl _ffree(void far *);
|
|
void far * cdecl _fmalloc(size_t);
|
|
size_t cdecl _fmsize(void far *);
|
|
#ifndef _QC
|
|
void huge * cdecl halloc(long, size_t);
|
|
void cdecl hfree(void huge *);
|
|
#endif
|
|
void cdecl _nfree(void near *);
|
|
void near * cdecl _nmalloc(size_t);
|
|
size_t cdecl _nmsize(void near *);
|
|
int cdecl _nheapwalk(struct _heapinfo *);
|
|
int cdecl _fheapwalk(struct _heapinfo *);
|
|
|
|
#else
|
|
#if (defined(M_I86CM) || defined(M_I86LM) || defined(M_I86HM))
|
|
|
|
int _nheapwalk(struct _heapinfo *);
|
|
int _fheapwalk(struct _heapinfo *);
|
|
|
|
#endif /* M_I86CM || M_I86LM || M_I86HM */
|
|
|
|
#endif /* NO_EXT_KEYS */
|