home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 May / Pcwk0597.iso / borland / cb / setup / cbuilder / data.z / MALLOC.H < prev    next >
C/C++ Source or Header  |  1997-02-28  |  4KB  |  166 lines

  1. /*  malloc.h
  2.  
  3.     memory management functions and variables.
  4.  
  5. */
  6.  
  7. /*
  8.  *      C/C++ Run Time Library - Version 8.0
  9.  *
  10.  *      Copyright (c) 1991, 1997 by Borland International
  11.  *      All Rights Reserved.
  12.  *
  13.  */
  14. /* $Revision:   8.1  $ */
  15.  
  16. #ifndef __MALLOC_H
  17. #define __MALLOC_H
  18.  
  19. #include <alloc.h>
  20.  
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24.  
  25.  
  26. #if !defined(RC_INVOKED)
  27.  
  28. #if defined(__STDC__)
  29. #pragma warn -nak
  30. #endif
  31.  
  32. #endif  /* !RC_INVOKED */
  33.  
  34.  
  35. #if !defined(__FLAT__) && !defined(__ALLOC_H)
  36. #include <alloc.h>
  37. #endif
  38.  
  39.  
  40. #ifndef _SIZE_T
  41.   #define _SIZE_T
  42.   typedef unsigned size_t;
  43. #endif
  44.  
  45. #if !defined(_Windows) || defined(__FLAT__)
  46.  
  47. #if !defined(RC_INVOKED)
  48. #pragma pack(push, 1)
  49. #endif
  50.  
  51. /* _HEAPINFO structure returned by heapwalk */
  52.  
  53. typedef struct _heapinfo
  54. {
  55.     int     *_pentry;
  56.     int     *__pentry;
  57.     size_t  _size;
  58.     int     _useflag;
  59. } _HEAPINFO;
  60.  
  61.  
  62. #if !defined(RC_INVOKED)
  63. /* restore default packing */
  64. #pragma pack(pop)
  65. #endif
  66.  
  67. #endif  /* _Windows */
  68.  
  69.  
  70. #if !defined(__FLAT__)
  71.  
  72. #if defined(__TINY__) || defined(__SMALL__) || defined(__MEDIUM__)
  73.  
  74. /* Near heap functions currently allowed only in small data models */
  75.  
  76. #define _nmalloc(size)          malloc(size)
  77. #define _nfree(block)           free(block)
  78. #define _nrealloc(block,size)   realloc(block,size)
  79. #define _ncalloc(num,size)      calloc(num,size)
  80. #define _nheapmin()             0
  81. #if !defined(_Windows)
  82. #define _memavl()               coreleft()
  83. #endif
  84.  
  85. #endif  /* small data models */
  86.  
  87. /* Model-independent functions */
  88.  
  89. #define _fmalloc(size)          farmalloc((unsigned long)(size))
  90. #define _ffree(block)           farfree(block)
  91. #define _frealloc(block,size)   farrealloc(block,(unsigned long)(size))
  92. #define _fcalloc(num,size)      farcalloc((unsigned long)(num),(unsigned long)(size))
  93. #define halloc(num,size)        (void huge *)farmalloc((unsigned long)(num)*(size))
  94. #define hfree(block)            farfree((void far *)(block))
  95. #define _heapmin()              0
  96. #define _fheapmin()             0
  97.  
  98. #if !defined(_Windows)
  99. int         _RTLENTRY _EXPFUNC _heapwalk   (_HEAPINFO *__entry);
  100. #endif
  101.  
  102. /* Prototypes */
  103.  
  104. void *      _Cdecl alloca     (size_t __size);
  105. void *      _Cdecl __alloca__ (size_t __size);
  106.  
  107. #if defined(__BCOPT__ ) && !defined(_Windows)
  108. #undef      alloca      /* to remove a redefinition warning */
  109. #define     alloca(__size)  __alloca__(__size)
  110. #endif
  111.  
  112. size_t      _Cdecl stackavail (void);
  113.  
  114. #else  /* __FLAT__ */
  115.  
  116. /* Prototypes */
  117.  
  118. void *      __cdecl   _EXPFUNC alloca( size_t __size );
  119. void *      __cdecl            __alloca__ (size_t __size);
  120.  
  121. #if (__CGVER__ >= 0x200)
  122.   #define alloca(__size)       __alloca__(__size)
  123.   #if defined(__MFC_COMPAT__)
  124.     #define _alloca(__size)    __alloca__(__size)
  125.   #endif
  126. #else
  127.   #if defined(__MFC_COMPAT__)
  128.     #define _alloca alloca
  129.   #endif
  130. #endif
  131.  
  132.  
  133. size_t      _RTLENTRY _EXPFUNC stackavail  (void);
  134. int         _RTLENTRY _EXPFUNC _heapadd    (void * __block, size_t __size);
  135. int         _RTLENTRY _EXPFUNC _heapchk    (void);
  136. int         _RTLENTRY _EXPFUNC _heapmin    (void);
  137. int         _RTLENTRY _EXPFUNC _heapset    (unsigned int __fill);
  138. int         _RTLENTRY _EXPFUNC _heapwalk   (_HEAPINFO *__entry);
  139. int         _RTLENTRY _EXPFUNC _rtl_heapwalk (_HEAPINFO *__entry);
  140. void *      _RTLENTRY _EXPFUNC _expand     (void * __block, size_t __size);
  141. size_t      _RTLENTRY _EXPFUNC _msize      (void * __block );
  142.  
  143.  
  144. #endif  /* __FLAT__ */
  145.  
  146. #ifdef __cplusplus
  147. }
  148. #endif
  149.  
  150. /* Obsolete functions */
  151. #if !defined(RC_INVOKED) && (!defined(_Windows) || defined(__FLAT__))
  152. #pragma obsolete _heapwalk
  153. #endif
  154.  
  155.  
  156. #if !defined(RC_INVOKED)
  157.  
  158. #if defined(__STDC__)
  159. #pragma warn .nak
  160. #endif
  161.  
  162. #endif  /* !RC_INVOKED */
  163.  
  164.  
  165. #endif  /* __MALLOC_H */
  166.