HL::RequireCoalesceable< SuperHeap >::Header Class Reference

#include <coalesceableheap.h>

List of all members.

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 HeadergetHeader (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)
HeadergetNextHeader (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 >

template<class SuperHeap>
class HL::RequireCoalesceable< SuperHeap >::Header


Member Enumeration Documentation

template<class SuperHeap>
anonymous enum [private]
Enumerator:
PREV_INUSE 
PREV_FREE 
template<class SuperHeap>
anonymous enum [private]
Enumerator:
NOT_MMAPPED 
IS_MMAPPED 
template<class SuperHeap>
anonymous enum [private]
Enumerator:
NUM_BITS_STOLEN_FROM_PREVSIZE 
template<class SuperHeap>
anonymous enum [private]
Enumerator:
NUM_BITS_STOLEN_FROM_SIZE 

Constructor & Destructor Documentation

template<class SuperHeap>
HL::RequireCoalesceable< SuperHeap >::Header::Header ( void   )  [inline, explicit, private]
template<class SuperHeap>
HL::RequireCoalesceable< SuperHeap >::Header::Header ( const size_t  prevsz,
const size_t  sz 
) [inline, explicit, private]

Member Function Documentation

template<class SuperHeap>
static Header* HL::RequireCoalesceable< SuperHeap >::Header::getHeader ( const void *  ptr  )  [inline, static]
template<class SuperHeap>
int HL::RequireCoalesceable< SuperHeap >::Header::getHeap ( void   )  const [inline]
template<class SuperHeap>
void* HL::RequireCoalesceable< SuperHeap >::Header::getNext ( void   )  const [inline]
template<class SuperHeap>
Header* HL::RequireCoalesceable< SuperHeap >::Header::getNextHeader ( void   )  const [inline, private]
template<class SuperHeap>
static void* HL::RequireCoalesceable< SuperHeap >::Header::getObject ( const Header hd  )  [inline, static]
template<class SuperHeap>
void* HL::RequireCoalesceable< SuperHeap >::Header::getPrev ( void   )  const [inline]
template<class SuperHeap>
int HL::RequireCoalesceable< SuperHeap >::Header::getPrevHeap ( void   )  const [inline]
template<class SuperHeap>
size_t HL::RequireCoalesceable< SuperHeap >::Header::getPrevSize ( void   )  const [inline]
template<class SuperHeap>
size_t HL::RequireCoalesceable< SuperHeap >::Header::getSize ( void   )  const [inline]
template<class SuperHeap>
int HL::RequireCoalesceable< SuperHeap >::Header::isFree ( void   )  const [inline]
template<class SuperHeap>
int HL::RequireCoalesceable< SuperHeap >::Header::isMmapped ( void   )  const [inline]
template<class SuperHeap>
int HL::RequireCoalesceable< SuperHeap >::Header::isNextFree ( void   )  const [inline]
template<class SuperHeap>
int HL::RequireCoalesceable< SuperHeap >::Header::isPrevFree ( void   )  const [inline]
template<class SuperHeap>
static void* HL::RequireCoalesceable< SuperHeap >::Header::makeObject ( void *  buf,
const size_t  prevsz,
const size_t  sz 
) [inline, static]
template<class SuperHeap>
void HL::RequireCoalesceable< SuperHeap >::Header::markFree ( void   )  [inline]
template<class SuperHeap>
void HL::RequireCoalesceable< SuperHeap >::Header::markInUse ( void   )  [inline]
template<class SuperHeap>
void HL::RequireCoalesceable< SuperHeap >::Header::markMmapped ( void   )  [inline]
template<class SuperHeap>
void HL::RequireCoalesceable< SuperHeap >::Header::markNotMmapped ( void   )  [inline]
template<class SuperHeap>
void HL::RequireCoalesceable< SuperHeap >::Header::markPrevFree ( void   )  [inline]
template<class SuperHeap>
void HL::RequireCoalesceable< SuperHeap >::Header::markPrevInUse ( void   )  [inline]
template<class SuperHeap>
void HL::RequireCoalesceable< SuperHeap >::Header::sanityCheck ( void   )  [inline]
template<class SuperHeap>
void HL::RequireCoalesceable< SuperHeap >::Header::setHeap ( int   )  [inline]
template<class SuperHeap>
void HL::RequireCoalesceable< SuperHeap >::Header::setPrevHeap ( int   )  [inline]
template<class SuperHeap>
void HL::RequireCoalesceable< SuperHeap >::Header::setPrevSize ( const size_t  sz  )  [inline]
template<class SuperHeap>
void HL::RequireCoalesceable< SuperHeap >::Header::setSize ( const size_t  sz  )  [inline]

Friends And Related Function Documentation

template<class SuperHeap>
friend class RequireCoalesceable< SuperHeap > [friend]

Member Data Documentation

template<class SuperHeap>
unsigned int HL::RequireCoalesceable< SuperHeap >::Header::_isMmapped [private]
template<class SuperHeap>
size_t HL::RequireCoalesceable< SuperHeap >::Header::_prevSize [private]
template<class SuperHeap>
unsigned int HL::RequireCoalesceable< SuperHeap >::Header::_prevStatus [private]
template<class SuperHeap>
size_t HL::RequireCoalesceable< SuperHeap >::Header::_size [private]

The documentation for this class was generated from the following file:
Generated on Tue Aug 2 11:51:30 2011 for Galois by  doxygen 1.6.3