16#ifndef SIMICS_SYSTEMC_MEMORY_PROFILER_H
17#define SIMICS_SYSTEMC_MEMORY_PROFILER_H
19#include <simics/base/types.h>
20#include <simics/malloc_allocator.h>
22#include <sysc/kernel/sc_process.h>
42typedef MallocAllocator<std::pair<conf_object_t*, bool> >
44typedef std::map<conf_object_t*, bool, std::less<conf_object_t*>,
48typedef MallocAllocator<std::pair<void *, Allocation> >
50typedef std::map<void *, Allocation, std::less<void *>,
54typedef MallocAllocator<std::pair<sc_core::sc_process_b *,
57 std::less<sc_core::sc_process_b *>,
78 AdapterMap::iterator adapter(conf_object_t *obj);
79 bool hasAllocation(
void *addr,
80 AllocationMap::iterator *out_allocation,
Definition: memory_profiler.h:60
void setProfilingForAdapter(conf_object_t *obj, bool enable)
void recordDeletion(void *addr, bool array_form)
void recordAllocation(void *addr, size_t size, bool array_form)
bool profilingForAdapter(conf_object_t *obj)
AllocationMap * allocations(sc_core::sc_process_b *process)
std::map< sc_core::sc_process_b *, AllocationMap, std::less< sc_core::sc_process_b * >, ProcessAllocator > ProcessMap
Definition: memory_profiler.h:58
MallocAllocator< std::pair< conf_object_t *, bool > > AdapterAllocator
Definition: memory_profiler.h:43
std::map< void *, Allocation, std::less< void * >, AllocationAllocator > AllocationMap
Definition: memory_profiler.h:51
MallocAllocator< std::pair< void *, Allocation > > AllocationAllocator
Definition: memory_profiler.h:49
MallocAllocator< std::pair< sc_core::sc_process_b *, AllocationMap > > ProcessAllocator
Definition: memory_profiler.h:55
std::map< conf_object_t *, bool, std::less< conf_object_t * >, AdapterAllocator > AdapterMap
Definition: memory_profiler.h:45
Definition: pci_bus_interface.h:24
Definition: memory_profiler.h:32
Allocation(void *addr, std::size_t size, bool array_form)
Definition: memory_profiler.h:33
bool array_form
Definition: memory_profiler.h:38
size_t size
Definition: memory_profiler.h:37
void * addr
Definition: memory_profiler.h:36