diff -r c1f20ce4abcf -r 3e88ff8f41d5 kernel/eka/include/e32cmn.inl --- a/kernel/eka/include/e32cmn.inl Tue Aug 31 16:34:26 2010 +0300 +++ b/kernel/eka/include/e32cmn.inl Wed Sep 01 12:34:56 2010 +0100 @@ -51,6 +51,120 @@ inline void RAllocator::__DbgMarkCheck(TBool aCountAll, TInt aCount, const TUint8* aFileName, TInt aLineNum) {__DbgMarkCheck(aCountAll, aCount, TPtrC8(aFileName), aLineNum);} +// Class RHeap +inline RHeap::RHeap() + {} + +/** +@return The maximum length to which the heap can grow. + +@publishedAll +@released +*/ +inline TInt RHeap::MaxLength() const + {return iMaxLength;} + +inline void RHeap::operator delete(TAny*, TAny*) +/** +Called if constructor issued by operator new(TUint aSize, TAny* aBase) throws exception. +This is dummy as corresponding new operator does not allocate memory. +*/ + {} + + +inline TUint8* RHeap::Base() const +/** +Gets a pointer to the start of the heap. + +Note that because of the small space overhead incurred by all allocated cells, +no cell will have the same address as that returned by this function. + +@return A pointer to the base of the heap. +*/ + {return iBase;} + + + + +inline TInt RHeap::Size() const +/** +Gets the current size of the heap. + +This is the total number of bytes committed by the host chunk. +It is the requested size rounded up by page size minus the size of RHeap object(116 bytes) +minus the cell alignment overhead as shown: + +Size = (Rounded committed size - Size of RHeap - Cell Alignment Overhead). + +The cell alignment overhead varies between release builds and debug builds. + +Note that this value is always greater than the total space available across all allocated cells. + +@return The size of the heap. + +@see Rheap::Available( ) +*/ + {return iTop-iBase;} + + + + +inline TInt RHeap::Align(TInt a) const +/** +@internalComponent +*/ + {return _ALIGN_UP(a, iAlign);} + + + + +inline const TAny* RHeap::Align(const TAny* a) const +/** +@internalComponent +*/ + {return (const TAny*)_ALIGN_UP((TLinAddr)a, iAlign);} + + + + +inline TBool RHeap::IsLastCell(const SCell* aCell) const +/** +@internalComponent +*/ + {return (((TUint8*)aCell) + aCell->len) == iTop;} + + + + +#ifndef __KERNEL_MODE__ +inline void RHeap::Lock() const +/** +@internalComponent +*/ + {((RFastLock&)iLock).Wait();} + + + + +inline void RHeap::Unlock() const +/** +@internalComponent +*/ + {((RFastLock&)iLock).Signal();} + + +inline TInt RHeap::ChunkHandle() const +/** +@internalComponent +*/ + { + return iChunkHandle; + } +#endif + + + + // Class TRefByValue template inline TRefByValue::TRefByValue(T &aRef)