diff -r 000000000000 -r a41df078684a userlibandfileserver/fileserver/sfile/sf_ldr.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userlibandfileserver/fileserver/sfile/sf_ldr.h Mon Oct 19 15:55:17 2009 +0100 @@ -0,0 +1,110 @@ +// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// f32\sfile\sf_ldr.h +// +// + +#ifndef __SF_LDR_H__ +#define __SF_LDR_H__ + +class TLoaderDeletedList + { +public: + TLoaderDeletedList* iNext; + TInt iDriveNumber; + TInt64 iStartBlock; + HBufC* iFileName; + }; + + +NONSHARABLE_CLASS(CReaperCleanupTimer): public CTimer + { +public: + CReaperCleanupTimer(); + static TInt New(); + static void Complete(); +private: + ~CReaperCleanupTimer(); + void RunL(); + void Start(); + static CReaperCleanupTimer* Timer; + }; + +NONSHARABLE_CLASS(CActiveReaper) : public CActive + { +public: + static CActiveReaper* New(); + ~CActiveReaper(); + void StartReaper(); + + void AddDeleted(TLoaderDeletedList* aLink); + void InitDelDir(); +private: + CActiveReaper(); + + void Construct(); + virtual void RunL(); + virtual void DoCancel(); + + TLoaderDeletedList* iLoaderDeletedList; + }; + +NONSHARABLE_CLASS(CSlottedChunkAllocator) : public CBase + { +public: + TInt Construct(); + TAny* Alloc(TUint aSize); + void Free(TAny* aPtr); + +private: + // slot size must be multiple of page size + enum { KSlots=2, KSlotSize=16777216 }; + TUint iUsed[KSlots]; + RChunk iChunk; + TUint8* iBase; + }; + +extern CSlottedChunkAllocator gFileDataAllocator; + + +//#define TRACE_CHECK_FAILURES +//#define TRACE_ON + + +#ifdef TRACE_CHECK_FAILURES +static TInt CheckFail(const char* aFile,TUint aLine) + { + RDebug::Printf("\nLoader check failure: %s line %d\n",aFile,aLine); + return 0; + } +#define CHECK_FAIL CheckFail(__FILE__,__LINE__) +#define CHECK_FAILURE(_r) (void)(_r==0 || CHECK_FAIL) +#else +#define CHECK_FAIL ((void)0) +#define CHECK_FAILURE(_r) ((void)0) +#endif + +#define RETURN_FAILURE(_r) return (CHECK_FAIL,_r) +#define LEAVE_FAILURE(_r) User::Leave((CHECK_FAIL,_r)) + +#ifdef TRACE_ON +#define TRACE(_t) RDebug::Printf _t +#else +#define TRACE(_t) ((void)0) +#endif +#define E32IMAGEHEADER_TRACE TRACE + + + +#endif