DEFINE_CLASS(Buffer, RankBuf, klass) { INHERIT_CLASS(klass, RankBuf, SegBuf); klass->varargs = rankBufVarargs; klass->init = rankBufInit; AVERT(BufferClass, klass); }
DEFINE_CLASS(Pool, AMSTPool, klass) { INHERIT_CLASS(klass, AMSTPool, AMSPool); klass->instClassStruct.finish = AMSTFinish; klass->size = sizeof(AMSTStruct); klass->init = AMSTInit; klass->bufferFill = AMSTBufferFill; AVERT(PoolClass, klass); }
DEFINE_CLASS(Seg, AMSTSeg, klass) { INHERIT_CLASS(klass, AMSTSeg, AMSSeg); klass->instClassStruct.finish = amstSegFinish; klass->size = sizeof(AMSTSegStruct); klass->init = amstSegInit; klass->split = amstSegSplit; klass->merge = amstSegMerge; AVERT(SegClass, klass); }
DEFINE_CLASS(Pool, MFSPool, klass) { INHERIT_CLASS(klass, MFSPool, AbstractPool); klass->instClassStruct.describe = MFSDescribe; klass->instClassStruct.finish = MFSFinish; klass->size = sizeof(MFSStruct); klass->varargs = MFSVarargs; klass->init = MFSInit; klass->alloc = MFSAlloc; klass->free = MFSFree; klass->totalSize = MFSTotalSize; klass->freeSize = MFSFreeSize; }
DEFINE_CLASS(Buffer, SegBuf, klass) { INHERIT_CLASS(klass, SegBuf, Buffer); klass->instClassStruct.finish = segBufFinish; klass->instClassStruct.describe = segBufDescribe; klass->size = sizeof(SegBufStruct); klass->init = segBufInit; klass->attach = segBufAttach; klass->detach = segBufDetach; klass->seg = segBufSeg; klass->rankSet = segBufRankSet; klass->setRankSet = segBufSetRankSet; klass->reassignSeg = segBufReassignSeg; AVERT(BufferClass, klass); }
DEFINE_CLASS(Pool, MVTPool, klass) { INHERIT_CLASS(klass, MVTPool, AbstractBufferPool); klass->instClassStruct.describe = MVTDescribe; klass->instClassStruct.finish = MVTFinish; klass->size = sizeof(MVTStruct); klass->varargs = MVTVarargs; klass->init = MVTInit; klass->free = MVTFree; klass->bufferFill = MVTBufferFill; klass->bufferEmpty = MVTBufferEmpty; klass->totalSize = MVTTotalSize; klass->freeSize = MVTFreeSize; AVERT(PoolClass, klass); }
DEFINE_CLASS(Buffer, Buffer, klass) { INHERIT_CLASS(&klass->instClassStruct, Buffer, Inst); klass->instClassStruct.finish = BufferAbsFinish; klass->instClassStruct.describe = BufferAbsDescribe; klass->size = sizeof(BufferStruct); klass->varargs = ArgTrivVarargs; klass->init = BufferAbsInit; klass->attach = bufferTrivAttach; klass->detach = bufferTrivDetach; klass->seg = bufferNoSeg; klass->rankSet = bufferTrivRankSet; klass->setRankSet = bufferNoSetRankSet; klass->reassignSeg = bufferNoReassignSeg; klass->sig = BufferClassSig; AVERT(BufferClass, klass); }
DEFINE_CLASS(Pool, NPool, klass) { INHERIT_CLASS(klass, NPool, AbstractPool); klass->instClassStruct.describe = NDescribe; klass->instClassStruct.finish = NFinish; klass->size = sizeof(PoolNStruct); klass->attr |= AttrGC; klass->init = NInit; klass->alloc = NAlloc; klass->free = NFree; klass->bufferFill = NBufferFill; klass->bufferEmpty = NBufferEmpty; klass->whiten = NWhiten; klass->grey = NGrey; klass->blacken = NBlacken; klass->scan = NScan; klass->fix = NFix; klass->fixEmergency = NFix; klass->reclaim = NReclaim; AVERT(PoolClass, klass); }
DEFINE_CLASS(Inst, BufferClass, klass) { INHERIT_CLASS(klass, BufferClass, InstClass); AVERT(InstClass, klass); }