00001 00019 #ifndef __SAT_MEM_H__ 00020 #define __SAT_MEM_H__ 00021 00025 00026 //#include "leaks.h" 00027 #include <stdio.h> 00028 #include <stdlib.h> 00029 00033 00037 00038 typedef struct Sat_MmFixed_t_ Sat_MmFixed_t; 00039 typedef struct Sat_MmFlex_t_ Sat_MmFlex_t; 00040 typedef struct Sat_MmStep_t_ Sat_MmStep_t; 00041 00045 00049 00053 00054 // fixed-size-block memory manager 00055 extern Sat_MmFixed_t * Sat_MmFixedStart( int nEntrySize ); 00056 extern void Sat_MmFixedStop( Sat_MmFixed_t * p, int fVerbose ); 00057 extern char * Sat_MmFixedEntryFetch( Sat_MmFixed_t * p ); 00058 extern void Sat_MmFixedEntryRecycle( Sat_MmFixed_t * p, char * pEntry ); 00059 extern void Sat_MmFixedRestart( Sat_MmFixed_t * p ); 00060 extern int Sat_MmFixedReadMemUsage( Sat_MmFixed_t * p ); 00061 // flexible-size-block memory manager 00062 extern Sat_MmFlex_t * Sat_MmFlexStart(); 00063 extern void Sat_MmFlexStop( Sat_MmFlex_t * p, int fVerbose ); 00064 extern char * Sat_MmFlexEntryFetch( Sat_MmFlex_t * p, int nBytes ); 00065 extern int Sat_MmFlexReadMemUsage( Sat_MmFlex_t * p ); 00066 // hierarchical memory manager 00067 extern Sat_MmStep_t * Sat_MmStepStart( int nSteps ); 00068 extern void Sat_MmStepStop( Sat_MmStep_t * p, int fVerbose ); 00069 extern char * Sat_MmStepEntryFetch( Sat_MmStep_t * p, int nBytes ); 00070 extern void Sat_MmStepEntryRecycle( Sat_MmStep_t * p, char * pEntry, int nBytes ); 00071 extern int Sat_MmStepReadMemUsage( Sat_MmStep_t * p ); 00072 00073 #endif 00074 00078