userlibandfileserver/fileserver/ftrace/d_ftrace.cpp
changeset 134 95847726fe57
parent 133 2a0ada0a1bf8
child 135 5e441a173c63
--- a/userlibandfileserver/fileserver/ftrace/d_ftrace.cpp	Wed May 12 10:34:10 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,215 +0,0 @@
-/*
-* Copyright (c) 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:
-*
-*/
-// D_FTRACE.CPP
-//
-//
-//
-#include "plat_priv.h"
-#include <kernel/kernel.h>
-
-#include "f32trace.h"
-
-DMutex* TheTraceMutex = NULL;
-_LIT(KLitTraceMutexName, "FTRACE_MUTEX");
-
-const TInt KMajorVersionNumber=1;
-const TInt KMinorVersionNumber=0;
-const TInt KBuildVersionNumber=0;
-
-
-class DLddFactoryFTrace : public DLogicalDevice
-	{
-public:
-	DLddFactoryFTrace();
-	virtual ~DLddFactoryFTrace();
-	virtual TInt Install();
-	virtual void GetCaps(TDes8 &aDes) const;
-	virtual TInt Create(DLogicalChannelBase*& aChannel); 	//overriding pure virtual
-	};
-
-class DLddFTrace : public DLogicalChannelBase
-	{
-public:
-	DLddFTrace();
-	~DLddFTrace();
-protected:
-	virtual TInt DoCreate(TInt aUnit, const TDesC8* anInfo, const TVersion& aVer);
-
-	virtual TInt Request(TInt aReqNo, TAny* a1, TAny* a2);
-
-private:
-	void DoCancel(TInt aReqNo);
-	TInt DoRequest(TInt aReqNo, TRequestStatus* aStatus, TAny* a1, TAny* a2);
-	TInt DoControl(TInt aFunction, TAny* a1, TAny* a2);
-
-private:
-    };
-
-DECLARE_STANDARD_LDD()
-	{
-	TInt r = Kern::MutexCreate(TheTraceMutex,  KLitTraceMutexName, KMutexOrdNone);
-	if (r != KErrNone)
-		return NULL;
-
-	return new DLddFactoryFTrace;
-	}
-
-DLddFactoryFTrace::DLddFactoryFTrace()
-	{
-
-    iParseMask=KDeviceAllowUnit;  // Pass stack number as unit
-	iUnitsMask=0xffffffff;
-	iVersion=TVersion(KMajorVersionNumber,KMinorVersionNumber,KBuildVersionNumber);
-	}
-
-TInt DLddFactoryFTrace::Create(DLogicalChannelBase*& aChannel)
-	{
-	aChannel=new DLddFTrace;
-	return aChannel ? KErrNone : KErrNoMemory;
-	}
-
-TInt DLddFactoryFTrace::Install()
-	{
-    TPtrC name=_L("FTrace");
-	return(SetName(&name));
-	}
-
-void DLddFactoryFTrace::GetCaps(TDes8& /*aDes*/) const
-	{
-	}
-
-DLddFactoryFTrace::~DLddFactoryFTrace()
-	{
-	}
-
-DLddFTrace::DLddFTrace()
-	{
-    }
-
-DLddFTrace::~DLddFTrace()
-	{
-    }
-
-TInt DLddFTrace::DoCreate(TInt /*aUnit*/, const TDesC8* /*aInfo*/, const TVersion& aVer)
-	{
-
-	if (!Kern::QueryVersionSupported(TVersion(KMajorVersionNumber,KMinorVersionNumber,KBuildVersionNumber),aVer))
-		return(KErrNotSupported);
-
-    return(KErrNone);
-	}
-
-void DLddFTrace::DoCancel(TInt /*aReqNo*/)
-	{
-	}
-
-TInt DLddFTrace::Request(TInt aReqNo, TAny* a1, TAny* a2)
-	{
-	NKern::ThreadEnterCS();
-	Kern::MutexWait(*TheTraceMutex);
-	TInt r = DoControl(aReqNo, a1, a2);
-	Kern::MutexSignal(*TheTraceMutex);
-	NKern::ThreadLeaveCS();
-
-	return r;
-	}
-
-
-const TUint KTraceBufferSize = 4096;
-TUint8 gTraceBuffer[KTraceBufferSize];
-
-
-#define MIN(a,b)			((a) < (b) ? (a) : (b))
-
-TInt DLddFTrace::DoControl(TInt aFunction, TAny* a1, TAny* a2)
-//
-// Mostly requests (but some kernel server async ones)
-//
-	{
-	TInt r=KErrNotSupported;
-	switch (aFunction)
-		{
-        case RFTrace::ETraceMultiple:
-            {
-			typedef struct {
-				TClassification iCategory;
-				TUint8 iPadding1[sizeof(TUint) - sizeof(TClassification)];
-
-				TFormatId iFormatId;
-				TUint8 iPadding2[sizeof(TUint) - sizeof(TFormatId)];
-
-				TUint32 iUid;
-				TInt iDescriptorCount;
-				} TraceArgs;
-
-			TraceArgs args={0};
-
-			XTRAP(r, XT_DEFAULT, kumemget32(&args, a1, sizeof(args)));
-			if (r != KErrNone)
-				return r;
-
-			// current descriptor - MUST be either a TPtr8 or a TBuf8<4>
-			TUint32 desc[2] = {0, 0};
-			TUint32& desLength = desc[0];
-
-			TUint offset = 0;
-
-			*((TUint*) (gTraceBuffer+offset)) = args.iFormatId;
-			offset+= sizeof(TUint);
-
-			TDesC8* des = (TDesC8*) ((TUint8*) a2);
-			const TInt desSize = sizeof(TPtrC8);
-			for (TInt n=0; n< args.iDescriptorCount; n++, des = (TDesC8*) (((TUint8*) des) + desSize) )
-				{
-
-				XTRAP(r, XT_DEFAULT, kumemget32(desc, des, sizeof(desc)));
-				TUint32 desType = desLength >> KShiftDesType;
-				desLength &= (TUint) (KMaskDesLength);
-				if (desType == EPtrC)
-					{
-					*((TUint*) (gTraceBuffer+offset)) = desLength;
-					desLength = (desLength+3)&~3;
-					offset+= sizeof(TUint);
-					}
-				else if (desType == EBufC)
-					{
-					*((TUint*) (gTraceBuffer+offset)) = desc[1];
-					offset+= sizeof(TUint);
-					if (desLength > 4)
-						return KErrArgument;
-					desLength = 0;
-					continue;
-					}
-				else
-					return KErrArgument;
-
-				TUint len = MIN(KTraceBufferSize - offset, desLength);
-				XTRAP(r, XT_DEFAULT, kumemget(gTraceBuffer+offset, (const TUint8*) desc[1], len));
-				offset+= len;
-
-				}
-
-			BTrace::OutFilteredBig
-				(BTRACE_HEADER_C(8,args.iCategory, 0), args.iUid, gTraceBuffer, offset);
-
-			r=KErrNone;
-			break;
-            }
-		}
-	return(r);
-	}
-