sl@0: // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of the License "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // f32\inc\f32dbg.h sl@0: // sl@0: // WARNING: This file contains some APIs which are internal and are subject sl@0: // to change without notice. Such APIs should therefore not be used sl@0: // outside the Kernel and Hardware Services package. sl@0: // sl@0: sl@0: /** sl@0: @file sl@0: @internalTechnology sl@0: @released sl@0: */ sl@0: #if !defined(__F32DBG_H__) sl@0: #define __F32DBG_H__ sl@0: #include sl@0: #include sl@0: sl@0: sl@0: /** sl@0: @publishedPartner sl@0: @released sl@0: sl@0: A bit value indicating that tracing is to be active in sl@0: file system code, when set through a call to RFs::SetDebugRegister() sl@0: in _DEBUG or _DEBUG_RELEASE mode. sl@0: */ sl@0: #define KFSYS 0x0001 sl@0: sl@0: sl@0: /** sl@0: @publishedPartner sl@0: @released sl@0: sl@0: A bit value indicating that tracing is to be active in sl@0: file server code, when set through a call to RFs::SetDebugRegister() sl@0: in _DEBUG or _DEBUG_RELEASE mode. sl@0: */ sl@0: #define KFSERV 0x0002 sl@0: sl@0: sl@0: /** sl@0: @publishedPartner sl@0: @released sl@0: sl@0: A bit value indicating that tracing is to be active in sl@0: the loader code, when set through a call to RFs::SetDebugRegister() sl@0: in _DEBUG or _DEBUG_RELEASE mode. sl@0: */ sl@0: #define KFLDR 0x0004 sl@0: sl@0: sl@0: /** sl@0: @publishedPartner sl@0: @released sl@0: sl@0: A bit value indicating that the number of (simulated) allocation sl@0: failures to complete a given function is to be printed, when set sl@0: through a call to RFs::SetDebugRegister() in _DEBUG or _DEBUG_RELEASE mode. sl@0: */ sl@0: #define KALLOC 0x0008 sl@0: sl@0: sl@0: /** sl@0: @publishedPartner sl@0: @released sl@0: sl@0: A bit value indicating that tracing is to be active in sl@0: LFFS code, when set through a call to RFs::SetDebugRegister() sl@0: in _DEBUG or _DEBUG_RELEASE mode. sl@0: */ sl@0: #define KLFFS 0x0010 sl@0: sl@0: sl@0: /** sl@0: @publishedPartner sl@0: @released sl@0: sl@0: A bit value indicating that tracing is to be active in sl@0: ISO9660 code, when set through a call to RFs::SetDebugRegister() sl@0: in _DEBUG or _DEBUG_RELEASE mode. sl@0: */ sl@0: #define KISO9660 0x0020 sl@0: sl@0: sl@0: /** sl@0: @publishedPartner sl@0: @released sl@0: sl@0: A bit value indicating that tracing is to be active in sl@0: NTFS code, when set through a call to RFs::SetDebugRegister() sl@0: in _DEBUG or _DEBUG_RELEASE mode. sl@0: */ sl@0: #define KNTFS 0x0040 sl@0: sl@0: sl@0: /** sl@0: @publishedPartner sl@0: @released sl@0: sl@0: A bit value indicating that tracing is to be active in sl@0: ROFS code, when set through a call to the function RFs::SetDebugRegister() sl@0: in _DEBUG or _DEBUG_RELEASE mode. sl@0: */ sl@0: #define KROFS 0x0080 sl@0: sl@0: sl@0: /** sl@0: @publishedPartner sl@0: @released sl@0: sl@0: A bit value indicating that tracing is to be active in sl@0: concurrent file system code, when set through a call to the function RFs::SetDebugRegister() sl@0: in _DEBUG or _DEBUG_RELEASE mode. sl@0: */ sl@0: #define KTHRD 0x0100 sl@0: sl@0: /** sl@0: @internalTechnology sl@0: */ sl@0: #define KCACHE 0x0200 sl@0: sl@0: sl@0: /** sl@0: @internalTechnology sl@0: @prototype sl@0: sl@0: A bit value indicating that tracing is to be active in sl@0: COMPFS code, when set through a call to the function RFs::SetDebugRegister() sl@0: in _DEBUG or _DEBUG_RELEASE mode. sl@0: */ sl@0: #define KCOMPFS 0x0400 sl@0: sl@0: sl@0: /** sl@0: @internalTechnology sl@0: @prototype sl@0: sl@0: A bit value indicating that tracing is to be active in sl@0: file server plugin support code, when set through a call sl@0: to the function RFs::SetDebugRegister() sl@0: */ sl@0: #define KPLUGIN 0x0800 sl@0: sl@0: sl@0: // #define _DEBUG_RELEASE sl@0: sl@0: const TInt KAllocFailureOn=0; sl@0: const TInt KAllocFailureOff=-1; sl@0: sl@0: sl@0: #if defined(_DEBUG) || defined(_DEBUG_RELEASE) sl@0: const TInt KControlIoCancelNCNotifier=KMaxTInt-1; sl@0: const TInt KControlIoNCDebugNotifierOn=KMaxTInt-2; sl@0: const TInt KControlIoNCDebugNotifierOff=KMaxTInt-3; sl@0: const TInt KControlIoGetCorruptLogRecord=KMaxTInt-4; sl@0: const TInt KControlIoGetNumberOfCorruptLogRecords=KMaxTInt-5; sl@0: const TInt KControlIoGetCorruptListFile=KMaxTInt-6; sl@0: const TInt KControlIoCorruptLogRecordReset=KMaxTInt-7; sl@0: const TInt KControlIoCacheCount=KMaxTInt-8; sl@0: const TInt KControlIoGetLocalDriveNumber=KMaxTInt-9; sl@0: const TInt KControlIoCancelDeferredDismount=KMaxTInt-10; sl@0: const TInt KControlIoFileCacheFlagsWrite=KMaxTInt-11; sl@0: const TInt KControlIoFileCacheStats=KMaxTInt-12; sl@0: const TInt KControlIoFlushClosedFiles=KMaxTInt-13; sl@0: const TInt KControlIoSimulateLockFailureMode=KMaxTInt-14; sl@0: const TInt KControlIoFileCacheDump=KMaxTInt-15; sl@0: const TInt KControlIoAllocateMaxSegments=KMaxTInt-16; sl@0: sl@0: const TInt KControlIoDisableFatUtilityFunctions=KMaxTInt-17; sl@0: const TInt KControlIoEnableFatUtilityFunctions=KMaxTInt-18; sl@0: const TInt KControlIoFileCacheConfig=KMaxTInt-19; sl@0: const TInt KControlIoSimulateFileCacheWriteFailure=KMaxTInt-20; sl@0: sl@0: const TInt KNCDebugNotifierValue=-500000; // between 0 and 1 second sl@0: sl@0: GLREF_D TInt DebugNCNotifier; sl@0: sl@0: class TIOCacheValues sl@0: { sl@0: public: sl@0: TInt iFreeCount; // number of requests on free queue sl@0: TInt iCloseCount; // number of requests on close queue sl@0: TInt iAllocated; // number of dynamically allocated requests sl@0: TInt iTotalCount; // number of permanently & dynamically allocated requests sl@0: }; sl@0: sl@0: class TFileCacheStats sl@0: { sl@0: public: sl@0: TInt iFreeCount; sl@0: TInt iUsedCount; sl@0: TInt iLockedSegmentCount; sl@0: TInt iAllocatedSegmentCount; sl@0: TInt iFileCount; sl@0: TInt iFilesOnClosedQueue; sl@0: TInt iHoleCount; sl@0: sl@0: TInt iUncachedPacketsRead; sl@0: TInt iUncachedBytesRead; sl@0: sl@0: TInt iUncachedPacketsWritten; sl@0: TInt iUncachedBytesWritten; sl@0: sl@0: TInt iCommitFailureCount; sl@0: TInt iLockFailureCount; sl@0: sl@0: TInt iWriteThroughWithDirtyDataCount; sl@0: }; sl@0: sl@0: class TFileCacheConfig sl@0: { sl@0: public: sl@0: TInt iDrive; sl@0: TInt iFlags; sl@0: TBool iFileCacheReadAsync; sl@0: TInt32 iFairSchedulingLen; // in bytes sl@0: TInt32 iCacheSize; // in bytes sl@0: TInt32 iMaxReadAheadLen; // in bytes sl@0: TInt32 iClosedFileKeepAliveTime; // in microseconds sl@0: TInt32 iDirtyDataFlushTime; // in microseconds sl@0: }; sl@0: sl@0: struct TFsDebugCorruptLogRecord sl@0: { sl@0: TFileName iProcessName; sl@0: TFileName iFileName; sl@0: TInt iError; sl@0: }; sl@0: sl@0: typedef TPckgBuf TFsDebugCorruptLogRecordBuf; sl@0: sl@0: extern TBool EnableFatUtilityFunctions; sl@0: sl@0: #endif sl@0: sl@0: enum TLoaderDebugFunction sl@0: { sl@0: ELoaderDebug_SetHeapFail, sl@0: ELoaderDebug_SetRFsFail sl@0: }; sl@0: sl@0: sl@0: enum TFsDebugFunction sl@0: { sl@0: EFsSetAllocFailure, sl@0: EFsSetErrorCondition, sl@0: EFsSetDebugRegister, sl@0: EFsDebugNotify sl@0: }; sl@0: sl@0: #endif sl@0: