usbmgmt/usbmgr/usbman/server/SRC/CUsbOtg.cpp
changeset 29 59aa7d6e3e0f
parent 0 c9bc50fca66e
child 43 012cc2ee6408
child 48 21625e5de155
--- a/usbmgmt/usbmgr/usbman/server/SRC/CUsbOtg.cpp	Wed Jul 07 14:16:40 2010 +0800
+++ b/usbmgmt/usbmgr/usbman/server/SRC/CUsbOtg.cpp	Wed Jul 07 15:08:54 2010 +0800
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -21,20 +21,22 @@
  @file
 */
 
+#include <e32property.h> //Publish & Subscribe header
 #include "CUsbOtg.h"
 #include "cusbotgwatcher.h"
 #include "CUsbDevice.h"
 #include "musbotghostnotifyobserver.h"
 #include "CUsbServer.h"
-#include <e32property.h> //Publish & Subscribe header
 #include "usberrors.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "CUsbOtgTraces.h"
+#endif
+
 
 //Name used in call to User::LoadLogicalDevice/User::FreeLogicalDevice
 _LIT(KUsbOtgLDDName,"otgdi");
 
-#ifdef __FLOG_ACTIVE
-_LIT8(KLogComponent, "USBSVR-OTG");
-#endif
 
 
 CUsbOtg* CUsbOtg::NewL()
@@ -44,12 +46,13 @@
  * @return	A new CUsbOtg object
  */
 	{
-	LOG_STATIC_FUNC_ENTRY
+	OstTraceFunctionEntry0( CUSBOTG_NEWL_ENTRY );
 
 	CUsbOtg* self = new (ELeave) CUsbOtg();
 	CleanupStack::PushL(self);
 	self->ConstructL();
 	CleanupStack::Pop(self);
+	OstTraceFunctionExit0( CUSBOTG_NEWL_EXIT );
 	return self;
 	}
 
@@ -59,8 +62,7 @@
  * Destructor.
  */
 	{
-	LOG_FUNC
-
+	OstTraceFunctionEntry0( CUSBOTG_CUSBOTG_DES_ENTRY );
 	// Cancel any outstanding asynchronous operation.
 	Stop();
 	
@@ -69,76 +71,93 @@
 	// the observers themselves.
 	iObservers.Reset();
 	
-	LOGTEXT2(_L8("about to stop Id-Pin watcher @ %08x"), (TUint32) iIdPinWatcher);
+	OstTrace1( TRACE_NORMAL, CUSBOTG_CUSBOTG, "CUsbOtg::~CUsbOtg;iIdPinWatcher=%08x", (TUint32)iIdPinWatcher );
+	
 	if (iIdPinWatcher)
 		{
 		iIdPinWatcher->Cancel();
 		delete iIdPinWatcher;
 		iIdPinWatcher = NULL;
-		LOGTEXT(_L8("deleted Id-Pin watcher"));
+		OstTrace0( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP1, "CUsbOtg::~CUsbOtg;deleted Id-Pin watcher" );
+		
 		}
-	LOGTEXT2(_L8("about to stop Vbus watcher @ %08x"), (TUint32) iVbusWatcher);
+	OstTrace1( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP2, "CUsbOtg::~CUsbOtg;about to stop Vbus watcher @ %08x", (TUint32)iVbusWatcher );
+	
 	if (iVbusWatcher)
 		{
 		iVbusWatcher->Cancel();
 		delete iVbusWatcher;
 		iVbusWatcher = NULL;
-		LOGTEXT(_L8("deleted Vbus watcher"));
+		OstTrace0( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP3, "CUsbOtg::~CUsbOtg;deleted Vbus watcher" );
+		
 		}
-	LOGTEXT2(_L8("about to stop OTG State watcher @ %08x"), (TUint32) iVbusWatcher);
+	OstTrace1( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP4, "CUsbOtg::~CUsbOtg;about to stop OTG State watcher @ %08x", (TUint32) iVbusWatcher );
+	
 	if (iOtgStateWatcher)
 		{
 		iOtgStateWatcher->Cancel();
 		delete iOtgStateWatcher;
 		iOtgStateWatcher = NULL;
-		LOGTEXT(_L8("deleted OTG State watcher"));
+		OstTrace0( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP5, "CUsbOtg::~CUsbOtg;deleted OTG State watcher" );
+		
 		}
-	LOGTEXT2(_L8("about to stop OTG Event watcher @ %08x"), (TUint32) iVbusWatcher);
+	OstTrace1( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP6, "CUsbOtg::~CUsbOtg;about to stop OTG Event watcher @ %08x", (TUint32) iVbusWatcher );
+	
 	if (iOtgEventWatcher)
 		{
 		iOtgEventWatcher->Cancel();
 		delete iOtgEventWatcher;
 		iOtgEventWatcher = NULL;
-		LOGTEXT(_L8("deleted OTG Event watcher"));
+		OstTrace0( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP7, "CUsbOtg::~CUsbOtg;deleted OTG Event watcher" );
+
 		}
 	
 	if (iRequestSessionWatcher)
 		{
 		delete iRequestSessionWatcher;
-		LOGTEXT(_L8("deleted Session Request watcher"));
+		OstTrace0( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP8, "CUsbOtg::~CUsbOtg;deleted Session Request watcher" );
+		
 		}
 
-	LOGTEXT2(_L8("about to stop Connection Idle watcher @ %08x"), (TUint32)iOtgConnectionIdleWatcher);
+	OstTrace1( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP9, 
+	        "CUsbOtg::~CUsbOtg;about to stop Connection Idle watcher @ %08x", (TUint32)iOtgConnectionIdleWatcher );
+	
 	if (iOtgConnectionIdleWatcher)
 		{
 		iOtgConnectionIdleWatcher->Cancel();
 		delete iOtgConnectionIdleWatcher;
 		iOtgConnectionIdleWatcher= NULL;
-		LOGTEXT(_L8("deleted Connection Idle watcher"));
+		OstTrace0( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP10, "CUsbOtg::~CUsbOtg;deleted Connection Idle watcher" );
+		
 		}
 
 	// Unload OTGDI components if it was ever started
 	if ( iOtgDriver.Handle() )
 		{
-		LOGTEXT(_L8("Stopping stacks"));
+		OstTrace0( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP11, "CUsbOtg::~CUsbOtg; Stopping stacks" );
+		
 		iOtgDriver.StopStacks();
 		iOtgDriver.Close();
 		}
 	else
 		{
-		LOGTEXT(_L8("No OTG Driver session was opened, nothing to do"));
+		OstTrace0( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP12, "CUsbOtg::~CUsbOtg; No OTG Driver session was opened, nothing to do" );
+		
 		}
 
-	LOGTEXT(_L8("Freeing logical device"));
+	OstTrace0( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP13, "CUsbOtg::~CUsbOtg; Freeing logical device" );
+	
 	TInt err = User::FreeLogicalDevice(KUsbOtgLDDName);
 	//Putting the LOGTEXT2 inside the if statement prevents a compiler
 	//warning about err being unused in UREL builds.
 	if(err)
 		{
-		LOGTEXT2(_L8("     User::FreeLogicalDevice returned %d"),err);
+		OstTrace1( TRACE_NORMAL, CUSBOTG_CUSBOTG_DUP14, "CUsbOtg::~CUsbOtg;     User::FreeLogicalDevice returned %d", err );
+		
 		}
 	
 	iCriticalSection.Close();
+	OstTraceFunctionExit0( CUSBOTG_CUSBOTG_DES_EXIT );
 	}
 
 
@@ -147,7 +166,9 @@
  * Constructor.
  */
 	{
-	LOG_FUNC
+    OstTraceFunctionEntry0( CUSBOTG_CUSBOTG_CONS_ENTRY );
+    
+	OstTraceFunctionExit0( CUSBOTG_CUSBOTG_CONS_EXIT );
 	}
 
 
@@ -156,31 +177,41 @@
  * Performs 2nd phase construction of the OTG object.
  */
 	{
-	LOG_FUNC
+	OstTraceFunctionEntry0( CUSBOTG_CONSTRUCTL_ENTRY );
 	
-	LOGTEXT(_L8("About to open LDD"));
+	OstTrace0( TRACE_NORMAL, CUSBOTG_CONSTRUCTL, "CUsbOtg::ConstructL; About to open LDD" );
+	
 	iLastError = User::LoadLogicalDevice(KUsbOtgLDDName);
 	if ( (iLastError != KErrNone) && (iLastError != KErrAlreadyExists) )
 		{
-		LOGTEXT3(_L8("Error %d: Unable to load driver: %S"), iLastError, &KUsbOtgLDDName);
-		LEAVEIFERRORL(iLastError);
+        if(iLastError < 0)
+            {
+            OstTraceExt2( TRACE_NORMAL, CUSBOTG_CONSTRUCTL_DUP1, "CUsbOtg::ConstructL; Error %d: Unable to load driver: %S", iLastError, KUsbOtgLDDName );
+            User::Leave(iLastError);
+            }
 		}
-
-	LOGTEXT(_L8("About to open RUsbOtgDriver"));
+	OstTrace0( TRACE_NORMAL, CUSBOTG_CONSTRUCTL_DUP3, "CUsbOtg::ConstructL; About to open RUsbOtgDriver" );
+	
 	iLastError = iOtgDriver.Open();
 	if ( (iLastError != KErrNone) && (iLastError != KErrAlreadyExists) )
 		{
-		LOGTEXT2(_L8("Error %d: Unable to open RUsbOtgDriver session"), iLastError);
-		LEAVEIFERRORL(iLastError);
+        if(iLastError < 0)
+            {
+            OstTrace1( TRACE_NORMAL, CUSBOTG_CONSTRUCTL_DUP4, "CUsbOtg::ConstructL; Error %d: Unable to open RUsbOtgDriver session", iLastError );
+            User::Leave(iLastError);
+            }	
 		}
 
-
-	LOGTEXT(_L8("About to start OTG stacks"));
+	OstTrace0( TRACE_NORMAL, CUSBOTG_CONSTRUCTL_DUP2, "CUsbOtg::ConstructL; About to start OTG stacks" );
+	
 	iLastError = iOtgDriver.StartStacks();
 	if (iLastError != KErrNone)
 		{
-		LOGTEXT2(_L8("Error %d: Unable to open start OTG stacks"), iLastError);
-		LEAVEIFERRORL(iLastError);
+        if(iLastError < 0)
+            {
+            OstTrace1( TRACE_NORMAL, CUSBOTG_CONSTRUCTL_DUP5, "CUsbOtg::ConstructL; Error %d: Unable to open start OTG stacks", iLastError );
+            User::Leave(iLastError);
+            }
 		}
 
 	// Request Otg notifications
@@ -203,7 +234,9 @@
 	
 	iCriticalSection.CreateLocal(EOwnerProcess);
 	
-	LOGTEXT(_L8("UsbOtg::ConstructL() finished"));
+	OstTrace0( TRACE_NORMAL, CUSBOTG_CONSTRUCTL_DUP6, "CUsbOtg::ConstructL; UsbOtg::ConstructL() finished" );
+	
+	OstTraceFunctionExit0( CUSBOTG_CONSTRUCTL_EXIT );
 	}
 	
 void CUsbOtg::NotifyMessage(TInt aMessage)
@@ -275,7 +308,9 @@
 	TInt otgEvent = TranslateOtgEvent();
 	if ( otgEvent == KErrBadName )
 		{
-		LOGTEXT2(_L8("CUsbOtg::NotifyOtgEvent(): OTG event %d was reported, but not propagated"), (TInt) iOtgEvent);
+		OstTrace1( TRACE_NORMAL, CUSBOTG_NOTIFYOTGEVENT,
+		        "CUsbOtg::NotifyOtgEvent;OTG event %d was reported, but not propagated", (TInt)iOtgEvent );
+		
 		return;
 		}
 
@@ -293,9 +328,16 @@
  * @param	aObserver	New Observer of the OTG events
  */
 	{
-	LOG_FUNC
+	OstTraceFunctionEntry0( CUSBOTG_REGISTEROBSERVERL_ENTRY );
 
-	LEAVEIFERRORL(iObservers.Append(&aObserver));
+    TInt err = iObservers.Append(&aObserver);
+    if(err < 0)
+        {
+        OstTrace1( TRACE_NORMAL, CUSBOTG_REGISTEROBSERVERL, "CUsbOtg::RegisterObserverL; iObservers.Append(&aObserver) error, Leave error=%d", err );
+        User::Leave(err);
+        }
+
+	OstTraceFunctionExit0( CUSBOTG_REGISTEROBSERVERL_EXIT );
 	}
 
 
@@ -306,7 +348,7 @@
  * @param	aObserver	The existing OTG events observer to be de-registered
  */
 	{
-	LOG_FUNC
+	OstTraceFunctionEntry0( CUSBOTG_DEREGISTEROBSERVER_ENTRY );
 
 	TInt index = iObservers.Find(&aObserver);
 
@@ -314,6 +356,7 @@
 		{
 		iObservers.Remove(index);
 		}
+	OstTraceFunctionExit0( CUSBOTG_DEREGISTEROBSERVER_EXIT );
 	}
 
 
@@ -323,10 +366,11 @@
  * Reports errors and OTG events via observer interface.
  */
 	{
-	LOG_FUNC
+	OstTraceFunctionEntry0( CUSBOTG_STARTL_ENTRY );
 
 	iOtgWatcher = CUsbOtgWatcher::NewL(*this, iOtgDriver, iOtgMessage);
 	iOtgWatcher->Start();
+	OstTraceFunctionExit0( CUSBOTG_STARTL_EXIT );
 	}
 
 void CUsbOtg::Stop()
@@ -334,41 +378,44 @@
  * Stop the USB OTG events watcher
  */
 	{
-	LOG_FUNC
+	OstTraceFunctionEntry0( CUSBOTG_STOP_ENTRY );
 
-	LOGTEXT2(_L8("about to stop OTG watcher @ %08x"), (TUint32) iOtgWatcher);
+	OstTrace1( TRACE_NORMAL, CUSBOTG_STOP, "CUsbOtg::Stop;about to stop OTG watcher @ %08x", (TUint32)iOtgWatcher );
+	
 	
 	if (iOtgWatcher)
 		{
 		iOtgWatcher->Cancel();
 		delete iOtgWatcher;
 		iOtgWatcher = NULL;
-		LOGTEXT(_L8("deleted OTG watcher"));
+		OstTrace0( TRACE_NORMAL, CUSBOTG_STOP_DUP1, "CUsbOtg::Stop" );
+		
 		}
 	
 	iLastError = KErrNone;
+	OstTraceFunctionExit0( CUSBOTG_STOP_EXIT );
 	}
 
 TInt CUsbOtg::BusRequest()
 	{
-	LOG_FUNC
+	OstTraceFunctionEntry0( CUSBOTG_BUSREQUEST_ENTRY );
 	return iOtgDriver.BusRequest();
 	}
 	
 TInt CUsbOtg::BusRespondSrp()
 	{
-	LOG_FUNC
+	OstTraceFunctionEntry0( CUSBOTG_BUSRESPONDSRP_ENTRY );
 	return iOtgDriver.BusRespondSrp();
 	}
 
 TInt CUsbOtg::BusClearError()
 	{
-	LOG_FUNC
+	OstTraceFunctionEntry0( CUSBOTG_BUSCLEARERROR_ENTRY );
 	return iOtgDriver.BusClearError();
 	}
 
 TInt CUsbOtg::BusDrop()
 	{
-	LOG_FUNC
+	OstTraceFunctionEntry0( CUSBOTG_BUSDROP_ENTRY );
 	return iOtgDriver.BusDrop();
 	}