#include <MemorySegment.hpp>
Public Member Functions | |
void * | operator new (size_t size, void *segment) |
void | operator delete (void *) |
void | operator delete (void *, void *) |
MemorySegment (size_t segSize) | |
MemorySegment () | |
void | insertAfter (MemorySegment *newSegment) |
void | insertBefore (MemorySegment *newSegment) |
void | remove () |
void | removeAll () |
bool | isInSegment (RexxObject *object) |
DeadObject * | createDeadObject () |
DeadObject * | firstObject () |
void | combine (MemorySegment *nextSegment) |
void | shrink (size_t delta) |
bool | isAdjacentTo (MemorySegment *seg) |
bool | isLastBlock (char *addr, size_t length) |
bool | isFirstBlock (char *addr) |
size_t | size () |
size_t | realSize () |
char * | start () |
char * | end () |
bool | isReal () |
bool | isEmpty () |
void | dump (const char *owner, size_t counter, FILE *keyfile, FILE *dumpfile) |
DeadObject * | lastDeadObject () |
DeadObject * | firstDeadObject () |
void | gatherObjectStats (MemoryStats *memStats, SegmentStats *stats) |
void | markAllObjects () |
Public Attributes | |
char | segmentStart [8] |
Friends | |
class | MemorySegmentSet |
class | NormalSegmentSet |
class | LargeSegmentSet |
class | OldSegmentSet |
class | RexxMemory |
Additional Inherited Members | |
Protected Attributes inherited from MemorySegmentHeader | |
size_t | segmentSize |
size_t | liveObjects |
MemorySegment * | next |
MemorySegment * | previous |
Definition at line 143 of file MemorySegment.hpp.
|
inline |
Definition at line 155 of file MemorySegment.hpp.
References MemorySegmentHeader::segmentSize.
|
inline |
Definition at line 160 of file MemorySegment.hpp.
References MemorySegmentHeader::next, MemorySegmentHeader::previous, and MemorySegmentHeader::segmentSize.
|
inline |
Definition at line 198 of file MemorySegment.hpp.
References MemorySegmentOverhead, and MemorySegmentHeader::segmentSize.
Referenced by MemorySegmentSet::addSegment(), MemorySegmentSet::combineEmptySegments(), and MemorySegmentSet::mergeSegments().
|
inline |
Definition at line 195 of file MemorySegment.hpp.
References MemorySegmentHeader::segmentSize, and segmentStart.
Referenced by MemorySegmentSet::addSegment(), and MemorySegmentSet::combineEmptySegments().
void MemorySegment::dump | ( | const char * | owner, |
size_t | counter, | ||
FILE * | keyfile, | ||
FILE * | dumpfile | ||
) |
Definition at line 48 of file MemorySegment.cpp.
References MemorySegmentHeader::segmentSize, and segmentStart.
Referenced by MemorySegmentSet::dumpSegments().
|
inline |
Definition at line 207 of file MemorySegment.hpp.
References MemorySegmentHeader::segmentSize, and segmentStart.
Referenced by gatherObjectStats(), isAdjacentTo(), isLastBlock(), lastDeadObject(), markAllObjects(), MemorySegmentSet::splitSegment(), and MemorySegmentSet::sweep().
DeadObject * MemorySegment::firstDeadObject | ( | ) |
Definition at line 89 of file MemorySegment.cpp.
References RexxMemory::markWord, memoryObject, and start().
Referenced by MemorySegmentSet::mergeSegments().
|
inline |
Definition at line 197 of file MemorySegment.hpp.
References segmentStart.
Referenced by MemorySegmentSet::combineEmptySegments(), and removeAll().
void MemorySegment::gatherObjectStats | ( | MemoryStats * | memStats, |
SegmentStats * | stats | ||
) |
Definition at line 104 of file MemorySegment.cpp.
References end(), SegmentStats::recordObject(), and start().
Referenced by MemorySegmentSet::gatherStats().
|
inline |
Definition at line 167 of file MemorySegment.hpp.
References RexxMemory::newSegment(), MemorySegmentHeader::next, and MemorySegmentHeader::previous.
|
inline |
Definition at line 174 of file MemorySegment.hpp.
References RexxMemory::newSegment(), MemorySegmentHeader::next, and MemorySegmentHeader::previous.
Referenced by MemorySegmentSet::add(), MemorySegmentSet::addSegment(), and MemorySegmentSet::releaseSegment().
|
inline |
Definition at line 200 of file MemorySegment.hpp.
References end().
Referenced by MemorySegmentSet::addSegment(), and MemorySegmentSet::mergeSegments().
|
inline |
Definition at line 209 of file MemorySegment.hpp.
References MemorySegmentHeader::liveObjects.
Referenced by MemorySegmentSet::mergeSegments(), and MemorySegmentSet::releaseEmptySegments().
|
inline |
Definition at line 202 of file MemorySegment.hpp.
References start().
Referenced by MemorySegmentSet::splitSegment().
|
inline |
Definition at line 191 of file MemorySegment.hpp.
References MemorySegmentHeader::segmentSize, and segmentStart.
Referenced by MemorySegmentSet::isInSegmentSet().
|
inline |
Definition at line 201 of file MemorySegment.hpp.
References end().
Referenced by MemorySegmentSet::splitSegment().
|
inline |
Definition at line 208 of file MemorySegment.hpp.
References MemorySegmentHeader::segmentSize.
Referenced by MemorySegmentSet::activateEmptySegments(), MemorySegmentSet::addSegment(), MemorySegmentSet::findEmptySegment(), MemorySegmentSet::first(), MemorySegmentSet::largestActiveSegment(), MemorySegmentSet::largestEmptySegment(), MemorySegmentSet::mergeSegments(), and MemorySegmentSet::next().
DeadObject * MemorySegment::lastDeadObject | ( | ) |
Definition at line 62 of file MemorySegment.cpp.
References end(), RexxMemory::markWord, memoryObject, and start().
Referenced by MemorySegmentSet::mergeSegments().
void MemorySegment::markAllObjects | ( | ) |
Definition at line 1773 of file MemorySegment.cpp.
References end(), RexxInternalObject::getObjectSize(), memory_mark_general, RESTORINGIMAGE, and start().
Referenced by OldSpaceSegmentSet::markOldSpaceObjects().
|
inline |
Definition at line 152 of file MemorySegment.hpp.
|
inline |
Definition at line 153 of file MemorySegment.hpp.
|
inline |
Definition at line 151 of file MemorySegment.hpp.
|
inline |
Definition at line 205 of file MemorySegment.hpp.
References MemorySegmentOverhead, and MemorySegmentHeader::segmentSize.
Referenced by MemorySegmentSet::addSegment(), MemorySegmentSet::mergeSegments(), and MemorySegmentSet::splitSegment().
|
inline |
Definition at line 181 of file MemorySegment.hpp.
References MemorySegmentHeader::next, and MemorySegmentHeader::previous.
Referenced by MemorySegmentSet::activateEmptySegments(), MemorySegmentSet::findEmptySegment(), removeAll(), and MemorySegmentSet::removeSegment().
|
inline |
Definition at line 186 of file MemorySegment.hpp.
References firstObject(), DeadObject::remove(), and remove().
Referenced by MemorySegmentSet::mergeSegments(), and MemorySegmentSet::removeSegmentAndStorage().
|
inline |
Definition at line 199 of file MemorySegment.hpp.
References MemorySegmentHeader::segmentSize.
Referenced by MemorySegmentSet::splitSegment().
|
inline |
Definition at line 204 of file MemorySegment.hpp.
References MemorySegmentHeader::segmentSize.
Referenced by MemorySegmentSet::addSegment(), MemorySegmentSet::addSegments(), MemorySegmentSet::combineEmptySegments(), LargeSegmentSet::expandOrCollect(), MemorySegmentSet::findEmptySegment(), MemorySegmentSet::gatherStats(), MemorySegmentSet::largestActiveSegment(), MemorySegmentSet::largestEmptySegment(), MemorySegmentSet::mergeSegments(), MemorySegmentPool::newLargeSegment(), MemorySegmentPool::newSegment(), MemorySegmentSet::releaseEmptySegments(), and MemorySegmentSet::splitSegment().
|
inline |
Definition at line 206 of file MemorySegment.hpp.
References segmentStart.
Referenced by firstDeadObject(), gatherObjectStats(), isFirstBlock(), lastDeadObject(), markAllObjects(), MemorySegmentSet::splitSegment(), and MemorySegmentSet::sweep().
|
friend |
Definition at line 146 of file MemorySegment.hpp.
|
friend |
Definition at line 144 of file MemorySegment.hpp.
|
friend |
Definition at line 145 of file MemorySegment.hpp.
|
friend |
Definition at line 147 of file MemorySegment.hpp.
|
friend |
Definition at line 148 of file MemorySegment.hpp.
char MemorySegment::segmentStart[8] |
Definition at line 217 of file MemorySegment.hpp.
Referenced by createDeadObject(), dump(), end(), firstObject(), isInSegment(), and start().