25 #ifdef DO_MEMORY_USAGE
27 #endif // DO_MEMORY_USAGE
39 #ifdef DO_MEMORY_USAGE
42 #endif // DO_MEMORY_USAGE
58 const size_t alignment_size = 16;
61 const size_t alignment_size =
sizeof(
void *);
63 return alignment_size;
82 static const size_t header_reserved_bytes = 16;
84 #elif defined(MEMORY_HOOK_DO_ALIGN)
88 static const size_t header_reserved_bytes =
sizeof(size_t) +
sizeof(
size_t);
92 static const size_t header_reserved_bytes =
sizeof(size_t);
95 return header_reserved_bytes;
119 return ((size + _page_size - 1) / _page_size) * _page_size;
129 INLINE
size_t MemoryHook::
130 inflate_size(
size_t size) {
131 #if defined(MEMORY_HOOK_DO_ALIGN)
135 #elif defined(DO_MEMORY_USAGE)
144 #endif // DO_MEMORY_USAGE
154 INLINE
void *MemoryHook::
155 alloc_to_ptr(
void *alloc,
size_t size) {
156 #if defined(MEMORY_HOOK_DO_ALIGN)
159 size_t *root = (
size_t *)((((
size_t)alloc + alignment - 1) / alignment) * alignment);
160 assert(alloc <= root && (
size_t)((
char *)root - (
char *)alloc) < alignment);
162 root[1] = (size_t)alloc;
164 #elif defined(DO_MEMORY_USAGE)
165 size_t *root = (
size_t *)alloc;
170 #endif // DO_MEMORY_USAGE
180 INLINE
void *MemoryHook::
181 ptr_to_alloc(
void *ptr,
size_t &size) {
182 #if defined(MEMORY_HOOK_DO_ALIGN)
185 void *alloc = (
void *)root[1];
188 #elif defined(DO_MEMORY_USAGE)
194 #endif // DO_MEMORY_USAGE
void inc_heap(size_t size)
Called by our alternative malloc implementations (dlmalloc and ptmalloc2) to indicate they have reque...
static void add(Integer &var, Integer delta)
Atomically computes var += delta.
static size_t get_header_reserved_bytes()
Returns the number of additional bytes that are reserved at the beginning of every allocated block to...
size_t round_up_to_page_size(size_t size) const
Rounds the indicated size request up to the next larger multiple of page_size, to qualify it for a ca...
void dec_heap(size_t size)
Called by our alternative malloc implementations (dlmalloc and ptmalloc2) to indicate they have retur...
size_t get_page_size() const
Returns the operating system page size.
static size_t get_memory_alignment()
Returns the global memory alignment.