traceservices/tracefw/ost_trace_api/unit_test/devicedriver/inc/d32utrace.h
changeset 0 08ec8eefde2f
child 23 26645d81f48d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/traceservices/tracefw/ost_trace_api/unit_test/devicedriver/inc/d32utrace.h	Fri Jan 22 11:06:30 2010 +0200
@@ -0,0 +1,175 @@
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+//
+
+
+
+/**
+ @file d32utrace.h
+ @internalTechnology
+*/
+
+#ifndef D32UTRACE_H
+#define D32UTRACE_H
+
+#ifndef __KERNEL_MODE__
+#include <e32std.h>
+#endif
+#include <e32cmn.h>
+#include <e32ver.h>
+#include "te_tracerecord.h"
+
+//needs to be the filename of the driver
+_LIT(KUTraceDDDisabledFilename, "te_ostdd_disabled.ldd");
+_LIT(KUTraceDDEnabledFilename, "te_ostdd_enabled.ldd");
+_LIT(KUTraceDDSystemDisabledFilename, "te_utracedd_system_disabled.ldd");
+_LIT(KUTraceDDSystemEnabledFilename, "te_utracedd_system_enabled.ldd");
+_LIT(KUTraceDDEnabled, "UTraceDDEnabled");
+_LIT(KUTraceDDDisabled, "UTraceDDDisabled");
+_LIT(KUTraceDDSystemEnabled, "UTraceDDSystemEnabled");
+_LIT(KUTraceDDSystemDisabled, "UTraceDDSystemDisabled");
+
+struct TTimerResults
+{
+TUint32 iTime;
+TUint32 iCount;
+TInt	iError;
+};
+
+/**
+Interface to the utrace api.
+
+@internalTechnology
+*/
+class RUTrace : public RBusLogicalChannel
+	{
+public:
+	/**
+    Structure for holding driver capabilities information
+    (Just a version number in this example.)
+    */
+    class TCaps
+        {
+    public:
+        TVersion iVersion;
+        };
+
+	enum TControl
+		{
+		ETestTrace,
+		ETimeTrace
+		};
+
+	inline static const TDesC& Name();
+	inline static TVersion VersionRequired();
+
+	/**
+	Open channel to device driver.
+	Must be called before any other methods are used.
+	@return KErrNone or standard error code.
+	*/
+	TInt Open();
+	TInt Close();
+	TInt TestTraces(TTraceConfigs aTraceData);
+	TInt TimeTraces(TTraceConfigs aTraceData, TUint32& aTime, TUint32& aCount);
+	};
+
+/**
+  Returns the driver's name
+*/
+inline const TDesC& RUTrace::Name()
+	{
+#ifdef SYMBIAN_TRACE_SYSTEM_IS_INCLUDED
+	#ifdef SYMBIAN_TRACE_EXECUTABLE_IS_INCLUDED
+		return KUTraceDDEnabledFilename;
+	#else
+		return KUTraceDDDisabledFilename;
+	#endif
+#else
+	#ifdef SYMBIAN_TRACE_EXECUTABLE_IS_INCLUDED
+		return KUTraceDDSystemEnabledFilename;
+	#else
+		return KUTraceDDSystemDisabledFilename;
+	#endif
+#endif
+	}
+/**
+  Returns the version number of the driver
+*/
+inline TVersion RUTrace::VersionRequired()
+    {
+    const TInt KMajorVersionNumber=1;
+    const TInt KMinorVersionNumber=0;
+    const TInt KBuildVersionNumber=3;
+    return TVersion(KMajorVersionNumber,KMinorVersionNumber,KBuildVersionNumber);
+    }
+
+#ifndef __KERNEL_MODE__
+
+TInt RUTrace::Open()
+	{
+	//this loads the driver in by using the filename
+	//of the driver (adding the ldd extension if missing)
+	TInt r = User::LoadLogicalDevice(Name());
+	if(r!=KErrNone && r!=KErrAlreadyExists)
+		return r;
+	//this uses the name of the logical device
+	//(the name of the LDD factory object, not the
+	//filename of the LDD DLL)
+	#ifdef SYMBIAN_TRACE_SYSTEM_IS_INCLUDED
+		#ifdef SYMBIAN_TRACE_EXECUTABLE_IS_INCLUDED
+			r = DoCreate(KUTraceDDEnabled, TVersion(), KNullUnit, NULL, NULL, EOwnerThread);
+		#else
+			r = DoCreate(KUTraceDDDisabled, TVersion(), KNullUnit, NULL, NULL, EOwnerThread);
+		#endif
+	#else
+		#ifdef SYMBIAN_TRACE_EXECUTABLE_IS_INCLUDED
+			r = DoCreate(KUTraceDDSystemEnabled, TVersion(), KNullUnit, NULL, NULL, EOwnerThread);
+		#else
+			r = DoCreate(KUTraceDDSystemDisabled, TVersion(), KNullUnit, NULL, NULL, EOwnerThread);
+		#endif
+	#endif
+
+	return r;
+	};
+
+TInt RUTrace::TestTraces(TTraceConfigs aTraceRecord)
+	{
+	TInt result = KErrNone;
+	TInt error = KErrNone;
+	error = DoControl(ETestTrace,(TAny*)&aTraceRecord,(TAny*)&result);
+	if(error != KErrNone)
+		return error;
+	return result;
+	}
+
+TInt RUTrace::TimeTraces(TTraceConfigs aTraceRecord, TUint32& aTime, TUint32& aCount)
+	{
+	
+	TInt error = KErrNone;
+   	TTimerResults timer;
+	error = DoControl(ETimeTrace,(TAny*)&aTraceRecord,(TAny*)&timer);
+   	aTime = timer.iTime;
+   	aCount = timer.iCount;
+   	return error;
+	}
+
+TInt RUTrace::Close()
+	{
+	RBusLogicalChannel::Close();
+	return User::FreeLogicalDevice(RUTrace::Name());
+	}
+#endif //__KERNEL_MODE__
+
+#endif