home *** CD-ROM | disk | FTP | other *** search
- /***
- *alloc.h - disked definitions/declarations for malloc shell.
- *
- *Copyright (c) 1993-1995, Gregg Jennings. All wrongs reserved.
- * P O Box 200, Falmouth, MA 02541-0200
- *
- *Purpose:
- * See ALLOC.C
- *
- *Notice:
- * This progam may be freely used and distributed. Any distrubution
- * with modifications must retain the above copyright statement and
- * modifications noted.
- * No pulp-publication, in whole or in part, permitted without
- * permission (magazines or books).
- *******************************************************************************/
-
- /*
- Version
-
- 2.3 24-Jul-1994 added memavailable stuff
- 2.1 25-Jul-1994 added gloabl for mem testing
- 2.0 28-Nov-1993
-
- Usage:
-
- see ALLOC.C
-
- */
-
-
- #ifdef _MSC_VER
-
- #if (_MSC_VER <= 600)
- #define _halloc halloc
- #define _hfree hfree
- #endif
-
- #define huge_alloc(n,s) _halloc(n,(size_t)s)
- #define huge_free _hfree
- #define memavail() ((unsigned long)_memavl())
-
- #endif
-
- #if defined(__BORLANDC__) || defined(__TURBOC__)
-
- #define _memmax coreleft
- #define _fheapset _heapset
- #define _heapset heapfillfree
- #define _heapinfo heapinfo
- #define _heapwalk farheapwalk
- #define _nheapwalk heapwalk
- #define _fheapchk farheapcheck
- #define _heapchk farheapcheck
- #define _nheapchk heapcheck
- #define _pentry ptr
- #define _size size
- #define _useflag in_use
-
- #define huge_alloc farcalloc
- #define huge_free farfree
- #define memavail coreleft
-
- #endif
-
- #ifdef __WATCOMC__
-
- #define huge_alloc(n,s) halloc(n,(size_t)s)
- #define huge_free hfree
- #define memavail() ((unsigned long)_memavl())
-
- #endif
-
- extern void (*alloc_handler)(void);
- extern void set_alloc_handler(void (*func)(void));
- extern void *alloc(size_t num, size_t size);
- extern void _near *nalloc(size_t num, size_t size);
- extern void *newalloc(void *p, size_t size);
- extern void _huge *hugealloc(long num, long size);
- extern void freep(void *addr);
- extern void nfreep(void _near *addr);
- extern void hugefreep(void _huge *addr);
- extern char *heapstat(int status);
- extern int heaptest(void);
-
- /*
- Constants for _heapchk/_heapset/_heapwalk routines
- as defined in compiler's MALLOC.H: (for reference
- only)
-
- Borland:
-
- #define _HEAPEMPTY 1 // 0
- #define _HEAPOK 2 // 1
- #define _HEAPEND 5 // 4
- #define _HEAPCORRUPT -1 // 5
- #define _BADNODE -2 // 2
- #define _BADVALUE -3 // 3
-
- #define _FREEENTRY 3
- #define _USEDENTRY 4
-
- Microsoft:
-
- #define _HEAPEMPTY (-1)
- #define _HEAPOK (-2) // _heapchk/_heapset only
- #define _HEAPBADBEGIN (-3)
- #define _HEAPBADNODE (-4)
- #define _HEAPEND (-5) // _heapwalk only
- #define _HEAPBADPTR (-6)
-
- #define _FREEENTRY 0
- #define _USEDENTRY 1
-
- Watcom:
-
- #define _HEAPOK 0
- #define _HEAPEMPTY 1 // heap isn't initialized
- #define _HEAPBADBEGIN 2 // heap header is corrupted
- #define _HEAPBADNODE 3 // heap entry is corrupted
- #define _HEAPEND 4 // end of heap entries (_heapwalk)
- #define _HEAPBADPTR 5 // invalid heap entry pointer (_heapwalk)
-
- #define _FREEENTRY 1
- #define _USEDENTRY 0
-
-
- You can see the dificulty with these compiler library functions!
- */
-