home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c063 / 1.ddi / INCLUDE.ZIP / ALLOC.H < prev    next >
Encoding:
C/C++ Source or Header  |  1992-02-18  |  2.6 KB  |  116 lines

  1. /*  alloc.h
  2.  
  3.     memory management functions and variables.
  4.  
  5.     Copyright (c) 1987, 1991 by Borland International
  6.     All Rights Reserved.
  7. */
  8.  
  9. #if !defined(__ALLOC_H)
  10. #define __ALLOC_H
  11.  
  12. #if !defined(__DEFS_H)
  13. #include <_defs.h>
  14. #endif
  15.  
  16. #ifndef NULL
  17. #include <_null.h>
  18. #endif
  19.  
  20. #define _HEAPEMPTY      1
  21. #define _HEAPOK         2
  22. #define _FREEENTRY      3
  23. #define _USEDENTRY      4
  24. #define _HEAPEND        5
  25. #define _HEAPCORRUPT    -1
  26. #define _BADNODE        -2
  27. #define _BADVALUE       -3
  28.  
  29. #ifndef _STDDEF
  30. #define _STDDEF
  31. #ifndef _PTRDIFF_T
  32. #define _PTRDIFF_T
  33. #if defined(__LARGE__) || defined(__HUGE__) || defined(__COMPACT__)
  34. typedef long  ptrdiff_t;
  35. #else
  36. typedef int ptrdiff_t;
  37. #endif
  38. #endif
  39. #ifndef _SIZE_T
  40. #define _SIZE_T
  41. typedef unsigned size_t;
  42. #endif
  43. #endif
  44.  
  45. #if !__STDC__
  46. struct farheapinfo
  47. {
  48.     void huge *ptr;
  49.     unsigned long size;
  50.     int in_use;
  51. };
  52. #endif
  53.  
  54. #if defined(__TINY__) || defined(__SMALL__) || defined(__MEDIUM__)
  55. struct heapinfo
  56. {
  57.     void *ptr;
  58.     unsigned int size;
  59.     int in_use;
  60. };
  61. #else
  62. #define heapinfo farheapinfo 
  63. #endif
  64.  
  65. #ifdef __cplusplus
  66. extern "C" {
  67. #endif
  68.  
  69. void  *_Cdecl calloc(size_t __nitems, size_t __size);
  70. void   _Cdecl free(void *__block);
  71. void  *_Cdecl malloc(size_t __size);
  72. void  *_Cdecl realloc(void *__block, size_t __size);
  73.  
  74. int    _Cdecl brk(void *__addr);
  75. void  *_Cdecl sbrk(int __incr);
  76.  
  77. int    _Cdecl heapcheck(void);
  78. int    _Cdecl heapfillfree(unsigned int __fillvalue);
  79. int    _Cdecl heapcheckfree(unsigned int __fillvalue);
  80.  
  81. #if defined(__COMPACT__) || defined(__LARGE__) || defined(__HUGE__)
  82.  
  83. unsigned long _Cdecl coreleft (void);
  84.  
  85. #if !__STDC__
  86. int         _Cdecl heapchecknode(void far *__node);
  87. int         _Cdecl heapwalk(struct farheapinfo far *__hi);
  88. #endif
  89.  
  90. #else
  91.  
  92. unsigned    _Cdecl coreleft(void);
  93. int         _Cdecl heapchecknode(void *__node);
  94. int         _Cdecl heapwalk(struct heapinfo *__hi);
  95.  
  96. #endif
  97.  
  98. #if !defined(__STDC__)
  99. void far  * _Cdecl farcalloc(unsigned long __nunits, unsigned long __unitsz);
  100. unsigned long _Cdecl farcoreleft(void);
  101. void        _Cdecl farfree(void far *__block);
  102. void far  * _Cdecl farmalloc(unsigned long __nbytes);
  103. void far  * _Cdecl farrealloc(void far *__oldblock, unsigned long __nbytes);
  104. int         _Cdecl farheapcheck(void);
  105. int         _Cdecl farheapchecknode(void far *__node);
  106. int         _Cdecl farheapfillfree(unsigned int __fillvalue);
  107. int         _Cdecl farheapcheckfree(unsigned int __fillvalue);
  108. int         _Cdecl farheapwalk(struct farheapinfo *__hi);
  109. #endif
  110.  
  111. #ifdef __cplusplus
  112. }
  113. #endif
  114.  
  115. #endif  /* __ALLOC_H */
  116.