00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00061 #ifndef DK_MEM_INCLUDED
00062
00064 #define DK_MEM_INCLUDED 1
00065
00066 #include <dk.h>
00067
00068 #if DK_HAVE_STRING_H
00069 #include <string.h>
00070 #else
00071 #if DK_HAVE_STRINGS_H
00072 #include <strings.h>
00073 #endif
00074 #endif
00075
00076 #if defined(EXTERN)
00077 #undef EXTERN
00078 #endif
00079 #ifndef DK_MEM_C
00080 #if !DK_HAVE_PROTOTYPES
00081 #define EXTERN extern
00082 #else
00083 #define EXTERN
00084 #endif
00085 #else
00086 #define EXTERN
00087 #endif
00088
00089 #if defined(__cplusplus)
00090 extern "C" {
00091 #endif
00092
00098 EXTERN void dkmem_res DK_PR((void *ptr, size_t n));
00099
00106 EXTERN void dkmem_cpy DK_PR((void *d, void *s, size_t n));
00107
00118 EXTERN int dkmem_cmp DK_PR((void *s1, void *s2, size_t n));
00119
00128 EXTERN void *dkmem_alloc DK_PR((size_t elsize, size_t nelem));
00129
00139 EXTERN void *dkmem_alloc_tracked DK_PR((size_t elsize, size_t nelem));
00140
00145 EXTERN void dkmem_free DK_PR((void *ptr));
00146
00153 EXTERN unsigned long dkmem_get_track DK_PR((int usehb));
00154
00155 #if defined(__cplusplus)
00156 }
00157 #endif
00158
00160 #if DK_HAVE_MEMSET
00161 #define DK_MEMRES(ptr,sz) memset(((void *)(ptr)),0,((size_t)(sz)))
00162 #else
00163 #if DK_HAVE_BZERO
00164 #define DK_MEMRES(ptr,sz) bzero(((void *)(ptr)),((size_t)(sz)))
00165 #else
00166 #define DK_MEMRES(ptr,sz) dkmem_res(((void *)(ptr)),((size_t)(sz)))
00167 #endif
00168 #endif
00169
00171 #if DK_HAVE_MEMCPY
00172 #define DK_MEMCPY(d,s,n) memcpy(((void *)(d)),((void *)(s)),((size_t)(n)))
00173 #else
00174 #if DK_HAVE_BCOPY
00175 #define DK_MEMCPY(d,s,n) bcopy(((void *)(s)),((void *)(d)),((size_t)(n)))
00176 #else
00177 #define DK_MEMCPY(d,s,n) dkmem_cpy(((void *)(d)),((void *)(s)),((size_t)(n)))
00178 #endif
00179 #endif
00180
00182 #if DK_HAVE_MEMCMP
00183 #define DK_MEMCMP(a,b,n) memcmp(((void *)(a)),((void *)(b)),((size_t)(n)))
00184 #else
00185 #if DK_HAVE_BCMP
00186 #define DK_MEMCMP(a,b,n) bcmp(((void *)(a)),((void *)(b)),((size_t)(n)))
00187 #else
00188 #define DK_MEMCMP(a,b,n) dkmem_cmp(((void *)(a)),((void *)(b)),((size_t)(n)))
00189 #endif
00190 #endif
00191
00192 #if DK_MEM_NOTRACK
00193 #define dk_new(t,s) (t *)dkmem_alloc(sizeof(t),((size_t)s))
00194 #else
00195
00196 #define dk_new(t,s) (t *)dkmem_alloc_tracked(sizeof(t),((size_t)s))
00197 #endif
00198
00199 #define dk_delete(p) dkmem_free((void *)(p))
00200
00201 #endif
00202
00203