_heap.h
上传用户:super_houu
上传日期:2008-09-21
资源大小:4099k
文件大小:2k
源码类别:

DVD

开发平台:

Others

  1. /*
  2.  *      Paradigm C/C++ Run-Time Library - Version 5.0
  3.  *
  4.  *      Copyright (c) 1998 Paradigm Systems.  All rights reserved.
  5.  *      Portions Copyright (c) 1996 Borland International.
  6.  *
  7.  *      $Revision: 2 $
  8.  *
  9.  *      Near heap variables and functions
  10.  */
  11. #include "Config.h" // Global Configuration - do not remove!
  12. #include "IncludeSysdefs.h"
  13. #define MARGIN  512
  14.         /* Near Heap Variables */
  15. extern  unsigned         _heapbase;
  16. struct POOL
  17. {
  18. unsigned int head;
  19. unsigned int first;
  20. unsigned int last;
  21. unsigned int rover;
  22. unsigned int brklvl;
  23. unsigned int heaplimit;
  24. };
  25.         /* Near Heap Functions */
  26. extern struct POOL _mempool[];
  27. typedef enum{
  28. DEFAULT_HEAP = 0,
  29. UI_MEMPOOL,
  30. MAX_POOLNUM,
  31. }POOL_ID;
  32. #ifndef _SIZE_T
  33. #define _SIZE_T
  34. typedef unsigned size_t;
  35. #endif
  36. #ifdef __cplusplus
  37. extern "C" {
  38. #endif
  39. void    *cdecl  malloc(size_t __nbytes);
  40. void    cdecl free(void _FAR *__ap);
  41. void *cdecl realloc(void _FAR *__ptr, size_t __size);
  42. void    *cdecl  _clib_malloc(size_t __nbytes);
  43. void    cdecl _clib_free(void _FAR *__ap);
  44. void *cdecl _clib_realloc(void _FAR *__ptr, size_t __size);
  45. #if defined(__LARGE__) || defined(__HUGE__) || defined(__COMPACT__)
  46. unsigned long cdecl     coreleft(void);
  47. unsigned long cdecl     _clib_coreleft(void);
  48. #else
  49. unsigned cdecl          coreleft(void);
  50. unsigned cdecl          _clib_coreleft(void);
  51. #endif
  52. int cdecl  _clib_heapcheck(void);
  53. int cdecl                _clib_heapfillfree(unsigned int __fillvalue);
  54. int cdecl                _clib_heapcheckfree(unsigned int __fillvalue);
  55. int cdecl                _clib_heapchecknode(void *__node);
  56. int cdecl                _clib_heapwalk(struct heapinfo *__hi);
  57. int     cdecl near      __brk(void *__addr);
  58. void    *cdecl near     __sbrk(long __incr);
  59. #ifdef D_SUPPORT_MEM_POOL
  60. void *MEM_Allocate(int pool_id, size_t size);
  61. void MEM_Free(int pool_id, void *__block);
  62. void MEM_PoolConstruct(int pool_id, unsigned char *__ptr, int __size);
  63. BOOL MEM_PoolDestruct(int pool_id);
  64. BOOL MEM_PoolResize(int pool_id, int __size);
  65. #endif
  66. #ifdef __cplusplus
  67. }
  68. #endif