#include <stdio.h>
#include "pub_tool_basics.h"
#include "pub_tool_libcassert.h"
#include "pub_tool_tooliface.h"
#include "pub_tool_replacemalloc.h"
#include "pub_tool_mallocfree.h"
#include "pub_tool_libcprint.h" 
#include "pub_tool_hashtable.h"     
#include "pub_tool_libcbase.h"//VG_(memset)
//#include "pub_tool_profile.h"       
//#include "pub_tool_options.h"
//#include "pub_tool_threadstate.h"
//#include "pub_tool_errormgr.h"      
//#include "pub_tool_execontext.h"    
int     ct_clo_freelist_vol = 1000000;  //from mac_shared.c

//from mac_share.h
/* For malloc()/new/new[] vs. free()/delete/delete[] mismatch checking. */
typedef
   enum {
      ct_AllocMalloc = 0,
      ct_AllocNew    = 1,
      ct_AllocNewVec = 2,
      ct_AllocCustom = 3
   }
   ct_AllocKind;
   
/* first two fields must match core's VgHashNode. */
typedef
   struct _ct_Chunk {
      struct _ct_Chunk* next;
      Addr          data;           // ptr to actual block
      SizeT         size : (sizeof(UWord)*8)-2; // size requested; 30 or 62 bits
      ct_AllocKind allockind : 2;  // which wrapper did the allocation
      ExeContext*   where;          // where it was allocated
   }
   ct_Chunk;
