| /*--------------------------------------------------------------------*/ |
| /*--- Callgrind ---*/ |
| /*--- ct_costs.h ---*/ |
| /*--- (C) 2004, Josef Weidendorfer ---*/ |
| /*--------------------------------------------------------------------*/ |
| |
| #ifndef CT_COSTS |
| #define CT_COSTS |
| |
| #include "pub_tool_basics.h" |
| |
| #define CLG_(str) VGAPPEND(vgCallgrind_,str) |
| |
| extern UInt CLG_(costarray_entries); |
| extern UInt CLG_(costarray_chunks); |
| |
| /* Array of 64bit costs. This is separated from other structs |
| * to support a dynamic number of costs for a cost item. |
| * Chunks are allocated on demand, and deallocated at program termination. |
| */ |
| typedef struct _CostChunk CostChunk; |
| struct _CostChunk { |
| Int size; |
| Int used; |
| CostChunk *next, *prev; |
| ULong data[0]; |
| }; |
| |
| /* Allocate a number of 64bit cost values. |
| * Typically used from ct_events.c */ |
| ULong* CLG_(get_costarray)(Int size); |
| void CLG_(free_costarrays)(void); |
| |
| |
| #endif /* CT_COSTS */ |