userlibandfileserver/fileserver/sfsrv/cl_debug.cpp
changeset 0 a41df078684a
--- /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 <f32dbg.h>
+
+
+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