12#include "omDerivedConfig.h"
15#include "omDefaultConfig.h"
27#ifndef OM_MIN_SIZEOF_FRONT_PATTERN
28#define OM_MIN_SIZEOF_FRONT_PATTERN (OM_MIN_SIZEWOF_FRONT_PATTERN*SIZEOF_STRICT_ALIGNMENT)
31#ifndef OM_MIN_SIZEOF_BACK_PATTERN
32#define OM_MIN_SIZEOF_BACK_PATTERN (OM_MIN_SIZEWOF_BACK_PATTERN*SIZEOF_STRICT_ALIGNMENT)
43 #ifdef OM_TRACK_FILE_LINE
47 #ifdef OM_TRACK_RETURN
50 #ifdef OM_TRACK_BACKTRACE
51 #define OM_TRACK_ADDR_MEM_1 alloc_frames
56 #define OM_TRACK_ADDR_MEM_1 bin_size
58 #define OM_TRACK_ADDR_MEM_2 bin_size
62 #ifdef OM_TRACK_CUSTOM
65 #ifdef OM_TRACK_FILE_LINE
66 #define OM_TRACK_ADDR_MEM_3 free_line
72 #ifdef OM_TRACK_RETURN
73 #ifndef OM_TRACK_ADDR_MEM_3
74 #define OM_TRACK_ADDR_MEM_3 free_r
78 #ifdef OM_TRACK_BACKTRACE
79 #define OM_TRACK_ADDR_MEM_4 free_frames
94#define OM_SIZEOF_TRACK_ADDR_1 OM_STRICT_ALIGN_SIZE(((char*)&track_addr.alloc_frames-(char*)&track_addr))
95#define OM_SIZEOF_TRACK_ADDR_2 OM_STRICT_ALIGN_SIZE(((char*)&track_addr.bin_size-(char*)&track_addr))
96#define OM_SIZEOF_TRACK_ADDR_3 OM_STRICT_ALIGN_SIZE(((char*)&track_addr.free_line-(char*)&track_addr)+OM_MIN_SIZEOF_FRONT_PATTERN)
97#define OM_SIZEOF_TRACK_ADDR_4 OM_STRICT_ALIGN_SIZE(((char*)&track_addr.free_frames-(char*)&track_addr)+OM_MIN_SIZEOF_FRONT_PATTERN)
98#define OM_SIZEOF_TRACK_ADDR_5 OM_STRICT_ALIGN_SIZE(sizeof(struct omTrackAddr_s)+OM_MIN_SIZEOF_FRONT_PATTERN)
101#define OM_SIZEOF_TRACK_ADDR_1 OM_STRICT_ALIGN_SIZE(((char*)&track_addr.OM_TRACK_ADDR_MEM_1-(char*)&track_addr))
102#define OM_SIZEOF_TRACK_ADDR_2 OM_STRICT_ALIGN_SIZE(((char*)&track_addr.OM_TRACK_ADDR_MEM_2-(char*)&track_addr))
103#define OM_SIZEOF_TRACK_ADDR_3 OM_STRICT_ALIGN_SIZE(((char*)&track_addr.OM_TRACK_ADDR_MEM_3-(char*)&track_addr)+OM_MIN_SIZEOF_FRONT_PATTERN)
104#ifdef OM_TRACK_ADDR_MEM_4
105#define OM_SIZEOF_TRACK_ADDR_4 OM_STRICT_ALIGN_SIZE(((char*)&track_addr.OM_TRACK_ADDR_MEM_4-(char*)&track_addr)+OM_MIN_SIZEOF_FRONT_PATTERN)
107#define OM_SIZEOF_TRACK_ADDR_4 OM_SIZEOF_TRACK_ADDR_5
109#define OM_SIZEOF_TRACK_ADDR_5 OM_STRICT_ALIGN_SIZE(sizeof(struct omTrackAddr_s)+OM_MIN_SIZEOF_FRONT_PATTERN)
111#define OM_SIZEOF_TRACK_ADDR(i) \
113 (i == 4 ? OM_SIZEOF_TRACK_ADDR_4 : OM_SIZEOF_TRACK_ADDR_5) : \
114 (i == 3 ? OM_SIZEOF_TRACK_ADDR_3 : (i == 2 ? OM_SIZEOF_TRACK_ADDR_2 : OM_SIZEOF_TRACK_ADDR_1)))
118#define _omOutSize_2_TrackAddrSize(size, track) \
119 (size + OM_SIZEOF_TRACK_ADDR(track) + (track > 2 ? OM_MIN_SIZEOF_BACK_PATTERN : 0))
121#define _omTrackAddr_2_SizeOfTrackAddrHeader(d_addr) ((size_t) OM_SIZEOF_TRACK_ADDR(((omTrackAddr) (d_addr))->track))
122#define _omTrackAddr_2_OutSize(d_addr) \
123 (((omTrackAddr) (d_addr))->track > 2 ? \
124 omTrack3Addr_2_OutSize(d_addr) : omSizeOfBinAddr(d_addr) - omTrackAddr_2_SizeOfTrackAddrHeader(d_addr))
125#define _omTrack3Addr_2_OutSize(d_addr) \
126 ((((omTrackAddr) (d_addr))->flags & OM_FBIN) ? \
127 (((omBin)((omTrackAddr) (d_addr))->bin_size)->sizeW) << LOG_SIZEOF_LONG : \
128 ((size_t)((omTrackAddr) (d_addr))->bin_size))
131#define _omTrackAddr_2_FrontPattern(d_addr) \
132 ((void*)((unsigned long)d_addr + omTrackAddr_2_SizeOfTrackAddrHeader(d_addr) - OM_MIN_SIZEOF_FRONT_PATTERN))
133#define _omTrackAddr_2_SizeOfFrontPattern(d_addr) \
134 ((char*) omTrackAddr_2_OutAddr(d_addr) - (char*) omTrackAddr_2_FrontPattern(d_addr))
135#define _omTrackAddr_2_BackPattern(d_addr) \
136 ((char*) ((unsigned long)d_addr + omTrackAddr_2_SizeOfTrackAddrHeader(d_addr) + _omTrack3Addr_2_OutSize(d_addr)))
137#define _omTrackAddr_2_SizeOfBackPattern(d_addr) \
138 ((char*) d_addr + omSizeOfBinAddr(d_addr) - omTrackAddr_2_BackPattern(d_addr))
139#define omTrackAddr_2_OutAddr(d_addr) ((void*)((unsigned long)d_addr + omTrackAddr_2_SizeOfTrackAddrHeader(d_addr)))
142#ifdef OM_INTERNAL_DEBUG
215#define omTrackAddr_2_SizeOfTrackAddrHeader _omTrackAddr_2_SizeOfTrackAddrHeader
216#define omTrackAddr_2_FrontPattern _omTrackAddr_2_FrontPattern
217#define omTrackAddr_2_BackPattern _omTrackAddr_2_BackPattern
218#define omTrack3Addr_2_OutSize _omTrack3Addr_2_OutSize
219#define omTrackAddr_2_OutSize _omTrackAddr_2_OutSize
220#define omOutSize_2_TrackAddrSize _omOutSize_2_TrackAddrSize
221#define omTrackAddr_2_SizeOfFrontPattern _omTrackAddr_2_SizeOfFrontPattern
222#define omTrackAddr_2_SizeOfBackPattern _omTrackAddr_2_SizeOfBackPattern
307#ifdef OM_TRACK_FILE_LINE
311#ifdef OM_TRACK_RETURN
318#ifdef OM_INTERNAL_DEBUG
324#ifdef OM_TRACK_BACKTRACE
344#ifdef OM_TRACK_CUSTOM
349#ifdef OM_TRACK_FILE_LINE
351 d_addr->free_file = (
char*) -1;
353#ifdef OM_TRACK_RETURN
354 d_addr->free_r = (
void*) -1;
357#ifdef OM_TRACK_BACKTRACE
374 d_addr->next = (
void*) -1;
382#ifdef OM_TRACK_FILE_LINE
386#ifdef OM_TRACK_RETURN
390#ifdef OM_TRACK_BACKTRACE
532#ifdef OM_TRACK_FILE_LINE
544#ifdef OM_TRACK_RETURN
546 && (
d_addr->free_r != (
void*) -1));
593#ifdef OM_TRACK_BACKTRACE
594#define OM_ALLOC_FRAMES(d_addr) d_addr->alloc_frames
595#define OM_FREE_FRAMES(d_addr) d_addr->free_frames
597#define OM_ALLOC_FRAMES(d) NULL
598#define OM_FREE_FRAMES(d) NULL
707#ifdef OM_TRACK_CUSTOM
762 ptr = *((
void**) ptr);
const CanonicalForm int s
void report(const char *fmt, const char *name)
#define __omFreeBinAddr(addr)
#define SIZEOF_OM_BIN_PAGE_HEADER
#define __omTypeAllocBin(type, addr, bin)
#define omGetTopBinOfPage(page)
#define omSizeOfBinAddr(addr)
#define omGetBinPageOfAddr(addr)
#define omIsBinPageAddr(addr)
#define omGetPageOfAddr(addr)
#define omIsKnownTopBin(bin, normal_bin)
#define omIsStaticNormalBin(bin)
#define omDeleteSpecBin(bin_ptr)
#define omIsStaticTrackBin(bin)
int omIsInKeptAddrList(void *addr)
void * om_AlwaysKeptAddrs
void omUnMarkMemoryAsStatic()
void * omAddr_2_OutAddr(void *addr)
omError_t omCheckPtr(const void *ptr, omError_t report, OM_FLR_DECL)
#define omAddrCheckReturnError(cond, error)
unsigned short omTrackFlags_t
#define omIsStaticTrackAddr(addr)
#define omIsTrackAddr(addr)
#define omAddrCheckReturnCorrupted(cond)
void omIterateTroughAddrs(int normal, int track, void(*CallBackUsed)(void *), void(*CallBackFree)(void *))
void omUnMarkAsStaticAddr(void *addr)
omError_t omDoCheckBinAddr(void *addr, void *bin_size, omTrackFlags_t flags, char level, omError_t report, OM_FLR_DECL)
#define omCheckReturn(cond)
@ omError_FreedAddrOrMemoryCorrupted
@ omError_FalseAddrOrMemoryCorrupted
#define omGetBackTrace(bt, s, max)
#define omMemsetW(P1, W, L)
int _omPrintBackTrace(void **bt, int max, FILE *fd, OM_FLR_DECL)
#define OM_MAX_BLOCK_SIZE
int status int void size_t count const char int flags
#define omMarkAsStaticAddr(A)
#define omMarkMemoryAsStatic()