userlibandfileserver/fileserver/sfsrv/cl_debug.cpp
author Tom Cosgrove <tom.cosgrove@nokia.com>
Fri, 28 May 2010 16:29:07 +0100
changeset 30 8aab599e3476
parent 0 a41df078684a
permissions -rw-r--r--
Fix for bug 2283 (RVCT 4.0 support is missing from PDK 3.0.h) Have multiple extension sections in the bld.inf, one for each version of the compiler. The RVCT version building the tools will build the runtime libraries for its version, but make sure we extract all the other versions from zip archives. Also add the archive for RVCT4.

// 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