diff -r 000000000000 -r a41df078684a userlibandfileserver/fileserver/sfsrv/cl_debug.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userlibandfileserver/fileserver/sfsrv/cl_debug.cpp Mon Oct 19 15:55:17 2009 +0100 @@ -0,0 +1,368 @@ +// Copyright (c) 1996-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\sfsrv\cl_debug.cpp +// +// + +#include "cl_std.h" +#include + + +EXPORT_C TInt RFs::LoaderHeapFunction(TInt, TAny *, TAny *) +/** +This member function is not implemented in this version of Symbian OS. It always returns KErrNotSupported. + +@param aFunction +@param *aArg1 +@param *aArg2 + +@return KErrNotSupported is returned always. + +*/ + { + return KErrNotSupported; + } + + +#if defined(_DEBUG) || defined(_DEBUG_RELEASE) +EXPORT_C TInt RFs::SetErrorCondition(TInt anError,TInt aCount) +/** + +Sets the failure condition. + +This function can only be used in debug builds or if _DEBUG or _DEBUG_RELEASE is defined. In release build, this method is not implemented and it always returns KErrNotSupported. + +@param anError An error condition to be simulated +@param aCount An error condition is set after aCount instances of occurence. + +@return On completion, KErrNone if successful, otherwise one of the system wide error codes in debug builds. + KErrNotSupported in release build. + +*/ + { + return(SendReceive(EFsDebugFunction,TIpcArgs(EFsSetErrorCondition,anError,aCount))); + } + +EXPORT_C TInt RFs::SetDebugRegister(TInt aVal) +/** + +Sets the debug register to the given value. + +This function can only be used in debug builds or if _DEBUG or _DEBUG_RELEASE is defined. In release build, this method is not implemented and it always returns KErrNotSupported. + +@param aVal Value to be set + +@return On completion, KErrNone if successful, otherwise one of the system wide error codes in debug builds. + KErrNotSupported in release build. + +*/ + { + return(SendReceive(EFsDebugFunction,TIpcArgs(EFsSetDebugRegister,aVal))); + } + +EXPORT_C TInt RFs::SetAllocFailure(TInt aAllocNum) +/** + +Fails an allocation after aAllocNum successes. + +This function can only be used in debug builds or if _DEBUG or _DEBUG_RELEASE is defined. In release build, this method is not implemented and it always returns KErrNotSupported. + +@param aAllocNum Count after which allocation failure is expected. + +@return On completion, KErrNone if successful, otherwise one of the system wide error codes in debug builds. + KErrNotSupported in release build. + +*/ + { + return(SendReceive(EFsDebugFunction,TIpcArgs(EFsSetAllocFailure,aAllocNum))); + } + +EXPORT_C void RFs::DebugNotify(TInt aDrive,TUint aNotifyType,TRequestStatus& aStat) +/** + +Request notification of a file server event - file system specific. + +This function can only be used in debug builds or if _DEBUG or _DEBUG_RELEASE is defined. In release build, this method is not implemented and it always returns KErrNotSupported. + +@param aDrive A drive on which the file server event notification is requested; this can be one of the values defined by TDriveNumber. +@param aNotifyType A number identifying the event that should cause notification; +@param aStat The request status used to contain completion information for the function. On completion, contains a system-wide error code. + +@see RFs::TDriveNumber() +@see TRequestStatus + +*/ + { + aStat=KRequestPending; + RSessionBase::SendReceive(EFsDebugFunction, TIpcArgs(EFsDebugNotify,aDrive,aNotifyType,&aStat), aStat); +// if (r!=KErrNone) +// { +// TRequestStatus* pStat=&aStat; +// User::RequestComplete(pStat,r); +// } + } + + +#else +EXPORT_C TInt RFs::SetErrorCondition(TInt,TInt) +/** + +Sets the failure condition. + +This function can only be used in debug builds or if _DEBUG or _DEBUG_RELEASE is defined. In release build, this method is not implemented and it always returns KErrNotSupported. + +@param anError An error condition to be simulated +@param aCount An error condition is set after aCount instances of occurence. + +@return On completion, KErrNone if successful, otherwise one of the system wide error codes in debug builds. + KErrNotSupported in release build. + +*/ + { + return KErrNotSupported; + } + +EXPORT_C TInt RFs::SetDebugRegister(TInt) +/** + +Sets the debug register to the given value. + +This function can only be used in debug builds or if _DEBUG or _DEBUG_RELEASE is defined. In release build, this method is not implemented and it always returns KErrNotSupported. + +@param aVal Value to be set + +@return On completion, KErrNone if successful, otherwise one of the system wide error codes in debug builds. + KErrNotSupported in release build. + +*/ + { + return KErrNotSupported; + } + +EXPORT_C TInt RFs::SetAllocFailure(TInt) +/** + +Fails an allocation after aAllocNum successes. + +This function can only be used in debug builds or if _DEBUG or _DEBUG_RELEASE is defined. In release build, this method is not implemented and it always returns KErrNotSupported. + +@param aAllocNum Count after which allocation failure is expected. + +@return On completion, KErrNone if successful, otherwise one of the system wide error codes in debug builds. + KErrNotSupported in release build. + +*/ + { + return KErrNotSupported; + } + +EXPORT_C void RFs::DebugNotify(TInt,TUint,TRequestStatus& aStat) +/** + +Request notification of a file server event - file system specific. + +This function can only be used in debug builds or if _DEBUG or _DEBUG_RELEASE is defined. In release build, this method is not implemented and it always returns KErrNotSupported. + +@param aDrive A drive on which the file server event notification is requested; this can be one of the values defined by TDriveNumber. +@param aNotifyType A number identifying the event that should cause notification; +@param aStat The request status used to contain completion information for the function. On completion, contains a system-wide error code. + +@see RFs::TDriveNumber() +@see TRequestStatus + +*/ + { + TRequestStatus* pStat=&aStat; + User::RequestComplete(pStat,KErrNotSupported); + } +#endif + + +#if defined(_USE_CONTROLIO) || defined(_DEBUG) || defined(_DEBUG_RELEASE) + +EXPORT_C TInt RFs::ControlIo(TInt aDrive,TInt aCommand) +/** + +General purpose test interface - file system specific. + +This function can only be used in debug builds or if _USE_CONTROLIO, _DEBUG or _DEBUG_RELEASE is defined. In release build, this method is not implemented and it always returns KErrNotSupported. + +There are drive specific and non-drive specific commands. Following are non-drive specific commands + +@param aDrive A drive on which aCommand is to be executed; this can be one of the values defined by TDriveNumber. +@param aCommand A command to be executed, specific to the file system implementation. + +@return On completion, KErrNone if successful, otherwise one of the system wide error codes in debug builds. + KErrNotSupported in release build. + +@see RFs::TDriveNumber() + +*/ + { + return(SendReceive(EFsControlIo,TIpcArgs(aDrive,aCommand))); + } + +EXPORT_C TInt RFs::ControlIo(TInt aDrive,TInt aCommand,TDes8& aParam1) +/** + +General purpose test interface - file system specific. + +This function can only be used in debug builds or if _USE_CONTROLIO, _DEBUG or _DEBUG_RELEASE is defined. In release build, this method is not implemented and it always returns KErrNotSupported. + +@param aDrive A drive on which aCommand is to be executed; this can be one of the values defined by TDriveNumber. +@param aCommand A command to be executed, specific to the file system implementation. +@param aParam1 Placeholder for a parameter, specific to the file system implementation. + +@return TInt On completion, KErrNone if successful, otherwise one of the system wide error codes in debug builds. + KErrNotSupported in release build. + +@see RFs::TDriveNumber() + +*/ + { + return(SendReceive(EFsControlIo,TIpcArgs(aDrive,aCommand,&aParam1))); + } + +EXPORT_C TInt RFs::ControlIo(TInt aDrive,TInt aCommand,TDes8& aParam1,TDes8& aParam2) +/** + +General purpose test interface - file system specific. + +This function can only be used in debug builds or if _USE_CONTROLIO, _DEBUG or _DEBUG_RELEASE is defined. In release build, this method is not implemented and it always returns KErrNotSupported. + +@param aDrive A drive on which aCommand is to be executed; this can be one of the values defined by TDriveNumber. +@param aCommand A command to be executed, specific to the file system implementation. +@param aParam1 Placeholder for a parameter, specific to the file system implementation. +@param aParam2 Placeholder for a parameter, specific to the file system implementation. + +@return On completion, KErrNone if successful, otherwise one of the system wide error codes in debug builds. + KErrNotSupported in release build. + +@see RFs::TDriveNumber() + +*/ + { + return(SendReceive(EFsControlIo,TIpcArgs(aDrive,aCommand,&aParam1,&aParam2))); + } + +EXPORT_C TInt RFs::ControlIo(TInt aDrive,TInt aCommand,TAny* aParam1,TAny* aParam2) +/** + +General purpose test interface - file system specific. + +This function can only be used in debug builds or if _USE_CONTROLIO, _DEBUG or _DEBUG_RELEASE is defined. In release build, this method is not implemented and it always returns KErrNotSupported. + +@param aDrive A drive on which aCommand is to be executed; this can be one of the values defined by TDriveNumber. +@param aCommand A command to be executed, specific to the file system implementation. +@param aParam1 Placeholder for a parameter, specific to the file system implementation. +@param aParam2 Placeholder for a parameter, specific to the file system implementation. + +@return On completion, KErrNone if successful, otherwise one of the system wide error codes in debug builds. + KErrNotSupported in release build. + +@see RFs::TDriveNumber() + +*/ + { + return(SendReceive(EFsControlIo,TIpcArgs(aDrive,aCommand,aParam1,aParam2))); + } + +#else +EXPORT_C TInt RFs::ControlIo(TInt,TInt) +/** + +General purpose test interface - file system specific. + +This function can only be used in debug builds or if _USE_CONTROLIO, _DEBUG or _DEBUG_RELEASE is defined. In release build, this method is not implemented and it always returns KErrNotSupported. + +There are drive specific and non-drive specific commands. Following are non-drive specific commands + +@param aDrive A drive on which aCommand is to be executed; this can be one of the values defined by TDriveNumber. +@param aCommand A command to be executed, specific to the file system implementation. + +@return On completion, KErrNone if successful, otherwise one of the system wide error codes in debug builds. + KErrNotSupported in release build. + +@see RFs::TDriveNumber() + +*/ + { + return KErrNotSupported; + } + +EXPORT_C TInt RFs::ControlIo(TInt,TInt,TDes8&) +/** + +General purpose test interface - file system specific. + +This function can only be used in debug builds or if _USE_CONTROLIO, _DEBUG or _DEBUG_RELEASE is defined. In release build, this method is not implemented and it always returns KErrNotSupported. + +@param aDrive A drive on which aCommand is to be executed; this can be one of the values defined by TDriveNumber. +@param aCommand A command to be executed, specific to the file system implementation. +@param aParam1 Placeholder for a parameter, specific to the file system implementation. + +@return On completion, KErrNone if successful, otherwise one of the system wide error codes in debug builds. + KErrNotSupported in release build. + +@see RFs::TDriveNumber() + +*/ + { + return KErrNotSupported; + } + +EXPORT_C TInt RFs::ControlIo(TInt,TInt,TDes8&,TDes8&) +/** + +General purpose test interface - file system specific. + +This function can only be used in debug builds or if _USE_CONTROLIO, _DEBUG or _DEBUG_RELEASE is defined. In release build, this method is not implemented and it always returns KErrNotSupported. + +@param aDrive A drive on which aCommand is to be executed; this can be one of the values defined by TDriveNumber. +@param aCommand A command to be executed, specific to the file system implementation. +@param aParam1 Placeholder for a parameter, specific to the file system implementation. +@param aParam2 Placeholder for a parameter, specific to the file system implementation. + +@return On completion, KErrNone if successful, otherwise one of the system wide error codes in debug builds. + KErrNotSupported in release build. + +@see RFs::TDriveNumber() + +*/ + { + return KErrNotSupported; + } + +EXPORT_C TInt RFs::ControlIo(TInt,TInt,TAny*,TAny*) +/** + +General purpose test interface - file system specific. + +This function can only be used in debug builds or if _USE_CONTROLIO, _DEBUG or _DEBUG_RELEASE is defined. In release build, this method is not implemented and it always returns KErrNotSupported. + +@param aDrive A drive on which aCommand is to be executed; this can be one of the values defined by TDriveNumber. +@param aCommand A command to be executed, specific to the file system implementation. +@param aParam1 Placeholder for a parameter, specific to the file system implementation. +@param aParam2 Placeholder for a parameter, specific to the file system implementation. + +@return On completion, KErrNone if successful, otherwise one of the system wide error codes in debug builds. + KErrNotSupported in release build. + +@see RFs::TDriveNumber() + +*/ + { + return KErrNotSupported; + } +#endif