home *** CD-ROM | disk | FTP | other *** search
/ Super Net 1 / SUPERNET_1.iso / PC / OTROS / MSDOS / NCSA / TEL2307S.ZIP / INCLUDE / MEMDEBUG.H < prev    next >
Encoding:
C/C++ Source or Header  |  1991-10-24  |  4.2 KB  |  89 lines

  1. /*----------------------------------------------------------------------
  2.  *
  3.  *  memdebug.h -- Memory movement handler interface
  4.  *  Description: memdebug.h provides the interface definitions for 
  5.  *  memory functions to interface dynamic memory handler.
  6.  *  See memdebug.c for complete documentation.
  7.  *
  8.  */
  9.  
  10. /* Compilation options */
  11. #define MEM_LIST        /* Build internal list */
  12. #define MEM_WHERE        /* Keep track of memory block source */
  13. #define MEM_HEADER        /* Keep headers and footers around for each block */
  14. #define MEM_COMP_FREE    /* Complement the space free'd */
  15.  
  16. #if !defined(STATIC_PTR)
  17. #define STATIC_PTR    (~NULL)
  18. #endif
  19.  
  20. /* Interface functions */
  21.  
  22. /* Interface functions to access only through macros */
  23. #if defined(MEM_WHERE)
  24. void    *mem_memccpy(void *dst,const void *src,int c,unsigned cnt, char *fil, int lin);
  25. void    *mem_memchr(const void *buf,int ch,size_t length, char *fil, int lin);
  26. int     mem_memcmp(const void *s1,const void *s2,size_t length, char *fil, int lin);
  27. int     real_memcmp(const void *s1,const void *s2,size_t length);
  28. void    *mem_memcpy(void *dst,const void *src,size_t length, char *fil, int lin);
  29. int        mem_memicmp(const void *s1,const void *s2,size_t length, char *fil, int lin);
  30. void    *mem_memmove(void *dst,const void *src, size_t length, char *fil, int lin);
  31. void    *mem_memset(void *s,int c,size_t length, char *fil, int lin);
  32. void    mem_movedata(unsigned int src_segment,unsigned int src_offset,unsigned int dst_segment,unsigned int dst_offset,size_t length, char *fil, int lin);
  33. void    mem_swab(char *src,char *dst,int num, char *fil, int lin);
  34.  
  35. void    mem_memqcpy(void *dst,const void *src,size_t length, char *fil, int lin);
  36. void    mem_mem2cpy(void *dst,const void *src,size_t length, char *fil, int lin);
  37. void    mem_memqset(void *s,int c,size_t length, char *fil, int lin);
  38. #else
  39. void    *mem_memccpy(void *dst,const void *src,int c,unsigned cnt);
  40. void    *mem_memchr(const void *buf,int ch,size_t length);
  41. int     mem_memcmp(const void *s1,const void *s2,size_t length);
  42. int     real_memcmp(const void *s1,const void *s2,size_t length);
  43. void    *mem_memcpy(void *dst,const void *src,size_t length);
  44. void    mem_movebytes(void *dst,const void *src,size_t length);
  45. int        mem_memicmp(const void *s1,const void *s2,size_t length);
  46. void    *mem_memmove(void *dst,const void *src,size_t length);
  47. void    *mem_memset(void *s,int c,size_t length);
  48. void    mem_movedata(unsigned int src_segment,unsigned int src_offset,unsigned int dst_segment,unsigned int dst_offset,size_t length);
  49. void    mem_swab(char *src,char *dst,int num);
  50.  
  51. void    mem_memqcpy(void *dst,const void *src,size_t length);
  52. void    mem_mem2cpy(void *dst,const void *src,size_t length);
  53. void    mem_memqset(void *s,int c,size_t length);
  54. #endif
  55.  
  56. /* Interface macros */
  57. #if !defined(__MEMDEBUG__)
  58. #if defined(MEM_WHERE)
  59. #define memccpy(a,b,c,d)    mem_memccpy((a),(b),(c),(d),__FILE__,__LINE__)
  60. #define memchr(a,b,c)    mem_memchr((a),(b),(c),__FILE__,__LINE__)
  61. #define memcmp(a,b,c)    mem_memcmp((a),(b),(c),__FILE__,__LINE__)
  62. #define memcpy(a,b,c)   mem_memcpy((a),(b),(c),__FILE__,__LINE__)
  63. #define movebytes(a,b,c)   mem_movebytes((a),(b),(c),__FILE__,__LINE__)
  64. #define memicmp(a,b,c)  mem_memicmp((a),(b),(c),__FILE__,__LINE__)
  65. #define    memmove(a,b,c)    mem_memmove((a),(b),(c),__FILE__,__LINE__)
  66. #define    memset(a,b,c)    mem_memset((a),(b),(c),__FILE__,__LINE__)
  67. #define movedata(a,b,c,d,e)    mem_movedata((a),(b),(c),(d),(e),__FILE__,__LINE__)
  68. #define swab(a,b,c)        mem_swab((a),(b),(c),__FILE__,__LINE__)
  69.  
  70. #define memqcpy(a,b,c)    mem_memqcpy((a),(b),(c),__FILE__,__LINE__)
  71. #define mem2cpy(a,b,c)    mem_mem2cpy((a),(b),(c),__FILE__,__LINE__)
  72. #define    memqset(a,b,c)    mem_memqset((a),(b),(c),__FILE__,__LINE__)
  73. #else
  74. #define memccpy(a,b,c,d)    mem_memccpy((a),(b),(c),(d))
  75. #define memchr(a,b,c)    mem_memchr((a),(b),(c))
  76. #define memcmp(a,b,c)    mem_memcmp((a),(b),(c))
  77. #define memcpy(a,b,c)    mem_memcpy((a),(b),(c))
  78. #define memicmp(a,b,c)    mem_memicmp((a),(b),(c))
  79. #define    memmove(a,b,c)    mem_memmove((a),(b),(c))
  80. #define    memset(a,b,c)    mem_memset((a),(b),(c))
  81. #define movedata(a,b,c,d,e)    mem_movedata((a),(b),(c),(d),(e))
  82. #define swab(a,b,c)        mem_swab((a),(b),(c))
  83.  
  84. #define memqcpy(a,b,c)    mem_memqcpy((a),(b),(c))
  85. #define mem2cpy(a,b,c)    mem_mem2cpy((a),(b),(c))
  86. #define    memqset(a,b,c)    mem_memqset((a),(b),(c))
  87. #endif
  88. #endif
  89.