#include <coalesceableheap.h>
Public Member Functions | |
void | sanityCheck (void) |
void | setSize (const size_t sz) |
void | setPrevSize (const size_t sz) |
size_t | getPrevSize (void) const |
void | markFree (void) |
void | markInUse (void) |
void | markMmapped (void) |
void | markNotMmapped (void) |
int | isFree (void) const |
int | isNextFree (void) const |
int | isMmapped (void) const |
void * | getPrev (void) const |
void * | getNext (void) const |
void | markPrevFree (void) |
void | markPrevInUse (void) |
int | isPrevFree (void) const |
size_t | getSize (void) const |
int | getHeap (void) const |
void | setHeap (int) |
int | getPrevHeap (void) const |
void | setPrevHeap (int) |
Static Public Member Functions | |
static void * | makeObject (void *buf, const size_t prevsz, const size_t sz) |
static Header * | getHeader (const void *ptr) |
static void * | getObject (const Header *hd) |
Private Types | |
enum | { PREV_INUSE = 0, PREV_FREE = 1 } |
enum | { NOT_MMAPPED = 0, IS_MMAPPED = 1 } |
enum | { NUM_BITS_STOLEN_FROM_PREVSIZE = 2 } |
enum | { NUM_BITS_STOLEN_FROM_SIZE = 0 } |
Private Member Functions | |
Header (void) | |
Header (const size_t prevsz, const size_t sz) | |
Header * | getNextHeader (void) const |
Private Attributes | |
unsigned int | _prevStatus: 1 |
unsigned int | _isMmapped: 1 |
size_t | _prevSize: sizeof(size_t) * 8 - NUM_BITS_STOLEN_FROM_PREVSIZE |
size_t | _size |
Friends | |
class | RequireCoalesceable< SuperHeap > |
HL::RequireCoalesceable< SuperHeap >::Header::Header | ( | void | ) | [inline, explicit, private] |
HL::RequireCoalesceable< SuperHeap >::Header::Header | ( | const size_t | prevsz, | |
const size_t | sz | |||
) | [inline, explicit, private] |
static Header* HL::RequireCoalesceable< SuperHeap >::Header::getHeader | ( | const void * | ptr | ) | [inline, static] |
int HL::RequireCoalesceable< SuperHeap >::Header::getHeap | ( | void | ) | const [inline] |
void* HL::RequireCoalesceable< SuperHeap >::Header::getNext | ( | void | ) | const [inline] |
Header* HL::RequireCoalesceable< SuperHeap >::Header::getNextHeader | ( | void | ) | const [inline, private] |
static void* HL::RequireCoalesceable< SuperHeap >::Header::getObject | ( | const Header * | hd | ) | [inline, static] |
void* HL::RequireCoalesceable< SuperHeap >::Header::getPrev | ( | void | ) | const [inline] |
int HL::RequireCoalesceable< SuperHeap >::Header::getPrevHeap | ( | void | ) | const [inline] |
size_t HL::RequireCoalesceable< SuperHeap >::Header::getPrevSize | ( | void | ) | const [inline] |
size_t HL::RequireCoalesceable< SuperHeap >::Header::getSize | ( | void | ) | const [inline] |
int HL::RequireCoalesceable< SuperHeap >::Header::isFree | ( | void | ) | const [inline] |
int HL::RequireCoalesceable< SuperHeap >::Header::isMmapped | ( | void | ) | const [inline] |
int HL::RequireCoalesceable< SuperHeap >::Header::isNextFree | ( | void | ) | const [inline] |
int HL::RequireCoalesceable< SuperHeap >::Header::isPrevFree | ( | void | ) | const [inline] |
static void* HL::RequireCoalesceable< SuperHeap >::Header::makeObject | ( | void * | buf, | |
const size_t | prevsz, | |||
const size_t | sz | |||
) | [inline, static] |
void HL::RequireCoalesceable< SuperHeap >::Header::markFree | ( | void | ) | [inline] |
void HL::RequireCoalesceable< SuperHeap >::Header::markInUse | ( | void | ) | [inline] |
void HL::RequireCoalesceable< SuperHeap >::Header::markMmapped | ( | void | ) | [inline] |
void HL::RequireCoalesceable< SuperHeap >::Header::markNotMmapped | ( | void | ) | [inline] |
void HL::RequireCoalesceable< SuperHeap >::Header::markPrevFree | ( | void | ) | [inline] |
void HL::RequireCoalesceable< SuperHeap >::Header::markPrevInUse | ( | void | ) | [inline] |
void HL::RequireCoalesceable< SuperHeap >::Header::sanityCheck | ( | void | ) | [inline] |
void HL::RequireCoalesceable< SuperHeap >::Header::setHeap | ( | int | ) | [inline] |
void HL::RequireCoalesceable< SuperHeap >::Header::setPrevHeap | ( | int | ) | [inline] |
void HL::RequireCoalesceable< SuperHeap >::Header::setPrevSize | ( | const size_t | sz | ) | [inline] |
void HL::RequireCoalesceable< SuperHeap >::Header::setSize | ( | const size_t | sz | ) | [inline] |
friend class RequireCoalesceable< SuperHeap > [friend] |
unsigned int HL::RequireCoalesceable< SuperHeap >::Header::_isMmapped [private] |
size_t HL::RequireCoalesceable< SuperHeap >::Header::_prevSize [private] |
unsigned int HL::RequireCoalesceable< SuperHeap >::Header::_prevStatus [private] |
size_t HL::RequireCoalesceable< SuperHeap >::Header::_size [private] |