5 #ifndef CVMFS_MALLOC_ARENA_H_
6 #define CVMFS_MALLOC_ARENA_H_
79 void *arena =
reinterpret_cast<void *
>(
80 uintptr_t(ptr) & ~(uintptr_t(arena_size) - uintptr_t(1)));
86 unsigned char pattern);
94 uint32_t
GetSize(
void *ptr)
const;
113 return static_cast<int>(
reinterpret_cast<char *
>(
this) - base);
145 char *base =
reinterpret_cast<char *
>(
this);
179 #endif // CVMFS_MALLOC_ARENA_H_
MallocArena(unsigned arena_size)
AvailBlockCtl * FindAvailBlock(const int32_t block_size)
static MallocArena * GetMallocArena(void *ptr, unsigned arena_size)
void ShrinkTo(int32_t smaller_size)
AvailBlockCtl * rover_
The free block where the next search starts.
static void * GetTagLocation(AvailBlockCtl *block)
assert((mem||(size==0))&&"Out Of Memory")
void UnlinkAvailBlock(AvailBlockCtl *block)
int32_t ConvertToLink(char *base)
static const int kMinBlockSize
void * ReserveBlock(AvailBlockCtl *block, int32_t block_size)
AvailBlockCtl * GetNextPtr(char *base)
void EnqueueAvailBlock(AvailBlockCtl *block)
static const char kTagReserved
static MallocArena * CreateInitialized(unsigned arena_size, unsigned char pattern)
AvailBlockCtl * head_avail_
static const char kTagAvail
AvailBlockCtl * GetPrevPtr(char *base)
bool Contains(void *ptr) const
void * Malloc(const uint32_t size)
char * arena_
The memory block.
uint32_t GetSize(void *ptr) const
ReservedBlockCtl(int32_t s)