#ifndef HOARD_HOARDTLAB_H
#define HOARD_HOARDTLAB_H
#include "hoardheap.h"
#include "heapmanager.h"
#include "tlab.h"
#include "hoardconstants.h"
#include "heaplayers.h"
namespace Hoard {
#if HL_EXECUTABLE_HEAP
#define HOARD_MMAP_PROTECTION_MASK (PROT_READ | PROT_WRITE | PROT_EXEC)
#else
#define HOARD_MMAP_PROTECTION_MASK (PROT_READ | PROT_WRITE)
#endif
class HoardHeapType :
public HeapManager<TheLockType, HoardHeap<MaxThreads, NumHeaps> > {
};
typedef HoardHeapType::SuperblockType::Header TheHeader;
typedef ThreadLocalAllocationBuffer<HL::bins<TheHeader, SUPERBLOCK_SIZE>::NUM_BINS,
HL::bins<TheHeader, SUPERBLOCK_SIZE>::getSizeClass,
HL::bins<TheHeader, SUPERBLOCK_SIZE>::getClassSize,
LargestSmallObject,
MAX_MEMORY_PER_TLAB,
HoardHeapType::SuperblockType,
SUPERBLOCK_SIZE,
HoardHeapType>
TLABBase;
}
typedef HL::ANSIWrapper<Hoard::TLABBase> TheCustomHeapType;
#endif